diff --git a/composer.json b/composer.json index 6c0d5f7ea575c9c7bf32a2ee41bdf593bc6c04e0..a0ed19b3b07fc5b891df010cf173a4ea112aada2 100644 --- a/composer.json +++ b/composer.json @@ -162,7 +162,7 @@ "drupal/simple_gmap": "3.0", "drupal/simple_megamenu": "1.0-beta3", "drupal/simple_sitemap": "3.7", - "drupal/simplesamlphp_auth": "3.1", + "drupal/simplesamlphp_auth": "3.2", "drupal/smtp": "1.x-dev#84f789cbba894290cf82ed2558c8a4e7e24f3c89", "drupal/social_media": "1.8", "drupal/social_media_links": "2.6", diff --git a/composer.lock b/composer.lock index 0e0e326872d5a9dd8096ebd0134e1c5a476a563d..a16a6d55109a4ab4cf639dea0f5ab5d901e575bf 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "09f1b84dc9ea1c200a4d901869c1b774", + "content-hash": "f1913b5e8eeae3a2ad1662710411393f", "packages": [ { "name": "alchemy/zippy", @@ -7549,31 +7549,28 @@ }, { "name": "drupal/simplesamlphp_auth", - "version": "3.1.0", + "version": "3.2.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/simplesamlphp_auth.git", - "reference": "8.x-3.1" + "reference": "8.x-3.2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/simplesamlphp_auth-8.x-3.1.zip", - "reference": "8.x-3.1", - "shasum": "db464b1a4716ad21e7f2ec141640691b8d040d59" + "url": "https://ftp.drupal.org/files/projects/simplesamlphp_auth-8.x-3.2.zip", + "reference": "8.x-3.2", + "shasum": "a5a2b10fc873eb8669929ad1a6d9599e47a2ca99" }, "require": { - "drupal/core": "*", + "drupal/core": "^8.7|^9.0", "drupal/externalauth": "^1.1", - "simplesamlphp/simplesamlphp": "~1.17.2" + "simplesamlphp/simplesamlphp": "^1.18.2" }, "type": "drupal-module", "extra": { - "branch-alias": { - "dev-3.x": "3.x-dev" - }, "drupal": { - "version": "8.x-3.1", - "datestamp": "1565118485", + "version": "8.x-3.2", + "datestamp": "1580423953", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -9727,55 +9724,6 @@ ], "time": "2017-05-08T12:10:56+00:00" }, - { - "name": "jaimeperez/twig-configurable-i18n", - "version": "v2.1", - "source": { - "type": "git", - "url": "https://github.com/jaimeperez/twig-configurable-i18n.git", - "reference": "38a22aaa6b31efdc0d76d58f5934dea3ebac8556" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/jaimeperez/twig-configurable-i18n/zipball/38a22aaa6b31efdc0d76d58f5934dea3ebac8556", - "reference": "38a22aaa6b31efdc0d76d58f5934dea3ebac8556", - "shasum": "" - }, - "require": { - "twig/extensions": "^1.5" - }, - "require-dev": { - "phpunit/phpunit": "~4.8.36", - "twig/twig": "^1.37 || ^2.7" - }, - "type": "project", - "autoload": { - "psr-4": { - "JaimePerez\\TwigConfigurableI18n\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-2.1" - ], - "authors": [ - { - "name": "Jaime Perez", - "email": "jaime.perez@uninett.no" - } - ], - "description": "This is an extension on top of Twig's i18n extension, allowing you to customize which functions to use for translations.", - "keywords": [ - "extension", - "gettext", - "i18n", - "internationalization", - "translation", - "twig" - ], - "abandoned": "simplesamlphp/twig-configurable-i18n", - "time": "2019-06-07T11:03:28+00:00" - }, { "name": "jakub-onderka/php-console-color", "version": "v0.2", @@ -10803,6 +10751,140 @@ ], "time": "2019-12-10T10:24:42+00:00" }, + { + "name": "phpfastcache/riak-client", + "version": "3.4.3", + "source": { + "type": "git", + "url": "https://github.com/PHPSocialNetwork/riak-php-client.git", + "reference": "d771f75d16196006604a30bb15adc1c6a9b0fcc9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPSocialNetwork/riak-php-client/zipball/d771f75d16196006604a30bb15adc1c6a9b0fcc9", + "reference": "d771f75d16196006604a30bb15adc1c6a9b0fcc9", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-json": "*", + "php": ">=5.4" + }, + "conflict": { + "basho/riak": "*" + }, + "require-dev": { + "apigen/apigen": "4.1.*", + "phpunit/phpunit": "4.8.*" + }, + "type": "library", + "autoload": { + "psr-4": { + "Basho\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Georges.L", + "email": "contact@geolim4.com", + "homepage": "https://github.com/Geolim4", + "role": "Maintainer" + }, + { + "name": "Christopher Mancini", + "email": "cmancini@basho.com", + "homepage": "https://github.com/christophermancini", + "role": "Former Lead Developer" + }, + { + "name": "Alex Moore", + "email": "amoore@basho.com", + "homepage": "https://github.com/alexmoore", + "role": "Former Developer" + } + ], + "description": "Riak client for PHP (Fork of the official basho/riak due to maintainer significant inactivity)", + "homepage": "https://github.com/PHPSocialNetwork/riak-php-client", + "keywords": [ + "basho", + "client", + "crdt", + "data", + "database", + "datatype", + "driver", + "kv", + "nosql", + "riak" + ], + "time": "2017-11-23T21:33:15+00:00" + }, + { + "name": "phpmailer/phpmailer", + "version": "v6.1.6", + "source": { + "type": "git", + "url": "https://github.com/PHPMailer/PHPMailer.git", + "reference": "c2796cb1cb99d7717290b48c4e6f32cb6c60b7b3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/c2796cb1cb99d7717290b48c4e6f32cb6c60b7b3", + "reference": "c2796cb1cb99d7717290b48c4e6f32cb6c60b7b3", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-filter": "*", + "php": ">=5.5.0" + }, + "require-dev": { + "doctrine/annotations": "^1.2", + "friendsofphp/php-cs-fixer": "^2.2", + "phpunit/phpunit": "^4.8 || ^5.7" + }, + "suggest": { + "ext-mbstring": "Needed to send email in multibyte encoding charset", + "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication", + "league/oauth2-google": "Needed for Google XOAUTH2 authentication", + "psr/log": "For optional PSR-3 debug logging", + "stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication", + "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPMailer\\PHPMailer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-only" + ], + "authors": [ + { + "name": "Marcus Bointon", + "email": "phpmailer@synchromedia.co.uk" + }, + { + "name": "Jim Jagielski", + "email": "jimjag@gmail.com" + }, + { + "name": "Andy Prevost", + "email": "codeworxtech@users.sourceforge.net" + }, + { + "name": "Brent R. Matzelle" + } + ], + "description": "PHPMailer is a full-featured email creation and transfer class for PHP", + "time": "2020-05-27T12:24:03+00:00" + }, { "name": "psr/container", "version": "1.0.0", @@ -11065,16 +11147,16 @@ }, { "name": "robrichards/xmlseclibs", - "version": "3.0.4", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/robrichards/xmlseclibs.git", - "reference": "0a53d3c3aa87564910cae4ed01416441d3ae0db5" + "reference": "8d8e56ca7914440a8c60caff1a865e7dff1d9a5a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/0a53d3c3aa87564910cae4ed01416441d3ae0db5", - "reference": "0a53d3c3aa87564910cae4ed01416441d3ae0db5", + "url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/8d8e56ca7914440a8c60caff1a865e7dff1d9a5a", + "reference": "8d8e56ca7914440a8c60caff1a865e7dff1d9a5a", "shasum": "" }, "require": { @@ -11099,7 +11181,7 @@ "xml", "xmldsig" ], - "time": "2019-11-05T11:44:22+00:00" + "time": "2020-04-22T17:19:51+00:00" }, { "name": "rvtraveller/qs-composer-installer", @@ -11139,51 +11221,78 @@ "homepage": "https://github.com/rvtraveller/qs-composer-installer", "time": "2017-01-27T20:40:31+00:00" }, + { + "name": "simplesamlphp/composer-module-installer", + "version": "v1.1.6", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/composer-module-installer.git", + "reference": "b70414a2112fe49e97a7eddd747657bd8bc38ef0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/composer-module-installer/zipball/b70414a2112fe49e97a7eddd747657bd8bc38ef0", + "reference": "b70414a2112fe49e97a7eddd747657bd8bc38ef0", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0", + "simplesamlphp/simplesamlphp": "*" + }, + "type": "composer-plugin", + "extra": { + "class": "SimpleSamlPhp\\Composer\\ModuleInstallerPlugin" + }, + "autoload": { + "psr-0": { + "SimpleSamlPhp\\Composer": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "description": "A Composer plugin that allows installing SimpleSAMLphp modules through Composer.", + "time": "2017-04-24T07:12:50+00:00" + }, { "name": "simplesamlphp/saml2", - "version": "v3.4.2", + "version": "v4.1.7", "source": { "type": "git", "url": "https://github.com/simplesamlphp/saml2.git", - "reference": "3806d276edb066c60aa3d748ffd0681d92ffbda7" + "reference": "62c7ab036c2db4c25bcab210d30343add0ae2c28" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/3806d276edb066c60aa3d748ffd0681d92ffbda7", - "reference": "3806d276edb066c60aa3d748ffd0681d92ffbda7", + "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/62c7ab036c2db4c25bcab210d30343add0ae2c28", + "reference": "62c7ab036c2db4c25bcab210d30343add0ae2c28", "shasum": "" }, "require": { "ext-dom": "*", "ext-openssl": "*", "ext-zlib": "*", - "php": ">=5.4", - "psr/log": "~1.0", + "php": ">=7.2", + "psr/log": "~1.1", "robrichards/xmlseclibs": "^3.0.4", - "webmozart/assert": "^1.4" + "webmozart/assert": "^1.5" }, "require-dev": { - "mockery/mockery": "~0.9", - "phpmd/phpmd": "~2.6", - "phpunit/phpunit": "~5.7", - "sebastian/phpcpd": "~2.0", - "sensiolabs/security-checker": "~4.1", - "simplesamlphp/simplesamlphp-test-framework": "0.0.11", - "squizlabs/php_codesniffer": "~3.2" + "mockery/mockery": "~1.2", + "phpunit/phpunit": "^8.3", + "sebastian/phpcpd": "~4.1", + "sensiolabs/security-checker": "~6.0", + "simplesamlphp/simplesamlphp-test-framework": "~0.1.0", + "squizlabs/php_codesniffer": "~3.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "v3.1.x-dev" + "dev-master": "v4.0.x-dev" } }, "autoload": { - "psr-0": { - "SAML2\\": "src/" - }, - "files": [ - "src/_autoload.php" - ] + "psr-4": { + "SAML2\\": "src/SAML2" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -11196,20 +11305,20 @@ } ], "description": "SAML2 PHP library from SimpleSAMLphp", - "time": "2019-11-06T10:00:32+00:00" + "time": "2020-03-21T19:43:09+00:00" }, { "name": "simplesamlphp/simplesamlphp", - "version": "v1.17.8", + "version": "v1.18.7", "source": { "type": "git", "url": "https://github.com/simplesamlphp/simplesamlphp.git", - "reference": "295937ae8672278cad73ec2c78af3749426263de" + "reference": "c62e32c807d50ada1fd6f4792e2054a0471100ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp/zipball/295937ae8672278cad73ec2c78af3749426263de", - "reference": "295937ae8672278cad73ec2c78af3749426263de", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp/zipball/c62e32c807d50ada1fd6f4792e2054a0471100ad", + "reference": "c62e32c807d50ada1fd6f4792e2054a0471100ad", "shasum": "" }, "require": { @@ -11223,10 +11332,39 @@ "ext-spl": "*", "ext-zlib": "*", "gettext/gettext": "^4.6", - "jaimeperez/twig-configurable-i18n": "^2.0", - "php": ">=5.5", + "php": ">=5.6", + "phpmailer/phpmailer": "^6.0", "robrichards/xmlseclibs": "^3.0.4", - "simplesamlphp/saml2": "^3.3", + "simplesamlphp/saml2": "^3.4 || ^4.0", + "simplesamlphp/simplesamlphp-module-adfs": "^0.9", + "simplesamlphp/simplesamlphp-module-authcrypt": "^0.9", + "simplesamlphp/simplesamlphp-module-authfacebook": "^0.9", + "simplesamlphp/simplesamlphp-module-authorize": "^0.9", + "simplesamlphp/simplesamlphp-module-authtwitter": "^0.9", + "simplesamlphp/simplesamlphp-module-authwindowslive": "^0.9", + "simplesamlphp/simplesamlphp-module-authx509": "^0.9", + "simplesamlphp/simplesamlphp-module-authyubikey": "^0.9", + "simplesamlphp/simplesamlphp-module-cas": "^0.9", + "simplesamlphp/simplesamlphp-module-cdc": "^0.9", + "simplesamlphp/simplesamlphp-module-consent": "^0.9", + "simplesamlphp/simplesamlphp-module-consentadmin": "^0.9", + "simplesamlphp/simplesamlphp-module-discopower": "^0.9", + "simplesamlphp/simplesamlphp-module-exampleattributeserver": "^1.0", + "simplesamlphp/simplesamlphp-module-expirycheck": "^0.9", + "simplesamlphp/simplesamlphp-module-ldap": "^0.9", + "simplesamlphp/simplesamlphp-module-memcachemonitor": "^0.9", + "simplesamlphp/simplesamlphp-module-memcookie": "^1.2", + "simplesamlphp/simplesamlphp-module-metarefresh": "^0.9", + "simplesamlphp/simplesamlphp-module-negotiate": "^0.9", + "simplesamlphp/simplesamlphp-module-oauth": "^0.9", + "simplesamlphp/simplesamlphp-module-preprodwarning": "^0.9", + "simplesamlphp/simplesamlphp-module-radius": "^0.9", + "simplesamlphp/simplesamlphp-module-riak": "^0.9", + "simplesamlphp/simplesamlphp-module-sanitycheck": "^0.9", + "simplesamlphp/simplesamlphp-module-smartattributes": "^0.9", + "simplesamlphp/simplesamlphp-module-sqlauth": "^0.9", + "simplesamlphp/simplesamlphp-module-statistics": "^0.9", + "simplesamlphp/twig-configurable-i18n": "^2.1", "symfony/config": "^3.4 || ^4.0", "symfony/dependency-injection": "^3.4 || ^4.0", "symfony/http-foundation": "^3.4 || ^4.0", @@ -11239,7 +11377,11 @@ "require-dev": { "ext-curl": "*", "mikey179/vfsstream": "~1.6", - "phpunit/phpunit": "~4.8" + "phpunit/phpunit": "~5.7", + "sensiolabs/security-checker": "^5.0.3", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.14", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "~1.1.9" }, "suggest": { "ext-curl": "Needed in order to check for updates automatically", @@ -11288,180 +11430,1554 @@ "sp", "ws-federation" ], - "time": "2019-11-20T08:26:08+00:00" + "time": "2020-05-12T12:24:31+00:00" }, { - "name": "stack/builder", - "version": "v1.0.5", + "name": "simplesamlphp/simplesamlphp-module-adfs", + "version": "v0.9.6", "source": { "type": "git", - "url": "https://github.com/stackphp/builder.git", - "reference": "fb3d136d04c6be41120ebf8c0cc71fe9507d750a" + "url": "https://github.com/simplesamlphp/simplesamlphp-module-adfs.git", + "reference": "425e5ebbdd097c92fe5265a6b48d32a3095c7237" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/stackphp/builder/zipball/fb3d136d04c6be41120ebf8c0cc71fe9507d750a", - "reference": "fb3d136d04c6be41120ebf8c0cc71fe9507d750a", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-adfs/zipball/425e5ebbdd097c92fe5265a6b48d32a3095c7237", + "reference": "425e5ebbdd097c92fe5265a6b48d32a3095c7237", "shasum": "" }, "require": { - "php": ">=5.3.0", - "symfony/http-foundation": "~2.1|~3.0|~4.0", - "symfony/http-kernel": "~2.1|~3.0|~4.0" + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" }, "require-dev": { - "silex/silex": "~1.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17", + "webmozart/assert": "<1.7" }, + "type": "simplesamlphp-module", "autoload": { - "psr-0": { - "Stack": "src" + "psr-4": { + "SimpleSAML\\Module\\adfs\\": "lib/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "LGPL-2.1-or-later" ], "authors": [ { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch" + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" } ], - "description": "Builder for stack middlewares based on HttpKernelInterface.", + "description": "A module that implements the WS-federation IDP", "keywords": [ - "stack" + "adfs", + "simplesamlphp" ], - "time": "2017-11-18T14:57:29+00:00" + "time": "2020-03-31T14:29:24+00:00" }, { - "name": "stecman/symfony-console-completion", - "version": "0.8.0", + "name": "simplesamlphp/simplesamlphp-module-authcrypt", + "version": "v0.9.1", "source": { "type": "git", - "url": "https://github.com/stecman/symfony-console-completion.git", - "reference": "cd738867503477e91dbe84173dfabd431c883431" + "url": "https://github.com/simplesamlphp/simplesamlphp-module-authcrypt.git", + "reference": "cc2950cf710933063192e883ba2804321b8af6db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/stecman/symfony-console-completion/zipball/cd738867503477e91dbe84173dfabd431c883431", - "reference": "cd738867503477e91dbe84173dfabd431c883431", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-authcrypt/zipball/cc2950cf710933063192e883ba2804321b8af6db", + "reference": "cc2950cf710933063192e883ba2804321b8af6db", "shasum": "" }, "require": { - "php": ">=5.3.2", - "symfony/console": "~2.3 || ~3.0 || ~4.0" + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "webmozart/assert": "~1.4" }, "require-dev": { - "phpunit/phpunit": "~4.8.36 || ~5.7 || ~6.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.6.x-dev" - } + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" }, + "type": "simplesamlphp-module", "autoload": { "psr-4": { - "Stecman\\Component\\Symfony\\Console\\BashCompletion\\": "src/" + "SimpleSAML\\Module\\authcrypt\\": "lib/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "LGPL-3.0-or-later" ], "authors": [ { - "name": "Stephen Holdaway", - "email": "stephen@stecman.co.nz" + "name": "Olav Morken", + "email": "olavmrk@gmail.com" } ], - "description": "Automatic BASH completion for Symfony Console Component based applications.", - "time": "2018-02-10T04:28:01+00:00" + "description": "This module provides authentication against password hashes or .htpasswd files", + "keywords": [ + "authcrypt", + "simplesamlphp" + ], + "time": "2019-12-03T08:56:36+00:00" }, { - "name": "symfony-cmf/routing", - "version": "1.4.1", + "name": "simplesamlphp/simplesamlphp-module-authfacebook", + "version": "v0.9.3", "source": { "type": "git", - "url": "https://github.com/symfony-cmf/routing.git", - "reference": "fb1e7f85ff8c6866238b7e73a490a0a0243ae8ac" + "url": "https://github.com/simplesamlphp/simplesamlphp-module-authfacebook.git", + "reference": "9152731e939ad4a49e0f06da5f0009ebde0d2b5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony-cmf/routing/zipball/fb1e7f85ff8c6866238b7e73a490a0a0243ae8ac", - "reference": "fb1e7f85ff8c6866238b7e73a490a0a0243ae8ac", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-authfacebook/zipball/9152731e939ad4a49e0f06da5f0009ebde0d2b5c", + "reference": "9152731e939ad4a49e0f06da5f0009ebde0d2b5c", "shasum": "" }, "require": { - "php": "^5.3.9|^7.0", - "psr/log": "1.*", - "symfony/http-kernel": "^2.2|3.*", - "symfony/routing": "^2.2|3.*" + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" }, "require-dev": { - "friendsofsymfony/jsrouting-bundle": "^1.1", - "symfony-cmf/testing": "^1.3", - "symfony/config": "^2.2|3.*", - "symfony/dependency-injection": "^2.0.5|3.*", - "symfony/event-dispatcher": "^2.1|3.*" - }, - "suggest": { - "symfony/event-dispatcher": "DynamicRouter can optionally trigger an event at the start of matching. Minimal version (~2.1)" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.10" }, + "type": "simplesamlphp-module", "autoload": { "psr-4": { - "Symfony\\Cmf\\Component\\Routing\\": "" + "SimpleSAML\\Module\\authfacebook\\": "lib/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "LGPL-3.0-or-later" ], "authors": [ { - "name": "Symfony CMF Community", - "homepage": "https://github.com/symfony-cmf/Routing/contributors" + "name": "Andjelko Horvat", + "email": "comel@vingd.com" + }, + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" } ], - "description": "Extends the Symfony2 routing component for dynamic routes and chaining several routers", - "homepage": "http://cmf.symfony.com", + "description": "A module that is able to authenticate against Facebook", "keywords": [ - "database", - "routing" + "facebook", + "simplesamlphp" ], - "time": "2017-05-09T08:10:41+00:00" + "time": "2020-03-13T11:29:21+00:00" }, { - "name": "symfony/class-loader", - "version": "v3.4.41", + "name": "simplesamlphp/simplesamlphp-module-authorize", + "version": "v0.9.2", "source": { "type": "git", - "url": "https://github.com/symfony/class-loader.git", - "reference": "e4636a4f23f157278a19e5db160c63de0da297d8" + "url": "https://github.com/simplesamlphp/simplesamlphp-module-authorize.git", + "reference": "c2607a5252ee1256b50ce7795e35513b116998d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/class-loader/zipball/e4636a4f23f157278a19e5db160c63de0da297d8", - "reference": "e4636a4f23f157278a19e5db160c63de0da297d8", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-authorize/zipball/c2607a5252ee1256b50ce7795e35513b116998d4", + "reference": "c2607a5252ee1256b50ce7795e35513b116998d4", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" }, "require-dev": { - "symfony/finder": "~2.8|~3.0|~4.0", + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\authorize\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Ernesto Revilla", + "email": "erny@yaco.es" + } + ], + "description": "This module provides a user authorization filter based on attribute matching", + "keywords": [ + "authorize", + "simplesamlphp" + ], + "time": "2020-02-25T15:16:57+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-authtwitter", + "version": "v0.9.1", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-authtwitter.git", + "reference": "29a15e58061222632fea9eb2c807aef5e2c0d54a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-authtwitter/zipball/29a15e58061222632fea9eb2c807aef5e2c0d54a", + "reference": "29a15e58061222632fea9eb2c807aef5e2c0d54a", + "shasum": "" + }, + "require": { + "php": ">=5.5", + "simplesamlphp/composer-module-installer": "~1.0", + "simplesamlphp/simplesamlphp-module-oauth": "^0.9" + }, + "require-dev": { + "phpunit/phpunit": "~4.8.35", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\authtwitter\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + }, + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "description": "A module that is able to perform authentication against Twitter", + "keywords": [ + "simplesamlphp", + "twitter" + ], + "time": "2019-12-03T09:00:09+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-authwindowslive", + "version": "v0.9.1", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-authwindowslive.git", + "reference": "f40aecec6c0adaedb6693309840c98cec783876e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-authwindowslive/zipball/f40aecec6c0adaedb6693309840c98cec783876e", + "reference": "f40aecec6c0adaedb6693309840c98cec783876e", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\authwindowslive\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + }, + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "description": "A module that is able to perform authentication against Windows Live", + "keywords": [ + "live", + "simplesamlphp", + "windows", + "windowslive" + ], + "time": "2019-12-03T09:01:13+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-authx509", + "version": "v0.9.3", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-authX509.git", + "reference": "a7bda5abccc17e0e6cc057d7315e1f94a9409f44" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-authX509/zipball/a7bda5abccc17e0e6cc057d7315e1f94a9409f44", + "reference": "a7bda5abccc17e0e6cc057d7315e1f94a9409f44", + "shasum": "" + }, + "require": { + "php": ">=5.5", + "simplesamlphp/composer-module-installer": "~1.1", + "simplesamlphp/simplesamlphp-module-ldap": "^0.9.5" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.18", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.15" + }, + "type": "simplesamlphp-module", + "extra": { + "ssp-mixedcase-module-name": "authX509" + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\authX509\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Joost van Dijk", + "email": "Joost.vanDijk@surfnet.nl" + }, + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "description": "A module that is able to authenticate users based on X509 client certificates", + "keywords": [ + "simplesamlphp", + "x509" + ], + "time": "2020-05-24T20:07:14+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-authyubikey", + "version": "v0.9.1", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-authyubikey.git", + "reference": "8c27bfeb4981d2e6fa40a831e945f40c5a4ad3d2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-authyubikey/zipball/8c27bfeb4981d2e6fa40a831e945f40c5a4ad3d2", + "reference": "8c27bfeb4981d2e6fa40a831e945f40c5a4ad3d2", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "type": "simplesamlphp-module", + "extra": { + "ssp-mixedcase-module-name": "authYubikey" + }, + "autoload": { + "psr-4": { + "SimpleSAML\\modules\\yubikey\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "description": "A module that is able to authenticate against YubiKey", + "keywords": [ + "authyubikey", + "simplesamlphp" + ], + "time": "2019-12-03T08:52:49+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-cas", + "version": "v0.9.1", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-cas.git", + "reference": "63b72e4600550c507cdfc32fdd208ad59a64321e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-cas/zipball/63b72e4600550c507cdfc32fdd208ad59a64321e", + "reference": "63b72e4600550c507cdfc32fdd208ad59a64321e", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "simplesamlphp/simplesamlphp-module-ldap": "^0.9", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\cas\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + } + ], + "description": "A module that provides CAS authentication", + "keywords": [ + "cas", + "simplesamlphp" + ], + "time": "2019-12-03T09:03:06+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-cdc", + "version": "v0.9.1", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-cdc.git", + "reference": "16a5bfac7299e04e5feb472af328e07598708166" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-cdc/zipball/16a5bfac7299e04e5feb472af328e07598708166", + "reference": "16a5bfac7299e04e5feb472af328e07598708166", + "shasum": "" + }, + "require": { + "simplesamlphp/composer-module-installer": ">=1.1.6" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\cdc\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olav.morken@uninett.no" + }, + { + "name": "Jaime Perez Crespo", + "email": "jaime.perez@uninett.no" + } + ], + "description": "A SimpleSAMLphp module that allows integration with CDC", + "homepage": "https://simplesamlphp.org/", + "keywords": [ + "cdc", + "simplesamlphp" + ], + "time": "2019-12-03T09:04:11+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-consent", + "version": "v0.9.6", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-consent.git", + "reference": "2f84d15e96afb5a32b6d1cff93370f501ca7867d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-consent/zipball/2f84d15e96afb5a32b6d1cff93370f501ca7867d", + "reference": "2f84d15e96afb5a32b6d1cff93370f501ca7867d", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17", + "webmozart/assert": "<1.7" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\consent\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "lavmrk@gmail.com" + } + ], + "description": "A module that will ask for user consent before releasing attributes", + "keywords": [ + "consent", + "simplesamlphp" + ], + "time": "2020-06-15T14:26:23+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-consentadmin", + "version": "v0.9.1", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-consentadmin.git", + "reference": "466e8d0d751f0080162d78e63ab2e125b24d17a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-consentadmin/zipball/466e8d0d751f0080162d78e63ab2e125b24d17a1", + "reference": "466e8d0d751f0080162d78e63ab2e125b24d17a1", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "simplesamlphp/simplesamlphp-module-consent": "^0.9", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "type": "simplesamlphp-module", + "extra": { + "ssp-mixedcase-module-name": "consentAdmin" + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Jacob Christiansen", + "email": "jach@wayf.dk" + }, + { + "name": "Olav Morken", + "email": "olav.morken@uninett.no" + } + ], + "description": "A module that allows users to manage their consent", + "keywords": [ + "consentadmin", + "simplesamlphp" + ], + "time": "2019-12-03T09:06:40+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-discopower", + "version": "v0.9.1", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-discopower.git", + "reference": "006c0617610f1bae11cf4d17e8ce4c509239a60e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-discopower/zipball/006c0617610f1bae11cf4d17e8ce4c509239a60e", + "reference": "006c0617610f1bae11cf4d17e8ce4c509239a60e", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\modules\\discopower\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + } + ], + "description": "Fancy tabbed discovery service with filtering capabilities where SPs can have different sets of metadata listed", + "keywords": [ + "discopower", + "discovery", + "simplesamlphp" + ], + "time": "2019-11-27T20:34:37+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-exampleattributeserver", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-exampleattributeserver.git", + "reference": "63e0323e81c32bc3c9eaa01ea45194bb10153708" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-exampleattributeserver/zipball/63e0323e81c32bc3c9eaa01ea45194bb10153708", + "reference": "63e0323e81c32bc3c9eaa01ea45194bb10153708", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\exampleattributeserver\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + } + ], + "description": "An example for SAML attributes queries", + "keywords": [ + "exampleattributeserver", + "simplesamlphp" + ], + "time": "2019-05-28T12:37:15+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-expirycheck", + "version": "v0.9.3", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-expirycheck.git", + "reference": "59c59cdf87e2679257b46c07bb4c27666a11cc20" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-expirycheck/zipball/59c59cdf87e2679257b46c07bb4c27666a11cc20", + "reference": "59c59cdf87e2679257b46c07bb4c27666a11cc20", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.10" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\expirycheck\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Alex Mihičinac", + "email": "alexm@arnes.si" + } + ], + "description": "The expirycheck module validates user's expiry date", + "keywords": [ + "expirycheck", + "simplesamlphp" + ], + "time": "2019-12-14T13:20:46+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-ldap", + "version": "v0.9.8", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-ldap.git", + "reference": "49c1f5854a6ff33d24f4562533f72c2fdf3c5149" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-ldap/zipball/49c1f5854a6ff33d24f4562533f72c2fdf3c5149", + "reference": "49c1f5854a6ff33d24f4562533f72c2fdf3c5149", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "suggest": { + "ext-ldap": "Needed when using LDAP authentication in SimpleSAMLphp" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\ldap\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + }, + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "description": "A module that provides authentication against LDAP stores", + "keywords": [ + "ldap", + "simplesamlphp" + ], + "time": "2020-05-26T08:41:54+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-memcachemonitor", + "version": "v0.9.1", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-memcachemonitor.git", + "reference": "0e08e87707cd7b1fb91bbcf65cc454d8849571b0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-memcachemonitor/zipball/0e08e87707cd7b1fb91bbcf65cc454d8849571b0", + "reference": "0e08e87707cd7b1fb91bbcf65cc454d8849571b0", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "~0.0.6" + }, + "type": "simplesamlphp-module", + "extra": { + "ssp-mixedcase-module-name": "memcacheMonitor" + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + }, + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "description": "A module that is able display usage statistics of a memcache(d) store", + "keywords": [ + "memcachemonitor", + "simplesamlphp" + ], + "time": "2019-12-03T09:19:35+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-memcookie", + "version": "v1.2.2", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-memcookie.git", + "reference": "39535304e8d464b7baa1e82cb441fa432947ff57" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-memcookie/zipball/39535304e8d464b7baa1e82cb441fa432947ff57", + "reference": "39535304e8d464b7baa1e82cb441fa432947ff57", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": ">=1.1.6" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.6" + }, + "type": "simplesamlphp-module", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olav.morken@uninett.no" + }, + { + "name": "Jaime Perez Crespo", + "email": "jaime.perez@uninett.no" + } + ], + "description": "A SimpleSAMLphp module that allows integration with Auth MemCookie, allowing web applications written in other languages than PHP to integrate with SimpleSAMLphp.", + "homepage": "https://simplesamlphp.org/", + "keywords": [ + "Auth MemCookie", + "apache", + "cookies", + "simplesamlphp" + ], + "time": "2019-08-08T18:33:47+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-metarefresh", + "version": "v0.9.5", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-metarefresh.git", + "reference": "d26eef96c8b6dd849ed3ca430450f8543163a47b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-metarefresh/zipball/d26eef96c8b6dd849ed3ca430450f8543163a47b", + "reference": "d26eef96c8b6dd849ed3ca430450f8543163a47b", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.18" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\metarefresh\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + } + ], + "description": "The metarefresh module will download and parse metadata documents and store them locally", + "keywords": [ + "metarefresh", + "simplesamlphp" + ], + "time": "2020-06-15T15:16:25+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-negotiate", + "version": "v0.9.5", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-negotiate.git", + "reference": "6bbbbf798ab05ac20625b0c9cf4f8d80bd0875c3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-negotiate/zipball/6bbbbf798ab05ac20625b0c9cf4f8d80bd0875c3", + "reference": "6bbbbf798ab05ac20625b0c9cf4f8d80bd0875c3", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "simplesamlphp/simplesamlphp-module-ldap": "^0.9", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "suggest": { + "ext-krb5": "Needed in case the SimpleSAMLphp negotiate module is used" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\negotiate\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + } + ], + "description": "The Negotiate module implements Microsofts Kerberos SPNEGO mechanism", + "keywords": [ + "negotiate", + "simplesamlphp" + ], + "time": "2020-02-27T16:11:42+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-oauth", + "version": "v0.9.2", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-oauth.git", + "reference": "d14d7aca6e699ec12b3f4dd0128373faa1a2cc61" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-oauth/zipball/d14d7aca6e699ec12b3f4dd0128373faa1a2cc61", + "reference": "d14d7aca6e699ec12b3f4dd0128373faa1a2cc61", + "shasum": "" + }, + "require": { + "simplesamlphp/composer-module-installer": ">=1.1.6" + }, + "require-dev": { + "phpunit/phpunit": "~4.8.36", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "type": "simplesamlphp-module", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olav.morken@uninett.no" + }, + { + "name": "Jaime Perez Crespo", + "email": "jaime.perez@uninett.no" + } + ], + "description": "A SimpleSAMLphp module that allows integration with OAuth1,", + "homepage": "https://simplesamlphp.org/", + "keywords": [ + "oauth1", + "simplesamlphp" + ], + "time": "2020-04-29T19:37:43+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-preprodwarning", + "version": "v0.9.2", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-preprodwarning.git", + "reference": "8e032de33a75eb44857dc06d886ad94ee3af4638" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-preprodwarning/zipball/8e032de33a75eb44857dc06d886ad94ee3af4638", + "reference": "8e032de33a75eb44857dc06d886ad94ee3af4638", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17", + "webmozart/assert": "^1.4" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\preprodwarning\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + } + ], + "description": "Display a warning when using a pre-production environment", + "keywords": [ + "preprodwarning", + "simplesamlphp" + ], + "time": "2020-04-09T13:05:27+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-radius", + "version": "v0.9.3", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-radius.git", + "reference": "36bd0f39f9a13f7eb96ead97c97c3634aa1c3f2d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-radius/zipball/36bd0f39f9a13f7eb96ead97c97c3634aa1c3f2d", + "reference": "36bd0f39f9a13f7eb96ead97c97c3634aa1c3f2d", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.7" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\radius\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + } + ], + "description": "A module that is able perform authentication against a RADIUS server", + "keywords": [ + "radius", + "simplesamlphp" + ], + "time": "2019-10-03T18:13:07+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-riak", + "version": "v0.9.1", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-riak.git", + "reference": "c1a9d9545cb4e05b9205b34624850bb777aca991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-riak/zipball/c1a9d9545cb4e05b9205b34624850bb777aca991", + "reference": "c1a9d9545cb4e05b9205b34624850bb777aca991", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "phpfastcache/riak-client": "^3.4", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\riak\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "description": "A module that is able to store key/value pairs in a Riak store", + "keywords": [ + "riak", + "simplesamlphp" + ], + "time": "2019-12-03T08:28:45+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-sanitycheck", + "version": "v0.9.1", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-sanitycheck.git", + "reference": "15d6664eae73a233c3c4c72fd8a5c2be72b6ed2a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-sanitycheck/zipball/15d6664eae73a233c3c4c72fd8a5c2be72b6ed2a", + "reference": "15d6664eae73a233c3c4c72fd8a5c2be72b6ed2a", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\sanitycheck\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + } + ], + "description": "Perform sanity checks on configuration", + "keywords": [ + "sanitycheck", + "simplesamlphp" + ], + "time": "2020-05-07T11:34:29+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-smartattributes", + "version": "v0.9.1", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-smartattributes.git", + "reference": "b45d3ecd916e359a9cae05f9ae9df09b5c42f4e6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-smartattributes/zipball/b45d3ecd916e359a9cae05f9ae9df09b5c42f4e6", + "reference": "b45d3ecd916e359a9cae05f9ae9df09b5c42f4e6", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\smartattributes\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + } + ], + "description": "The SmartAttributes module provides additional authentication processing filters to manipulate attributes.", + "keywords": [ + "simplesamlphp", + "smartattributes" + ], + "time": "2019-12-03T09:24:09+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-sqlauth", + "version": "v0.9.1", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-sqlauth.git", + "reference": "31bce8763ad97f4b4473e4ad4a5a96ddc136ef6b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-sqlauth/zipball/31bce8763ad97f4b4473e4ad4a5a96ddc136ef6b", + "reference": "31bce8763ad97f4b4473e4ad4a5a96ddc136ef6b", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17", + "webmozart/assert": "^1.4" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\sqlauth\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + } + ], + "description": "This is a authentication module for authenticating a user against a SQL database", + "keywords": [ + "simplesamlphp", + "sqlauth" + ], + "time": "2019-12-03T09:07:09+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-statistics", + "version": "v0.9.4", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-statistics.git", + "reference": "1bb1e46921d8dc84707bc9cd3c307c8abd723ac7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-statistics/zipball/1bb1e46921d8dc84707bc9cd3c307c8abd723ac7", + "reference": "1bb1e46921d8dc84707bc9cd3c307c8abd723ac7", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "webmozart/assert": "^1.4" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.12" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\statistics\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + } + ], + "description": "The SimpleSAMLphp statistics module", + "keywords": [ + "simplesamlphp", + "statistics" + ], + "time": "2019-12-03T08:42:27+00:00" + }, + { + "name": "simplesamlphp/twig-configurable-i18n", + "version": "v2.2", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/twig-configurable-i18n.git", + "reference": "b036c134157ce40ed66da2fc9d01f63e3b1d3abd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/twig-configurable-i18n/zipball/b036c134157ce40ed66da2fc9d01f63e3b1d3abd", + "reference": "b036c134157ce40ed66da2fc9d01f63e3b1d3abd", + "shasum": "" + }, + "require": { + "twig/extensions": "^1.5" + }, + "require-dev": { + "phpunit/phpunit": "~4.8.36 || ~7.5", + "twig/twig": "^1.37 || ^2.7" + }, + "type": "project", + "autoload": { + "psr-4": { + "SimpleSAML\\TwigConfigurableI18n\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1" + ], + "authors": [ + { + "name": "Jaime Perez", + "email": "jaime.perez@uninett.no" + } + ], + "description": "This is an extension on top of Twig's i18n extension, allowing you to customize which functions to use for translations.", + "keywords": [ + "extension", + "gettext", + "i18n", + "internationalization", + "translation", + "twig" + ], + "time": "2019-07-09T08:35:44+00:00" + }, + { + "name": "stack/builder", + "version": "v1.0.5", + "source": { + "type": "git", + "url": "https://github.com/stackphp/builder.git", + "reference": "fb3d136d04c6be41120ebf8c0cc71fe9507d750a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/stackphp/builder/zipball/fb3d136d04c6be41120ebf8c0cc71fe9507d750a", + "reference": "fb3d136d04c6be41120ebf8c0cc71fe9507d750a", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "symfony/http-foundation": "~2.1|~3.0|~4.0", + "symfony/http-kernel": "~2.1|~3.0|~4.0" + }, + "require-dev": { + "silex/silex": "~1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-0": { + "Stack": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + } + ], + "description": "Builder for stack middlewares based on HttpKernelInterface.", + "keywords": [ + "stack" + ], + "time": "2017-11-18T14:57:29+00:00" + }, + { + "name": "stecman/symfony-console-completion", + "version": "0.8.0", + "source": { + "type": "git", + "url": "https://github.com/stecman/symfony-console-completion.git", + "reference": "cd738867503477e91dbe84173dfabd431c883431" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/stecman/symfony-console-completion/zipball/cd738867503477e91dbe84173dfabd431c883431", + "reference": "cd738867503477e91dbe84173dfabd431c883431", + "shasum": "" + }, + "require": { + "php": ">=5.3.2", + "symfony/console": "~2.3 || ~3.0 || ~4.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.8.36 || ~5.7 || ~6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.6.x-dev" + } + }, + "autoload": { + "psr-4": { + "Stecman\\Component\\Symfony\\Console\\BashCompletion\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Stephen Holdaway", + "email": "stephen@stecman.co.nz" + } + ], + "description": "Automatic BASH completion for Symfony Console Component based applications.", + "time": "2018-02-10T04:28:01+00:00" + }, + { + "name": "symfony-cmf/routing", + "version": "1.4.1", + "source": { + "type": "git", + "url": "https://github.com/symfony-cmf/routing.git", + "reference": "fb1e7f85ff8c6866238b7e73a490a0a0243ae8ac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony-cmf/routing/zipball/fb1e7f85ff8c6866238b7e73a490a0a0243ae8ac", + "reference": "fb1e7f85ff8c6866238b7e73a490a0a0243ae8ac", + "shasum": "" + }, + "require": { + "php": "^5.3.9|^7.0", + "psr/log": "1.*", + "symfony/http-kernel": "^2.2|3.*", + "symfony/routing": "^2.2|3.*" + }, + "require-dev": { + "friendsofsymfony/jsrouting-bundle": "^1.1", + "symfony-cmf/testing": "^1.3", + "symfony/config": "^2.2|3.*", + "symfony/dependency-injection": "^2.0.5|3.*", + "symfony/event-dispatcher": "^2.1|3.*" + }, + "suggest": { + "symfony/event-dispatcher": "DynamicRouter can optionally trigger an event at the start of matching. Minimal version (~2.1)" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Cmf\\Component\\Routing\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony CMF Community", + "homepage": "https://github.com/symfony-cmf/Routing/contributors" + } + ], + "description": "Extends the Symfony2 routing component for dynamic routes and chaining several routers", + "homepage": "http://cmf.symfony.com", + "keywords": [ + "database", + "routing" + ], + "time": "2017-05-09T08:10:41+00:00" + }, + { + "name": "symfony/class-loader", + "version": "v3.4.41", + "source": { + "type": "git", + "url": "https://github.com/symfony/class-loader.git", + "reference": "e4636a4f23f157278a19e5db160c63de0da297d8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/class-loader/zipball/e4636a4f23f157278a19e5db160c63de0da297d8", + "reference": "e4636a4f23f157278a19e5db160c63de0da297d8", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "require-dev": { + "symfony/finder": "~2.8|~3.0|~4.0", "symfony/polyfill-apcu": "~1.1" }, "suggest": { @@ -11501,16 +13017,16 @@ }, { "name": "symfony/config", - "version": "v3.4.14", + "version": "v3.4.42", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "7b08223b7f6abd859651c56bcabf900d1627d085" + "reference": "cd61db31cbd19cbe4ba9f6968f13c9076e1372ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/7b08223b7f6abd859651c56bcabf900d1627d085", - "reference": "7b08223b7f6abd859651c56bcabf900d1627d085", + "url": "https://api.github.com/repos/symfony/config/zipball/cd61db31cbd19cbe4ba9f6968f13c9076e1372ab", + "reference": "cd61db31cbd19cbe4ba9f6968f13c9076e1372ab", "shasum": "" }, "require": { @@ -11561,7 +13077,7 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2018-07-26T11:19:56+00:00" + "time": "2020-05-22T10:56:48+00:00" }, { "name": "symfony/console", @@ -11937,16 +13453,16 @@ }, { "name": "symfony/filesystem", - "version": "v3.4.14", + "version": "v3.4.42", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "a59f917e3c5d82332514cb4538387638f5bde2d6" + "reference": "0f625d0cb1e59c8c4ba61abb170125175218ff10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/a59f917e3c5d82332514cb4538387638f5bde2d6", - "reference": "a59f917e3c5d82332514cb4538387638f5bde2d6", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/0f625d0cb1e59c8c4ba61abb170125175218ff10", + "reference": "0f625d0cb1e59c8c4ba61abb170125175218ff10", "shasum": "" }, "require": { @@ -11983,7 +13499,7 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2018-07-26T11:19:56+00:00" + "time": "2020-05-30T17:48:24+00:00" }, { "name": "symfony/finder", @@ -13397,32 +14913,30 @@ }, { "name": "webmozart/assert", - "version": "1.4.0", + "version": "1.9.1", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9" + "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9", - "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9", + "url": "https://api.github.com/repos/webmozart/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", + "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0", + "php": "^5.3.3 || ^7.0 || ^8.0", "symfony/polyfill-ctype": "^1.8" }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<3.9.1" + }, "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" + "phpunit/phpunit": "^4.8.36 || ^7.5.13" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, "autoload": { "psr-4": { "Webmozart\\Assert\\": "src/" @@ -13444,7 +14958,7 @@ "check", "validate" ], - "time": "2018-12-25T11:19:39+00:00" + "time": "2020-07-08T17:02:28+00:00" }, { "name": "webmozart/path-util", diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 715ab9ec38437422e9df6a6f5927093d114c58f0..239cf17174bfd5736f6cf2efede4207c5a669e3e 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -90,6 +90,124 @@ 'Asm89\\Stack\\Cors' => $vendorDir . '/asm89/stack-cors/src/Asm89/Stack/Cors.php', 'Asm89\\Stack\\CorsService' => $vendorDir . '/asm89/stack-cors/src/Asm89/Stack/CorsService.php', 'AssertionError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/AssertionError.php', + 'Basho\\Riak' => $vendorDir . '/phpfastcache/riak-client/src/Riak.php', + 'Basho\\Riak\\Api' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Api.php', + 'Basho\\Riak\\ApiInterface' => $vendorDir . '/phpfastcache/riak-client/src/Riak/ApiInterface.php', + 'Basho\\Riak\\Api\\Exception' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Api/Exception.php', + 'Basho\\Riak\\Api\\Http' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Api/Http.php', + 'Basho\\Riak\\Api\\Http\\Translator\\ObjectResponse' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Api/Http/Translator/ObjectResponse.php', + 'Basho\\Riak\\Api\\Http\\Translator\\SecondaryIndex' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Api/Http/Translator/SecondaryIndex.php', + 'Basho\\Riak\\Bucket' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Bucket.php', + 'Basho\\Riak\\Command' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command.php', + 'Basho\\Riak\\CommandInterface' => $vendorDir . '/phpfastcache/riak-client/src/Riak/CommandInterface.php', + 'Basho\\Riak\\Command\\Bucket\\Delete' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Bucket/Delete.php', + 'Basho\\Riak\\Command\\Bucket\\Fetch' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Bucket/Fetch.php', + 'Basho\\Riak\\Command\\Bucket\\Response' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Bucket/Response.php', + 'Basho\\Riak\\Command\\Bucket\\Store' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Bucket/Store.php', + 'Basho\\Riak\\Command\\Builder' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder.php', + 'Basho\\Riak\\Command\\BuilderInterface' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/BuilderInterface.php', + 'Basho\\Riak\\Command\\Builder\\BucketTrait' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/BucketTrait.php', + 'Basho\\Riak\\Command\\Builder\\DeleteObject' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/DeleteObject.php', + 'Basho\\Riak\\Command\\Builder\\Exception' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/Exception.php', + 'Basho\\Riak\\Command\\Builder\\FetchBucketProperties' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/FetchBucketProperties.php', + 'Basho\\Riak\\Command\\Builder\\FetchCounter' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/FetchCounter.php', + 'Basho\\Riak\\Command\\Builder\\FetchHll' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/FetchHll.php', + 'Basho\\Riak\\Command\\Builder\\FetchMap' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/FetchMap.php', + 'Basho\\Riak\\Command\\Builder\\FetchObject' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/FetchObject.php', + 'Basho\\Riak\\Command\\Builder\\FetchPreflist' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/FetchPreflist.php', + 'Basho\\Riak\\Command\\Builder\\FetchSet' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/FetchSet.php', + 'Basho\\Riak\\Command\\Builder\\FetchStats' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/FetchStats.php', + 'Basho\\Riak\\Command\\Builder\\IncrementCounter' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/IncrementCounter.php', + 'Basho\\Riak\\Command\\Builder\\IndexTrait' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/IndexTrait.php', + 'Basho\\Riak\\Command\\Builder\\ListObjects' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/ListObjects.php', + 'Basho\\Riak\\Command\\Builder\\LocationTrait' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/LocationTrait.php', + 'Basho\\Riak\\Command\\Builder\\MapReduce\\FetchObjects' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/MapReduce/FetchObjects.php', + 'Basho\\Riak\\Command\\Builder\\ObjectTrait' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/ObjectTrait.php', + 'Basho\\Riak\\Command\\Builder\\Ping' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/Ping.php', + 'Basho\\Riak\\Command\\Builder\\QueryIndex' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/QueryIndex.php', + 'Basho\\Riak\\Command\\Builder\\Search\\AssociateIndex' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/Search/AssociateIndex.php', + 'Basho\\Riak\\Command\\Builder\\Search\\DeleteIndex' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/Search/DeleteIndex.php', + 'Basho\\Riak\\Command\\Builder\\Search\\DissociateIndex' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/Search/DissociateIndex.php', + 'Basho\\Riak\\Command\\Builder\\Search\\FetchIndex' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/Search/FetchIndex.php', + 'Basho\\Riak\\Command\\Builder\\Search\\FetchObjects' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/Search/FetchObjects.php', + 'Basho\\Riak\\Command\\Builder\\Search\\FetchSchema' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/Search/FetchSchema.php', + 'Basho\\Riak\\Command\\Builder\\Search\\StoreIndex' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/Search/StoreIndex.php', + 'Basho\\Riak\\Command\\Builder\\Search\\StoreSchema' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/Search/StoreSchema.php', + 'Basho\\Riak\\Command\\Builder\\SetBucketProperties' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/SetBucketProperties.php', + 'Basho\\Riak\\Command\\Builder\\StoreObject' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/StoreObject.php', + 'Basho\\Riak\\Command\\Builder\\TimeSeries\\DeleteRow' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/DeleteRow.php', + 'Basho\\Riak\\Command\\Builder\\TimeSeries\\DescribeTable' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/DescribeTable.php', + 'Basho\\Riak\\Command\\Builder\\TimeSeries\\FetchRow' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/FetchRow.php', + 'Basho\\Riak\\Command\\Builder\\TimeSeries\\KeyTrait' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/KeyTrait.php', + 'Basho\\Riak\\Command\\Builder\\TimeSeries\\Query' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/Query.php', + 'Basho\\Riak\\Command\\Builder\\TimeSeries\\RowsTrait' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/RowsTrait.php', + 'Basho\\Riak\\Command\\Builder\\TimeSeries\\StoreRows' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/StoreRows.php', + 'Basho\\Riak\\Command\\Builder\\TimeSeries\\TableTrait' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/TableTrait.php', + 'Basho\\Riak\\Command\\Builder\\UpdateGSet' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/UpdateGSet.php', + 'Basho\\Riak\\Command\\Builder\\UpdateHll' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/UpdateHll.php', + 'Basho\\Riak\\Command\\Builder\\UpdateMap' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/UpdateMap.php', + 'Basho\\Riak\\Command\\Builder\\UpdateSet' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Builder/UpdateSet.php', + 'Basho\\Riak\\Command\\DataType\\Counter\\Fetch' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/DataType/Counter/Fetch.php', + 'Basho\\Riak\\Command\\DataType\\Counter\\Response' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/DataType/Counter/Response.php', + 'Basho\\Riak\\Command\\DataType\\Counter\\Store' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/DataType/Counter/Store.php', + 'Basho\\Riak\\Command\\DataType\\GSet\\Store' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/DataType/GSet/Store.php', + 'Basho\\Riak\\Command\\DataType\\Hll\\Fetch' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/DataType/Hll/Fetch.php', + 'Basho\\Riak\\Command\\DataType\\Hll\\Response' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/DataType/Hll/Response.php', + 'Basho\\Riak\\Command\\DataType\\Hll\\Store' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/DataType/Hll/Store.php', + 'Basho\\Riak\\Command\\DataType\\Map\\Fetch' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/DataType/Map/Fetch.php', + 'Basho\\Riak\\Command\\DataType\\Map\\Response' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/DataType/Map/Response.php', + 'Basho\\Riak\\Command\\DataType\\Map\\Store' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/DataType/Map/Store.php', + 'Basho\\Riak\\Command\\DataType\\Set\\Fetch' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/DataType/Set/Fetch.php', + 'Basho\\Riak\\Command\\DataType\\Set\\Response' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/DataType/Set/Response.php', + 'Basho\\Riak\\Command\\DataType\\Set\\Store' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/DataType/Set/Store.php', + 'Basho\\Riak\\Command\\Exception' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Exception.php', + 'Basho\\Riak\\Command\\Indexes\\Query' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Indexes/Query.php', + 'Basho\\Riak\\Command\\Indexes\\Response' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Indexes/Response.php', + 'Basho\\Riak\\Command\\KVObject' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/KVObject.php', + 'Basho\\Riak\\Command\\KVObject\\Delete' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/KVObject/Delete.php', + 'Basho\\Riak\\Command\\KVObject\\Fetch' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/KVObject/Fetch.php', + 'Basho\\Riak\\Command\\KVObject\\FetchPreflist' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/KVObject/FetchPreflist.php', + 'Basho\\Riak\\Command\\KVObject\\Keys\\Fetch' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/KVObject/Keys/Fetch.php', + 'Basho\\Riak\\Command\\KVObject\\Keys\\Response' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/KVObject/Keys/Response.php', + 'Basho\\Riak\\Command\\KVObject\\Response' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/KVObject/Response.php', + 'Basho\\Riak\\Command\\KVObject\\Store' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/KVObject/Store.php', + 'Basho\\Riak\\Command\\MapReduce\\Fetch' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/MapReduce/Fetch.php', + 'Basho\\Riak\\Command\\MapReduce\\Response' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/MapReduce/Response.php', + 'Basho\\Riak\\Command\\Ping' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Ping.php', + 'Basho\\Riak\\Command\\Response' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Response.php', + 'Basho\\Riak\\Command\\Search\\Fetch' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Search/Fetch.php', + 'Basho\\Riak\\Command\\Search\\Index\\Delete' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Search/Index/Delete.php', + 'Basho\\Riak\\Command\\Search\\Index\\Fetch' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Search/Index/Fetch.php', + 'Basho\\Riak\\Command\\Search\\Index\\Response' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Search/Index/Response.php', + 'Basho\\Riak\\Command\\Search\\Index\\Store' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Search/Index/Store.php', + 'Basho\\Riak\\Command\\Search\\Response' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Search/Response.php', + 'Basho\\Riak\\Command\\Search\\Schema\\Fetch' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Search/Schema/Fetch.php', + 'Basho\\Riak\\Command\\Search\\Schema\\Response' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Search/Schema/Response.php', + 'Basho\\Riak\\Command\\Search\\Schema\\Store' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Search/Schema/Store.php', + 'Basho\\Riak\\Command\\Stats' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Stats.php', + 'Basho\\Riak\\Command\\Stats\\Response' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/Stats/Response.php', + 'Basho\\Riak\\Command\\TimeSeries\\Delete' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Delete.php', + 'Basho\\Riak\\Command\\TimeSeries\\Fetch' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Fetch.php', + 'Basho\\Riak\\Command\\TimeSeries\\Query\\Fetch' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Query/Fetch.php', + 'Basho\\Riak\\Command\\TimeSeries\\Query\\Response' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Query/Response.php', + 'Basho\\Riak\\Command\\TimeSeries\\Response' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Response.php', + 'Basho\\Riak\\Command\\TimeSeries\\Store' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Store.php', + 'Basho\\Riak\\DataObject' => $vendorDir . '/phpfastcache/riak-client/src/Riak/DataObject.php', + 'Basho\\Riak\\DataType' => $vendorDir . '/phpfastcache/riak-client/src/Riak/DataType.php', + 'Basho\\Riak\\DataType\\Counter' => $vendorDir . '/phpfastcache/riak-client/src/Riak/DataType/Counter.php', + 'Basho\\Riak\\DataType\\Exception' => $vendorDir . '/phpfastcache/riak-client/src/Riak/DataType/Exception.php', + 'Basho\\Riak\\DataType\\Hll' => $vendorDir . '/phpfastcache/riak-client/src/Riak/DataType/Hll.php', + 'Basho\\Riak\\DataType\\Map' => $vendorDir . '/phpfastcache/riak-client/src/Riak/DataType/Map.php', + 'Basho\\Riak\\DataType\\Set' => $vendorDir . '/phpfastcache/riak-client/src/Riak/DataType/Set.php', + 'Basho\\Riak\\Exception' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Exception.php', + 'Basho\\Riak\\HeadersTrait' => $vendorDir . '/phpfastcache/riak-client/src/Riak/HeadersTrait.php', + 'Basho\\Riak\\Location' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Location.php', + 'Basho\\Riak\\Node' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Node.php', + 'Basho\\Riak\\Node\\Builder' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Node/Builder.php', + 'Basho\\Riak\\Node\\Builder\\Exception' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Node/Builder/Exception.php', + 'Basho\\Riak\\Node\\Config' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Node/Config.php', + 'Basho\\Riak\\Search\\Doc' => $vendorDir . '/phpfastcache/riak-client/src/Riak/Search/Doc.php', + 'Basho\\Riak\\TimeSeries\\Cell' => $vendorDir . '/phpfastcache/riak-client/src/Riak/TimeSeries/Cell.php', 'CommerceGuys\\Addressing\\AbstractEnum' => $vendorDir . '/commerceguys/addressing/src/AbstractEnum.php', 'CommerceGuys\\Addressing\\Address' => $vendorDir . '/commerceguys/addressing/src/Address.php', 'CommerceGuys\\Addressing\\AddressFormat\\AddressField' => $vendorDir . '/commerceguys/addressing/src/AddressFormat/AddressField.php', @@ -3254,10 +3372,6 @@ 'Interop\\Container\\ContainerInterface' => $vendorDir . '/container-interop/container-interop/src/Interop/Container/ContainerInterface.php', 'Interop\\Container\\Exception\\ContainerException' => $vendorDir . '/container-interop/container-interop/src/Interop/Container/Exception/ContainerException.php', 'Interop\\Container\\Exception\\NotFoundException' => $vendorDir . '/container-interop/container-interop/src/Interop/Container/Exception/NotFoundException.php', - 'JaimePerez\\TwigConfigurableI18n\\Twig\\Environment' => $vendorDir . '/jaimeperez/twig-configurable-i18n/src/Twig/Environment.php', - 'JaimePerez\\TwigConfigurableI18n\\Twig\\Extensions\\Extension\\I18n' => $vendorDir . '/jaimeperez/twig-configurable-i18n/src/Twig/Extensions/Extension/I18n.php', - 'JaimePerez\\TwigConfigurableI18n\\Twig\\Extensions\\Node\\Trans' => $vendorDir . '/jaimeperez/twig-configurable-i18n/src/Twig/Extensions/Node/Trans.php', - 'JaimePerez\\TwigConfigurableI18n\\Twig\\Extensions\\TokenParser\\Trans' => $vendorDir . '/jaimeperez/twig-configurable-i18n/src/Twig/Extensions/TokenParser/Trans.php', 'JakubOnderka\\PhpConsoleColor\\ConsoleColor' => $vendorDir . '/jakub-onderka/php-console-color/src/ConsoleColor.php', 'JakubOnderka\\PhpConsoleColor\\InvalidStyleException' => $vendorDir . '/jakub-onderka/php-console-color/src/InvalidStyleException.php', 'JakubOnderka\\PhpConsoleHighlighter\\Highlighter' => $vendorDir . '/jakub-onderka/php-console-highlighter/src/Highlighter.php', @@ -3524,6 +3638,11 @@ 'PEAR_Error' => $vendorDir . '/pear/pear-core-minimal/src/PEAR.php', 'PEAR_ErrorStack' => $vendorDir . '/pear/pear-core-minimal/src/PEAR/ErrorStack.php', 'PEAR_Exception' => $vendorDir . '/pear/pear_exception/PEAR/Exception.php', + 'PHPMailer\\PHPMailer\\Exception' => $vendorDir . '/phpmailer/phpmailer/src/Exception.php', + 'PHPMailer\\PHPMailer\\OAuth' => $vendorDir . '/phpmailer/phpmailer/src/OAuth.php', + 'PHPMailer\\PHPMailer\\PHPMailer' => $vendorDir . '/phpmailer/phpmailer/src/PHPMailer.php', + 'PHPMailer\\PHPMailer\\POP3' => $vendorDir . '/phpmailer/phpmailer/src/POP3.php', + 'PHPMailer\\PHPMailer\\SMTP' => $vendorDir . '/phpmailer/phpmailer/src/SMTP.php', 'PantheonSystems\\CDNBehatHelpers\\AgeTracker' => $baseDir . '/web/modules/pantheon_advanced_page_cache/tests/behat/helper_classes/AgeTracker.php', 'PantheonSystems\\CDNBehatHelpers\\Contexts\\FeatureContext' => $baseDir . '/web/modules/pantheon_advanced_page_cache/tests/behat/helper_classes/Contexts/FeatureContext.php', 'PantheonSystems\\CDNBehatHelpers\\tests\\AgeTrackerTest' => $baseDir . '/web/modules/pantheon_advanced_page_cache/tests/behat/helper_classes/tests/AgeTrackerTest.php', @@ -4115,9 +4234,6 @@ 'SAML2\\Certificate\\Exception\\InvalidCertificateStructureException' => $vendorDir . '/simplesamlphp/saml2/src/SAML2/Certificate/Exception/InvalidCertificateStructureException.php', 'SAML2\\Certificate\\Exception\\InvalidKeyUsageException' => $vendorDir . '/simplesamlphp/saml2/src/SAML2/Certificate/Exception/InvalidKeyUsageException.php', 'SAML2\\Certificate\\Exception\\NoKeysFoundException' => $vendorDir . '/simplesamlphp/saml2/src/SAML2/Certificate/Exception/NoKeysFoundException.php', - 'SAML2\\Certificate\\Fingerprint' => $vendorDir . '/simplesamlphp/saml2/src/SAML2/Certificate/Fingerprint.php', - 'SAML2\\Certificate\\FingerprintCollection' => $vendorDir . '/simplesamlphp/saml2/src/SAML2/Certificate/FingerprintCollection.php', - 'SAML2\\Certificate\\FingerprintLoader' => $vendorDir . '/simplesamlphp/saml2/src/SAML2/Certificate/FingerprintLoader.php', 'SAML2\\Certificate\\Key' => $vendorDir . '/simplesamlphp/saml2/src/SAML2/Certificate/Key.php', 'SAML2\\Certificate\\KeyCollection' => $vendorDir . '/simplesamlphp/saml2/src/SAML2/Certificate/KeyCollection.php', 'SAML2\\Certificate\\KeyLoader' => $vendorDir . '/simplesamlphp/saml2/src/SAML2/Certificate/KeyLoader.php', @@ -4173,7 +4289,6 @@ 'SAML2\\SOAPClient' => $vendorDir . '/simplesamlphp/saml2/src/SAML2/SOAPClient.php', 'SAML2\\Signature\\AbstractChainedValidator' => $vendorDir . '/simplesamlphp/saml2/src/SAML2/Signature/AbstractChainedValidator.php', 'SAML2\\Signature\\ChainedValidator' => $vendorDir . '/simplesamlphp/saml2/src/SAML2/Signature/ChainedValidator.php', - 'SAML2\\Signature\\FingerprintValidator' => $vendorDir . '/simplesamlphp/saml2/src/SAML2/Signature/FingerprintValidator.php', 'SAML2\\Signature\\MissingConfigurationException' => $vendorDir . '/simplesamlphp/saml2/src/SAML2/Signature/MissingConfigurationException.php', 'SAML2\\Signature\\PublicKeyValidator' => $vendorDir . '/simplesamlphp/saml2/src/SAML2/Signature/PublicKeyValidator.php', 'SAML2\\Signature\\Validator' => $vendorDir . '/simplesamlphp/saml2/src/SAML2/Signature/Validator.php', @@ -4239,10 +4354,8 @@ 'SAML2\\XML\\shibmd\\Scope' => $vendorDir . '/simplesamlphp/saml2/src/SAML2/XML/shibmd/Scope.php', 'SelfUpdate\\SelfUpdateCommand' => $vendorDir . '/consolidation/self-update/src/SelfUpdateCommand.php', 'SessionUpdateTimestampHandlerInterface' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/SessionUpdateTimestampHandlerInterface.php', - 'SimpleSAML\\AuthMemCookie' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/AuthMemCookie.php', 'SimpleSAML\\Auth\\AuthenticationFactory' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/AuthenticationFactory.php', - 'SimpleSAML\\Auth\\DefaultAuth' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/Default.php', - 'SimpleSAML\\Auth\\LDAP' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/LDAP.php', + 'SimpleSAML\\Auth\\DefaultAuth' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/DefaultAuth.php', 'SimpleSAML\\Auth\\ProcessingChain' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/ProcessingChain.php', 'SimpleSAML\\Auth\\ProcessingFilter' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/ProcessingFilter.php', 'SimpleSAML\\Auth\\Simple' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/Simple.php', @@ -4302,6 +4415,62 @@ 'SimpleSAML\\Metadata\\Sources\\MDQ' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/Sources/MDQ.php', 'SimpleSAML\\Module' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Module.php', 'SimpleSAML\\Module\\ControllerResolver' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Module/ControllerResolver.php', + 'SimpleSAML\\Module\\adfs\\AdfsController' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/adfs/lib/AdfsController.php', + 'SimpleSAML\\Module\\adfs\\IdP\\ADFS' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/adfs/lib/IdP/ADFS.php', + 'SimpleSAML\\Module\\adfs\\SAML2\\XML\\fed\\Constants' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/adfs/lib/SAML2/XML/fed/Constants.php', + 'SimpleSAML\\Module\\adfs\\SAML2\\XML\\fed\\Endpoint' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/adfs/lib/SAML2/XML/fed/Endpoint.php', + 'SimpleSAML\\Module\\adfs\\SAML2\\XML\\fed\\SecurityTokenServiceType' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/adfs/lib/SAML2/XML/fed/SecurityTokenServiceType.php', + 'SimpleSAML\\Module\\adfs\\SAML2\\XML\\fed\\TokenTypesOffered' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/adfs/lib/SAML2/XML/fed/TokenTypesOffered.php', + 'SimpleSAML\\Module\\authX509\\Auth\\Process\\ExpiryWarning' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/authX509/lib/Auth/Process/ExpiryWarning.php', + 'SimpleSAML\\Module\\authX509\\Auth\\Source\\X509userCert' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/authX509/lib/Auth/Source/X509userCert.php', + 'SimpleSAML\\Module\\authX509\\Controller\\ExpiryWarning' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/authX509/lib/Controller/ExpiryWarning.php', + 'SimpleSAML\\Module\\authcrypt\\Auth\\Source\\Hash' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/authcrypt/lib/Auth/Source/Hash.php', + 'SimpleSAML\\Module\\authcrypt\\Auth\\Source\\Htpasswd' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/authcrypt/lib/Auth/Source/Htpasswd.php', + 'SimpleSAML\\Module\\authfacebook\\Auth\\Source\\Facebook' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/authfacebook/lib/Auth/Source/Facebook.php', + 'SimpleSAML\\Module\\authfacebook\\Facebook' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/authfacebook/lib/Facebook.php', + 'SimpleSAML\\Module\\authorize\\Auth\\Process\\Authorize' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/authorize/lib/Auth/Process/Authorize.php', + 'SimpleSAML\\Module\\authtwitter\\Auth\\Source\\Twitter' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/authtwitter/lib/Auth/Source/Twitter.php', + 'SimpleSAML\\Module\\authwindowslive\\Auth\\Source\\LiveID' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/authwindowslive/lib/Auth/Source/LiveID.php', + 'SimpleSAML\\Module\\cas\\Auth\\Source\\CAS' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/cas/lib/Auth/Source/CAS.php', + 'SimpleSAML\\Module\\cdc\\Client' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/cdc/lib/Client.php', + 'SimpleSAML\\Module\\cdc\\Server' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/cdc/lib/Server.php', + 'SimpleSAML\\Module\\consent\\Auth\\Process\\Consent' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/consent/lib/Auth/Process/Consent.php', + 'SimpleSAML\\Module\\consent\\Consent\\Store\\Cookie' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/consent/lib/Consent/Store/Cookie.php', + 'SimpleSAML\\Module\\consent\\Consent\\Store\\Database' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/consent/lib/Consent/Store/Database.php', + 'SimpleSAML\\Module\\consent\\Logout' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/consent/lib/Logout.php', + 'SimpleSAML\\Module\\consent\\Store' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/consent/lib/Store.php', + 'SimpleSAML\\Module\\expirycheck\\Auth\\Process\\ExpiryDate' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/expirycheck/lib/Auth/Process/ExpiryDate.php', + 'SimpleSAML\\Module\\ldap\\Auth\\Ldap' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Ldap.php', + 'SimpleSAML\\Module\\ldap\\Auth\\Process\\AttributeAddFromLDAP' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Process/AttributeAddFromLDAP.php', + 'SimpleSAML\\Module\\ldap\\Auth\\Process\\AttributeAddUsersGroups' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Process/AttributeAddUsersGroups.php', + 'SimpleSAML\\Module\\ldap\\Auth\\Process\\BaseFilter' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Process/BaseFilter.php', + 'SimpleSAML\\Module\\ldap\\Auth\\Source\\LDAP' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Source/LDAP.php', + 'SimpleSAML\\Module\\ldap\\Auth\\Source\\LDAPMulti' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Source/LDAPMulti.php', + 'SimpleSAML\\Module\\ldap\\ConfigHelper' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/ldap/lib/ConfigHelper.php', + 'SimpleSAML\\Module\\metarefresh\\ARP' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/metarefresh/lib/ARP.php', + 'SimpleSAML\\Module\\metarefresh\\MetaLoader' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/metarefresh/lib/MetaLoader.php', + 'SimpleSAML\\Module\\negotiate\\Auth\\Source\\Negotiate' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/negotiate/lib/Auth/Source/Negotiate.php', + 'SimpleSAML\\Module\\preprodwarning\\Auth\\Process\\Warning' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/preprodwarning/lib/Auth/Process/Warning.php', + 'SimpleSAML\\Module\\radius\\Auth\\Source\\Radius' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/radius/lib/Auth/Source/Radius.php', + 'SimpleSAML\\Module\\riak\\Store\\Riak' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/riak/lib/Store/Riak.php', + 'SimpleSAML\\Module\\smartattributes\\Auth\\Process\\SmartID' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/smartattributes/lib/Auth/Process/SmartID.php', + 'SimpleSAML\\Module\\smartattributes\\Auth\\Process\\SmartName' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/smartattributes/lib/Auth/Process/SmartName.php', + 'SimpleSAML\\Module\\sqlauth\\Auth\\Source\\SQL' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/sqlauth/lib/Auth/Source/SQL.php', + 'SimpleSAML\\Module\\statistics\\AccessCheck' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/statistics/lib/AccessCheck.php', + 'SimpleSAML\\Module\\statistics\\Aggregator' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/statistics/lib/Aggregator.php', + 'SimpleSAML\\Module\\statistics\\DateHandler' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/statistics/lib/DateHandler.php', + 'SimpleSAML\\Module\\statistics\\DateHandlerMonth' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/statistics/lib/DateHandlerMonth.php', + 'SimpleSAML\\Module\\statistics\\Graph\\GoogleCharts' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/statistics/lib/Graph/GoogleCharts.php', + 'SimpleSAML\\Module\\statistics\\LogCleaner' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/statistics/lib/LogCleaner.php', + 'SimpleSAML\\Module\\statistics\\LogParser' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/statistics/lib/LogParser.php', + 'SimpleSAML\\Module\\statistics\\RatioDataset' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/statistics/lib/RatioDataset.php', + 'SimpleSAML\\Module\\statistics\\Ruleset' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/statistics/lib/Ruleset.php', + 'SimpleSAML\\Module\\statistics\\StatDataset' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/statistics/lib/StatDataset.php', + 'SimpleSAML\\Module\\statistics\\StatisticsController' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/statistics/lib/StatisticsController.php', + 'SimpleSAML\\Module\\statistics\\Statistics\\FieldPresentation\\Base' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/statistics/lib/Statistics/FieldPresentation/Base.php', + 'SimpleSAML\\Module\\statistics\\Statistics\\FieldPresentation\\Entity' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/statistics/lib/Statistics/FieldPresentation/Entity.php', + 'SimpleSAML\\Module\\statistics\\Statistics\\Rulesets\\BaseRule' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/statistics/lib/Statistics/Rulesets/BaseRule.php', + 'SimpleSAML\\Module\\statistics\\Statistics\\Rulesets\\Ratio' => $vendorDir . '/simplesamlphp/simplesamlphp/modules/statistics/lib/Statistics/Rulesets/Ratio.php', 'SimpleSAML\\Session' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Session.php', 'SimpleSAML\\SessionHandler' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/SessionHandler.php', 'SimpleSAML\\SessionHandlerCookie' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/SessionHandlerCookie.php', @@ -4313,6 +4482,10 @@ 'SimpleSAML\\Store\\Memcache' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Store/Memcache.php', 'SimpleSAML\\Store\\Redis' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Store/Redis.php', 'SimpleSAML\\Store\\SQL' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Store/SQL.php', + 'SimpleSAML\\TwigConfigurableI18n\\Twig\\Environment' => $vendorDir . '/simplesamlphp/twig-configurable-i18n/src/Twig/Environment.php', + 'SimpleSAML\\TwigConfigurableI18n\\Twig\\Extensions\\Extension\\I18n' => $vendorDir . '/simplesamlphp/twig-configurable-i18n/src/Twig/Extensions/Extension/I18n.php', + 'SimpleSAML\\TwigConfigurableI18n\\Twig\\Extensions\\Node\\Trans' => $vendorDir . '/simplesamlphp/twig-configurable-i18n/src/Twig/Extensions/Node/Trans.php', + 'SimpleSAML\\TwigConfigurableI18n\\Twig\\Extensions\\TokenParser\\Trans' => $vendorDir . '/simplesamlphp/twig-configurable-i18n/src/Twig/Extensions/TokenParser/Trans.php', 'SimpleSAML\\Utilities' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utilities.php', 'SimpleSAML\\Utils\\Arrays' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Arrays.php', 'SimpleSAML\\Utils\\Attributes' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Attributes.php', @@ -4321,6 +4494,7 @@ 'SimpleSAML\\Utils\\Config' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Config.php', 'SimpleSAML\\Utils\\Config\\Metadata' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Config/Metadata.php', 'SimpleSAML\\Utils\\Crypto' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Crypto.php', + 'SimpleSAML\\Utils\\EMail' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/EMail.php', 'SimpleSAML\\Utils\\HTTP' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/HTTP.php', 'SimpleSAML\\Utils\\HttpAdapter' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/HttpAdapter.php', 'SimpleSAML\\Utils\\Net' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Net.php', @@ -4328,7 +4502,6 @@ 'SimpleSAML\\Utils\\System' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/System.php', 'SimpleSAML\\Utils\\Time' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Time.php', 'SimpleSAML\\Utils\\XML' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/XML.php', - 'SimpleSAML\\XHTML\\EMail' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/EMail.php', 'SimpleSAML\\XHTML\\IdPDisco' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/IdPDisco.php', 'SimpleSAML\\XHTML\\Template' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/Template.php', 'SimpleSAML\\XHTML\\TemplateControllerInterface' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/TemplateControllerInterface.php', @@ -4339,6 +4512,8 @@ 'SimpleSAML\\XML\\Shib13\\AuthnResponse' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Shib13/AuthnResponse.php', 'SimpleSAML\\XML\\Signer' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Signer.php', 'SimpleSAML\\XML\\Validator' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Validator.php', + 'SimpleSamlPhp\\Composer\\ModuleInstaller' => $vendorDir . '/simplesamlphp/composer-module-installer/src/SimpleSamlPhp/Composer/ModuleInstaller.php', + 'SimpleSamlPhp\\Composer\\ModuleInstallerPlugin' => $vendorDir . '/simplesamlphp/composer-module-installer/src/SimpleSamlPhp/Composer/ModuleInstallerPlugin.php', 'Stack\\Builder' => $vendorDir . '/stack/builder/src/Stack/Builder.php', 'Stack\\StackedHttpKernel' => $vendorDir . '/stack/builder/src/Stack/StackedHttpKernel.php', 'Stecman\\Component\\Symfony\\Console\\BashCompletion\\Completion' => $vendorDir . '/stecman/symfony-console-completion/src/Completion.php', @@ -5927,6 +6102,7 @@ 'TwitterAPIExchange' => $vendorDir . '/j7mbo/twitter-api-php/TwitterAPIExchange.php', 'TypeError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/TypeError.php', 'Webmozart\\Assert\\Assert' => $vendorDir . '/webmozart/assert/src/Assert.php', + 'Webmozart\\Assert\\Mixin' => $vendorDir . '/webmozart/assert/src/Mixin.php', 'Webmozart\\PathUtil\\Path' => $vendorDir . '/webmozart/path-util/src/Path.php', 'Webmozart\\PathUtil\\Url' => $vendorDir . '/webmozart/path-util/src/Url.php', 'WhiteHat101\\Crypt\\APR1_MD5' => $vendorDir . '/whitehat101/apr1-md5/src/APR1_MD5.php', diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php index 43bf56e21420279274e81834e6e5e56bae48081a..b22ca8de96339431240a0647625d1dfea7bf9141 100644 --- a/vendor/composer/autoload_files.php +++ b/vendor/composer/autoload_files.php @@ -35,9 +35,8 @@ '786bf90caabc9e09b6ad4cc5ca8f0e30' => $vendorDir . '/laminas/laminas-diactoros/src/functions/normalize_uploaded_files.legacy.php', '751a5a3f463e4be759be31748b61737c' => $vendorDir . '/laminas/laminas-diactoros/src/functions/parse_cookie_header.legacy.php', 'def43f6c87e4f8dfd0c9e1b1bab14fe8' => $vendorDir . '/symfony/polyfill-iconv/bootstrap.php', + '5abda994d126976858eb25d2546ee3c9' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/_autoload_modules.php', '801c31d8ed748cfa537fa45402288c95' => $vendorDir . '/psy/psysh/src/functions.php', '952683d815ff0a7bf322b93c0be7e4e4' => $vendorDir . '/chi-teck/drupal-code-generator/src/bootstrap.php', - '6175f5662c2e26de0149cb048cda7209' => $vendorDir . '/simplesamlphp/saml2/src/_autoload.php', '5a12a5271c58108e0aa33355e6ac54ea' => $vendorDir . '/drupal/console-core/src/functions.php', - '5abda994d126976858eb25d2546ee3c9' => $vendorDir . '/simplesamlphp/simplesamlphp/lib/_autoload_modules.php', ); diff --git a/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php index 8c5b9f67e1c87a7e2298c6b339ebf4b67b531ad8..e072df9f424847a9d02e71a2d49544cb9326af6e 100644 --- a/vendor/composer/autoload_namespaces.php +++ b/vendor/composer/autoload_namespaces.php @@ -9,7 +9,7 @@ 'Twig_Extensions_' => array($vendorDir . '/twig/extensions/lib'), 'Twig_' => array($vendorDir . '/twig/twig/lib'), 'Stack' => array($vendorDir . '/stack/builder/src'), - 'SAML2\\' => array($vendorDir . '/simplesamlphp/saml2/src'), + 'SimpleSamlPhp\\Composer' => array($vendorDir . '/simplesamlphp/composer-module-installer/src'), 'EasyRdf_' => array($vendorDir . '/easyrdf/easyrdf/lib'), 'Doctrine\\Common\\Collections\\' => array($vendorDir . '/doctrine/collections/lib'), 'Dflydev\\PlaceholderResolver' => array($vendorDir . '/dflydev/placeholder-resolver/src'), diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index d743c08493304e8521937046f78a616705af9fa7..5666cea30ca3958560a8b23b1faa808ceda1c175 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -47,8 +47,34 @@ 'Symfony\\Cmf\\Component\\Routing\\' => array($vendorDir . '/symfony-cmf/routing'), 'Symfony\\Bridge\\PsrHttpMessage\\' => array($vendorDir . '/symfony/psr-http-message-bridge'), 'Stecman\\Component\\Symfony\\Console\\BashCompletion\\' => array($vendorDir . '/stecman/symfony-console-completion/src'), + 'SimpleSAML\\modules\\yubikey\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/modules/authYubikey/lib'), + 'SimpleSAML\\modules\\discopower\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/modules/discopower/lib'), + 'SimpleSAML\\TwigConfigurableI18n\\' => array($vendorDir . '/simplesamlphp/twig-configurable-i18n/src'), + 'SimpleSAML\\Module\\statistics\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/modules/statistics/lib'), + 'SimpleSAML\\Module\\sqlauth\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/modules/sqlauth/lib'), + 'SimpleSAML\\Module\\smartattributes\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/modules/smartattributes/lib'), + 'SimpleSAML\\Module\\sanitycheck\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/modules/sanitycheck/lib'), + 'SimpleSAML\\Module\\riak\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/modules/riak/lib'), + 'SimpleSAML\\Module\\radius\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/modules/radius/lib'), + 'SimpleSAML\\Module\\preprodwarning\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/modules/preprodwarning/lib'), + 'SimpleSAML\\Module\\negotiate\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/modules/negotiate/lib'), + 'SimpleSAML\\Module\\metarefresh\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/modules/metarefresh/lib'), + 'SimpleSAML\\Module\\ldap\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/modules/ldap/lib'), + 'SimpleSAML\\Module\\expirycheck\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/modules/expirycheck/lib'), + 'SimpleSAML\\Module\\exampleattributeserver\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/modules/exampleattributeserver/lib'), + 'SimpleSAML\\Module\\consent\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/modules/consent/lib'), + 'SimpleSAML\\Module\\cdc\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/modules/cdc/lib'), + 'SimpleSAML\\Module\\cas\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/modules/cas/lib'), + 'SimpleSAML\\Module\\authwindowslive\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/modules/authwindowslive/lib'), + 'SimpleSAML\\Module\\authtwitter\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/modules/authtwitter/lib'), + 'SimpleSAML\\Module\\authorize\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/modules/authorize/lib'), + 'SimpleSAML\\Module\\authfacebook\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/modules/authfacebook/lib'), + 'SimpleSAML\\Module\\authcrypt\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/modules/authcrypt/lib'), + 'SimpleSAML\\Module\\authX509\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/modules/authX509/lib'), + 'SimpleSAML\\Module\\adfs\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/modules/adfs/lib'), 'SimpleSAML\\' => array($vendorDir . '/simplesamlphp/simplesamlphp/lib/SimpleSAML'), 'SelfUpdate\\' => array($vendorDir . '/consolidation/self-update/src'), + 'SAML2\\' => array($vendorDir . '/simplesamlphp/saml2/src/SAML2'), 'Robo\\' => array($vendorDir . '/consolidation/robo/src'), 'RobRichards\\XMLSecLibs\\' => array($vendorDir . '/robrichards/xmlseclibs/src'), 'Psy\\' => array($vendorDir . '/psy/psysh/src'), @@ -57,6 +83,7 @@ 'Psr\\Container\\' => array($vendorDir . '/psr/container/src'), 'PhpParser\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'), 'PantheonSystems\\CDNBehatHelpers\\' => array($baseDir . '/web/modules/pantheon_advanced_page_cache/tests/behat/helper_classes'), + 'PHPMailer\\PHPMailer\\' => array($vendorDir . '/phpmailer/phpmailer/src'), 'OomphInc\\ComposerInstallersExtender\\' => array($vendorDir . '/oomphinc/composer-installers-extender/src'), 'Masterminds\\' => array($vendorDir . '/masterminds/html5/src'), 'League\\Container\\' => array($vendorDir . '/league/container/src'), @@ -67,7 +94,6 @@ 'Laminas\\Diactoros\\' => array($vendorDir . '/laminas/laminas-diactoros/src'), 'JakubOnderka\\PhpConsoleHighlighter\\' => array($vendorDir . '/jakub-onderka/php-console-highlighter/src'), 'JakubOnderka\\PhpConsoleColor\\' => array($vendorDir . '/jakub-onderka/php-console-color/src'), - 'JaimePerez\\TwigConfigurableI18n\\' => array($vendorDir . '/jaimeperez/twig-configurable-i18n/src'), 'Interop\\Container\\' => array($vendorDir . '/container-interop/container-interop/src/Interop/Container'), 'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'), 'GuzzleHttp\\Promise\\' => array($vendorDir . '/guzzlehttp/promises/src'), @@ -104,6 +130,7 @@ 'Composer\\Installers\\' => array($vendorDir . '/composer/installers/src/Composer/Installers'), 'CommerceGuys\\Intl\\' => array($vendorDir . '/commerceguys/intl/src'), 'CommerceGuys\\Addressing\\' => array($vendorDir . '/commerceguys/addressing/src'), + 'Basho\\' => array($vendorDir . '/phpfastcache/riak-client/src'), 'Asm89\\Stack\\' => array($vendorDir . '/asm89/stack-cors/src/Asm89/Stack'), 'Alchemy\\Zippy\\' => array($vendorDir . '/alchemy/zippy/src'), ); diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index a87eed4d4ebe6e2969efac507a9847f5e44ab9be..c5e71e5c90b44081c9b46b77c2fe2d8f208fcb4a 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -36,11 +36,10 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 '786bf90caabc9e09b6ad4cc5ca8f0e30' => __DIR__ . '/..' . '/laminas/laminas-diactoros/src/functions/normalize_uploaded_files.legacy.php', '751a5a3f463e4be759be31748b61737c' => __DIR__ . '/..' . '/laminas/laminas-diactoros/src/functions/parse_cookie_header.legacy.php', 'def43f6c87e4f8dfd0c9e1b1bab14fe8' => __DIR__ . '/..' . '/symfony/polyfill-iconv/bootstrap.php', + '5abda994d126976858eb25d2546ee3c9' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/_autoload_modules.php', '801c31d8ed748cfa537fa45402288c95' => __DIR__ . '/..' . '/psy/psysh/src/functions.php', '952683d815ff0a7bf322b93c0be7e4e4' => __DIR__ . '/..' . '/chi-teck/drupal-code-generator/src/bootstrap.php', - '6175f5662c2e26de0149cb048cda7209' => __DIR__ . '/..' . '/simplesamlphp/saml2/src/_autoload.php', '5a12a5271c58108e0aa33355e6ac54ea' => __DIR__ . '/..' . '/drupal/console-core/src/functions.php', - '5abda994d126976858eb25d2546ee3c9' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/_autoload_modules.php', ); public static $prefixLengthsPsr4 = array ( @@ -108,8 +107,34 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'Symfony\\Cmf\\Component\\Routing\\' => 30, 'Symfony\\Bridge\\PsrHttpMessage\\' => 30, 'Stecman\\Component\\Symfony\\Console\\BashCompletion\\' => 49, + 'SimpleSAML\\modules\\yubikey\\' => 27, + 'SimpleSAML\\modules\\discopower\\' => 30, + 'SimpleSAML\\TwigConfigurableI18n\\' => 32, + 'SimpleSAML\\Module\\statistics\\' => 29, + 'SimpleSAML\\Module\\sqlauth\\' => 26, + 'SimpleSAML\\Module\\smartattributes\\' => 34, + 'SimpleSAML\\Module\\sanitycheck\\' => 30, + 'SimpleSAML\\Module\\riak\\' => 23, + 'SimpleSAML\\Module\\radius\\' => 25, + 'SimpleSAML\\Module\\preprodwarning\\' => 33, + 'SimpleSAML\\Module\\negotiate\\' => 28, + 'SimpleSAML\\Module\\metarefresh\\' => 30, + 'SimpleSAML\\Module\\ldap\\' => 23, + 'SimpleSAML\\Module\\expirycheck\\' => 30, + 'SimpleSAML\\Module\\exampleattributeserver\\' => 41, + 'SimpleSAML\\Module\\consent\\' => 26, + 'SimpleSAML\\Module\\cdc\\' => 22, + 'SimpleSAML\\Module\\cas\\' => 22, + 'SimpleSAML\\Module\\authwindowslive\\' => 34, + 'SimpleSAML\\Module\\authtwitter\\' => 30, + 'SimpleSAML\\Module\\authorize\\' => 28, + 'SimpleSAML\\Module\\authfacebook\\' => 31, + 'SimpleSAML\\Module\\authcrypt\\' => 28, + 'SimpleSAML\\Module\\authX509\\' => 27, + 'SimpleSAML\\Module\\adfs\\' => 23, 'SimpleSAML\\' => 11, 'SelfUpdate\\' => 11, + 'SAML2\\' => 6, ), 'R' => array ( @@ -124,6 +149,7 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'Psr\\Container\\' => 14, 'PhpParser\\' => 10, 'PantheonSystems\\CDNBehatHelpers\\' => 32, + 'PHPMailer\\PHPMailer\\' => 20, ), 'O' => array ( @@ -146,7 +172,6 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 array ( 'JakubOnderka\\PhpConsoleHighlighter\\' => 35, 'JakubOnderka\\PhpConsoleColor\\' => 29, - 'JaimePerez\\TwigConfigurableI18n\\' => 32, ), 'I' => array ( @@ -199,6 +224,10 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'CommerceGuys\\Intl\\' => 18, 'CommerceGuys\\Addressing\\' => 24, ), + 'B' => + array ( + 'Basho\\' => 6, + ), 'A' => array ( 'Asm89\\Stack\\' => 12, @@ -371,6 +400,106 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 array ( 0 => __DIR__ . '/..' . '/stecman/symfony-console-completion/src', ), + 'SimpleSAML\\modules\\yubikey\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/authYubikey/lib', + ), + 'SimpleSAML\\modules\\discopower\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/discopower/lib', + ), + 'SimpleSAML\\TwigConfigurableI18n\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/twig-configurable-i18n/src', + ), + 'SimpleSAML\\Module\\statistics\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/statistics/lib', + ), + 'SimpleSAML\\Module\\sqlauth\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/sqlauth/lib', + ), + 'SimpleSAML\\Module\\smartattributes\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/smartattributes/lib', + ), + 'SimpleSAML\\Module\\sanitycheck\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/sanitycheck/lib', + ), + 'SimpleSAML\\Module\\riak\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/riak/lib', + ), + 'SimpleSAML\\Module\\radius\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/radius/lib', + ), + 'SimpleSAML\\Module\\preprodwarning\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/preprodwarning/lib', + ), + 'SimpleSAML\\Module\\negotiate\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/negotiate/lib', + ), + 'SimpleSAML\\Module\\metarefresh\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/metarefresh/lib', + ), + 'SimpleSAML\\Module\\ldap\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/ldap/lib', + ), + 'SimpleSAML\\Module\\expirycheck\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/expirycheck/lib', + ), + 'SimpleSAML\\Module\\exampleattributeserver\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/exampleattributeserver/lib', + ), + 'SimpleSAML\\Module\\consent\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/consent/lib', + ), + 'SimpleSAML\\Module\\cdc\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/cdc/lib', + ), + 'SimpleSAML\\Module\\cas\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/cas/lib', + ), + 'SimpleSAML\\Module\\authwindowslive\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/authwindowslive/lib', + ), + 'SimpleSAML\\Module\\authtwitter\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/authtwitter/lib', + ), + 'SimpleSAML\\Module\\authorize\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/authorize/lib', + ), + 'SimpleSAML\\Module\\authfacebook\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/authfacebook/lib', + ), + 'SimpleSAML\\Module\\authcrypt\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/authcrypt/lib', + ), + 'SimpleSAML\\Module\\authX509\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/authX509/lib', + ), + 'SimpleSAML\\Module\\adfs\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/adfs/lib', + ), 'SimpleSAML\\' => array ( 0 => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML', @@ -379,6 +508,10 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 array ( 0 => __DIR__ . '/..' . '/consolidation/self-update/src', ), + 'SAML2\\' => + array ( + 0 => __DIR__ . '/..' . '/simplesamlphp/saml2/src/SAML2', + ), 'Robo\\' => array ( 0 => __DIR__ . '/..' . '/consolidation/robo/src', @@ -411,6 +544,10 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 array ( 0 => __DIR__ . '/../..' . '/web/modules/pantheon_advanced_page_cache/tests/behat/helper_classes', ), + 'PHPMailer\\PHPMailer\\' => + array ( + 0 => __DIR__ . '/..' . '/phpmailer/phpmailer/src', + ), 'OomphInc\\ComposerInstallersExtender\\' => array ( 0 => __DIR__ . '/..' . '/oomphinc/composer-installers-extender/src', @@ -451,10 +588,6 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 array ( 0 => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src', ), - 'JaimePerez\\TwigConfigurableI18n\\' => - array ( - 0 => __DIR__ . '/..' . '/jaimeperez/twig-configurable-i18n/src', - ), 'Interop\\Container\\' => array ( 0 => __DIR__ . '/..' . '/container-interop/container-interop/src/Interop/Container', @@ -599,6 +732,10 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 array ( 0 => __DIR__ . '/..' . '/commerceguys/addressing/src', ), + 'Basho\\' => + array ( + 0 => __DIR__ . '/..' . '/phpfastcache/riak-client/src', + ), 'Asm89\\Stack\\' => array ( 0 => __DIR__ . '/..' . '/asm89/stack-cors/src/Asm89/Stack', @@ -627,9 +764,9 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 array ( 0 => __DIR__ . '/..' . '/stack/builder/src', ), - 'SAML2\\' => + 'SimpleSamlPhp\\Composer' => array ( - 0 => __DIR__ . '/..' . '/simplesamlphp/saml2/src', + 0 => __DIR__ . '/..' . '/simplesamlphp/composer-module-installer/src', ), ), 'E' => @@ -767,6 +904,124 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'Asm89\\Stack\\Cors' => __DIR__ . '/..' . '/asm89/stack-cors/src/Asm89/Stack/Cors.php', 'Asm89\\Stack\\CorsService' => __DIR__ . '/..' . '/asm89/stack-cors/src/Asm89/Stack/CorsService.php', 'AssertionError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/AssertionError.php', + 'Basho\\Riak' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak.php', + 'Basho\\Riak\\Api' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Api.php', + 'Basho\\Riak\\ApiInterface' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/ApiInterface.php', + 'Basho\\Riak\\Api\\Exception' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Api/Exception.php', + 'Basho\\Riak\\Api\\Http' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Api/Http.php', + 'Basho\\Riak\\Api\\Http\\Translator\\ObjectResponse' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Api/Http/Translator/ObjectResponse.php', + 'Basho\\Riak\\Api\\Http\\Translator\\SecondaryIndex' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Api/Http/Translator/SecondaryIndex.php', + 'Basho\\Riak\\Bucket' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Bucket.php', + 'Basho\\Riak\\Command' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command.php', + 'Basho\\Riak\\CommandInterface' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/CommandInterface.php', + 'Basho\\Riak\\Command\\Bucket\\Delete' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Bucket/Delete.php', + 'Basho\\Riak\\Command\\Bucket\\Fetch' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Bucket/Fetch.php', + 'Basho\\Riak\\Command\\Bucket\\Response' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Bucket/Response.php', + 'Basho\\Riak\\Command\\Bucket\\Store' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Bucket/Store.php', + 'Basho\\Riak\\Command\\Builder' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder.php', + 'Basho\\Riak\\Command\\BuilderInterface' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/BuilderInterface.php', + 'Basho\\Riak\\Command\\Builder\\BucketTrait' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/BucketTrait.php', + 'Basho\\Riak\\Command\\Builder\\DeleteObject' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/DeleteObject.php', + 'Basho\\Riak\\Command\\Builder\\Exception' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/Exception.php', + 'Basho\\Riak\\Command\\Builder\\FetchBucketProperties' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/FetchBucketProperties.php', + 'Basho\\Riak\\Command\\Builder\\FetchCounter' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/FetchCounter.php', + 'Basho\\Riak\\Command\\Builder\\FetchHll' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/FetchHll.php', + 'Basho\\Riak\\Command\\Builder\\FetchMap' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/FetchMap.php', + 'Basho\\Riak\\Command\\Builder\\FetchObject' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/FetchObject.php', + 'Basho\\Riak\\Command\\Builder\\FetchPreflist' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/FetchPreflist.php', + 'Basho\\Riak\\Command\\Builder\\FetchSet' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/FetchSet.php', + 'Basho\\Riak\\Command\\Builder\\FetchStats' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/FetchStats.php', + 'Basho\\Riak\\Command\\Builder\\IncrementCounter' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/IncrementCounter.php', + 'Basho\\Riak\\Command\\Builder\\IndexTrait' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/IndexTrait.php', + 'Basho\\Riak\\Command\\Builder\\ListObjects' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/ListObjects.php', + 'Basho\\Riak\\Command\\Builder\\LocationTrait' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/LocationTrait.php', + 'Basho\\Riak\\Command\\Builder\\MapReduce\\FetchObjects' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/MapReduce/FetchObjects.php', + 'Basho\\Riak\\Command\\Builder\\ObjectTrait' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/ObjectTrait.php', + 'Basho\\Riak\\Command\\Builder\\Ping' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/Ping.php', + 'Basho\\Riak\\Command\\Builder\\QueryIndex' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/QueryIndex.php', + 'Basho\\Riak\\Command\\Builder\\Search\\AssociateIndex' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/Search/AssociateIndex.php', + 'Basho\\Riak\\Command\\Builder\\Search\\DeleteIndex' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/Search/DeleteIndex.php', + 'Basho\\Riak\\Command\\Builder\\Search\\DissociateIndex' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/Search/DissociateIndex.php', + 'Basho\\Riak\\Command\\Builder\\Search\\FetchIndex' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/Search/FetchIndex.php', + 'Basho\\Riak\\Command\\Builder\\Search\\FetchObjects' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/Search/FetchObjects.php', + 'Basho\\Riak\\Command\\Builder\\Search\\FetchSchema' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/Search/FetchSchema.php', + 'Basho\\Riak\\Command\\Builder\\Search\\StoreIndex' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/Search/StoreIndex.php', + 'Basho\\Riak\\Command\\Builder\\Search\\StoreSchema' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/Search/StoreSchema.php', + 'Basho\\Riak\\Command\\Builder\\SetBucketProperties' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/SetBucketProperties.php', + 'Basho\\Riak\\Command\\Builder\\StoreObject' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/StoreObject.php', + 'Basho\\Riak\\Command\\Builder\\TimeSeries\\DeleteRow' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/DeleteRow.php', + 'Basho\\Riak\\Command\\Builder\\TimeSeries\\DescribeTable' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/DescribeTable.php', + 'Basho\\Riak\\Command\\Builder\\TimeSeries\\FetchRow' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/FetchRow.php', + 'Basho\\Riak\\Command\\Builder\\TimeSeries\\KeyTrait' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/KeyTrait.php', + 'Basho\\Riak\\Command\\Builder\\TimeSeries\\Query' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/Query.php', + 'Basho\\Riak\\Command\\Builder\\TimeSeries\\RowsTrait' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/RowsTrait.php', + 'Basho\\Riak\\Command\\Builder\\TimeSeries\\StoreRows' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/StoreRows.php', + 'Basho\\Riak\\Command\\Builder\\TimeSeries\\TableTrait' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/TableTrait.php', + 'Basho\\Riak\\Command\\Builder\\UpdateGSet' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/UpdateGSet.php', + 'Basho\\Riak\\Command\\Builder\\UpdateHll' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/UpdateHll.php', + 'Basho\\Riak\\Command\\Builder\\UpdateMap' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/UpdateMap.php', + 'Basho\\Riak\\Command\\Builder\\UpdateSet' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Builder/UpdateSet.php', + 'Basho\\Riak\\Command\\DataType\\Counter\\Fetch' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/DataType/Counter/Fetch.php', + 'Basho\\Riak\\Command\\DataType\\Counter\\Response' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/DataType/Counter/Response.php', + 'Basho\\Riak\\Command\\DataType\\Counter\\Store' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/DataType/Counter/Store.php', + 'Basho\\Riak\\Command\\DataType\\GSet\\Store' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/DataType/GSet/Store.php', + 'Basho\\Riak\\Command\\DataType\\Hll\\Fetch' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/DataType/Hll/Fetch.php', + 'Basho\\Riak\\Command\\DataType\\Hll\\Response' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/DataType/Hll/Response.php', + 'Basho\\Riak\\Command\\DataType\\Hll\\Store' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/DataType/Hll/Store.php', + 'Basho\\Riak\\Command\\DataType\\Map\\Fetch' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/DataType/Map/Fetch.php', + 'Basho\\Riak\\Command\\DataType\\Map\\Response' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/DataType/Map/Response.php', + 'Basho\\Riak\\Command\\DataType\\Map\\Store' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/DataType/Map/Store.php', + 'Basho\\Riak\\Command\\DataType\\Set\\Fetch' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/DataType/Set/Fetch.php', + 'Basho\\Riak\\Command\\DataType\\Set\\Response' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/DataType/Set/Response.php', + 'Basho\\Riak\\Command\\DataType\\Set\\Store' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/DataType/Set/Store.php', + 'Basho\\Riak\\Command\\Exception' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Exception.php', + 'Basho\\Riak\\Command\\Indexes\\Query' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Indexes/Query.php', + 'Basho\\Riak\\Command\\Indexes\\Response' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Indexes/Response.php', + 'Basho\\Riak\\Command\\KVObject' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/KVObject.php', + 'Basho\\Riak\\Command\\KVObject\\Delete' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/KVObject/Delete.php', + 'Basho\\Riak\\Command\\KVObject\\Fetch' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/KVObject/Fetch.php', + 'Basho\\Riak\\Command\\KVObject\\FetchPreflist' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/KVObject/FetchPreflist.php', + 'Basho\\Riak\\Command\\KVObject\\Keys\\Fetch' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/KVObject/Keys/Fetch.php', + 'Basho\\Riak\\Command\\KVObject\\Keys\\Response' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/KVObject/Keys/Response.php', + 'Basho\\Riak\\Command\\KVObject\\Response' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/KVObject/Response.php', + 'Basho\\Riak\\Command\\KVObject\\Store' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/KVObject/Store.php', + 'Basho\\Riak\\Command\\MapReduce\\Fetch' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/MapReduce/Fetch.php', + 'Basho\\Riak\\Command\\MapReduce\\Response' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/MapReduce/Response.php', + 'Basho\\Riak\\Command\\Ping' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Ping.php', + 'Basho\\Riak\\Command\\Response' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Response.php', + 'Basho\\Riak\\Command\\Search\\Fetch' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Search/Fetch.php', + 'Basho\\Riak\\Command\\Search\\Index\\Delete' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Search/Index/Delete.php', + 'Basho\\Riak\\Command\\Search\\Index\\Fetch' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Search/Index/Fetch.php', + 'Basho\\Riak\\Command\\Search\\Index\\Response' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Search/Index/Response.php', + 'Basho\\Riak\\Command\\Search\\Index\\Store' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Search/Index/Store.php', + 'Basho\\Riak\\Command\\Search\\Response' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Search/Response.php', + 'Basho\\Riak\\Command\\Search\\Schema\\Fetch' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Search/Schema/Fetch.php', + 'Basho\\Riak\\Command\\Search\\Schema\\Response' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Search/Schema/Response.php', + 'Basho\\Riak\\Command\\Search\\Schema\\Store' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Search/Schema/Store.php', + 'Basho\\Riak\\Command\\Stats' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Stats.php', + 'Basho\\Riak\\Command\\Stats\\Response' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/Stats/Response.php', + 'Basho\\Riak\\Command\\TimeSeries\\Delete' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Delete.php', + 'Basho\\Riak\\Command\\TimeSeries\\Fetch' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Fetch.php', + 'Basho\\Riak\\Command\\TimeSeries\\Query\\Fetch' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Query/Fetch.php', + 'Basho\\Riak\\Command\\TimeSeries\\Query\\Response' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Query/Response.php', + 'Basho\\Riak\\Command\\TimeSeries\\Response' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Response.php', + 'Basho\\Riak\\Command\\TimeSeries\\Store' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Store.php', + 'Basho\\Riak\\DataObject' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/DataObject.php', + 'Basho\\Riak\\DataType' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/DataType.php', + 'Basho\\Riak\\DataType\\Counter' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/DataType/Counter.php', + 'Basho\\Riak\\DataType\\Exception' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/DataType/Exception.php', + 'Basho\\Riak\\DataType\\Hll' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/DataType/Hll.php', + 'Basho\\Riak\\DataType\\Map' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/DataType/Map.php', + 'Basho\\Riak\\DataType\\Set' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/DataType/Set.php', + 'Basho\\Riak\\Exception' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Exception.php', + 'Basho\\Riak\\HeadersTrait' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/HeadersTrait.php', + 'Basho\\Riak\\Location' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Location.php', + 'Basho\\Riak\\Node' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Node.php', + 'Basho\\Riak\\Node\\Builder' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Node/Builder.php', + 'Basho\\Riak\\Node\\Builder\\Exception' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Node/Builder/Exception.php', + 'Basho\\Riak\\Node\\Config' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Node/Config.php', + 'Basho\\Riak\\Search\\Doc' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/Search/Doc.php', + 'Basho\\Riak\\TimeSeries\\Cell' => __DIR__ . '/..' . '/phpfastcache/riak-client/src/Riak/TimeSeries/Cell.php', 'CommerceGuys\\Addressing\\AbstractEnum' => __DIR__ . '/..' . '/commerceguys/addressing/src/AbstractEnum.php', 'CommerceGuys\\Addressing\\Address' => __DIR__ . '/..' . '/commerceguys/addressing/src/Address.php', 'CommerceGuys\\Addressing\\AddressFormat\\AddressField' => __DIR__ . '/..' . '/commerceguys/addressing/src/AddressFormat/AddressField.php', @@ -3931,10 +4186,6 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'Interop\\Container\\ContainerInterface' => __DIR__ . '/..' . '/container-interop/container-interop/src/Interop/Container/ContainerInterface.php', 'Interop\\Container\\Exception\\ContainerException' => __DIR__ . '/..' . '/container-interop/container-interop/src/Interop/Container/Exception/ContainerException.php', 'Interop\\Container\\Exception\\NotFoundException' => __DIR__ . '/..' . '/container-interop/container-interop/src/Interop/Container/Exception/NotFoundException.php', - 'JaimePerez\\TwigConfigurableI18n\\Twig\\Environment' => __DIR__ . '/..' . '/jaimeperez/twig-configurable-i18n/src/Twig/Environment.php', - 'JaimePerez\\TwigConfigurableI18n\\Twig\\Extensions\\Extension\\I18n' => __DIR__ . '/..' . '/jaimeperez/twig-configurable-i18n/src/Twig/Extensions/Extension/I18n.php', - 'JaimePerez\\TwigConfigurableI18n\\Twig\\Extensions\\Node\\Trans' => __DIR__ . '/..' . '/jaimeperez/twig-configurable-i18n/src/Twig/Extensions/Node/Trans.php', - 'JaimePerez\\TwigConfigurableI18n\\Twig\\Extensions\\TokenParser\\Trans' => __DIR__ . '/..' . '/jaimeperez/twig-configurable-i18n/src/Twig/Extensions/TokenParser/Trans.php', 'JakubOnderka\\PhpConsoleColor\\ConsoleColor' => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src/ConsoleColor.php', 'JakubOnderka\\PhpConsoleColor\\InvalidStyleException' => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src/InvalidStyleException.php', 'JakubOnderka\\PhpConsoleHighlighter\\Highlighter' => __DIR__ . '/..' . '/jakub-onderka/php-console-highlighter/src/Highlighter.php', @@ -4201,6 +4452,11 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'PEAR_Error' => __DIR__ . '/..' . '/pear/pear-core-minimal/src/PEAR.php', 'PEAR_ErrorStack' => __DIR__ . '/..' . '/pear/pear-core-minimal/src/PEAR/ErrorStack.php', 'PEAR_Exception' => __DIR__ . '/..' . '/pear/pear_exception/PEAR/Exception.php', + 'PHPMailer\\PHPMailer\\Exception' => __DIR__ . '/..' . '/phpmailer/phpmailer/src/Exception.php', + 'PHPMailer\\PHPMailer\\OAuth' => __DIR__ . '/..' . '/phpmailer/phpmailer/src/OAuth.php', + 'PHPMailer\\PHPMailer\\PHPMailer' => __DIR__ . '/..' . '/phpmailer/phpmailer/src/PHPMailer.php', + 'PHPMailer\\PHPMailer\\POP3' => __DIR__ . '/..' . '/phpmailer/phpmailer/src/POP3.php', + 'PHPMailer\\PHPMailer\\SMTP' => __DIR__ . '/..' . '/phpmailer/phpmailer/src/SMTP.php', 'PantheonSystems\\CDNBehatHelpers\\AgeTracker' => __DIR__ . '/../..' . '/web/modules/pantheon_advanced_page_cache/tests/behat/helper_classes/AgeTracker.php', 'PantheonSystems\\CDNBehatHelpers\\Contexts\\FeatureContext' => __DIR__ . '/../..' . '/web/modules/pantheon_advanced_page_cache/tests/behat/helper_classes/Contexts/FeatureContext.php', 'PantheonSystems\\CDNBehatHelpers\\tests\\AgeTrackerTest' => __DIR__ . '/../..' . '/web/modules/pantheon_advanced_page_cache/tests/behat/helper_classes/tests/AgeTrackerTest.php', @@ -4792,9 +5048,6 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'SAML2\\Certificate\\Exception\\InvalidCertificateStructureException' => __DIR__ . '/..' . '/simplesamlphp/saml2/src/SAML2/Certificate/Exception/InvalidCertificateStructureException.php', 'SAML2\\Certificate\\Exception\\InvalidKeyUsageException' => __DIR__ . '/..' . '/simplesamlphp/saml2/src/SAML2/Certificate/Exception/InvalidKeyUsageException.php', 'SAML2\\Certificate\\Exception\\NoKeysFoundException' => __DIR__ . '/..' . '/simplesamlphp/saml2/src/SAML2/Certificate/Exception/NoKeysFoundException.php', - 'SAML2\\Certificate\\Fingerprint' => __DIR__ . '/..' . '/simplesamlphp/saml2/src/SAML2/Certificate/Fingerprint.php', - 'SAML2\\Certificate\\FingerprintCollection' => __DIR__ . '/..' . '/simplesamlphp/saml2/src/SAML2/Certificate/FingerprintCollection.php', - 'SAML2\\Certificate\\FingerprintLoader' => __DIR__ . '/..' . '/simplesamlphp/saml2/src/SAML2/Certificate/FingerprintLoader.php', 'SAML2\\Certificate\\Key' => __DIR__ . '/..' . '/simplesamlphp/saml2/src/SAML2/Certificate/Key.php', 'SAML2\\Certificate\\KeyCollection' => __DIR__ . '/..' . '/simplesamlphp/saml2/src/SAML2/Certificate/KeyCollection.php', 'SAML2\\Certificate\\KeyLoader' => __DIR__ . '/..' . '/simplesamlphp/saml2/src/SAML2/Certificate/KeyLoader.php', @@ -4850,7 +5103,6 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'SAML2\\SOAPClient' => __DIR__ . '/..' . '/simplesamlphp/saml2/src/SAML2/SOAPClient.php', 'SAML2\\Signature\\AbstractChainedValidator' => __DIR__ . '/..' . '/simplesamlphp/saml2/src/SAML2/Signature/AbstractChainedValidator.php', 'SAML2\\Signature\\ChainedValidator' => __DIR__ . '/..' . '/simplesamlphp/saml2/src/SAML2/Signature/ChainedValidator.php', - 'SAML2\\Signature\\FingerprintValidator' => __DIR__ . '/..' . '/simplesamlphp/saml2/src/SAML2/Signature/FingerprintValidator.php', 'SAML2\\Signature\\MissingConfigurationException' => __DIR__ . '/..' . '/simplesamlphp/saml2/src/SAML2/Signature/MissingConfigurationException.php', 'SAML2\\Signature\\PublicKeyValidator' => __DIR__ . '/..' . '/simplesamlphp/saml2/src/SAML2/Signature/PublicKeyValidator.php', 'SAML2\\Signature\\Validator' => __DIR__ . '/..' . '/simplesamlphp/saml2/src/SAML2/Signature/Validator.php', @@ -4916,10 +5168,8 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'SAML2\\XML\\shibmd\\Scope' => __DIR__ . '/..' . '/simplesamlphp/saml2/src/SAML2/XML/shibmd/Scope.php', 'SelfUpdate\\SelfUpdateCommand' => __DIR__ . '/..' . '/consolidation/self-update/src/SelfUpdateCommand.php', 'SessionUpdateTimestampHandlerInterface' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/SessionUpdateTimestampHandlerInterface.php', - 'SimpleSAML\\AuthMemCookie' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/AuthMemCookie.php', 'SimpleSAML\\Auth\\AuthenticationFactory' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/AuthenticationFactory.php', - 'SimpleSAML\\Auth\\DefaultAuth' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/Default.php', - 'SimpleSAML\\Auth\\LDAP' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/LDAP.php', + 'SimpleSAML\\Auth\\DefaultAuth' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/DefaultAuth.php', 'SimpleSAML\\Auth\\ProcessingChain' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/ProcessingChain.php', 'SimpleSAML\\Auth\\ProcessingFilter' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/ProcessingFilter.php', 'SimpleSAML\\Auth\\Simple' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/Simple.php', @@ -4979,6 +5229,62 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'SimpleSAML\\Metadata\\Sources\\MDQ' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/Sources/MDQ.php', 'SimpleSAML\\Module' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Module.php', 'SimpleSAML\\Module\\ControllerResolver' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Module/ControllerResolver.php', + 'SimpleSAML\\Module\\adfs\\AdfsController' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/adfs/lib/AdfsController.php', + 'SimpleSAML\\Module\\adfs\\IdP\\ADFS' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/adfs/lib/IdP/ADFS.php', + 'SimpleSAML\\Module\\adfs\\SAML2\\XML\\fed\\Constants' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/adfs/lib/SAML2/XML/fed/Constants.php', + 'SimpleSAML\\Module\\adfs\\SAML2\\XML\\fed\\Endpoint' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/adfs/lib/SAML2/XML/fed/Endpoint.php', + 'SimpleSAML\\Module\\adfs\\SAML2\\XML\\fed\\SecurityTokenServiceType' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/adfs/lib/SAML2/XML/fed/SecurityTokenServiceType.php', + 'SimpleSAML\\Module\\adfs\\SAML2\\XML\\fed\\TokenTypesOffered' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/adfs/lib/SAML2/XML/fed/TokenTypesOffered.php', + 'SimpleSAML\\Module\\authX509\\Auth\\Process\\ExpiryWarning' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/authX509/lib/Auth/Process/ExpiryWarning.php', + 'SimpleSAML\\Module\\authX509\\Auth\\Source\\X509userCert' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/authX509/lib/Auth/Source/X509userCert.php', + 'SimpleSAML\\Module\\authX509\\Controller\\ExpiryWarning' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/authX509/lib/Controller/ExpiryWarning.php', + 'SimpleSAML\\Module\\authcrypt\\Auth\\Source\\Hash' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/authcrypt/lib/Auth/Source/Hash.php', + 'SimpleSAML\\Module\\authcrypt\\Auth\\Source\\Htpasswd' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/authcrypt/lib/Auth/Source/Htpasswd.php', + 'SimpleSAML\\Module\\authfacebook\\Auth\\Source\\Facebook' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/authfacebook/lib/Auth/Source/Facebook.php', + 'SimpleSAML\\Module\\authfacebook\\Facebook' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/authfacebook/lib/Facebook.php', + 'SimpleSAML\\Module\\authorize\\Auth\\Process\\Authorize' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/authorize/lib/Auth/Process/Authorize.php', + 'SimpleSAML\\Module\\authtwitter\\Auth\\Source\\Twitter' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/authtwitter/lib/Auth/Source/Twitter.php', + 'SimpleSAML\\Module\\authwindowslive\\Auth\\Source\\LiveID' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/authwindowslive/lib/Auth/Source/LiveID.php', + 'SimpleSAML\\Module\\cas\\Auth\\Source\\CAS' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/cas/lib/Auth/Source/CAS.php', + 'SimpleSAML\\Module\\cdc\\Client' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/cdc/lib/Client.php', + 'SimpleSAML\\Module\\cdc\\Server' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/cdc/lib/Server.php', + 'SimpleSAML\\Module\\consent\\Auth\\Process\\Consent' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/consent/lib/Auth/Process/Consent.php', + 'SimpleSAML\\Module\\consent\\Consent\\Store\\Cookie' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/consent/lib/Consent/Store/Cookie.php', + 'SimpleSAML\\Module\\consent\\Consent\\Store\\Database' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/consent/lib/Consent/Store/Database.php', + 'SimpleSAML\\Module\\consent\\Logout' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/consent/lib/Logout.php', + 'SimpleSAML\\Module\\consent\\Store' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/consent/lib/Store.php', + 'SimpleSAML\\Module\\expirycheck\\Auth\\Process\\ExpiryDate' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/expirycheck/lib/Auth/Process/ExpiryDate.php', + 'SimpleSAML\\Module\\ldap\\Auth\\Ldap' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Ldap.php', + 'SimpleSAML\\Module\\ldap\\Auth\\Process\\AttributeAddFromLDAP' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Process/AttributeAddFromLDAP.php', + 'SimpleSAML\\Module\\ldap\\Auth\\Process\\AttributeAddUsersGroups' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Process/AttributeAddUsersGroups.php', + 'SimpleSAML\\Module\\ldap\\Auth\\Process\\BaseFilter' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Process/BaseFilter.php', + 'SimpleSAML\\Module\\ldap\\Auth\\Source\\LDAP' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Source/LDAP.php', + 'SimpleSAML\\Module\\ldap\\Auth\\Source\\LDAPMulti' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Source/LDAPMulti.php', + 'SimpleSAML\\Module\\ldap\\ConfigHelper' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/ldap/lib/ConfigHelper.php', + 'SimpleSAML\\Module\\metarefresh\\ARP' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/metarefresh/lib/ARP.php', + 'SimpleSAML\\Module\\metarefresh\\MetaLoader' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/metarefresh/lib/MetaLoader.php', + 'SimpleSAML\\Module\\negotiate\\Auth\\Source\\Negotiate' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/negotiate/lib/Auth/Source/Negotiate.php', + 'SimpleSAML\\Module\\preprodwarning\\Auth\\Process\\Warning' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/preprodwarning/lib/Auth/Process/Warning.php', + 'SimpleSAML\\Module\\radius\\Auth\\Source\\Radius' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/radius/lib/Auth/Source/Radius.php', + 'SimpleSAML\\Module\\riak\\Store\\Riak' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/riak/lib/Store/Riak.php', + 'SimpleSAML\\Module\\smartattributes\\Auth\\Process\\SmartID' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/smartattributes/lib/Auth/Process/SmartID.php', + 'SimpleSAML\\Module\\smartattributes\\Auth\\Process\\SmartName' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/smartattributes/lib/Auth/Process/SmartName.php', + 'SimpleSAML\\Module\\sqlauth\\Auth\\Source\\SQL' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/sqlauth/lib/Auth/Source/SQL.php', + 'SimpleSAML\\Module\\statistics\\AccessCheck' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/statistics/lib/AccessCheck.php', + 'SimpleSAML\\Module\\statistics\\Aggregator' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/statistics/lib/Aggregator.php', + 'SimpleSAML\\Module\\statistics\\DateHandler' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/statistics/lib/DateHandler.php', + 'SimpleSAML\\Module\\statistics\\DateHandlerMonth' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/statistics/lib/DateHandlerMonth.php', + 'SimpleSAML\\Module\\statistics\\Graph\\GoogleCharts' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/statistics/lib/Graph/GoogleCharts.php', + 'SimpleSAML\\Module\\statistics\\LogCleaner' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/statistics/lib/LogCleaner.php', + 'SimpleSAML\\Module\\statistics\\LogParser' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/statistics/lib/LogParser.php', + 'SimpleSAML\\Module\\statistics\\RatioDataset' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/statistics/lib/RatioDataset.php', + 'SimpleSAML\\Module\\statistics\\Ruleset' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/statistics/lib/Ruleset.php', + 'SimpleSAML\\Module\\statistics\\StatDataset' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/statistics/lib/StatDataset.php', + 'SimpleSAML\\Module\\statistics\\StatisticsController' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/statistics/lib/StatisticsController.php', + 'SimpleSAML\\Module\\statistics\\Statistics\\FieldPresentation\\Base' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/statistics/lib/Statistics/FieldPresentation/Base.php', + 'SimpleSAML\\Module\\statistics\\Statistics\\FieldPresentation\\Entity' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/statistics/lib/Statistics/FieldPresentation/Entity.php', + 'SimpleSAML\\Module\\statistics\\Statistics\\Rulesets\\BaseRule' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/statistics/lib/Statistics/Rulesets/BaseRule.php', + 'SimpleSAML\\Module\\statistics\\Statistics\\Rulesets\\Ratio' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/modules/statistics/lib/Statistics/Rulesets/Ratio.php', 'SimpleSAML\\Session' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Session.php', 'SimpleSAML\\SessionHandler' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/SessionHandler.php', 'SimpleSAML\\SessionHandlerCookie' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/SessionHandlerCookie.php', @@ -4990,6 +5296,10 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'SimpleSAML\\Store\\Memcache' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Store/Memcache.php', 'SimpleSAML\\Store\\Redis' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Store/Redis.php', 'SimpleSAML\\Store\\SQL' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Store/SQL.php', + 'SimpleSAML\\TwigConfigurableI18n\\Twig\\Environment' => __DIR__ . '/..' . '/simplesamlphp/twig-configurable-i18n/src/Twig/Environment.php', + 'SimpleSAML\\TwigConfigurableI18n\\Twig\\Extensions\\Extension\\I18n' => __DIR__ . '/..' . '/simplesamlphp/twig-configurable-i18n/src/Twig/Extensions/Extension/I18n.php', + 'SimpleSAML\\TwigConfigurableI18n\\Twig\\Extensions\\Node\\Trans' => __DIR__ . '/..' . '/simplesamlphp/twig-configurable-i18n/src/Twig/Extensions/Node/Trans.php', + 'SimpleSAML\\TwigConfigurableI18n\\Twig\\Extensions\\TokenParser\\Trans' => __DIR__ . '/..' . '/simplesamlphp/twig-configurable-i18n/src/Twig/Extensions/TokenParser/Trans.php', 'SimpleSAML\\Utilities' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utilities.php', 'SimpleSAML\\Utils\\Arrays' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Arrays.php', 'SimpleSAML\\Utils\\Attributes' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Attributes.php', @@ -4998,6 +5308,7 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'SimpleSAML\\Utils\\Config' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Config.php', 'SimpleSAML\\Utils\\Config\\Metadata' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Config/Metadata.php', 'SimpleSAML\\Utils\\Crypto' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Crypto.php', + 'SimpleSAML\\Utils\\EMail' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/EMail.php', 'SimpleSAML\\Utils\\HTTP' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/HTTP.php', 'SimpleSAML\\Utils\\HttpAdapter' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/HttpAdapter.php', 'SimpleSAML\\Utils\\Net' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Net.php', @@ -5005,7 +5316,6 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'SimpleSAML\\Utils\\System' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/System.php', 'SimpleSAML\\Utils\\Time' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Time.php', 'SimpleSAML\\Utils\\XML' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/XML.php', - 'SimpleSAML\\XHTML\\EMail' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/EMail.php', 'SimpleSAML\\XHTML\\IdPDisco' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/IdPDisco.php', 'SimpleSAML\\XHTML\\Template' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/Template.php', 'SimpleSAML\\XHTML\\TemplateControllerInterface' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/TemplateControllerInterface.php', @@ -5016,6 +5326,8 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'SimpleSAML\\XML\\Shib13\\AuthnResponse' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Shib13/AuthnResponse.php', 'SimpleSAML\\XML\\Signer' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Signer.php', 'SimpleSAML\\XML\\Validator' => __DIR__ . '/..' . '/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Validator.php', + 'SimpleSamlPhp\\Composer\\ModuleInstaller' => __DIR__ . '/..' . '/simplesamlphp/composer-module-installer/src/SimpleSamlPhp/Composer/ModuleInstaller.php', + 'SimpleSamlPhp\\Composer\\ModuleInstallerPlugin' => __DIR__ . '/..' . '/simplesamlphp/composer-module-installer/src/SimpleSamlPhp/Composer/ModuleInstallerPlugin.php', 'Stack\\Builder' => __DIR__ . '/..' . '/stack/builder/src/Stack/Builder.php', 'Stack\\StackedHttpKernel' => __DIR__ . '/..' . '/stack/builder/src/Stack/StackedHttpKernel.php', 'Stecman\\Component\\Symfony\\Console\\BashCompletion\\Completion' => __DIR__ . '/..' . '/stecman/symfony-console-completion/src/Completion.php', @@ -6604,6 +6916,7 @@ class ComposerStaticInit5c689ffcd54b9e495ed983fdce09b530 'TwitterAPIExchange' => __DIR__ . '/..' . '/j7mbo/twitter-api-php/TwitterAPIExchange.php', 'TypeError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/TypeError.php', 'Webmozart\\Assert\\Assert' => __DIR__ . '/..' . '/webmozart/assert/src/Assert.php', + 'Webmozart\\Assert\\Mixin' => __DIR__ . '/..' . '/webmozart/assert/src/Mixin.php', 'Webmozart\\PathUtil\\Path' => __DIR__ . '/..' . '/webmozart/path-util/src/Path.php', 'Webmozart\\PathUtil\\Url' => __DIR__ . '/..' . '/webmozart/path-util/src/Url.php', 'WhiteHat101\\Crypt\\APR1_MD5' => __DIR__ . '/..' . '/whitehat101/apr1-md5/src/APR1_MD5.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index e23abfd0627d8e8fdbc7808ef0760e580c57f717..112b71190296b0eb6c146ce60f20f867fc4249c0 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -7782,32 +7782,29 @@ }, { "name": "drupal/simplesamlphp_auth", - "version": "3.1.0", - "version_normalized": "3.1.0.0", + "version": "3.2.0", + "version_normalized": "3.2.0.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/simplesamlphp_auth.git", - "reference": "8.x-3.1" + "reference": "8.x-3.2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/simplesamlphp_auth-8.x-3.1.zip", - "reference": "8.x-3.1", - "shasum": "db464b1a4716ad21e7f2ec141640691b8d040d59" + "url": "https://ftp.drupal.org/files/projects/simplesamlphp_auth-8.x-3.2.zip", + "reference": "8.x-3.2", + "shasum": "a5a2b10fc873eb8669929ad1a6d9599e47a2ca99" }, "require": { - "drupal/core": "*", + "drupal/core": "^8.7|^9.0", "drupal/externalauth": "^1.1", - "simplesamlphp/simplesamlphp": "~1.17.2" + "simplesamlphp/simplesamlphp": "^1.18.2" }, "type": "drupal-module", "extra": { - "branch-alias": { - "dev-3.x": "3.x-dev" - }, "drupal": { - "version": "8.x-3.1", - "datestamp": "1565118485", + "version": "8.x-3.2", + "datestamp": "1580423953", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -10034,57 +10031,6 @@ "twitter" ] }, - { - "name": "jaimeperez/twig-configurable-i18n", - "version": "v2.1", - "version_normalized": "2.1.0.0", - "source": { - "type": "git", - "url": "https://github.com/jaimeperez/twig-configurable-i18n.git", - "reference": "38a22aaa6b31efdc0d76d58f5934dea3ebac8556" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/jaimeperez/twig-configurable-i18n/zipball/38a22aaa6b31efdc0d76d58f5934dea3ebac8556", - "reference": "38a22aaa6b31efdc0d76d58f5934dea3ebac8556", - "shasum": "" - }, - "require": { - "twig/extensions": "^1.5" - }, - "require-dev": { - "phpunit/phpunit": "~4.8.36", - "twig/twig": "^1.37 || ^2.7" - }, - "time": "2019-06-07T11:03:28+00:00", - "type": "project", - "installation-source": "dist", - "autoload": { - "psr-4": { - "JaimePerez\\TwigConfigurableI18n\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-2.1" - ], - "authors": [ - { - "name": "Jaime Perez", - "email": "jaime.perez@uninett.no" - } - ], - "description": "This is an extension on top of Twig's i18n extension, allowing you to customize which functions to use for translations.", - "keywords": [ - "extension", - "gettext", - "i18n", - "internationalization", - "translation", - "twig" - ], - "abandoned": "simplesamlphp/twig-configurable-i18n" - }, { "name": "jakub-onderka/php-console-color", "version": "v0.2", @@ -11152,6 +11098,144 @@ "exception" ] }, + { + "name": "phpfastcache/riak-client", + "version": "3.4.3", + "version_normalized": "3.4.3.0", + "source": { + "type": "git", + "url": "https://github.com/PHPSocialNetwork/riak-php-client.git", + "reference": "d771f75d16196006604a30bb15adc1c6a9b0fcc9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPSocialNetwork/riak-php-client/zipball/d771f75d16196006604a30bb15adc1c6a9b0fcc9", + "reference": "d771f75d16196006604a30bb15adc1c6a9b0fcc9", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-json": "*", + "php": ">=5.4" + }, + "conflict": { + "basho/riak": "*" + }, + "require-dev": { + "apigen/apigen": "4.1.*", + "phpunit/phpunit": "4.8.*" + }, + "time": "2017-11-23T21:33:15+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Basho\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Georges.L", + "email": "contact@geolim4.com", + "homepage": "https://github.com/Geolim4", + "role": "Maintainer" + }, + { + "name": "Christopher Mancini", + "email": "cmancini@basho.com", + "homepage": "https://github.com/christophermancini", + "role": "Former Lead Developer" + }, + { + "name": "Alex Moore", + "email": "amoore@basho.com", + "homepage": "https://github.com/alexmoore", + "role": "Former Developer" + } + ], + "description": "Riak client for PHP (Fork of the official basho/riak due to maintainer significant inactivity)", + "homepage": "https://github.com/PHPSocialNetwork/riak-php-client", + "keywords": [ + "basho", + "client", + "crdt", + "data", + "database", + "datatype", + "driver", + "kv", + "nosql", + "riak" + ] + }, + { + "name": "phpmailer/phpmailer", + "version": "v6.1.6", + "version_normalized": "6.1.6.0", + "source": { + "type": "git", + "url": "https://github.com/PHPMailer/PHPMailer.git", + "reference": "c2796cb1cb99d7717290b48c4e6f32cb6c60b7b3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/c2796cb1cb99d7717290b48c4e6f32cb6c60b7b3", + "reference": "c2796cb1cb99d7717290b48c4e6f32cb6c60b7b3", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-filter": "*", + "php": ">=5.5.0" + }, + "require-dev": { + "doctrine/annotations": "^1.2", + "friendsofphp/php-cs-fixer": "^2.2", + "phpunit/phpunit": "^4.8 || ^5.7" + }, + "suggest": { + "ext-mbstring": "Needed to send email in multibyte encoding charset", + "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication", + "league/oauth2-google": "Needed for Google XOAUTH2 authentication", + "psr/log": "For optional PSR-3 debug logging", + "stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication", + "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)" + }, + "time": "2020-05-27T12:24:03+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "PHPMailer\\PHPMailer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-only" + ], + "authors": [ + { + "name": "Marcus Bointon", + "email": "phpmailer@synchromedia.co.uk" + }, + { + "name": "Jim Jagielski", + "email": "jimjag@gmail.com" + }, + { + "name": "Andy Prevost", + "email": "codeworxtech@users.sourceforge.net" + }, + { + "name": "Brent R. Matzelle" + } + ], + "description": "PHPMailer is a full-featured email creation and transfer class for PHP" + }, { "name": "psr/container", "version": "1.0.0", @@ -11424,24 +11508,24 @@ }, { "name": "robrichards/xmlseclibs", - "version": "3.0.4", - "version_normalized": "3.0.4.0", + "version": "3.1.0", + "version_normalized": "3.1.0.0", "source": { "type": "git", "url": "https://github.com/robrichards/xmlseclibs.git", - "reference": "0a53d3c3aa87564910cae4ed01416441d3ae0db5" + "reference": "8d8e56ca7914440a8c60caff1a865e7dff1d9a5a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/0a53d3c3aa87564910cae4ed01416441d3ae0db5", - "reference": "0a53d3c3aa87564910cae4ed01416441d3ae0db5", + "url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/8d8e56ca7914440a8c60caff1a865e7dff1d9a5a", + "reference": "8d8e56ca7914440a8c60caff1a865e7dff1d9a5a", "shasum": "" }, "require": { "ext-openssl": "*", "php": ">= 5.4" }, - "time": "2019-11-05T11:44:22+00:00", + "time": "2020-04-22T17:19:51+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -11502,54 +11586,83 @@ "description": "Install Quicksilver modules for Pantheon into custom locations.", "homepage": "https://github.com/rvtraveller/qs-composer-installer" }, + { + "name": "simplesamlphp/composer-module-installer", + "version": "v1.1.6", + "version_normalized": "1.1.6.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/composer-module-installer.git", + "reference": "b70414a2112fe49e97a7eddd747657bd8bc38ef0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/composer-module-installer/zipball/b70414a2112fe49e97a7eddd747657bd8bc38ef0", + "reference": "b70414a2112fe49e97a7eddd747657bd8bc38ef0", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0", + "simplesamlphp/simplesamlphp": "*" + }, + "time": "2017-04-24T07:12:50+00:00", + "type": "composer-plugin", + "extra": { + "class": "SimpleSamlPhp\\Composer\\ModuleInstallerPlugin" + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "SimpleSamlPhp\\Composer": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "description": "A Composer plugin that allows installing SimpleSAMLphp modules through Composer." + }, { "name": "simplesamlphp/saml2", - "version": "v3.4.2", - "version_normalized": "3.4.2.0", + "version": "v4.1.7", + "version_normalized": "4.1.7.0", "source": { "type": "git", "url": "https://github.com/simplesamlphp/saml2.git", - "reference": "3806d276edb066c60aa3d748ffd0681d92ffbda7" + "reference": "62c7ab036c2db4c25bcab210d30343add0ae2c28" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/3806d276edb066c60aa3d748ffd0681d92ffbda7", - "reference": "3806d276edb066c60aa3d748ffd0681d92ffbda7", + "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/62c7ab036c2db4c25bcab210d30343add0ae2c28", + "reference": "62c7ab036c2db4c25bcab210d30343add0ae2c28", "shasum": "" }, "require": { "ext-dom": "*", "ext-openssl": "*", "ext-zlib": "*", - "php": ">=5.4", - "psr/log": "~1.0", + "php": ">=7.2", + "psr/log": "~1.1", "robrichards/xmlseclibs": "^3.0.4", - "webmozart/assert": "^1.4" + "webmozart/assert": "^1.5" }, "require-dev": { - "mockery/mockery": "~0.9", - "phpmd/phpmd": "~2.6", - "phpunit/phpunit": "~5.7", - "sebastian/phpcpd": "~2.0", - "sensiolabs/security-checker": "~4.1", - "simplesamlphp/simplesamlphp-test-framework": "0.0.11", - "squizlabs/php_codesniffer": "~3.2" - }, - "time": "2019-11-06T10:00:32+00:00", + "mockery/mockery": "~1.2", + "phpunit/phpunit": "^8.3", + "sebastian/phpcpd": "~4.1", + "sensiolabs/security-checker": "~6.0", + "simplesamlphp/simplesamlphp-test-framework": "~0.1.0", + "squizlabs/php_codesniffer": "~3.5" + }, + "time": "2020-03-21T19:43:09+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "v3.1.x-dev" + "dev-master": "v4.0.x-dev" } }, "installation-source": "dist", "autoload": { - "psr-0": { - "SAML2\\": "src/" - }, - "files": [ - "src/_autoload.php" - ] + "psr-4": { + "SAML2\\": "src/SAML2" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -11565,17 +11678,17 @@ }, { "name": "simplesamlphp/simplesamlphp", - "version": "v1.17.8", - "version_normalized": "1.17.8.0", + "version": "v1.18.7", + "version_normalized": "1.18.7.0", "source": { "type": "git", "url": "https://github.com/simplesamlphp/simplesamlphp.git", - "reference": "295937ae8672278cad73ec2c78af3749426263de" + "reference": "c62e32c807d50ada1fd6f4792e2054a0471100ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp/zipball/295937ae8672278cad73ec2c78af3749426263de", - "reference": "295937ae8672278cad73ec2c78af3749426263de", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp/zipball/c62e32c807d50ada1fd6f4792e2054a0471100ad", + "reference": "c62e32c807d50ada1fd6f4792e2054a0471100ad", "shasum": "" }, "require": { @@ -11589,10 +11702,39 @@ "ext-spl": "*", "ext-zlib": "*", "gettext/gettext": "^4.6", - "jaimeperez/twig-configurable-i18n": "^2.0", - "php": ">=5.5", + "php": ">=5.6", + "phpmailer/phpmailer": "^6.0", "robrichards/xmlseclibs": "^3.0.4", - "simplesamlphp/saml2": "^3.3", + "simplesamlphp/saml2": "^3.4 || ^4.0", + "simplesamlphp/simplesamlphp-module-adfs": "^0.9", + "simplesamlphp/simplesamlphp-module-authcrypt": "^0.9", + "simplesamlphp/simplesamlphp-module-authfacebook": "^0.9", + "simplesamlphp/simplesamlphp-module-authorize": "^0.9", + "simplesamlphp/simplesamlphp-module-authtwitter": "^0.9", + "simplesamlphp/simplesamlphp-module-authwindowslive": "^0.9", + "simplesamlphp/simplesamlphp-module-authx509": "^0.9", + "simplesamlphp/simplesamlphp-module-authyubikey": "^0.9", + "simplesamlphp/simplesamlphp-module-cas": "^0.9", + "simplesamlphp/simplesamlphp-module-cdc": "^0.9", + "simplesamlphp/simplesamlphp-module-consent": "^0.9", + "simplesamlphp/simplesamlphp-module-consentadmin": "^0.9", + "simplesamlphp/simplesamlphp-module-discopower": "^0.9", + "simplesamlphp/simplesamlphp-module-exampleattributeserver": "^1.0", + "simplesamlphp/simplesamlphp-module-expirycheck": "^0.9", + "simplesamlphp/simplesamlphp-module-ldap": "^0.9", + "simplesamlphp/simplesamlphp-module-memcachemonitor": "^0.9", + "simplesamlphp/simplesamlphp-module-memcookie": "^1.2", + "simplesamlphp/simplesamlphp-module-metarefresh": "^0.9", + "simplesamlphp/simplesamlphp-module-negotiate": "^0.9", + "simplesamlphp/simplesamlphp-module-oauth": "^0.9", + "simplesamlphp/simplesamlphp-module-preprodwarning": "^0.9", + "simplesamlphp/simplesamlphp-module-radius": "^0.9", + "simplesamlphp/simplesamlphp-module-riak": "^0.9", + "simplesamlphp/simplesamlphp-module-sanitycheck": "^0.9", + "simplesamlphp/simplesamlphp-module-smartattributes": "^0.9", + "simplesamlphp/simplesamlphp-module-sqlauth": "^0.9", + "simplesamlphp/simplesamlphp-module-statistics": "^0.9", + "simplesamlphp/twig-configurable-i18n": "^2.1", "symfony/config": "^3.4 || ^4.0", "symfony/dependency-injection": "^3.4 || ^4.0", "symfony/http-foundation": "^3.4 || ^4.0", @@ -11605,7 +11747,11 @@ "require-dev": { "ext-curl": "*", "mikey179/vfsstream": "~1.6", - "phpunit/phpunit": "~4.8" + "phpunit/phpunit": "~5.7", + "sensiolabs/security-checker": "^5.0.3", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.14", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "~1.1.9" }, "suggest": { "ext-curl": "Needed in order to check for updates automatically", @@ -11617,7 +11763,7 @@ "ext-radius": "Needed if a Radius backend is used", "predis/predis": "Needed if a Redis server is used to store session information" }, - "time": "2019-11-20T08:26:08+00:00", + "time": "2020-05-12T12:24:31+00:00", "type": "project", "installation-source": "dist", "autoload": { @@ -11658,155 +11804,1587 @@ ] }, { - "name": "stack/builder", - "version": "v1.0.5", - "version_normalized": "1.0.5.0", + "name": "simplesamlphp/simplesamlphp-module-adfs", + "version": "v0.9.6", + "version_normalized": "0.9.6.0", "source": { "type": "git", - "url": "https://github.com/stackphp/builder.git", - "reference": "fb3d136d04c6be41120ebf8c0cc71fe9507d750a" + "url": "https://github.com/simplesamlphp/simplesamlphp-module-adfs.git", + "reference": "425e5ebbdd097c92fe5265a6b48d32a3095c7237" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/stackphp/builder/zipball/fb3d136d04c6be41120ebf8c0cc71fe9507d750a", - "reference": "fb3d136d04c6be41120ebf8c0cc71fe9507d750a", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-adfs/zipball/425e5ebbdd097c92fe5265a6b48d32a3095c7237", + "reference": "425e5ebbdd097c92fe5265a6b48d32a3095c7237", "shasum": "" }, "require": { - "php": ">=5.3.0", - "symfony/http-foundation": "~2.1|~3.0|~4.0", - "symfony/http-kernel": "~2.1|~3.0|~4.0" + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" }, "require-dev": { - "silex/silex": "~1.0" - }, - "time": "2017-11-18T14:57:29+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17", + "webmozart/assert": "<1.7" }, + "time": "2020-03-31T14:29:24+00:00", + "type": "simplesamlphp-module", "installation-source": "dist", "autoload": { - "psr-0": { - "Stack": "src" + "psr-4": { + "SimpleSAML\\Module\\adfs\\": "lib/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "LGPL-2.1-or-later" ], "authors": [ { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch" + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" } ], - "description": "Builder for stack middlewares based on HttpKernelInterface.", + "description": "A module that implements the WS-federation IDP", "keywords": [ - "stack" + "adfs", + "simplesamlphp" ] }, { - "name": "stecman/symfony-console-completion", - "version": "0.8.0", - "version_normalized": "0.8.0.0", + "name": "simplesamlphp/simplesamlphp-module-authcrypt", + "version": "v0.9.1", + "version_normalized": "0.9.1.0", "source": { "type": "git", - "url": "https://github.com/stecman/symfony-console-completion.git", - "reference": "cd738867503477e91dbe84173dfabd431c883431" + "url": "https://github.com/simplesamlphp/simplesamlphp-module-authcrypt.git", + "reference": "cc2950cf710933063192e883ba2804321b8af6db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/stecman/symfony-console-completion/zipball/cd738867503477e91dbe84173dfabd431c883431", - "reference": "cd738867503477e91dbe84173dfabd431c883431", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-authcrypt/zipball/cc2950cf710933063192e883ba2804321b8af6db", + "reference": "cc2950cf710933063192e883ba2804321b8af6db", "shasum": "" }, "require": { - "php": ">=5.3.2", - "symfony/console": "~2.3 || ~3.0 || ~4.0" + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "webmozart/assert": "~1.4" }, "require-dev": { - "phpunit/phpunit": "~4.8.36 || ~5.7 || ~6.4" - }, - "time": "2018-02-10T04:28:01+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.6.x-dev" - } + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" }, + "time": "2019-12-03T08:56:36+00:00", + "type": "simplesamlphp-module", "installation-source": "dist", "autoload": { "psr-4": { - "Stecman\\Component\\Symfony\\Console\\BashCompletion\\": "src/" + "SimpleSAML\\Module\\authcrypt\\": "lib/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "LGPL-3.0-or-later" ], "authors": [ { - "name": "Stephen Holdaway", - "email": "stephen@stecman.co.nz" + "name": "Olav Morken", + "email": "olavmrk@gmail.com" } ], - "description": "Automatic BASH completion for Symfony Console Component based applications." + "description": "This module provides authentication against password hashes or .htpasswd files", + "keywords": [ + "authcrypt", + "simplesamlphp" + ] }, { - "name": "symfony-cmf/routing", - "version": "1.4.1", - "version_normalized": "1.4.1.0", + "name": "simplesamlphp/simplesamlphp-module-authfacebook", + "version": "v0.9.3", + "version_normalized": "0.9.3.0", "source": { "type": "git", - "url": "https://github.com/symfony-cmf/routing.git", - "reference": "fb1e7f85ff8c6866238b7e73a490a0a0243ae8ac" + "url": "https://github.com/simplesamlphp/simplesamlphp-module-authfacebook.git", + "reference": "9152731e939ad4a49e0f06da5f0009ebde0d2b5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony-cmf/routing/zipball/fb1e7f85ff8c6866238b7e73a490a0a0243ae8ac", - "reference": "fb1e7f85ff8c6866238b7e73a490a0a0243ae8ac", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-authfacebook/zipball/9152731e939ad4a49e0f06da5f0009ebde0d2b5c", + "reference": "9152731e939ad4a49e0f06da5f0009ebde0d2b5c", "shasum": "" }, "require": { - "php": "^5.3.9|^7.0", - "psr/log": "1.*", - "symfony/http-kernel": "^2.2|3.*", - "symfony/routing": "^2.2|3.*" + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" }, "require-dev": { - "friendsofsymfony/jsrouting-bundle": "^1.1", - "symfony-cmf/testing": "^1.3", - "symfony/config": "^2.2|3.*", - "symfony/dependency-injection": "^2.0.5|3.*", - "symfony/event-dispatcher": "^2.1|3.*" - }, - "suggest": { - "symfony/event-dispatcher": "DynamicRouter can optionally trigger an event at the start of matching. Minimal version (~2.1)" - }, - "time": "2017-05-09T08:10:41+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.10" }, + "time": "2020-03-13T11:29:21+00:00", + "type": "simplesamlphp-module", "installation-source": "dist", "autoload": { "psr-4": { - "Symfony\\Cmf\\Component\\Routing\\": "" + "SimpleSAML\\Module\\authfacebook\\": "lib/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "LGPL-3.0-or-later" ], "authors": [ { - "name": "Symfony CMF Community", - "homepage": "https://github.com/symfony-cmf/Routing/contributors" + "name": "Andjelko Horvat", + "email": "comel@vingd.com" + }, + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "description": "A module that is able to authenticate against Facebook", + "keywords": [ + "facebook", + "simplesamlphp" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-authorize", + "version": "v0.9.2", + "version_normalized": "0.9.2.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-authorize.git", + "reference": "c2607a5252ee1256b50ce7795e35513b116998d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-authorize/zipball/c2607a5252ee1256b50ce7795e35513b116998d4", + "reference": "c2607a5252ee1256b50ce7795e35513b116998d4", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "time": "2020-02-25T15:16:57+00:00", + "type": "simplesamlphp-module", + "installation-source": "dist", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\authorize\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Ernesto Revilla", + "email": "erny@yaco.es" + } + ], + "description": "This module provides a user authorization filter based on attribute matching", + "keywords": [ + "authorize", + "simplesamlphp" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-authtwitter", + "version": "v0.9.1", + "version_normalized": "0.9.1.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-authtwitter.git", + "reference": "29a15e58061222632fea9eb2c807aef5e2c0d54a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-authtwitter/zipball/29a15e58061222632fea9eb2c807aef5e2c0d54a", + "reference": "29a15e58061222632fea9eb2c807aef5e2c0d54a", + "shasum": "" + }, + "require": { + "php": ">=5.5", + "simplesamlphp/composer-module-installer": "~1.0", + "simplesamlphp/simplesamlphp-module-oauth": "^0.9" + }, + "require-dev": { + "phpunit/phpunit": "~4.8.35", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "time": "2019-12-03T09:00:09+00:00", + "type": "simplesamlphp-module", + "installation-source": "dist", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\authtwitter\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + }, + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "description": "A module that is able to perform authentication against Twitter", + "keywords": [ + "simplesamlphp", + "twitter" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-authwindowslive", + "version": "v0.9.1", + "version_normalized": "0.9.1.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-authwindowslive.git", + "reference": "f40aecec6c0adaedb6693309840c98cec783876e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-authwindowslive/zipball/f40aecec6c0adaedb6693309840c98cec783876e", + "reference": "f40aecec6c0adaedb6693309840c98cec783876e", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "time": "2019-12-03T09:01:13+00:00", + "type": "simplesamlphp-module", + "installation-source": "dist", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\authwindowslive\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + }, + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "description": "A module that is able to perform authentication against Windows Live", + "keywords": [ + "live", + "simplesamlphp", + "windows", + "windowslive" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-authx509", + "version": "v0.9.3", + "version_normalized": "0.9.3.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-authX509.git", + "reference": "a7bda5abccc17e0e6cc057d7315e1f94a9409f44" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-authX509/zipball/a7bda5abccc17e0e6cc057d7315e1f94a9409f44", + "reference": "a7bda5abccc17e0e6cc057d7315e1f94a9409f44", + "shasum": "" + }, + "require": { + "php": ">=5.5", + "simplesamlphp/composer-module-installer": "~1.1", + "simplesamlphp/simplesamlphp-module-ldap": "^0.9.5" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.18", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.15" + }, + "time": "2020-05-24T20:07:14+00:00", + "type": "simplesamlphp-module", + "extra": { + "ssp-mixedcase-module-name": "authX509" + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\authX509\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Joost van Dijk", + "email": "Joost.vanDijk@surfnet.nl" + }, + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "description": "A module that is able to authenticate users based on X509 client certificates", + "keywords": [ + "simplesamlphp", + "x509" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-authyubikey", + "version": "v0.9.1", + "version_normalized": "0.9.1.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-authyubikey.git", + "reference": "8c27bfeb4981d2e6fa40a831e945f40c5a4ad3d2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-authyubikey/zipball/8c27bfeb4981d2e6fa40a831e945f40c5a4ad3d2", + "reference": "8c27bfeb4981d2e6fa40a831e945f40c5a4ad3d2", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "time": "2019-12-03T08:52:49+00:00", + "type": "simplesamlphp-module", + "extra": { + "ssp-mixedcase-module-name": "authYubikey" + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "SimpleSAML\\modules\\yubikey\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "description": "A module that is able to authenticate against YubiKey", + "keywords": [ + "authyubikey", + "simplesamlphp" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-cas", + "version": "v0.9.1", + "version_normalized": "0.9.1.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-cas.git", + "reference": "63b72e4600550c507cdfc32fdd208ad59a64321e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-cas/zipball/63b72e4600550c507cdfc32fdd208ad59a64321e", + "reference": "63b72e4600550c507cdfc32fdd208ad59a64321e", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "simplesamlphp/simplesamlphp-module-ldap": "^0.9", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "time": "2019-12-03T09:03:06+00:00", + "type": "simplesamlphp-module", + "installation-source": "dist", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\cas\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + } + ], + "description": "A module that provides CAS authentication", + "keywords": [ + "cas", + "simplesamlphp" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-cdc", + "version": "v0.9.1", + "version_normalized": "0.9.1.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-cdc.git", + "reference": "16a5bfac7299e04e5feb472af328e07598708166" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-cdc/zipball/16a5bfac7299e04e5feb472af328e07598708166", + "reference": "16a5bfac7299e04e5feb472af328e07598708166", + "shasum": "" + }, + "require": { + "simplesamlphp/composer-module-installer": ">=1.1.6" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "time": "2019-12-03T09:04:11+00:00", + "type": "simplesamlphp-module", + "installation-source": "dist", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\cdc\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olav.morken@uninett.no" + }, + { + "name": "Jaime Perez Crespo", + "email": "jaime.perez@uninett.no" + } + ], + "description": "A SimpleSAMLphp module that allows integration with CDC", + "homepage": "https://simplesamlphp.org/", + "keywords": [ + "cdc", + "simplesamlphp" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-consent", + "version": "v0.9.6", + "version_normalized": "0.9.6.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-consent.git", + "reference": "2f84d15e96afb5a32b6d1cff93370f501ca7867d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-consent/zipball/2f84d15e96afb5a32b6d1cff93370f501ca7867d", + "reference": "2f84d15e96afb5a32b6d1cff93370f501ca7867d", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17", + "webmozart/assert": "<1.7" + }, + "time": "2020-06-15T14:26:23+00:00", + "type": "simplesamlphp-module", + "installation-source": "dist", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\consent\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "lavmrk@gmail.com" + } + ], + "description": "A module that will ask for user consent before releasing attributes", + "keywords": [ + "consent", + "simplesamlphp" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-consentadmin", + "version": "v0.9.1", + "version_normalized": "0.9.1.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-consentadmin.git", + "reference": "466e8d0d751f0080162d78e63ab2e125b24d17a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-consentadmin/zipball/466e8d0d751f0080162d78e63ab2e125b24d17a1", + "reference": "466e8d0d751f0080162d78e63ab2e125b24d17a1", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "simplesamlphp/simplesamlphp-module-consent": "^0.9", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "time": "2019-12-03T09:06:40+00:00", + "type": "simplesamlphp-module", + "extra": { + "ssp-mixedcase-module-name": "consentAdmin" + }, + "installation-source": "dist", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Jacob Christiansen", + "email": "jach@wayf.dk" + }, + { + "name": "Olav Morken", + "email": "olav.morken@uninett.no" + } + ], + "description": "A module that allows users to manage their consent", + "keywords": [ + "consentadmin", + "simplesamlphp" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-discopower", + "version": "v0.9.1", + "version_normalized": "0.9.1.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-discopower.git", + "reference": "006c0617610f1bae11cf4d17e8ce4c509239a60e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-discopower/zipball/006c0617610f1bae11cf4d17e8ce4c509239a60e", + "reference": "006c0617610f1bae11cf4d17e8ce4c509239a60e", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "time": "2019-11-27T20:34:37+00:00", + "type": "simplesamlphp-module", + "installation-source": "dist", + "autoload": { + "psr-4": { + "SimpleSAML\\modules\\discopower\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + } + ], + "description": "Fancy tabbed discovery service with filtering capabilities where SPs can have different sets of metadata listed", + "keywords": [ + "discopower", + "discovery", + "simplesamlphp" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-exampleattributeserver", + "version": "v1.0.0", + "version_normalized": "1.0.0.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-exampleattributeserver.git", + "reference": "63e0323e81c32bc3c9eaa01ea45194bb10153708" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-exampleattributeserver/zipball/63e0323e81c32bc3c9eaa01ea45194bb10153708", + "reference": "63e0323e81c32bc3c9eaa01ea45194bb10153708", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "time": "2019-05-28T12:37:15+00:00", + "type": "simplesamlphp-module", + "installation-source": "dist", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\exampleattributeserver\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + } + ], + "description": "An example for SAML attributes queries", + "keywords": [ + "exampleattributeserver", + "simplesamlphp" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-expirycheck", + "version": "v0.9.3", + "version_normalized": "0.9.3.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-expirycheck.git", + "reference": "59c59cdf87e2679257b46c07bb4c27666a11cc20" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-expirycheck/zipball/59c59cdf87e2679257b46c07bb4c27666a11cc20", + "reference": "59c59cdf87e2679257b46c07bb4c27666a11cc20", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.10" + }, + "time": "2019-12-14T13:20:46+00:00", + "type": "simplesamlphp-module", + "installation-source": "dist", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\expirycheck\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Alex Mihičinac", + "email": "alexm@arnes.si" + } + ], + "description": "The expirycheck module validates user's expiry date", + "keywords": [ + "expirycheck", + "simplesamlphp" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-ldap", + "version": "v0.9.8", + "version_normalized": "0.9.8.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-ldap.git", + "reference": "49c1f5854a6ff33d24f4562533f72c2fdf3c5149" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-ldap/zipball/49c1f5854a6ff33d24f4562533f72c2fdf3c5149", + "reference": "49c1f5854a6ff33d24f4562533f72c2fdf3c5149", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "suggest": { + "ext-ldap": "Needed when using LDAP authentication in SimpleSAMLphp" + }, + "time": "2020-05-26T08:41:54+00:00", + "type": "simplesamlphp-module", + "installation-source": "dist", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\ldap\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + }, + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "description": "A module that provides authentication against LDAP stores", + "keywords": [ + "ldap", + "simplesamlphp" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-memcachemonitor", + "version": "v0.9.1", + "version_normalized": "0.9.1.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-memcachemonitor.git", + "reference": "0e08e87707cd7b1fb91bbcf65cc454d8849571b0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-memcachemonitor/zipball/0e08e87707cd7b1fb91bbcf65cc454d8849571b0", + "reference": "0e08e87707cd7b1fb91bbcf65cc454d8849571b0", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "~0.0.6" + }, + "time": "2019-12-03T09:19:35+00:00", + "type": "simplesamlphp-module", + "extra": { + "ssp-mixedcase-module-name": "memcacheMonitor" + }, + "installation-source": "dist", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + }, + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "description": "A module that is able display usage statistics of a memcache(d) store", + "keywords": [ + "memcachemonitor", + "simplesamlphp" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-memcookie", + "version": "v1.2.2", + "version_normalized": "1.2.2.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-memcookie.git", + "reference": "39535304e8d464b7baa1e82cb441fa432947ff57" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-memcookie/zipball/39535304e8d464b7baa1e82cb441fa432947ff57", + "reference": "39535304e8d464b7baa1e82cb441fa432947ff57", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": ">=1.1.6" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.6" + }, + "time": "2019-08-08T18:33:47+00:00", + "type": "simplesamlphp-module", + "installation-source": "dist", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olav.morken@uninett.no" + }, + { + "name": "Jaime Perez Crespo", + "email": "jaime.perez@uninett.no" + } + ], + "description": "A SimpleSAMLphp module that allows integration with Auth MemCookie, allowing web applications written in other languages than PHP to integrate with SimpleSAMLphp.", + "homepage": "https://simplesamlphp.org/", + "keywords": [ + "Auth MemCookie", + "apache", + "cookies", + "simplesamlphp" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-metarefresh", + "version": "v0.9.5", + "version_normalized": "0.9.5.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-metarefresh.git", + "reference": "d26eef96c8b6dd849ed3ca430450f8543163a47b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-metarefresh/zipball/d26eef96c8b6dd849ed3ca430450f8543163a47b", + "reference": "d26eef96c8b6dd849ed3ca430450f8543163a47b", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.18" + }, + "time": "2020-06-15T15:16:25+00:00", + "type": "simplesamlphp-module", + "installation-source": "dist", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\metarefresh\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + } + ], + "description": "The metarefresh module will download and parse metadata documents and store them locally", + "keywords": [ + "metarefresh", + "simplesamlphp" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-negotiate", + "version": "v0.9.5", + "version_normalized": "0.9.5.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-negotiate.git", + "reference": "6bbbbf798ab05ac20625b0c9cf4f8d80bd0875c3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-negotiate/zipball/6bbbbf798ab05ac20625b0c9cf4f8d80bd0875c3", + "reference": "6bbbbf798ab05ac20625b0c9cf4f8d80bd0875c3", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "simplesamlphp/simplesamlphp-module-ldap": "^0.9", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "suggest": { + "ext-krb5": "Needed in case the SimpleSAMLphp negotiate module is used" + }, + "time": "2020-02-27T16:11:42+00:00", + "type": "simplesamlphp-module", + "installation-source": "dist", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\negotiate\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + } + ], + "description": "The Negotiate module implements Microsofts Kerberos SPNEGO mechanism", + "keywords": [ + "negotiate", + "simplesamlphp" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-oauth", + "version": "v0.9.2", + "version_normalized": "0.9.2.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-oauth.git", + "reference": "d14d7aca6e699ec12b3f4dd0128373faa1a2cc61" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-oauth/zipball/d14d7aca6e699ec12b3f4dd0128373faa1a2cc61", + "reference": "d14d7aca6e699ec12b3f4dd0128373faa1a2cc61", + "shasum": "" + }, + "require": { + "simplesamlphp/composer-module-installer": ">=1.1.6" + }, + "require-dev": { + "phpunit/phpunit": "~4.8.36", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "time": "2020-04-29T19:37:43+00:00", + "type": "simplesamlphp-module", + "installation-source": "dist", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olav.morken@uninett.no" + }, + { + "name": "Jaime Perez Crespo", + "email": "jaime.perez@uninett.no" + } + ], + "description": "A SimpleSAMLphp module that allows integration with OAuth1,", + "homepage": "https://simplesamlphp.org/", + "keywords": [ + "oauth1", + "simplesamlphp" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-preprodwarning", + "version": "v0.9.2", + "version_normalized": "0.9.2.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-preprodwarning.git", + "reference": "8e032de33a75eb44857dc06d886ad94ee3af4638" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-preprodwarning/zipball/8e032de33a75eb44857dc06d886ad94ee3af4638", + "reference": "8e032de33a75eb44857dc06d886ad94ee3af4638", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17", + "webmozart/assert": "^1.4" + }, + "time": "2020-04-09T13:05:27+00:00", + "type": "simplesamlphp-module", + "installation-source": "dist", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\preprodwarning\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + } + ], + "description": "Display a warning when using a pre-production environment", + "keywords": [ + "preprodwarning", + "simplesamlphp" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-radius", + "version": "v0.9.3", + "version_normalized": "0.9.3.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-radius.git", + "reference": "36bd0f39f9a13f7eb96ead97c97c3634aa1c3f2d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-radius/zipball/36bd0f39f9a13f7eb96ead97c97c3634aa1c3f2d", + "reference": "36bd0f39f9a13f7eb96ead97c97c3634aa1c3f2d", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.7" + }, + "time": "2019-10-03T18:13:07+00:00", + "type": "simplesamlphp-module", + "installation-source": "dist", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\radius\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + } + ], + "description": "A module that is able perform authentication against a RADIUS server", + "keywords": [ + "radius", + "simplesamlphp" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-riak", + "version": "v0.9.1", + "version_normalized": "0.9.1.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-riak.git", + "reference": "c1a9d9545cb4e05b9205b34624850bb777aca991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-riak/zipball/c1a9d9545cb4e05b9205b34624850bb777aca991", + "reference": "c1a9d9545cb4e05b9205b34624850bb777aca991", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "phpfastcache/riak-client": "^3.4", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "time": "2019-12-03T08:28:45+00:00", + "type": "simplesamlphp-module", + "installation-source": "dist", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\riak\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "description": "A module that is able to store key/value pairs in a Riak store", + "keywords": [ + "riak", + "simplesamlphp" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-sanitycheck", + "version": "v0.9.1", + "version_normalized": "0.9.1.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-sanitycheck.git", + "reference": "15d6664eae73a233c3c4c72fd8a5c2be72b6ed2a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-sanitycheck/zipball/15d6664eae73a233c3c4c72fd8a5c2be72b6ed2a", + "reference": "15d6664eae73a233c3c4c72fd8a5c2be72b6ed2a", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "time": "2020-05-07T11:34:29+00:00", + "type": "simplesamlphp-module", + "installation-source": "dist", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\sanitycheck\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + } + ], + "description": "Perform sanity checks on configuration", + "keywords": [ + "sanitycheck", + "simplesamlphp" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-smartattributes", + "version": "v0.9.1", + "version_normalized": "0.9.1.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-smartattributes.git", + "reference": "b45d3ecd916e359a9cae05f9ae9df09b5c42f4e6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-smartattributes/zipball/b45d3ecd916e359a9cae05f9ae9df09b5c42f4e6", + "reference": "b45d3ecd916e359a9cae05f9ae9df09b5c42f4e6", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "time": "2019-12-03T09:24:09+00:00", + "type": "simplesamlphp-module", + "installation-source": "dist", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\smartattributes\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + } + ], + "description": "The SmartAttributes module provides additional authentication processing filters to manipulate attributes.", + "keywords": [ + "simplesamlphp", + "smartattributes" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-sqlauth", + "version": "v0.9.1", + "version_normalized": "0.9.1.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-sqlauth.git", + "reference": "31bce8763ad97f4b4473e4ad4a5a96ddc136ef6b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-sqlauth/zipball/31bce8763ad97f4b4473e4ad4a5a96ddc136ef6b", + "reference": "31bce8763ad97f4b4473e4ad4a5a96ddc136ef6b", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17", + "webmozart/assert": "^1.4" + }, + "time": "2019-12-03T09:07:09+00:00", + "type": "simplesamlphp-module", + "installation-source": "dist", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\sqlauth\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + } + ], + "description": "This is a authentication module for authenticating a user against a SQL database", + "keywords": [ + "simplesamlphp", + "sqlauth" + ] + }, + { + "name": "simplesamlphp/simplesamlphp-module-statistics", + "version": "v0.9.4", + "version_normalized": "0.9.4.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-statistics.git", + "reference": "1bb1e46921d8dc84707bc9cd3c307c8abd723ac7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-statistics/zipball/1bb1e46921d8dc84707bc9cd3c307c8abd723ac7", + "reference": "1bb1e46921d8dc84707bc9cd3c307c8abd723ac7", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "webmozart/assert": "^1.4" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.12" + }, + "time": "2019-12-03T08:42:27+00:00", + "type": "simplesamlphp-module", + "installation-source": "dist", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\statistics\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + } + ], + "description": "The SimpleSAMLphp statistics module", + "keywords": [ + "simplesamlphp", + "statistics" + ] + }, + { + "name": "simplesamlphp/twig-configurable-i18n", + "version": "v2.2", + "version_normalized": "2.2.0.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/twig-configurable-i18n.git", + "reference": "b036c134157ce40ed66da2fc9d01f63e3b1d3abd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/twig-configurable-i18n/zipball/b036c134157ce40ed66da2fc9d01f63e3b1d3abd", + "reference": "b036c134157ce40ed66da2fc9d01f63e3b1d3abd", + "shasum": "" + }, + "require": { + "twig/extensions": "^1.5" + }, + "require-dev": { + "phpunit/phpunit": "~4.8.36 || ~7.5", + "twig/twig": "^1.37 || ^2.7" + }, + "time": "2019-07-09T08:35:44+00:00", + "type": "project", + "installation-source": "dist", + "autoload": { + "psr-4": { + "SimpleSAML\\TwigConfigurableI18n\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1" + ], + "authors": [ + { + "name": "Jaime Perez", + "email": "jaime.perez@uninett.no" + } + ], + "description": "This is an extension on top of Twig's i18n extension, allowing you to customize which functions to use for translations.", + "keywords": [ + "extension", + "gettext", + "i18n", + "internationalization", + "translation", + "twig" + ] + }, + { + "name": "stack/builder", + "version": "v1.0.5", + "version_normalized": "1.0.5.0", + "source": { + "type": "git", + "url": "https://github.com/stackphp/builder.git", + "reference": "fb3d136d04c6be41120ebf8c0cc71fe9507d750a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/stackphp/builder/zipball/fb3d136d04c6be41120ebf8c0cc71fe9507d750a", + "reference": "fb3d136d04c6be41120ebf8c0cc71fe9507d750a", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "symfony/http-foundation": "~2.1|~3.0|~4.0", + "symfony/http-kernel": "~2.1|~3.0|~4.0" + }, + "require-dev": { + "silex/silex": "~1.0" + }, + "time": "2017-11-18T14:57:29+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-0": { + "Stack": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + } + ], + "description": "Builder for stack middlewares based on HttpKernelInterface.", + "keywords": [ + "stack" + ] + }, + { + "name": "stecman/symfony-console-completion", + "version": "0.8.0", + "version_normalized": "0.8.0.0", + "source": { + "type": "git", + "url": "https://github.com/stecman/symfony-console-completion.git", + "reference": "cd738867503477e91dbe84173dfabd431c883431" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/stecman/symfony-console-completion/zipball/cd738867503477e91dbe84173dfabd431c883431", + "reference": "cd738867503477e91dbe84173dfabd431c883431", + "shasum": "" + }, + "require": { + "php": ">=5.3.2", + "symfony/console": "~2.3 || ~3.0 || ~4.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.8.36 || ~5.7 || ~6.4" + }, + "time": "2018-02-10T04:28:01+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.6.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Stecman\\Component\\Symfony\\Console\\BashCompletion\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Stephen Holdaway", + "email": "stephen@stecman.co.nz" + } + ], + "description": "Automatic BASH completion for Symfony Console Component based applications." + }, + { + "name": "symfony-cmf/routing", + "version": "1.4.1", + "version_normalized": "1.4.1.0", + "source": { + "type": "git", + "url": "https://github.com/symfony-cmf/routing.git", + "reference": "fb1e7f85ff8c6866238b7e73a490a0a0243ae8ac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony-cmf/routing/zipball/fb1e7f85ff8c6866238b7e73a490a0a0243ae8ac", + "reference": "fb1e7f85ff8c6866238b7e73a490a0a0243ae8ac", + "shasum": "" + }, + "require": { + "php": "^5.3.9|^7.0", + "psr/log": "1.*", + "symfony/http-kernel": "^2.2|3.*", + "symfony/routing": "^2.2|3.*" + }, + "require-dev": { + "friendsofsymfony/jsrouting-bundle": "^1.1", + "symfony-cmf/testing": "^1.3", + "symfony/config": "^2.2|3.*", + "symfony/dependency-injection": "^2.0.5|3.*", + "symfony/event-dispatcher": "^2.1|3.*" + }, + "suggest": { + "symfony/event-dispatcher": "DynamicRouter can optionally trigger an event at the start of matching. Minimal version (~2.1)" + }, + "time": "2017-05-09T08:10:41+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Cmf\\Component\\Routing\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony CMF Community", + "homepage": "https://github.com/symfony-cmf/Routing/contributors" } ], "description": "Extends the Symfony2 routing component for dynamic routes and chaining several routers", @@ -11876,17 +13454,17 @@ }, { "name": "symfony/config", - "version": "v3.4.14", - "version_normalized": "3.4.14.0", + "version": "v3.4.42", + "version_normalized": "3.4.42.0", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "7b08223b7f6abd859651c56bcabf900d1627d085" + "reference": "cd61db31cbd19cbe4ba9f6968f13c9076e1372ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/7b08223b7f6abd859651c56bcabf900d1627d085", - "reference": "7b08223b7f6abd859651c56bcabf900d1627d085", + "url": "https://api.github.com/repos/symfony/config/zipball/cd61db31cbd19cbe4ba9f6968f13c9076e1372ab", + "reference": "cd61db31cbd19cbe4ba9f6968f13c9076e1372ab", "shasum": "" }, "require": { @@ -11907,7 +13485,7 @@ "suggest": { "symfony/yaml": "To use the yaml reference dumper" }, - "time": "2018-07-26T11:19:56+00:00", + "time": "2020-05-22T10:56:48+00:00", "type": "library", "extra": { "branch-alias": { @@ -12326,24 +13904,24 @@ }, { "name": "symfony/filesystem", - "version": "v3.4.14", - "version_normalized": "3.4.14.0", + "version": "v3.4.42", + "version_normalized": "3.4.42.0", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "a59f917e3c5d82332514cb4538387638f5bde2d6" + "reference": "0f625d0cb1e59c8c4ba61abb170125175218ff10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/a59f917e3c5d82332514cb4538387638f5bde2d6", - "reference": "a59f917e3c5d82332514cb4538387638f5bde2d6", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/0f625d0cb1e59c8c4ba61abb170125175218ff10", + "reference": "0f625d0cb1e59c8c4ba61abb170125175218ff10", "shasum": "" }, "require": { "php": "^5.5.9|>=7.0.8", "symfony/polyfill-ctype": "~1.8" }, - "time": "2018-07-26T11:19:56+00:00", + "time": "2020-05-30T17:48:24+00:00", "type": "library", "extra": { "branch-alias": { @@ -13834,34 +15412,32 @@ }, { "name": "webmozart/assert", - "version": "1.4.0", - "version_normalized": "1.4.0.0", + "version": "1.9.1", + "version_normalized": "1.9.1.0", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9" + "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9", - "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9", + "url": "https://api.github.com/repos/webmozart/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", + "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0", + "php": "^5.3.3 || ^7.0 || ^8.0", "symfony/polyfill-ctype": "^1.8" }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<3.9.1" + }, "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" + "phpunit/phpunit": "^4.8.36 || ^7.5.13" }, - "time": "2018-12-25T11:19:39+00:00", + "time": "2020-07-08T17:02:28+00:00", "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, "installation-source": "dist", "autoload": { "psr-4": { diff --git a/vendor/phpfastcache/riak-client/.gitattributes b/vendor/phpfastcache/riak-client/.gitattributes new file mode 100644 index 0000000000000000000000000000000000000000..c7586b6c3e3b18553a638adfb501d5b6aead10df --- /dev/null +++ b/vendor/phpfastcache/riak-client/.gitattributes @@ -0,0 +1,11 @@ +* text=auto + +*.php text eol=lf +*.yml text eol=lf +*.xml text eol=lf +*.md text eol=lf + +*.png binary +*.jpg binary +*.gif binary +*.ico binary diff --git a/vendor/phpfastcache/riak-client/.gitignore b/vendor/phpfastcache/riak-client/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..04c2dde4480ad9ab513e6b43d9c90542baa2411a --- /dev/null +++ b/vendor/phpfastcache/riak-client/.gitignore @@ -0,0 +1,31 @@ +# Created by .gitignore support plugin (hsz.mobi) +## JetBrains IDE project directory +.idea/ + +## File-based project format +*.ipr +*.iws + +## Additional for IntelliJ +out/ + +# generated by mpeltonen/sbt-idea plugin +.idea_modules/ + +# generated by JIRA plugin +atlassian-ide-plugin.xml + +# generated by Crashlytics plugin (for Android Studio and Intellij) +com_crashlytics_export_strings.xml + +# ignore composer vendor directory and lock file +vendor +composer.lock + +# ignore mac files +.DS_Store/ + +docs + +composer +composer.phar diff --git a/vendor/phpfastcache/riak-client/.gitmodules b/vendor/phpfastcache/riak-client/.gitmodules new file mode 100644 index 0000000000000000000000000000000000000000..7181e9dd759bf224f04b33cff3c802c2d358a580 --- /dev/null +++ b/vendor/phpfastcache/riak-client/.gitmodules @@ -0,0 +1,3 @@ +[submodule "tools"] + path = tools + url = https://github.com/basho/riak-client-tools diff --git a/vendor/phpfastcache/riak-client/.travis.yml b/vendor/phpfastcache/riak-client/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..9e9c16fdb8fb690e3e77efb24ef3522a401db7dc --- /dev/null +++ b/vendor/phpfastcache/riak-client/.travis.yml @@ -0,0 +1,29 @@ +language: php +php: +- 5.4 +- 5.5 +- 5.6 +- 7.0 +- 7.1 +sudo: required +dist: trusty +addons: + hosts: + - riak-test +env: + - RIAK_DOWNLOAD_URL=http://s3.amazonaws.com/downloads.basho.com/riak/2.0/2.0.7/ubuntu/trusty/riak_2.0.7-1_amd64.deb + - RIAK_DOWNLOAD_URL=http://s3.amazonaws.com/downloads.basho.com/riak/2.2/2.2.0/ubuntu/trusty/riak_2.2.0-1_amd64.deb +before_script: + - phpenv config-rm xdebug.ini || echo 'xdebug.ini not installed' + - composer self-update + - composer install --prefer-source + - sudo ./tools/travis-ci/riak-install -d "$RIAK_DOWNLOAD_URL" + - sudo ./tools/setup-riak -s +script: + - sudo riak-admin security disable + - make test + - sudo riak-admin security enable + - make security-test +notifications: + slack: + secure: ZtgcjTxhTxrzWW6MIHLRtucW/BMm42RKS3nGRtSfgER9rx7oJ0Y9gOYkh1FM0GsM7Z11Q/iDhWs/8WTccAV0PrMZ6KHaq54wGmfYyqwPM4YreUwQ87PnOW4wZbl0TJTeWutasEwZvnVJ8VEyyQcS2PHt0zlsENn0XWvobvaZ+FM= diff --git a/vendor/phpfastcache/riak-client/CONTRIBUTING.md b/vendor/phpfastcache/riak-client/CONTRIBUTING.md new file mode 100644 index 0000000000000000000000000000000000000000..73b41bb868faa35b98e8c2428e45087464d0c997 --- /dev/null +++ b/vendor/phpfastcache/riak-client/CONTRIBUTING.md @@ -0,0 +1,118 @@ +##Contributing + +This repo's maintainers are engineers at Basho and we welcome your contribution to the project! + +### An honest disclaimer + +Due to our obsession with stability and our rich ecosystem of users, community updates on this repo may take a little longer to review. + +The most helpful way to contribute is by reporting your experience through issues. Issues may not be updated while we review internally, but they're still incredibly appreciated. + +Thank you for being part of the community! We love you for it. + +## Helping through sample code + +The most immediately helpful way you can benefit this project is by forking the repo, **adding further [examples](/examples)** and submitting a pull request. + +## How-to contribute to the PHP client + +**_IMPORTANT_**: This is an open source project licensed under the Apache 2.0 License. We encourage contributions to the project from the community. We ask that you keep in mind these considerations when planning your contribution. + +* Whether your contribution is for a bug fix or a feature request, **create an [Issue](https://github.com/basho/riak-php-client/issues)** and let us know what you are thinking. +* **For bugs**, if you have already found a fix, feel free to submit a Pull Request referencing the Issue you created. +* **For feature requests**, we want to improve upon the library incrementally which means small changes at a time. In order ensure your PR can be reviewed in a timely manner, please keep PRs small, e.g. <10 files and <500 lines changed. If you think this is unrealistic, then mention that within the Issue and we can discuss it. +* Before you open the PR, please review the following regarding Coding Standards, Docblock comments and unit / integration tests to reduce delays in getting your changes approved. + +### Pull Request Process + +Here's how to get started: + +* Fork the appropriate sub-projects that are affected by your change. +* Create a topic branch for your change and checkout that branch. + `git checkout -b some-topic-branch` +* Make your changes and run the test suite if one is provided. (see below) +* Commit your changes and push them to your fork. +* Open pull requests for the appropriate projects. +* Contributors will review your pull request, suggest changes, and merge it when it's ready and/or offer feedback. + +### Coding Standards +Here are the standards we expect to see when considering pull requests + +* [PSR-2 Coding Style Guide](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md) +* [PHP / Pear Docblock Guide](http://pear.php.net/manual/en/standards.sample.php) +* [PHPUnit Tests](https://phpunit.de/manual/current/en/phpunit-book.html) +* Please suffix all Interfaces and Traits with the descriptors Interface and Trait, e.g. `ObjectInterface` & `ObjectTrait` + +### Docblock Comments +It is expected that any new code is updated with a reasonable docblock comment. + +This includes: + +* Short & long descriptions (where appropriate) for all classes and all class members, properties and constants. +* Please add code examples where it makes sense using the `<code>` tag. +* A `@author` tag need to be included on all new classes. +* A `@var` tag on every class property +* A `@param` tag for every parameter on a class method +* A `@return` tag for every class method that returns a value +* A `@throws` tag for every method that has a thrown execution within it + +Here is an example of a class docblock: +```php +/** + * A more elaborate description of what this class does. It may include warnings, limitations or examples. + * + * <code> + * $nodes = (new Node\Builder) + * ->atHost('localhost') + * ->onPort(8098) + * ->build() + * + * $riak = new Riak($nodes); + * </code> + * + * @author Author Name <author@domain.com> + */ +``` + +It is not necessary to add short / long descriptions to simple getters & setters. Use the `@since` tag where appropriate. + +### Tests +We want to ensure that all code that is included in a release has proper coverage with unit tests. It is expected that +all pull requests that include new classes or class methods have appropriate unit tests included with the PR. + +There are three types of tests that we use, each has been setup within the phpunit.xml within the root of the library and are described below. +<dl> +<dt>Unit Tests</dt> +<dd>Focus is on each unit of work. It is the most verbose as each member of every class should be tested. These tests use mock objects, so they do not require a live Riak instance.</dd> +<dt>Functional Tests</dt> +<dd>Focus is on the functionality the user is likely to regularly execute, e.g. storing an object. These tests will connect to and use a live Riak instance.</dd> +<dt>Scenario Tests</dt> +<dd>Focus is on testing how the library and Riak respond to edge cases, e.g. how it handles when a node becomes unreachable. These tests will connect to and use a live Riak instance.</dd> +</dl> + +#### Running Tests +We also expect that before submitting a pull request, that you have run the tests to ensure that all of them continue to pass after your changes. + +To run the tests, clone this repository and run `composer update` from the repository root, then you can execute all the tests by simply running `php vendor/bin/phpunit`. To execute only a single group of tests, you can use the "testsuite" argument, e.g. `php vendor/bin/phpunit --testsuite 'Unit Tests'`. + +You can execute code coverage analysis along side the test run by appending ` --coverage-text` to the command above. + +Please note, that the Functional and Scenario tests require a live Riak instance to test against. Also, the following bucket types to be created and activated on the Riak instance. If using the [riak-clients-vagrant](https://github.com/basho-labs/riak-clients-vagrant) project, the `integration_testing` role creates these bucket types for you. + +```bash +riak-admin bucket-type create counters '{"props":{"datatype":"counter"}}' +riak-admin bucket-type create sets '{"props":{"datatype":"set"}}' +riak-admin bucket-type create maps '{"props":{"datatype":"map"}}' +riak-admin bucket-type create yokozuna '{"props":{}}' + +riak-admin bucket-type activate counters +riak-admin bucket-type activate sets +riak-admin bucket-type activate maps +riak-admin bucket-type activate yokozuna +``` + +## Thank You + +You can [read the full guidelines for bug reporting and code contributions](http://docs.basho.com/riak/latest/community/bugs/) on the Riak Docs. + +And **thank you!** Your contribution is incredible important to us. diff --git a/vendor/phpfastcache/riak-client/LICENSE b/vendor/phpfastcache/riak-client/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..4947287f7b5ccb5d1e8b7b2d3aa5d89f322c160d --- /dev/null +++ b/vendor/phpfastcache/riak-client/LICENSE @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/vendor/phpfastcache/riak-client/Makefile b/vendor/phpfastcache/riak-client/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..09c49c2608e2ec97b7469388175b6585ef2e984f --- /dev/null +++ b/vendor/phpfastcache/riak-client/Makefile @@ -0,0 +1,57 @@ +.PHONY: all unit-test integration-test security-test +.PHONY: install-composer install-deps help +.PHONY: release + +all: test + +test: unit-test integration-test scenario-test + +unit-test: + @php ./vendor/bin/phpunit --testsuite=unit-tests + +integration-test: + @php ./vendor/bin/phpunit --testsuite=functional-tests + +security-test: + @php ./vendor/bin/phpunit --testsuite=security-tests + +scenario-test: + @php ./vendor/bin/phpunit --testsuite=scenario-tests + +timeseries-test: + @php ./vendor/bin/phpunit tests/functional/TimeSeriesOperationsTest.php + +install-deps: + @./composer install + +install-composer: + @rm -f ./composer.phar ./composer + @php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" + @php ./composer-setup.php --filename=composer + @rm -f ./composer-setup.php + +release: +ifeq ($(VERSION),) + $(error VERSION must be set to deploy this code) +endif +ifeq ($(RELEASE_GPG_KEYNAME),) + $(error RELEASE_GPG_KEYNAME must be set to deploy this code) +endif + @./tools/build/publish $(VERSION) master validate + @git tag --sign -a "$(VERSION)" -m "riak-php-client $(VERSION)" --local-user "$(RELEASE_GPG_KEYNAME)" + @git push --tags + @./tools/build/publish $(VERSION) master 'Riak PHP Client' 'riak-php-client' + +help: + @echo '' + @echo ' Targets:' + @echo '-----------------------------------------------------------------' + @echo ' all - Run all tests ' + @echo ' install-deps - Install required dependencies ' + @echo ' install-composer - Installs composer ' + @echo ' test - Run unit & integration tests ' + @echo ' unit-test - Run unit tests ' + @echo ' integration-test - Run integration tests ' + @echo ' security-test - Run security tests ' + @echo '-----------------------------------------------------------------' + @echo '' diff --git a/vendor/phpfastcache/riak-client/README.md b/vendor/phpfastcache/riak-client/README.md new file mode 100644 index 0000000000000000000000000000000000000000..d6a87c2dbab0282608efc1fc6f106b24c7ebb65a --- /dev/null +++ b/vendor/phpfastcache/riak-client/README.md @@ -0,0 +1,110 @@ +# Riak Client for PHP (PhpFastCache Fork) +#### (Fork of the official basho/riak due to maintainer significant inactivity) + +[](https://packagist.org/packages/phpfastcache/riak-client) + +**Riak PHP Client** is a library which makes it easy to communicate with [Riak](http://basho.com/riak/), an open source, distributed database that focuses on high availability, horizontal scalability, and *predictable* +latency. This library communicates with Riak's HTTP interface using the cURL extension. If you want to communicate with Riak using the Protocol Buffers interface, use the [Official PHP PB Client](https://github.com/basho/riak-phppb-client). Both Riak and this library are maintained by [Basho Technologies](http://www.basho.com/). + +To see other clients available for use with Riak visit our [Documentation Site](http://docs.basho.com/riak/latest/dev/using/libraries) + + +1. [Installation](#installation) +1. [Documentation](#documentation) +1. [Contributing](#contributing) + * [An honest disclaimer](#an-honest-disclaimer) +1. [Roadmap](#roadmap) +1. [License and Authors](#license-and-authors) + + +## Installation + +### Dependencies +- PHP 5.4+ (Up to PHP 7.2 with the 1.4.4 update provided by PhpFastCache) +- PHP Extensions: curl, json and openssl [required for security features] +- Riak 2.1+ +- [Composer PHP Dependency Manager](https://getcomposer.org/) + +### Composer Install + +This library has been added to [Packagist](https://packagist.org/packages/phpfastcache/) to simplify the installation process. Run the following [composer](https://getcomposer.org/) command: + +```console +$ composer require "phpfastcache/riak-client": "^1.4.4" +``` + +Alternately, manually add the following to your `composer.json`, in the `require` section: + +```javascript +"require": { + "phpfastcache/riak-client": "^1.4.4" +} +``` + +And then run `composer update` to ensure the module is installed. + +## Documentation + +* Master: [](http://travis-ci.org/basho/riak-php-client) + +A fully traversable version of the API documentation for this library can be found on [Github Pages](http://basho.github.io/riak-php-client). + +### Example Usage + +Below is a short example of using the client. More substantial sample code is available [in examples](/examples). + +```php +// lib classes are included via the Composer autoloader files +use Basho\Riak; +use Basho\Riak\Node; +use Basho\Riak\Command; + +// define the connection info to our Riak nodes +$nodes = (new Node\Builder) + ->onPort(10018) + ->buildCluster(['riak1.company.com', 'riak2.company.com', 'riak3.company.com',]); + +// instantiate the Riak client +$riak = new Riak($nodes); + +// build a command to be executed against Riak +$command = (new Command\Builder\StoreObject($riak)) + ->buildObject('some_data') + ->buildBucket('users') + ->build(); + +// Receive a response object +$response = $command->execute(); + +// Retrieve the Location of our newly stored object from the Response object +$object_location = $response->getLocation(); +``` + +## Contributing + +This repo's maintainers are engineers at Basho and we welcome your contribution to the project! You can start by reviewing [CONTRIBUTING.md](CONTRIBUTING.md) for information on everything from testing to coding standards. + +### An honest disclaimer + +Due to our obsession with stability and our rich ecosystem of users, community updates on this repo may take a little longer to review. + +The most helpful way to contribute is by reporting your experience through issues. Issues may not be updated while we review internally, but they're still incredibly appreciated. + +Thank you for being part of the community! We love you for it. + +## Roadmap + +* Current develop & master branches contain feature support for Riak version 2.1+ +* Add support for Riak TS Q2 2016 + +## License and Authors + +### Active authors +* Author: Georges.L (https://github.com/Geolim4) + +### Former authors +* Author: Christopher Mancini (https://github.com/christophermancini) +* Author: Alex Moore (https://github.com/alexmoore) +* Author: Luke Bakken (https://github.com/lukebakken) + +Copyright (c) 2015 Basho Technologies, Inc. Licensed under the Apache License, Version 2.0 (the "License"). For more details, see [License](License). diff --git a/vendor/phpfastcache/riak-client/RELNOTES.md b/vendor/phpfastcache/riak-client/RELNOTES.md new file mode 100644 index 0000000000000000000000000000000000000000..9ac206c3d23c9db821311e88e07a6b0f4b619815 --- /dev/null +++ b/vendor/phpfastcache/riak-client/RELNOTES.md @@ -0,0 +1,9 @@ +Release Notes +============= + +* [`3.3.0`] + * Add support for Riak TS 1.5 BLOB fields +* [`3.2.0`](https://github.com/basho/riak-php-client/issues?q=milestone%3Ariak-php-client-3.2.0) +* [`3.1.0`] + * Created RELNOTES.md file + * Added support for Riak TS 1.3 diff --git a/vendor/phpfastcache/riak-client/apigen.neon b/vendor/phpfastcache/riak-client/apigen.neon new file mode 100644 index 0000000000000000000000000000000000000000..4f715178ab494094dd16da114b297edbfc76be13 --- /dev/null +++ b/vendor/phpfastcache/riak-client/apigen.neon @@ -0,0 +1,13 @@ +# execute from the root directory +# ./vendor/bin/apigen generate +source: src + +destination: ../docs/riak-php-client + +templateTheme: bootstrap + +title: Official Riak Client for PHP + +tree: true + +baseUrl: https://basho.github.io/riak-php-client/ \ No newline at end of file diff --git a/vendor/phpfastcache/riak-client/composer.json b/vendor/phpfastcache/riak-client/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..f936919308759bcfa277e222b9739010d4d54a6b --- /dev/null +++ b/vendor/phpfastcache/riak-client/composer.json @@ -0,0 +1,60 @@ +{ + "name": "phpfastcache/riak-client", + "description": "Riak client for PHP (Fork of the official basho/riak due to maintainer significant inactivity)", + "type": "library", + "keywords": [ + "basho", + "riak", + "client", + "driver", + "database", + "nosql", + "kv", + "datatype", + "crdt", + "data" + ], + "homepage": "https://github.com/PHPSocialNetwork/riak-php-client", + "license": "Apache-2.0", + "authors": [ + { + "name": "Georges.L", + "email": "contact@geolim4.com", + "homepage": "https://github.com/Geolim4", + "role": "Maintainer" + }, + { + "name": "Christopher Mancini", + "email": "cmancini@basho.com", + "homepage": "https://github.com/christophermancini", + "role": "Former Lead Developer" + }, + { + "name": "Alex Moore", + "email": "amoore@basho.com", + "homepage": "https://github.com/alexmoore", + "role": "Former Developer" + } + ], + "autoload": { + "psr-4": {"Basho\\": "src/"} + }, + "autoload-dev": { + "psr-4": {"Basho\\Tests\\": "tests/"} + }, + "support": { + "issues": "https://github.com/PHPSocialNetwork/riak-php-client/issues" + }, + "conflict": { + "basho/riak": "*" + }, + "require": { + "php": ">=5.4", + "ext-json": "*", + "ext-curl": "*" + }, + "require-dev": { + "phpunit/phpunit": "4.8.*", + "apigen/apigen": "4.1.*" + } +} diff --git a/vendor/phpfastcache/riak-client/examples/MapDataModel.php b/vendor/phpfastcache/riak-client/examples/MapDataModel.php new file mode 100644 index 0000000000000000000000000000000000000000..38eb49e0e5d7441eb6cc6ee8af91d24f018e154e --- /dev/null +++ b/vendor/phpfastcache/riak-client/examples/MapDataModel.php @@ -0,0 +1,246 @@ +<?php + +require __DIR__ . '/../vendor/autoload.php'; + +use Basho\Riak; + +class User +{ + /** + * @var Riak $riak + */ + private $riak = null; + + /** + * @var Riak\DataType\Map $data + */ + private $data = null; + + /** + * @var Riak\Bucket $bucket + */ + private $bucket; + + /** + * @var Riak\Location $location + */ + private $location; + + /** + * @var string $first_name + */ + private $first_name; + + /** + * @var string $last_name + */ + private $last_name; + + public function __construct(Riak $riak, $first_name, $last_name) + { + $this->riak = $riak; + $this->bucket = new Riak\Bucket('users', 'maps'); + $this->first_name = $first_name; + $this->last_name = $last_name; + $this->location = new Riak\Location(sprintf('%s_%s', $first_name, $last_name), $this->bucket); + } + + public function __toString() + { + return json_encode([ + 'first_name' => $this->first_name, + 'last_name' => $this->last_name, + 'interests' => $this->getInterests(), + 'visits' => $this->getVisitCount(), + 'paid_account' => $this->getPaidAccount() + ]); + } + + public function getInterests() + { + return $this->getData()->getSet('interests')->getData(); + } + + private function getData() + { + $response = (new Riak\Command\Builder\FetchMap($this->riak)) + ->atLocation($this->location) + ->build() + ->execute(); + + if ($response->isSuccess()) { + $this->data = $response->getMap(); + } elseif ($response->isNotFound()) { + $this->data = $this->init(); + } else { + throw new Exception('Unknown error: ' . $response->getStatusCode()); + } + + return $this->data; + } + + private function init() + { + $response = (new Riak\Command\Builder\UpdateMap($this->riak)) + ->updateRegister('first_name', $this->first_name) + ->updateRegister('last_name', $this->last_name) + ->updateFlag('paid_account', false) + ->atLocation($this->location) + ->withParameter('returnbody', 'true') + ->build() + ->execute(); + + return $response->getMap(); + } + + public function getVisitCount() + { + return $this->getData()->getCounter('visits')->getData(); + } + + public function getPaidAccount() + { + return $this->getData()->getFlag('paid_account'); + } + + public function addInterests(array $interests) + { + $updateSetBuilder = (new Riak\Command\Builder\UpdateSet($this->riak)); + foreach ($interests as $interest) { + $updateSetBuilder->add($interest); + } + + $response = (new Riak\Command\Builder\UpdateMap($this->riak)) + ->atLocation($this->location) + ->updateSet('interests', $updateSetBuilder) + ->withParameter('returnbody', 'true') + ->build() + ->execute(); + + if ($response->isSuccess()) { + $this->data = $response->getMap(); + } + + return $this; + } + + public function addInterest($interest) + { + $updateSetBuilder = (new Riak\Command\Builder\UpdateSet($this->riak))->add($interest); + + $response = (new Riak\Command\Builder\UpdateMap($this->riak)) + ->atLocation($this->location) + ->updateSet('interests', $updateSetBuilder) + ->withParameter('returnbody', 'true') + ->build() + ->execute(); + + if ($response->isSuccess()) { + $this->data = $response->getMap(); + } + + return $this; + } + + public function removeInterest($interest) + { + $updateSetBuilder = (new Riak\Command\Builder\UpdateSet($this->riak))->remove($interest); + + $response = (new Riak\Command\Builder\UpdateMap($this->riak)) + ->atLocation($this->location) + ->updateSet('interests', $updateSetBuilder) + ->withParameter('returnbody', 'true') + ->withContext($this->data->getContext()) + ->build() + ->execute(); + + if ($response->isSuccess()) { + $this->data = $response->getMap(); + } + + return $this; + } + + public function recordVisit() + { + $updateCounterBuilder = (new Riak\Command\Builder\IncrementCounter($this->riak)) + ->withIncrement(1); + + $response = (new Riak\Command\Builder\UpdateMap($this->riak)) + ->updateCounter('visits', $updateCounterBuilder) + ->atLocation($this->location) + ->withParameter('returnbody', 'true') + ->build() + ->execute(); + + if ($response->isSuccess()) { + $this->data = $response->getMap(); + } + + return $this; + } + + public function upgradeAccount() + { + $response = (new Riak\Command\Builder\UpdateMap($this->riak)) + ->updateFlag('paid_account', true) + ->atLocation($this->location) + ->withParameter('returnbody', 'true') + ->build() + ->execute(); + + if ($response->isSuccess()) { + $this->data = $response->getMap(); + } + + return $this; + } + + public function downgradeAccount() + { + $response = (new Riak\Command\Builder\UpdateMap($this->riak)) + ->updateFlag('paid_account', false) + ->atLocation($this->location) + ->withParameter('returnbody', 'true') + ->build() + ->execute(); + + if ($response->isSuccess()) { + $this->data = $response->getMap(); + } + + return $this; + } + + public function getFirstName() + { + return $this->getData()->getRegister('first_name'); + } + + public function getLastName() + { + return $this->getData()->getRegister('last_name'); + } +} + +$riak = new Riak((new Riak\Node\Builder())->buildLocalhost([8087])); + +$iAmBatman = new User($riak, 'Bruce', 'Wayne'); +$iAmBatman->addInterests(['crime fighting', 'climbing stuff']); +// prints json to standard out +echo $iAmBatman; + +//----------------------------------------------------------- + +$joe = (new User($riak, 'Joe', 'Armstrong')) + ->addInterests(['distributed systems', 'Erlang']) + ->recordVisit(); + +var_dump( + $joe->getFirstName(), + $joe->getLastName(), + $joe->getInterests(), + $joe->getVisitCount(), + $joe->recordVisit()->getVisitCount(), + $joe->getPaidAccount() +); diff --git a/vendor/phpfastcache/riak-client/examples/SimpleKV.php b/vendor/phpfastcache/riak-client/examples/SimpleKV.php new file mode 100644 index 0000000000000000000000000000000000000000..07ebbcf18e7284c7ba37f4739481a36f37d4f2fb --- /dev/null +++ b/vendor/phpfastcache/riak-client/examples/SimpleKV.php @@ -0,0 +1,47 @@ +<?php + +require __DIR__ . '/../vendor/autoload.php'; + +use Basho\Riak; +use Basho\Riak\Command; +use Basho\Riak\Node; + +$node = (new Node\Builder) + ->atHost('riak-test') + ->onPort(8098) + ->build(); + +$riak = new Riak([$node]); + +$user = new \StdClass(); +$user->name = 'John Doe'; +$user->email = 'jdoe@example.com'; + +// store a new value +$command = (new Command\Builder\StoreObject($riak)) + ->buildJsonObject($user) + ->buildBucket('users') + ->build(); + +$response = $command->execute(); + +$location = $response->getLocation(); + +$command = (new Command\Builder\FetchObject($riak)) + ->atLocation($location) + ->build(); + +$response = $command->execute(); + +$object = $response->getObject(); + +$object->getData()->country = 'USA'; + +$command = (new Command\Builder\StoreObject($riak)) + ->withObject($object) + ->atLocation($location) + ->build(); + +$response = $command->execute(); + +echo $response->getStatusCode() . PHP_EOL; diff --git a/vendor/phpfastcache/riak-client/examples/TimeSeries.php b/vendor/phpfastcache/riak-client/examples/TimeSeries.php new file mode 100644 index 0000000000000000000000000000000000000000..f2a72f438efe53c1f33cfc618b65cd243af704ab --- /dev/null +++ b/vendor/phpfastcache/riak-client/examples/TimeSeries.php @@ -0,0 +1,183 @@ +<?php + +require __DIR__ . '/../vendor/autoload.php'; + +use Basho\Riak; +use Basho\Riak\Command; +use Basho\Riak\Node; + +$node = (new Node\Builder) + ->atHost('riak-test') + ->onPort(8087) + ->build(); + +$riak = new Riak([$node], [], new Riak\Api\Pb()); + + +# create table +$table_definition = " + CREATE TABLE %s ( + family varchar not null, + series varchar not null, + time timestamp not null, + weather varchar not null, + temperature double, + PRIMARY KEY((family, series, quantum(time, 15, 'm')), family, series, time) + )"; + +$command = (new Command\Builder\TimeSeries\Query($riak)) + ->withQuery(sprintf($table_definition, "GeoCheckins")) + ->build(); + +if (!$response->isSuccess()) { + echo $response->getMessage(); + exit; +} + + +# describe table +$command = (new Command\Builder\TimeSeries\DescribeTable($riak)) + ->withTable('GeoCheckins') + ->build(); + +if (!$response->isSuccess()) { + echo $response->getMessage(); + exit; +} + +foreach ($response->getResults() as $column_index => $column_definition) { + print_r([$column_index => $column_definition]); +} + + +# store a row +$response = (new Command\Builder\TimeSeries\StoreRows($riak)) + ->inTable('GeoCheckins') + ->withRow([ + (new Cell("family"))->setValue("family1"), + (new Cell("series"))->setValue("series1"), + (new Cell("time"))->setTimestampValue(1420113600), + (new Cell("weather"))->setValue("hot"), + (new Cell("temperature"))->setValue(23.5), + ]) + ->build() + ->execute(); + +if (!$response->isSuccess()) { + echo $response->getMessage(); + exit; +} + + +# store rows +$response = (new Command\Builder\TimeSeries\StoreRows($riak)) + ->inTable('GeoCheckins') + ->withRows([ + [ + (new Cell("family"))->setValue("family1"), + (new Cell("series"))->setValue("series1"), + (new Cell("time"))->setTimestampValue(1420115400), + (new Cell("weather"))->setValue("hot"), + (new Cell("temperature"))->setValue(22.4), + ], + [ + (new Cell("family"))->setValue("family1"), + (new Cell("series"))->setValue("series1"), + (new Cell("time"))->setTimestampValue(1420117200), + (new Cell("weather"))->setValue("warm"), + (new Cell("temperature"))->setValue(20.5), + ], + ]) + ->build() + ->execute(); + +if (!$response->isSuccess()) { + echo $response->getMessage(); + exit; +} + + +# fetch a row +/** @var Command\TimeSeries\Response $response */ +$response = (new Command\Builder\TimeSeries\FetchRow($riak)) + ->atKey([ + (new Cell("family"))->setValue("family1"), + (new Cell("series"))->setValue("series1"), + (new Cell("time"))->setTimestampValue(1420113600), + ]) + ->inTable('GeoCheckins') + ->build() + ->execute(); + +if (!$response->isSuccess()) { + echo $response->getMessage(); + exit; +} + +# output row data +foreach ($response->getRow() as $index => $column) { + switch ($column->getType()) { + case Riak\TimeSeries\Cell::INT_TYPE: + printf("Column %d: %s is an integer equal to %d\n", $index, $column->getName(), $column->getValue()); + break; + case Riak\TimeSeries\Cell::DOUBLE_TYPE: + printf("Column %d: %s is a double equal to %d\n", $index, $column->getName(), $column->getValue()); + break; + case Riak\TimeSeries\Cell::BOOL_TYPE: + printf("Column %d: %s is a boolean equal to %s\n", $index, $column->getName(), $column->getValue()); + break; + case Riak\TimeSeries\Cell::TIMESTAMP_TYPE: + printf("Column %d: %s is a timestamp equal to %d\n", $index, $column->getName(), $column->getValue()); + break; + default: + printf("Column %d: %s is a string equal to %s\n", $index, $column->getName(), $column->getValue()); + break; + } +} + + +# query for data +$response = (new Command\Builder\TimeSeries\Query($riak)) + ->withQuery("select * from GeoCheckins where family = 'family1' and series = 'myseries1' and (time > 1420113500 and time < 1420116000)") + ->build() + ->execute(); + +# output rows +foreach ($response->getResults() as $row_index => $row) { + foreach ($row as $column_index => $column) { + switch ($column->getType()) { + case Riak\TimeSeries\Cell::INT_TYPE: + printf("Column %d: %s is an integer equal to %d\n", $index, $column->getName(), $column->getValue()); + break; + case Riak\TimeSeries\Cell::DOUBLE_TYPE: + printf("Column %d: %s is a double equal to %d\n", $index, $column->getName(), $column->getValue()); + break; + case Riak\TimeSeries\Cell::BOOL_TYPE: + printf("Column %d: %s is a boolean equal to %s\n", $index, $column->getName(), $column->getValue()); + break; + case Riak\TimeSeries\Cell::TIMESTAMP_TYPE: + printf("Column %d: %s is a timestamp equal to %d\n", $index, $column->getName(), $column->getValue()); + break; + default: + printf("Column %d: %s is a string equal to %s\n", $index, $column->getName(), $column->getValue()); + break; + } + } +} + + +# delete a row +$response = (new Command\Builder\TimeSeries\DeleteRow($riak)) + ->atKey([ + (new Cell("family"))->setValue("family1"), + (new Cell("series"))->setValue("series1"), + (new Cell("time"))->setTimestampValue(1420113600), + ]) + ->inTable('GeoCheckins') + ->build() + ->execute(); + +if (!$response->isSuccess()) { + echo $response->getMessage(); + exit; +} diff --git a/vendor/phpfastcache/riak-client/phpunit.xml b/vendor/phpfastcache/riak-client/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..e7878097ccb54cff21939b976dbf25e058d97e83 --- /dev/null +++ b/vendor/phpfastcache/riak-client/phpunit.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<phpunit colors="true"> + <testsuites> + <testsuite name="unit-tests"> + <directory>tests/unit</directory> + </testsuite> + <testsuite name="functional-tests"> + <directory>tests/functional</directory> + <exclude>tests/functional/SecurityFeaturesTest.php</exclude> + <exclude>tests/functional/TimeSeriesOperationsTest.php</exclude> + </testsuite> + <testsuite name="security-tests"> + <file>tests/functional/SecurityFeaturesTest.php</file> + </testsuite> + <testsuite name="scenario-tests"> + <directory>tests/scenario</directory> + <exclude>tests/scenario/InternalServerErrorTest.php</exclude> + </testsuite> + </testsuites> + <filter> + <whitelist> + <directory>./src</directory> + </whitelist> + </filter> +</phpunit> diff --git a/vendor/phpfastcache/riak-client/src/Riak.php b/vendor/phpfastcache/riak-client/src/Riak.php new file mode 100644 index 0000000000000000000000000000000000000000..c7f1cf8b3f5bb67f3634ae0db6183b03a06e1868 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak.php @@ -0,0 +1,244 @@ +<?php + +namespace Basho; + +use Basho\Riak\Api; +use Basho\Riak\Api\Http; +use Basho\Riak\Command; +use Basho\Riak\Exception; +use Basho\Riak\Node; + +/** + * This class maintains the list of nodes in the Riak cluster. + * + * <code> + * $nodes = (new Node\Builder) + * ->atHost('localhost') + * ->onPort(8098) + * ->build() + * + * $riak = new Riak($nodes); + * + * $command = (new Command\Builder\FetchObject($riak)) + * ->buildLocation('username', 'users') + * ->build(); + * + * $response = $command->execute(); + * + * $user = $response->getObject(); + * </code> + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Riak +{ + const VERSION = "2.0.3"; + + /** + * Riak server ring + * + * @var Node[] + */ + protected $nodes = []; + + /** + * Configuration options for this client + * + * @var array + */ + protected $config = [ + 'prefix' => 'riak', + 'mapred_prefix' => 'mapred', + 'index_prefix' => 'buckets', + 'dns_server' => '8.8.8.8', + 'max_connect_attempts' => 3, + ]; + + /** + * The actively connected Riak Node from the ring + * + * @var int + */ + protected $activeNodeIndex = 0; + + /** + * API Bridge class to use + * + * @var Api|null + */ + protected $api = NULL; + + /** + * List of nodes marked inactive + * + * @var array + */ + protected $inactiveNodes = []; + + /** + * Connection attempts made that failed + * + * @var int + */ + protected $attempts = 0; + + /** + * Construct a new Client object, defaults to port 8098. + * + * @param Node[] $nodes an array of Basho\Riak\Node objects + * @param array $config a configuration object + * @param Api $api + * + * @throws Exception + */ + public function __construct(array $nodes, array $config = [], Api $api = NULL) + { + // wash any custom keys if any + $this->nodes = array_values($nodes); + $this->setActiveNodeIndex($this->pickNode()); + + if (!empty($config)) { + // use php array merge so passed in config overrides defaults + $this->config = array_merge($this->config, $config); + } + + if ($api) { + $this->api = $api; + } else { + // default to HTTP bridge class + $this->api = new Http($this->config); + } + } + + /** + * Pick a random Node from the ring + * + * You can pick your friends, you can pick your node, but you can't pick your friend's node. :) + * + * @return int + * @throws Exception + */ + protected function pickNode() + { + $nodes = $this->getNodes(); + $index = mt_rand(0, count($nodes) - 1); + return array_keys($nodes)[$index]; + } + + /** + * @return Node[] + */ + public function getNodes() + { + return $this->nodes; + } + + /** + * Get value from connection config + * + * @param $key + * + * @return mixed + */ + public function getConfigValue($key) + { + return $this->config[$key]; + } + + /** + * @return array + */ + public function getConfig() + { + return $this->config; + } + + /** + * Execute a Riak command + * + * @param Command $command + * @return Command\Response + * @throws Exception + */ + public function execute(Command $command) + { + $response = $this->getActiveNode()->execute($command, $this->api); + + // if more than 1 node configured, lets try a different node up to max connection attempts + if (empty($response) && count($this->nodes) > 1 && $this->attempts < $this->getConfigValue('max_connect_attempts')) { + $response = $this->pickNewNode()->execute($command); + } elseif (empty($response) && $this->attempts >= $this->getConfigValue('max_connect_attempts')) { + throw new Exception('Nodes unreachable. Error Msg: ' . $this->api->getError()); + } elseif ($response == false) { + throw new Exception('Command failed to execute against Riak. Error Msg: ' . $this->api->getError()); + } + + return $response; + } + + /** + * @return Node + */ + public function getActiveNode() + { + $nodes = $this->getNodes(); + + return $nodes[$this->getActiveNodeIndex()]; + } + + /** + * @return int + */ + public function getActiveNodeIndex() + { + return $this->activeNodeIndex; + } + + /** + * @param int $activeNodeIndex + */ + public function setActiveNodeIndex($activeNodeIndex) + { + $this->activeNodeIndex = $activeNodeIndex; + } + + /** + * @return Api|null + */ + public function getApi() + { + return $this->api; + } + + /** + * Accessor for the last request issued to the API. For debugging purposes. + * + * @return string + */ + public function getLastRequest() + { + return $this->api->getRequest(); + } + + /** + * Pick new active node + * + * Used when the currently active node fails to complete a command / query + * + * @return $this + * @throws Exception + */ + public function pickNewNode() + { + // mark current active node as inactive and increment attempts + $this->getActiveNode()->setInactive(true); + $this->attempts++; + $this->inactiveNodes[$this->getActiveNodeIndex()] = $this->getActiveNode(); + + // move active node to inactive nodes structure to prevent selecting again + unset($this->nodes[$this->getActiveNodeIndex()]); + $this->setActiveNodeIndex($this->pickNode()); + + return $this; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Api.php b/vendor/phpfastcache/riak-client/src/Riak/Api.php new file mode 100644 index 0000000000000000000000000000000000000000..e3d49af2d8bd27238482bff2e34fc36ce5e61e9f --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Api.php @@ -0,0 +1,154 @@ +<?php + +namespace Basho\Riak; + +/** + * Extend this class to implement your own API bridge. + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +abstract class Api +{ + /** + * Request string to be sent + * + * @var string + */ + protected $request = ''; + + /** + * @var Command\Response|null + */ + protected $response = null; + + /** + * @var Command|null + */ + protected $command = null; + + /** + * @var Node|null + */ + protected $node = null; + + protected $success = null; + + protected $error = ''; + + protected $config = []; + + public function __construct(array $config = []) + { + $this->config = $config; + } + + /** + * @return string + */ + public function getError() + { + return $this->error; + } + + /** + * @return Command|null + */ + public function getCommand() + { + return $this->command; + } + + /** + * @param Command|null $command + * + * @return $this + */ + protected function setCommand($command) + { + $this->command = $command; + + return $this; + } + + /** + * @return Node|null + */ + public function getNode() + { + return $this->node; + } + + /** + * @param Node|null $node + * + * @return $this + */ + public function setNode($node) + { + $this->node = $node; + + return $this; + } + + /** + * @return string + */ + public function getRequest() + { + return $this->request; + } + + /** + * Prepare the api connection + * + * @param Command $command + * @param Node $node + * + * @return $this + */ + public function prepare(Command $command, Node $node) + { + $this->setCommand($command); + $this->setNode($node); + + return $this; + } + + /** + * @return Command\Response|null + */ + public function getResponse() + { + return $this->response; + } + + /** + * @return null + */ + public function getSuccess() + { + return $this->success; + } + + /** + * @return array + */ + public function getConfig() + { + return $this->config; + } + + /** + * send + * + * @return bool + */ + abstract public function send(); + + /** + * Closes the connection to the Riak Interface + * + * @return null + */ + abstract public function closeConnection(); +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Api/Exception.php b/vendor/phpfastcache/riak-client/src/Riak/Api/Exception.php new file mode 100644 index 0000000000000000000000000000000000000000..0e28c985d4ae82050a39bfc76e3ee8f9251b3da8 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Api/Exception.php @@ -0,0 +1,13 @@ +<?php + +namespace Basho\Riak\Api; + +/** + * Exception thrown when there is an error within the execution of an Api Bridge object. + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Exception extends \Basho\Riak\Exception +{ + +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Api/Http.php b/vendor/phpfastcache/riak-client/src/Riak/Api/Http.php new file mode 100644 index 0000000000000000000000000000000000000000..f87f84041641965e25ddf587f0797f2f915e7005 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Api/Http.php @@ -0,0 +1,858 @@ +<?php + +namespace Basho\Riak\Api; + +use Basho\Riak\Api; +use Basho\Riak\ApiInterface; +use Basho\Riak\Bucket; +use Basho\Riak\Command; +use Basho\Riak\DataType\Counter; +use Basho\Riak\DataType\Map; +use Basho\Riak\DataType\Set; +use Basho\Riak\DataType\Hll; +use Basho\Riak\Location; +use Basho\Riak\Node; +use Basho\Riak\DataObject; +use Basho\Riak\Search\Doc; +use Basho\Riak\TimeSeries\Cell; + +/** + * Handles communications between end user app & Riak via Riak HTTP API using cURL + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Http extends Api implements ApiInterface +{ + // Header keys + const VCLOCK_KEY = 'X-Riak-Vclock'; + const CONTENT_TYPE_KEY = 'Content-Type'; + const METADATA_PREFIX = 'X-Riak-Meta-'; + const LAST_MODIFIED_KEY = 'Last-Modified'; + + // Content Types + const CONTENT_TYPE_JSON = 'application/json'; + const CONTENT_TYPE_XML = 'application/xml'; + + const TS_API_PREFIX = '/ts/v1'; + + /** + * Request body to be sent + * + * @var string + */ + protected $requestBody = ''; + + /** + * Request url the request is being sent to + * + * @var string + */ + protected $requestURL = ''; + + /** + * Response headers returned from request + * + * @var array + */ + protected $responseHeaders = []; + + /** + * Response body returned from request + * + * @var string + */ + protected $responseBody = ''; + + /** + * HTTP Status Code from response + * + * @var int + */ + protected $statusCode = 0; + + /** + * cURL connection handle + * + * @var null + */ + protected $connection = null; + + /** + * API path + * + * @var string + */ + protected $path = ''; + + /** + * Query string + * + * @var string + */ + protected $query = ''; + + private $options = []; + + protected $headers = []; + + /** + * @return int + */ + public function getStatusCode() + { + return $this->statusCode; + } + + /** + * @return string + */ + public function getResponseBody() + { + return $this->responseBody; + } + + /** + * @return array + */ + public function getResponseHeaders() + { + return $this->responseHeaders; + } + + /** + * @return string + */ + public function getRequest() + { + return $this->request . $this->requestBody; + } + + public function closeConnection() + { + if ($this->connection) { + curl_close($this->connection); + $this->connection = null; + } + } + + /** + * Prepare request to be sent + * + * @param Command $command + * @param Node $node + * + * @return $this + */ + public function prepare(Command $command, Node $node) + { + if ($this->connection) { + $this->resetConnection(); + } + + // call parent prepare method to setup object members + parent::prepare($command, $node); + + // set the API path to be used + $this->buildPath(); + + // general connection preparation + $this->prepareConnection(); + + // request specific connection preparation + $this->prepareRequest(); + + return $this; + } + + public function resetConnection() + { + $this->command = null; + $this->options = []; + $this->path = ''; + $this->query = ''; + $this->requestBody = ''; + $this->requestURL = ''; + $this->responseHeaders = []; + $this->responseBody = ''; + + if (version_compare(PHP_VERSION, '5.5.0') >= 0) { + curl_reset($this->connection); + } else { + curl_close($this->connection); + $this->connection = null; + } + } + + /** + * Sets the API path for the command + * + * @return $this + */ + protected function buildPath() + { + $bucket = null; + $key = ''; + + $bucket = $this->command->getBucket(); + + $location = $this->command->getLocation(); + if (!empty($location) && $location instanceof Location) { + $key = $location->getKey(); + } + switch (get_class($this->command)) { + /** @noinspection PhpMissingBreakStatementInspection */ + case 'Basho\Riak\Command\Bucket\Store': + $this->headers[static::CONTENT_TYPE_KEY] = static::CONTENT_TYPE_JSON; + case 'Basho\Riak\Command\Bucket\Fetch': + case 'Basho\Riak\Command\Bucket\Delete': + $this->path = sprintf('/types/%s/buckets/%s/props', $bucket->getType(), $bucket->getName()); + break; + /** @noinspection PhpMissingBreakStatementInspection */ + case 'Basho\Riak\Command\KVObject\Fetch': + $this->headers['Accept'] = '*/*, multipart/mixed'; + case 'Basho\Riak\Command\KVObject\Store': + case 'Basho\Riak\Command\KVObject\Delete': + $this->path = sprintf('/types/%s/buckets/%s/keys/%s', $bucket->getType(), $bucket->getName(), $key); + break; + case 'Basho\Riak\Command\KVObject\Keys\Fetch': + $this->headers[static::CONTENT_TYPE_KEY] = static::CONTENT_TYPE_JSON; + $this->path = sprintf('/types/%s/buckets/%s/keys', $bucket->getType(), $bucket->getName()); + break; + case 'Basho\Riak\Command\DataType\Counter\Store': + case 'Basho\Riak\Command\DataType\GSet\Store': + case 'Basho\Riak\Command\DataType\Set\Store': + /** @noinspection PhpMissingBreakStatementInspection */ + case 'Basho\Riak\Command\DataType\Map\Store': + case 'Basho\Riak\Command\DataType\Hll\Store': + $this->headers[static::CONTENT_TYPE_KEY] = static::CONTENT_TYPE_JSON; + case 'Basho\Riak\Command\DataType\Counter\Fetch': + case 'Basho\Riak\Command\DataType\Set\Fetch': + case 'Basho\Riak\Command\DataType\Map\Fetch': + case 'Basho\Riak\Command\DataType\Hll\Fetch': + $this->path = sprintf('/types/%s/buckets/%s/datatypes/%s', $bucket->getType(), $bucket->getName(), $key); + break; + /** @noinspection PhpMissingBreakStatementInspection */ + case 'Basho\Riak\Command\Search\Index\Store': + $this->headers[static::CONTENT_TYPE_KEY] = static::CONTENT_TYPE_JSON; + case 'Basho\Riak\Command\Search\Index\Fetch': + case 'Basho\Riak\Command\Search\Index\Delete': + $this->path = sprintf('/search/index/%s', $this->command); + break; + /** @noinspection PhpMissingBreakStatementInspection */ + case 'Basho\Riak\Command\Search\Schema\Store': + $this->headers[static::CONTENT_TYPE_KEY] = static::CONTENT_TYPE_XML; + case 'Basho\Riak\Command\Search\Schema\Fetch': + $this->path = sprintf('/search/schema/%s', $this->command); + break; + case 'Basho\Riak\Command\Search\Fetch': + $this->path = sprintf('/search/query/%s', $this->command); + break; + case 'Basho\Riak\Command\MapReduce\Fetch': + $this->headers[static::CONTENT_TYPE_KEY] = static::CONTENT_TYPE_JSON; + $this->path = sprintf('/%s', $this->config['mapred_prefix']); + break; + case 'Basho\Riak\Command\Indexes\Query': + $this->path = $this->createIndexQueryPath($bucket); + break; + case 'Basho\Riak\Command\Ping': + $this->path = '/ping'; + break; + case 'Basho\Riak\Command\Stats': + $this->path = '/stats'; + break; + case 'Basho\Riak\Command\KVObject\FetchPreflist': + $this->path = sprintf('/types/%s/buckets/%s/keys/%s/preflist', $bucket->getType(), $bucket->getName(), $key); + break; + case 'Basho\Riak\Command\TimeSeries\Fetch': + case 'Basho\Riak\Command\TimeSeries\Delete': + /** @var $command Command\TimeSeries\Fetch */ + $command = $this->command; + $this->path = sprintf('%s/tables/%s/keys/%s', static::TS_API_PREFIX, $command->getTable(), implode("/", $command->getData())); + break; + case 'Basho\Riak\Command\TimeSeries\Store': + /** @var $command Command\TimeSeries\Store */ + $command = $this->command; + $this->path = sprintf('%s/tables/%s/keys', static::TS_API_PREFIX, $command->getTable()); + break; + case 'Basho\Riak\Command\TimeSeries\Query\Fetch': + $this->path = sprintf('%s/query', static::TS_API_PREFIX); + break; + default: + $this->path = ''; + } + + return $this; + } + + /** + * Generates the URL path for a 2i Query + * + * @param Bucket $bucket + * @return string + * @throws Api\Exception if 2i query is invalid. + */ + private function createIndexQueryPath(Bucket $bucket) + { + /** @var Command\Indexes\Query $command */ + $command = $this->command; + + if($command->isMatchQuery()) { + $path = sprintf('/types/%s/buckets/%s/index/%s/%s', $bucket->getType(), + $bucket->getName(), + $command->getIndexName(), + $command->getMatchValue()); + } + elseif($command->isRangeQuery()) { + $path = sprintf('/types/%s/buckets/%s/index/%s/%s/%s', $bucket->getType(), + $bucket->getName(), + $command->getIndexName(), + $command->getLowerBound(), + $command->getUpperBound()); + } + else + { + throw new Api\Exception("Invalid Secondary Index Query."); + } + + return $path; + } + + /** + * Prepare Connection + * + * Sets general connection options that are used with every request + * + * @return $this + * @throws Api\Exception + */ + protected function prepareConnection() + { + // record outgoing headers + $this->options[CURLINFO_HEADER_OUT] = 1; + + if ($this->command->getConnectionTimeout()) { + $this->options[CURLOPT_TIMEOUT] = $this->command->getConnectionTimeout(); + } + + if ($this->node->useTls()) { + // CA File + if ($this->node->getCaFile()) { + $this->options[CURLOPT_CAINFO] = $this->node->getCaFile(); + } elseif ($this->node->getCaDirectory()) { + $this->options[CURLOPT_CAPATH] = $this->node->getCaDirectory(); + } else { + throw new Api\Exception('A Certificate Authority file is required for secure connections.'); + } + + // verify CA file + $this->options[CURLOPT_SSL_VERIFYPEER] = true; + + // verify host common name + $this->options[CURLOPT_SSL_VERIFYHOST] = 0; + + if ($this->node->getUserName()) { + $this->options[CURLOPT_USERPWD] = sprintf('%s:%s', $this->node->getUserName(), + $this->node->getPassword()); + } elseif ($this->node->getCertificate()) { + /* + * NOT CURRENTLY SUPPORTED ON HTTP + * + $this->options[CURLOPT_SSLCERT] = $this->node->getCertificate(); + $this->options[CURLOPT_SSLCERTTYPE] = 'P12'; + if ($this->node->getCertificatePassword()) { + $this->options[CURLOPT_SSLCERTPASSWD] = $this->node->getCertificatePassword(); + } + if ($this->node->getPrivateKey()) { + $this->options[CURLOPT_SSLKEY] = $this->node->getPrivateKey(); + if ($this->node->getPrivateKeyPassword()) { + $this->options[CURLOPT_SSLKEYPASSWD] = $this->node->getPrivateKeyPassword(); + } + } + */ + } + } + + return $this; + } + + /** + * Prepare request + * + * Sets connection options that are specific to this request + * + * @return $this + */ + protected function prepareRequest() + { + return $this->prepareRequestMethod() + ->prepareRequestHeaders() + ->prepareRequestParameters() + ->prepareRequestUrl() + ->prepareRequestData(); + } + + /** + * Prepare request data + * + * @return $this + */ + protected function prepareRequestData() + { + // if POST or PUT, add parameters to post data, else add to uri + if (in_array($this->command->getMethod(), ['POST', 'PUT'])) { + $this->requestBody = $this->command->getEncodedData(); + $this->options[CURLOPT_POSTFIELDS] = $this->requestBody; + } + + return $this; + } + + /** + * Prepares the complete request URL + * + * @return $this + */ + protected function prepareRequestUrl() + { + $protocol = $this->node->useTls() ? 'https' : 'http'; + $this->requestURL = sprintf('%s://%s%s?%s', $protocol, $this->node->getUri(), $this->path, $this->query); + + // set the built request URL on the connection + $this->options[CURLOPT_URL] = $this->requestURL; + + return $this; + } + + /** + * Prepare request parameters + * + * @return $this + */ + protected function prepareRequestParameters() + { + if ($this->command->hasParameters()) { + // build query using RFC 3986 (spaces become %20 instead of '+') + $this->query = http_build_query($this->command->getParameters(), '', '&', PHP_QUERY_RFC3986); + } + + return $this; + } + + /** + * Prepares the request headers + * + * @return $this + */ + protected function prepareRequestHeaders() + { + $curl_headers = []; + + foreach ($this->headers as $key => $value) { + $curl_headers[] = sprintf('%s: %s', $key, $value); + } + + // if we have an object, set appropriate object headers + $object = $this->command->getObject(); + if ($object) { + if ($object->getVclock()) { + $curl_headers[] = sprintf('%s: %s', static::VCLOCK_KEY, $object->getVclock()); + } + + if ($object->getContentType()) { + $charset = ''; + if ($object->getCharset()) { + $charset = sprintf('; charset=%s', $object->getCharset()); + } + $curl_headers[] = sprintf('%s: %s', static::CONTENT_TYPE_KEY, $object->getContentType(), $charset); + } + + // setup index headers + $translator = new Api\Http\Translator\SecondaryIndex(); + $indexHeaders = $translator->createHeadersFromIndexes($object->getIndexes()); + foreach ($indexHeaders as $value) { + $curl_headers[] = sprintf('%s: %s', $value[0], $value[1]); + } + + // setup metadata headers + foreach($object->getMetaData() as $key => $value) { + $curl_headers[] = sprintf('%s%s: %s', static::METADATA_PREFIX, $key, $value); + } + } + + // set the request headers on the connection + $this->options[CURLOPT_HTTPHEADER] = $curl_headers; + + // dump local headers to start fresh + $this->headers = []; + + return $this; + } + + /** + * Prepare the request method + * + * @return $this + */ + protected function prepareRequestMethod() + { + switch ($this->command->getMethod()) { + case "POST": + $this->options[CURLOPT_POST] = 1; + break; + case "PUT": + $this->options[CURLOPT_CUSTOMREQUEST] = 'PUT'; + break; + case "DELETE": + $this->options[CURLOPT_CUSTOMREQUEST] = 'DELETE'; + break; + case "HEAD": + $this->options[CURLOPT_NOBODY] = 1; + break; + default: + // reset http method to get in case its changed + $this->options[CURLOPT_HTTPGET] = 1; + } + + return $this; + } + + /** + * @return string + */ + public function getPath() + { + return $this->path; + } + + /** + * @return string + */ + public function getQuery() + { + return $this->query; + } + + /** + * @return bool + */ + public function send() + { + // set the response header and body callback functions + $this->options[CURLOPT_HEADERFUNCTION] = [$this, 'responseHeaderCallback']; + $this->options[CURLOPT_WRITEFUNCTION] = [$this, 'responseBodyCallback']; + if ($this->command->isVerbose()) { + // set curls output to be the output buffer stream + $this->options[CURLOPT_STDERR] = fopen('php://stdout', 'w+'); + $this->options[CURLOPT_VERBOSE] = 1; + + // there is a bug when verbose is enabled, header out causes no output + // @see https://bugs.php.net/bug.php?id=65348 + unset($this->options[CURLINFO_HEADER_OUT]); + + echo "cURL Command:\n\tcurl -X{$this->command->getMethod()} {$this->requestURL} --data \"{$this->requestBody}\"\n"; + } + + // set all options on the resource + curl_setopt_array($this->getConnection(), $this->options); + + // execute the request + $this->success = curl_exec($this->getConnection()); + if ($this->success === false) { + $this->error = curl_error($this->getConnection()); + } elseif ($this->success === true) { + $this->error = ''; + } + + $this->request = curl_getinfo($this->getConnection(), CURLINFO_HEADER_OUT); + + // set the response http code + $this->statusCode = curl_getinfo($this->getConnection(), CURLINFO_HTTP_CODE); + + $this->parseResponse(); + + return $this->success; + } + + /** + * Add a custom header to the request + * + * @param $key + * @param $value + */ + public function addHeader($key, $value) + { + $this->headers[$key] = $value; + } + + /** + * @return resource + */ + public function getConnection() + { + if (!$this->connection) { + $this->openConnection(); + } + + return $this->connection; + } + + public function openConnection() + { + $this->connection = curl_init(); + + return $this; + } + + /** + * Response header callback + * + * Handles callback from curl when the response is received, it parses the headers into an array sets them as + * member of the class. + * + * Has to be public for curl to be able to access it. + * + * @param $ch + * @param $header + * + * @return int + */ + public function responseHeaderCallback($ch, $header) + { + if (strpos($header, ':')) { + list ($key, $value) = explode(':', $header, 2); + + $value = trim($value); + + if (!empty($value)) { + if (!isset($this->responseHeaders[$key])) { + $this->responseHeaders[$key] = $value; + } elseif (is_array($this->responseHeaders[$key])) { + $this->responseHeaders[$key] = array_merge($this->responseHeaders[$key], [$value]); + } else { + $this->responseHeaders[$key] = array_merge([$this->responseHeaders[$key]], [$value]); + } + } + } + + return strlen($header); + } + + /** + * Response body callback + * + * Handles callback from curl when the response is received, it sets the response body as a member of the class. + * + * Has to be public for curl to be able to access it. + * + * @param $ch + * @param $body + * + * @return int + */ + public function responseBodyCallback($ch, $body) + { + $this->responseBody .= $body; + return strlen($body); + } + + protected function parseResponse() + { + // trim leading / trailing whitespace + $body = $this->responseBody; + $location = null; + if ($this->getResponseHeader('Location')) { + $location = Location::fromString($this->getResponseHeader('Location')); + } + + if ($this->statusCode == 500) { + $this->success = false; + $this->error = $body; + } + + switch (get_class($this->command)) { + case 'Basho\Riak\Command\Bucket\Store': + case 'Basho\Riak\Command\Bucket\Fetch': + $bucket = null; + $modified = $this->getResponseHeader(static::LAST_MODIFIED_KEY, ''); + $properties = json_decode($body, true); + if (isset($properties['props']) && $this->command->getBucket()) { + $bucket = new Bucket($this->command->getBucket()->getName(), $this->command->getBucket()->getType(), $properties['props']); + } + $response = new Command\Bucket\Response($this->success, $this->statusCode, $this->error, $bucket, $modified); + break; + + case 'Basho\Riak\Command\KVObject\Fetch': + case 'Basho\Riak\Command\KVObject\Store': + /** @var Command\KVObject $command */ + $command = $this->command; + $objects = (new Api\Http\Translator\ObjectResponse($command, $this->statusCode)) + ->parseResponse($body, $this->responseHeaders); + $response = new Command\KVObject\Response($this->success, $this->statusCode, $this->error, $location, $objects); + break; + + case 'Basho\Riak\Command\KVObject\FetchPreflist': + $response = new Command\KVObject\Response($this->success, $this->statusCode, $this->error, $location, [new DataObject(json_decode($body))]); + break; + + case 'Basho\Riak\Command\KVObject\Keys\Fetch': + $data = json_decode($body); + $keys = []; + if ($data && isset($data->keys)) { + foreach ($data->keys as $key) { + $keys[] = new Location($key, $this->command->getBucket()); + } + } + $response = new Command\KVObject\Keys\Response($this->success, $this->statusCode, $this->error, $keys); + break; + + case 'Basho\Riak\Command\DataType\Counter\Store': + case 'Basho\Riak\Command\DataType\Counter\Fetch': + $counter = null; + $json_object = json_decode($body); + if ($json_object && isset($json_object->value)) { + $counter = new Counter($json_object->value); + } + $response = new Command\DataType\Counter\Response( + $this->success, $this->statusCode, $this->error, $location, $counter, $this->getResponseHeader('Date') + ); + break; + + case 'Basho\Riak\Command\DataType\GSet\Store': + case 'Basho\Riak\Command\DataType\Set\Store': + case 'Basho\Riak\Command\DataType\Set\Fetch': + $set = null; + $json_object = json_decode($body); + if ($json_object && isset($json_object->value)) { + $context = ''; + if (isset($json_object->context)) { + $context = $json_object->context; + } + $set = new Set($json_object->value, $context); + } + $response = new Command\DataType\Set\Response( + $this->success, $this->statusCode, $this->error, $location, $set, $this->getResponseHeader('Date') + ); + break; + + case 'Basho\Riak\Command\DataType\Map\Store': + case 'Basho\Riak\Command\DataType\Map\Fetch': + $map = null; + $json_object = json_decode($body, true); + if ($json_object && isset($json_object['value'])) { + $map = new Map($json_object['value'], $json_object['context']); + } + $response = new Command\DataType\Map\Response( + $this->success, $this->statusCode, $this->error, $location, $map, $this->getResponseHeader('Date') + ); + break; + + case 'Basho\Riak\Command\DataType\Hll\Store': + case 'Basho\Riak\Command\DataType\Hll\Fetch': + $hll = null; + $json_object = json_decode($body); + if ($json_object && isset($json_object->value)) { + $hll = new Hll($json_object->value); + } + $response = new Command\DataType\Hll\Response( + $this->success, $this->statusCode, $this->error, $location, $hll, $this->getResponseHeader('Date') + ); + break; + + case 'Basho\Riak\Command\Search\Fetch': + $results = in_array($this->statusCode, [200,204]) ? json_decode($body) : null; + $docs = []; + if (!empty($results->response->docs)) { + foreach ($results->response->docs as $doc) { + $docs[] = new Doc($doc); + } + } + $numFound = !empty($results->response->numFound) ? $results->response->numFound : 0; + + $response = new Command\Search\Response($this->success, $this->statusCode, $this->error, $numFound, $docs); + break; + case 'Basho\Riak\Command\Search\Index\Store': + case 'Basho\Riak\Command\Search\Index\Fetch': + $index = json_decode($body); + $response = new Command\Search\Index\Response($this->success, $this->statusCode, $this->error, $index); + break; + + case 'Basho\Riak\Command\Search\Schema\Store': + case 'Basho\Riak\Command\Search\Schema\Fetch': + $response = new Command\Search\Schema\Response( + $this->success, $this->statusCode, $this->error, $body, $this->getResponseHeader(static::CONTENT_TYPE_KEY) + ); + break; + + case 'Basho\Riak\Command\MapReduce\Fetch': + $results = in_array($this->statusCode, [200,204]) ? json_decode($body) : null; + $response = new Command\MapReduce\Response($this->success, $this->statusCode, $this->error, $results); + break; + case 'Basho\Riak\Command\Indexes\Query': + $json_object = in_array($this->statusCode, [200,204]) ? json_decode($body, true) : null; + $results = []; + $termsReturned = false; + $continuation = null; + $done = true; + + if (isset($json_object['keys'])) { + $results = $json_object['keys']; + } + + if (isset($json_object['results'])) { + $results = $json_object['results']; + $termsReturned = true; + } + + if (isset($json_object['continuation'])) { + $continuation = $json_object['continuation']; + $done = false; + } + + $response = new Command\Indexes\Response( + $this->success, $this->statusCode, $this->error, $results, $termsReturned, $continuation, $done, $this->getResponseHeader('Date') + ); + break; + case 'Basho\Riak\Command\Stats': + $response = new Command\Stats\Response($this->success, $this->statusCode, $this->error, json_decode($body, true)); + break; + case 'Basho\Riak\Command\TimeSeries\Fetch': + $row = in_array($this->statusCode, ['200','201','204']) ? json_decode($body, true) : []; + $response = new Command\TimeSeries\Response($this->success, $this->statusCode, $this->error, [$row]); + break; + case 'Basho\Riak\Command\TimeSeries\Query\Fetch': + $results = in_array($this->statusCode, ['200','204']) ? json_decode($body) : []; + $rows = []; + if (isset($results->rows)) { + foreach ($results->rows as $row) { + $cells = []; + foreach ($results->columns as $index => $column) { + $cells[$column] = $row[$index]; + } + $rows[] = $cells; + } + } + $response = new Command\TimeSeries\Query\Response($this->success, $this->statusCode, $this->error, $rows); + break; + case 'Basho\Riak\Command\TimeSeries\Store': + case 'Basho\Riak\Command\TimeSeries\Delete': + case 'Basho\Riak\Command\KVObject\Delete': + case 'Basho\Riak\Command\Bucket\Delete': + case 'Basho\Riak\Command\Search\Index\Delete': + case 'Basho\Riak\Command\Ping': + default: + $response = new Command\Response($this->success, $this->statusCode, $this->error); + break; + } + + $this->response = $response; + } + + protected function getResponseHeader($key, $default = '') + { + if (!empty($this->responseHeaders[$key])) { + return $this->responseHeaders[$key]; + } else { + return $default; + } + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Api/Http/Translator/ObjectResponse.php b/vendor/phpfastcache/riak-client/src/Riak/Api/Http/Translator/ObjectResponse.php new file mode 100644 index 0000000000000000000000000000000000000000..640c8a6b187ff10db58f8e577754df8bda109337 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Api/Http/Translator/ObjectResponse.php @@ -0,0 +1,95 @@ +<?php + +namespace Basho\Riak\Api\Http\Translator; + +use Basho\Riak\Api\Http; +use Basho\Riak\Command; +use Basho\Riak\DataObject as RObject; + +class ObjectResponse +{ + /** + * @var Command\KVObject + */ + protected $command; + + protected $code; + + public function __construct(Command\KVObject $command, $code) + { + $this->command = $command; + $this->code = $code; + } + + /** + * @param $response + * @param array $headers + * @return \Basho\Riak\DataObject[] + */ + public function parseResponse($response, $headers = []) + { + $objects = []; + + if ($this->code == '300') { + $position = strpos($headers[Http::CONTENT_TYPE_KEY], 'boundary='); + $boundary = '--' . substr($headers[Http::CONTENT_TYPE_KEY], $position + 9); + $objects = $this->parseSiblings($response, $boundary, $headers[Http::VCLOCK_KEY]); + } elseif (in_array($this->code, ['200','201','204'])) { + $objects[] = $this->parseObject($response, $headers); + } + + return $objects; + } + + public function parseSiblings($response, $boundary, $vclock = '') + { + $siblings = []; + $parts = explode($boundary, $response); + foreach ($parts as $part) { + $headers = [Http::VCLOCK_KEY => $vclock]; + $slice_point = 0; + $empties = 0; + + $lines = preg_split('/\n\r|\n|\r/', trim($part)); + foreach ($lines as $key => $line) { + if (strpos($line, ':')) { + $empties = 0; + list ($key, $value) = explode(':', $line); + + $value = trim($value); + + if (!empty($value)) { + if (!isset($headers[$key])) { + $headers[$key] = $value; + } elseif (is_array($headers[$key])) { + $headers[$key] = array_merge($headers[$key], [$value]); + } else { + $headers[$key] = array_merge([$headers[$key]], [$value]); + } + } + } elseif ($line == '') { + // if we have two line breaks in a row, then we have finished headers + if ($empties) { + $slice_point = $key + 1; + break; + } else { + $empties++; + } + } + } + + $data = implode(PHP_EOL, array_slice($lines, $slice_point)); + $siblings[] = $this->parseObject($data, $headers); + } + + return $siblings; + } + + public function parseObject($response, $headers = []) + { + $contentType = !empty($headers[Http::CONTENT_TYPE_KEY]) ? $headers[Http::CONTENT_TYPE_KEY] : ''; + $data = $this->command->getDecodedData($response, $contentType); + + return (new RObject($data, $headers))->setRawData($response); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Api/Http/Translator/SecondaryIndex.php b/vendor/phpfastcache/riak-client/src/Riak/Api/Http/Translator/SecondaryIndex.php new file mode 100644 index 0000000000000000000000000000000000000000..90c7282f90fc886660aeda54b0ace07e0970657c --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Api/Http/Translator/SecondaryIndex.php @@ -0,0 +1,101 @@ +<?php + +namespace Basho\Riak\Api\Http\Translator; + +/** + * @author Alex Moore <amoore at basho d0t com> + */ +class SecondaryIndex +{ + const INT_INDEX_SUFFIX = '_int'; + const STR_IDX_SUFFIX = '_bin'; + const IDX_SUFFIX_LEN = 4; + const IDX_HEADER_PREFIX = "x-riak-index-"; + const IDX_HEADER_PREFIX_LEN = 13; + + public static function isIntIndex($headerKey) + { + return static::indexNameContainsTypeSuffix($headerKey, self::INT_INDEX_SUFFIX); + } + + public function extractIndexesFromHeaders(&$headers) + { + $indexes = []; + + foreach ($headers as $key => $value) { + + if (!$this->isIndexHeader($key)) { + continue; + } + + $this->parseIndexHeader($indexes, $key, $value); + unset($headers[$key]); + } + + return $indexes; + } + + public static function isIndexHeader($headerKey) + { + if (strlen($headerKey) <= self::IDX_HEADER_PREFIX_LEN) { + return false; + } + + return substr_compare($headerKey, self::IDX_HEADER_PREFIX, 0, self::IDX_HEADER_PREFIX_LEN) == 0; + } + + private function parseIndexHeader(&$indexes, $key, $rawValue) + { + $indexName = $this->getIndexNameWithType($key); + $value = $this->getIndexValue($indexName, $rawValue); + + $indexes[$indexName] = $value; + } + + private function getIndexNameWithType($key) + { + return substr($key, self::IDX_HEADER_PREFIX_LEN); + } + + private function getIndexValue($indexName, $value) + { + $values = explode(", ", $value); + + if ($this->isStringIndex($indexName)) { + return $values; + } else { + return array_map("intval", $values); + } + } + + public static function isStringIndex($headerKey) + { + return static::indexNameContainsTypeSuffix($headerKey, self::STR_IDX_SUFFIX); + } + + private static function indexNameContainsTypeSuffix($indexName, $typeSuffix) + { + $nameLen = strlen($indexName) - self::IDX_SUFFIX_LEN; + + return substr_compare($indexName, $typeSuffix, $nameLen) == 0; + } + + public function createHeadersFromIndexes($indexes) + { + $headers = []; + + foreach ($indexes as $indexName => $values) { + $this->createIndexHeader($headers, $indexName, $values); + } + + return $headers; + } + + private function createIndexHeader(&$headers, $indexName, $values) + { + $headerKey = self::IDX_HEADER_PREFIX. $indexName; + foreach ($values as $indexName => $value) { + $headers[] = [$headerKey, $value]; + } + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/ApiInterface.php b/vendor/phpfastcache/riak-client/src/Riak/ApiInterface.php new file mode 100644 index 0000000000000000000000000000000000000000..61265ab38e7d47ee1dc0e7b1eb7186498aa69894 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/ApiInterface.php @@ -0,0 +1,45 @@ +<?php + +namespace Basho\Riak; + +/** + * Interface ApiInterface + * + * Forces object structure for API bridge classes + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +interface ApiInterface +{ + /** + * Prepares the API bridge for the command to be sent + * + * @param Command $command + * @param Node $node + */ + public function prepare(Command $command, Node $node); + + /** + * Sends the command over the wire to Riak + */ + public function send(); + + /** + * Gets the complete request string + * + * @return string + */ + public function getRequest(); + + /** + * @return Command\Response|null + */ + public function getResponse(); + + /** + * Closes the connection to the Riak Interface + * + * @return null + */ + public function closeConnection(); +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Bucket.php b/vendor/phpfastcache/riak-client/src/Riak/Bucket.php new file mode 100644 index 0000000000000000000000000000000000000000..bf93c976ee943d18fffa971310ce455992e02b40 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Bucket.php @@ -0,0 +1,101 @@ +<?php + +namespace Basho\Riak; + +/** + * Core data structure for a Riak Bucket. + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Bucket +{ + /** + * The default bucket type in Riak. + */ + const DEFAULT_TYPE = "default"; + + /** + * Bucket properties + * + * @var array + */ + protected $properties = []; + + /** + * Name of bucket + */ + protected $name = ''; + + /** + * Buckets are grouped by type, inheriting the properties defined on the type + */ + protected $type = ''; + + /** + * @param $name + * @param string $type + * @param array $properties + */ + public function __construct($name, $type = self::DEFAULT_TYPE, array $properties = []) + { + $this->name = $name; + $this->type = $type; + $this->properties = $properties; + } + + public function __toString() + { + return $this->getNamespace(); + } + + /** + * Bucket namespace + * + * This is a human readable namespace for the bucket. + * + * @return string + */ + public function getNamespace() + { + return "/{$this->type}/{$this->name}/"; + } + + /** + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * @param $key + * + * @return string + */ + public function getProperty($key) + { + $properties = $this->getProperties(); + if (isset($properties[$key])) { + return $properties[$key]; + } + + return ''; + } + + /** + * @return array + */ + public function getProperties() + { + return $this->properties; + } + + /** + * @return string + */ + public function getType() + { + return $this->type; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command.php b/vendor/phpfastcache/riak-client/src/Riak/Command.php new file mode 100644 index 0000000000000000000000000000000000000000..0057f76ca20e1a72c27e7df049206c4506d41726 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command.php @@ -0,0 +1,158 @@ +<?php + +namespace Basho\Riak; + +use Basho\Riak\Command\Builder; + +/** + * The command class is used to build a read or write command to be executed against a Riak node. + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +abstract class Command +{ + /** + * Request method + * + * This can be GET, POST, PUT, or DELETE + * + * @see http://docs.basho.com/riak/latest/dev/references/http/ + * + * @var string + */ + protected $method = 'GET'; + + /** + * Command parameters + * + * @var array + */ + protected $parameters = []; + + /** + * @var Bucket|null + */ + protected $bucket = null; + + /** + * @var Command\Response|null + */ + protected $response = null; + + /** + * @var \Basho\Riak|null + */ + protected $riak = null; + + protected $verbose = false; + + protected $connectionTimeout = 0; + + public function __construct(Builder $builder) + { + $this->riak = $builder->getConnection(); + $this->parameters = $builder->getParameters(); + $this->verbose = $builder->getVerbose(); + $this->connectionTimeout = $builder->getConnectionTimeout(); + } + + public function isVerbose() + { + return $this->verbose; + } + + /** + * Executes the command against the API + * + * @return Command\Response + */ + public function execute() + { + return $this->riak->execute($this); + } + + /** + * Gets the request that was issued to the API by this Command. + * + * @return string + */ + public function getRequest() + { + return $this->riak->getLastRequest(); + } + + public function getBucket() + { + return $this->bucket; + } + + /** + * @param $key string + * + * @return null|string + */ + public function getParameter($key) + { + if (isset($this->parameters[$key])) { + return $this->parameters[$key]; + } + + return null; + } + + /** + * @return array + */ + public function getParameters() + { + return $this->parameters; + } + + /** + * Command has parameters? + * + * @return bool + */ + public function hasParameters() + { + return (bool)count($this->parameters); + } + + public function getMethod() + { + return $this->method; + } + + public function getResponse() + { + return $this->response; + } + + /** + * @return Location|null + */ + public function getLocation() + { + return null; + } + + /** + * @return Object|null + */ + public function getObject() + { + return null; + } + + /** + * @return int + */ + public function getConnectionTimeout() + { + return $this->connectionTimeout; + } + + abstract public function getData(); + + abstract public function getEncodedData(); +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Bucket/Delete.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Bucket/Delete.php new file mode 100644 index 0000000000000000000000000000000000000000..d7fde7e24302ca4f4db3aecd2b1a38f9e9e93575 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Bucket/Delete.php @@ -0,0 +1,24 @@ +<?php + +namespace Basho\Riak\Command\Bucket; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; + +/** + * Used to remove a bucket property from a Riak bucket + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Delete extends Command\KVObject implements CommandInterface +{ + protected $method = 'DELETE'; + + public function __construct(Command\Builder\DeleteObject $builder) + { + parent::__construct($builder); + + $this->bucket = $builder->getBucket(); + $this->location = $builder->getLocation(); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Bucket/Fetch.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Bucket/Fetch.php new file mode 100644 index 0000000000000000000000000000000000000000..7ab836d849ade3e9c52567c68f0cfef131e7c60a --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Bucket/Fetch.php @@ -0,0 +1,44 @@ +<?php + +namespace Basho\Riak\Command\Bucket; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; + +/** + * Fetches properties for a Riak Bucket + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Fetch extends Command implements CommandInterface +{ + /** + * @var Command\Bucket\Response|null + */ + protected $response = null; + + public function __construct(Command\Builder\FetchBucketProperties $builder) + { + parent::__construct($builder); + + $this->bucket = $builder->getBucket(); + } + + public function getData() + { + return ''; + } + + public function getEncodedData() + { + return ''; + } + + /** + * @return Command\Bucket\Response + */ + public function execute() + { + return parent::execute(); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Bucket/Response.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Bucket/Response.php new file mode 100644 index 0000000000000000000000000000000000000000..8ac86c1a8f490dad88643c884662e65c30ffa47a --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Bucket/Response.php @@ -0,0 +1,50 @@ +<?php + +namespace Basho\Riak\Command\Bucket; + +use Basho\Riak\Bucket; + +/** + * Container for a response related to an operation on an object + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Response extends \Basho\Riak\Command\Response +{ + /** + * Bucket from the command re-instantiated with its fetched properties + * + * @var Bucket|null + */ + protected $bucket = null; + + protected $modified = ''; + + public function __construct($success = true, $code = 0, $message = '', Bucket $bucket = null, $modified = '') + { + parent::__construct($success, $code, $message); + + $this->bucket = $bucket; + $this->modified = $modified; + } + + /** + * getBucket + * + * @return Bucket + */ + public function getBucket() + { + return $this->bucket; + } + + /** + * Retrieves the last modified time of the object + * + * @return string + */ + public function getLastModified() + { + return $this->modified; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Bucket/Store.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Bucket/Store.php new file mode 100644 index 0000000000000000000000000000000000000000..d49d6eb115b4abe9444fcc74e93e866a5a07b7ee --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Bucket/Store.php @@ -0,0 +1,49 @@ +<?php + +namespace Basho\Riak\Command\Bucket; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; + +/** + * Used to set a bucket property on a bucket + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Store extends Command implements CommandInterface +{ + protected $method = 'PUT'; + + protected $properties = []; + + /** + * @var Command\Bucket\Response|null + */ + protected $response = null; + + public function __construct(Command\Builder\SetBucketProperties $builder) + { + parent::__construct($builder); + + $this->bucket = $builder->getBucket(); + $this->properties = $builder->getProperties(); + } + + public function getEncodedData() + { + return json_encode($this->getData()); + } + + public function getData() + { + return ['props' => $this->properties]; + } + + /** + * @return Command\Bucket\Response + */ + public function execute() + { + return parent::execute(); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder.php new file mode 100644 index 0000000000000000000000000000000000000000..1e7cf14559f6d861dc333730d7ec2244fe41bc4b --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder.php @@ -0,0 +1,151 @@ +<?php + +namespace Basho\Riak\Command; + +use Basho\Riak; +use Basho\Riak\Command; +use Basho\Riak\DataType; + +/** + * This class follows the Builder design pattern and is the preferred method for creating Basho\Riak\Command + * objects for interacting with your Riak data cluster. + * + * <code> + * use Basho\Riak\Command; + * use Basho\Riak\Bucket; + * use Basho\Riak\Location; + * + * $bucket = new Bucket('users'); + * + * $command = (new Command\Builder(Command::STORE_OBJECT)) + * ->withObject(new Object('test_data')) + * ->atLocation(new Location('test_key', $bucket)) + * ->build(); + * </code> + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +abstract class Builder +{ + /** + * @var Riak|null + */ + protected $riak = null; + + /** + * Command parameters + * + * @var array + */ + protected $parameters = []; + + /** + * Command request headers + * + * @var array + */ + protected $headers = []; + + protected $verbose = false; + + protected $connectionTimeout = 0; + + public function __construct(Riak $riak) + { + $this->riak = $riak; + } + + /** + * Command build + * + * Validates then returns the built command object. + */ + abstract public function build(); + + public function withParameter($key, $value = true) + { + $this->parameters[$key] = $value; + + return $this; + } + + public function withParameters($parameters = []) + { + $this->parameters = $parameters; + + return $this; + } + + public function withVerboseMode($verbose = true) + { + $this->verbose = $verbose; + + return $this; + } + + public function withConnectionTimeout($seconds = 60) + { + $this->connectionTimeout = $seconds; + + return $this; + } + + public function getParameters() + { + return $this->parameters; + } + + public function getConnection() + { + return $this->riak; + } + + public function getVerbose() + { + return $this->verbose; + } + + /** + * @return int + */ + public function getConnectionTimeout() + { + return $this->connectionTimeout; + } + + /** + * Validate command + * + * Method validates if the builder has the parameters / objects required to successfully execute the command + * + * @return bool + * @throws Builder\Exception + */ + protected function validate() + { + throw new Command\Builder\Exception('Invalid builder.'); + } + + /** + * Used to verify a property within the builder is not null and is instantiated + * + * @param $objectName + * + * @throws Builder\Exception + */ + protected function required($objectName) + { + $method = "get{$objectName}"; + $class = "Basho\\Riak\\{$objectName}"; + $value = $this->$method(); + if (is_null($value)) { + throw new Builder\Exception("Expected non-empty value for {$objectName}"); + } + if (is_object($value) && $value instanceof $class === false) { + throw new Builder\Exception("Expected instance of {$class}, received instance of " . get_class($value)); + } + if (is_array($value) && count($value) == 0) { + throw new Builder\Exception("Expected non-empty array value for {$objectName}"); + } + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/BucketTrait.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/BucketTrait.php new file mode 100644 index 0000000000000000000000000000000000000000..0e56c9e12e8ceed116ecfb34f21ac0290bd66fa7 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/BucketTrait.php @@ -0,0 +1,59 @@ +<?php + +namespace Basho\Riak\Command\Builder; + +use Basho\Riak\Bucket; + +/** + * Allows easy code sharing for Bucket getters / setters within the Command Builders + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +trait BucketTrait +{ + /** + * Stores the Bucket object + * + * @var Bucket|null + */ + protected $bucket = NULL; + + /** + * Gets the Bucket object + * + * @return Bucket|null + */ + public function getBucket() + { + return $this->bucket; + } + + /** + * Build a Bucket object to be added to the Command + * + * @param $name + * @param string $type + * + * @return $this + */ + public function buildBucket($name, $type = 'default') + { + $this->bucket = new Bucket($name, $type); + + return $this; + } + + /** + * Attach the provided Bucket to the Command + * + * @param Bucket $bucket + * + * @return $this + */ + public function inBucket(Bucket $bucket) + { + $this->bucket = $bucket; + + return $this; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/DeleteObject.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/DeleteObject.php new file mode 100644 index 0000000000000000000000000000000000000000..7546b0e6096cc52efe43dfdbe4744e60f504dbc1 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/DeleteObject.php @@ -0,0 +1,44 @@ +<?php + +namespace Basho\Riak\Command\Builder; + +use Basho\Riak\Command; + +/** + * Used to delete a KV object from Riak + * + * <code> + * $command = (new Command\Builder\DeleteObject($riak)) + * ->buildLocation('username', 'users') + * ->build(); + * + * $response = $command->execute(); + * </code> + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class DeleteObject extends Command\Builder implements Command\BuilderInterface +{ + use ObjectTrait; + use LocationTrait; + + /** + * {@inheritdoc} + * + * @return Command\KVObject\Delete; + */ + public function build() + { + $this->validate(); + + return new Command\KVObject\Delete($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Location'); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Exception.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Exception.php new file mode 100644 index 0000000000000000000000000000000000000000..e36233143101a9f75f7a6bac4f33b843082a0a0b --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Exception.php @@ -0,0 +1,13 @@ +<?php + +namespace Basho\Riak\Command\Builder; + +/** + * Exception thrown when there is an error within the validation of a built command. + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Exception extends \Basho\Riak\Exception +{ + +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/FetchBucketProperties.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/FetchBucketProperties.php new file mode 100644 index 0000000000000000000000000000000000000000..c8d5fcadb7b0979f636afea4ab3b1985e5310403 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/FetchBucketProperties.php @@ -0,0 +1,45 @@ +<?php + +namespace Basho\Riak\Command\Builder; + +use Basho\Riak\Command; + +/** + * Used to fetch map objects from Riak + * + * <code> + * $command = (new Command\Builder\FetchMap($riak)) + * ->buildLocation($order_id, 'online_orders', 'sales_maps') + * ->build(); + * + * $response = $command->execute(); + * + * $map = $response->getMap(); + * </code> + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class FetchBucketProperties extends Command\Builder implements Command\BuilderInterface +{ + use BucketTrait; + + /** + * {@inheritdoc} + * + * @return Command\Bucket\Fetch; + */ + public function build() + { + $this->validate(); + + return new Command\Bucket\Fetch($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Bucket'); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/FetchCounter.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/FetchCounter.php new file mode 100644 index 0000000000000000000000000000000000000000..a75f4fcc90aa33962091e0d83a291d400b26f27c --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/FetchCounter.php @@ -0,0 +1,45 @@ +<?php + +namespace Basho\Riak\Command\Builder; + +use Basho\Riak\Command; + +/** + * Used to fetch counter objects from Riak + * + * <code> + * $command = (new Command\Builder\FetchCounter($riak)) + * ->buildLocation($user_name, 'user_visit_count', 'visit_counters') + * ->build(); + * + * $response = $command->execute(); + * + * $counter = $response->getCounter(); + * </code> + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class FetchCounter extends Command\Builder implements Command\BuilderInterface +{ + use LocationTrait; + + /** + * {@inheritdoc} + * + * @return Command\DataType\Counter\Fetch; + */ + public function build() + { + $this->validate(); + + return new Command\DataType\Counter\Fetch($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Location'); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/FetchHll.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/FetchHll.php new file mode 100644 index 0000000000000000000000000000000000000000..4275e2492f32fdb0a512a0cbc903109e28169269 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/FetchHll.php @@ -0,0 +1,45 @@ +<?php + +namespace Basho\Riak\Command\Builder; + +use Basho\Riak\Command; + +/** + * Used to fetch hll objects from Riak + * + * <code> + * $command = (new Command\Builder\FetchHll($riak)) + * ->buildLocation($user_id, 'email_subscriptions', 'user_preferences') + * ->build(); + * + * $response = $command->execute(); + * + * $set = $response->getHll(); + * </code> + * + * @author Luke Bakken <lbakken@basho.com> + */ +class FetchHll extends Command\Builder implements Command\BuilderInterface +{ + use LocationTrait; + + /** + * {@inheritdoc} + * + * @return Command\DataType\Hll\Fetch; + */ + public function build() + { + $this->validate(); + + return new Command\DataType\Hll\Fetch($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Location'); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/FetchMap.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/FetchMap.php new file mode 100644 index 0000000000000000000000000000000000000000..6a1d37dd161f3e7e0c46bb455615264a5c3e8c9c --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/FetchMap.php @@ -0,0 +1,45 @@ +<?php + +namespace Basho\Riak\Command\Builder; + +use Basho\Riak\Command; + +/** + * Used to fetch map objects from Riak + * + * <code> + * $command = (new Command\Builder\FetchMap($riak)) + * ->buildLocation($order_id, 'online_orders', 'sales_maps') + * ->build(); + * + * $response = $command->execute(); + * + * $map = $response->getMap(); + * </code> + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class FetchMap extends Command\Builder implements Command\BuilderInterface +{ + use LocationTrait; + + /** + * {@inheritdoc} + * + * @return Command\DataType\Map\Fetch; + */ + public function build() + { + $this->validate(); + + return new Command\DataType\Map\Fetch($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Location'); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/FetchObject.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/FetchObject.php new file mode 100644 index 0000000000000000000000000000000000000000..bdd24393df35b8a21d353ad6d95d86afbe764f91 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/FetchObject.php @@ -0,0 +1,79 @@ +<?php + +namespace Basho\Riak\Command\Builder; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * Used to fetch KV objects from Riak + * + * <code> + * $command = (new Command\Builder\FetchObject($riak)) + * ->buildLocation($user_id, 'users', 'default') + * ->build(); + * + * $response = $command->execute(); + * + * $user = $response->getObject(); + * </code> + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class FetchObject extends Command\Builder implements Command\BuilderInterface +{ + use ObjectTrait; + use LocationTrait; + + /** + * @var bool + */ + protected $decodeAsAssociative = false; + + public function __construct(Riak $riak) + { + parent::__construct($riak); + } + + /** + * {@inheritdoc} + * + * @return Command\KVObject\Fetch; + */ + public function build() + { + $this->validate(); + + return new Command\KVObject\Fetch($this); + } + + /** + * Tells the client to decode the data as an associative array instead of a PHP stdClass object. + * Only works if the fetched object type is JSON. + * + * @return $this + */ + public function withDecodeAsAssociative() + { + $this->decodeAsAssociative = true; + return $this; + } + + /** + * Fetch the setting for decodeAsAssociative. + * + * @return bool + */ + public function getDecodeAsAssociative() + { + return $this->decodeAsAssociative; + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Location'); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/FetchPreflist.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/FetchPreflist.php new file mode 100644 index 0000000000000000000000000000000000000000..5bb8270ec97389f06ae49026c470f3e34b446792 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/FetchPreflist.php @@ -0,0 +1,43 @@ +<?php + +namespace Basho\Riak\Command\Builder; + +use Basho\Riak\Command; + +/** + * Used to fetch map objects from Riak + * + * <code> + * $command = (new Command\Builder\FetchPreflist($riak)) + * ->buildLocation($order_id, 'online_orders', 'sales') + * ->build(); + * + * $response = $command->execute(); + * </code> + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class FetchPreflist extends Command\Builder implements Command\BuilderInterface +{ + use LocationTrait; + + /** + * {@inheritdoc} + * + * @return Command\KVObject\FetchPreflist; + */ + public function build() + { + $this->validate(); + + return new Command\KVObject\FetchPreflist($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Location'); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/FetchSet.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/FetchSet.php new file mode 100644 index 0000000000000000000000000000000000000000..376e4cd37aa02f546d1eeb4447fef9c98c65f562 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/FetchSet.php @@ -0,0 +1,45 @@ +<?php + +namespace Basho\Riak\Command\Builder; + +use Basho\Riak\Command; + +/** + * Used to fetch set objects from Riak + * + * <code> + * $command = (new Command\Builder\FetchSet($riak)) + * ->buildLocation($user_id, 'email_subscriptions', 'user_preferences') + * ->build(); + * + * $response = $command->execute(); + * + * $set = $response->getSet(); + * </code> + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class FetchSet extends Command\Builder implements Command\BuilderInterface +{ + use LocationTrait; + + /** + * {@inheritdoc} + * + * @return Command\DataType\Set\Fetch; + */ + public function build() + { + $this->validate(); + + return new Command\DataType\Set\Fetch($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Location'); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/FetchStats.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/FetchStats.php new file mode 100644 index 0000000000000000000000000000000000000000..006078d6a27d11118110c7950c0da50dc5e24a1d --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/FetchStats.php @@ -0,0 +1,38 @@ +<?php + +namespace Basho\Riak\Command\Builder; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * Riak real time stats + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class FetchStats extends Command\Builder implements Command\BuilderInterface +{ + public function __construct(Riak $riak) + { + parent::__construct($riak); + } + + /** + * {@inheritdoc} + * + * @return Command\Stats; + */ + public function build() + { + $this->validate(); + + return new Command\Stats($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/IncrementCounter.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/IncrementCounter.php new file mode 100644 index 0000000000000000000000000000000000000000..76b62df7021c6ae83acf3ddebcf4cc7d50228645 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/IncrementCounter.php @@ -0,0 +1,72 @@ +<?php + +namespace Basho\Riak\Command\Builder; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * Used to increment counter objects in Riak by the provided positive / negative integer + * + * <code> + * $command = (new Command\Builder\IncrementCounter($riak)) + * ->buildLocation($user_name, 'user_visit_count', 'visit_counters') + * ->build(); + * + * $response = $command->execute(); + * + * $counter = $response->getCounter(); + * </code> + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class IncrementCounter extends Command\Builder implements Command\BuilderInterface +{ + use LocationTrait; + + /** + * @var int|null + */ + protected $increment = NULL; + + /** + * {@inheritdoc} + * + * @return Command\DataType\Counter\Store + */ + public function build() + { + $this->validate(); + + return new Command\DataType\Counter\Store($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Bucket'); + $this->required('Increment'); + } + + /** + * @param int $increment + * + * @return $this + */ + public function withIncrement($increment = 1) + { + $this->increment = $increment; + + return $this; + } + + /** + * @return int|null + */ + public function getIncrement() + { + return $this->increment; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/IndexTrait.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/IndexTrait.php new file mode 100644 index 0000000000000000000000000000000000000000..6c31e7792e0e6ca444539b23377fa79ea223908b --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/IndexTrait.php @@ -0,0 +1,303 @@ +<?php + +namespace Basho\Riak\Command\Builder; + +/** + * Allows easy code sharing for Bucket getters / setters within the Command Builders + * + * @author Alex Moore <amoore at basho d0t com> + */ +trait IndexTrait +{ + /** + * The name of the index to query. + * + * @var string|null + */ + protected $indexName = NULL; + + /** + * The index match value for scalar queries. + * + * @var string|integer|null + */ + protected $match = NULL; + + /** + * The index lower bound value for range queries. + * + * @var string|integer|null + */ + protected $lowerBound = NULL; + + /** + * The index upper bound value for range queries. + * + * @var string|integer|null + */ + protected $upperBound = NULL; + + /** + * The continuation string for this query. + * Used to page results when combined with MaxResults. + * + * @var string|null + */ + protected $continuation = NULL; //Binary + + /** + * The maximum number of results returned by the query. + * + * @var integer|null + */ + protected $maxResults; // Int + + /** + * The option to return the index keys with the Riak object keys. + * + * @var boolean|null + */ + protected $returnTerms; // Bool + + /** + * The option to sort, or not sort, the results of a non-paginated secondary index query. + * If MaxResults is set, this property is ignored. + * By default results are sorted first by index value, then by key value. + * + * @var boolean|null + */ + protected $paginationSort; // Bool + + /** + * The option to filter result terms with a Regex. + * + * @var string|null + */ + protected $termFilter; // string + /** + * + * @var integer|null + */ + protected $timeout; // timeout + + /** + * Gets the index name + * + * @return string|null + */ + public function getIndexName() + { + return $this->indexName; + } + + /** + * @return string|integer|null + */ + public function getMatchValue() + { + return $this->match; + } + + /** + * @return string|integer|null + */ + public function getLowerBound() + { + return $this->lowerBound; + } + + /** + * @return string|integer|null + */ + public function getUpperBound() + { + return $this->upperBound; + } + + /** + * @return boolean + */ + public function isMatchQuery() + { + return isset($this->match); + } + + /** + * @return boolean + */ + public function isRangeQuery() + { + return isset($this->lowerBound) && isset($this->upperBound); + } + + /** + * @return null|string + */ + public function getContinuation() + { + return $this->continuation; + } + + /** + * @return int|null + */ + public function getMaxResults() + { + return $this->maxResults; + } + + /** + * @return bool|null + */ + public function getReturnTerms() + { + return $this->returnTerms; + } + + /** + * @return bool|null + */ + public function getPaginationSort() + { + return $this->paginationSort; + } + + /** + * @return null|string + */ + public function getTermFilter() + { + return $this->termFilter; + } + + /** + * @return int|null + */ + public function getTimeout() + { + return $this->timeout; + } + + + /** + * @param $param + * @return bool + */ + public function isParamSet($param) + { + return !empty($this->$param); + } + + /** + * Adds the index name information to the Command + * + * @param $indexName + * + * @return $this + */ + public function withIndexName($indexName) + { + $this->indexName = $indexName; + return $this; + } + + + /** + * Adds the scalar index query information to the Command + * + * @param $value + * + * @return $this + */ + public function withScalarValue($value) + { + $this->match = $value; + $this->lowerBound = null; + $this->upperBound = null; + return $this; + } + + + /** + * Adds the range index query information to the Command + * + * @param $lowerBound + * @param $upperBound + * + * @return $this + */ + public function withRangeValue($lowerBound, $upperBound) + { + $this->lowerBound = $lowerBound; + $this->upperBound = $upperBound; + $this->match = null; + + return $this; + } + + /** + * @param null|string $continuation + * + * @return $this + */ + public function withContinuation($continuation) + { + $this->continuation = $continuation; + return $this; + } + + /** + * @param int|null $maxResults + * + * @return $this + */ + public function withMaxResults($maxResults) + { + $this->maxResults = $maxResults; + return $this; + } + + /** + * @param bool|null $returnTerms + * + * @return $this + */ + public function withReturnTerms($returnTerms = true) + { + $this->returnTerms = $returnTerms; + return $this; + } + + /** + * @param bool|null $paginationSort + * + * @return $this + */ + public function withPaginationSort($paginationSort) + { + $this->paginationSort = $paginationSort; + return $this; + } + + /** + * @param null|string $termFilter + * + * @return $this + */ + public function withTermFilter($termFilter) + { + $this->termFilter = $termFilter; + return $this; + } + + /** + * @param int|null $timeout + * + * @return $this + */ + public function withTimeout($timeout) + { + $this->timeout = $timeout; + return $this; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/ListObjects.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/ListObjects.php new file mode 100644 index 0000000000000000000000000000000000000000..90637d041236901c6ab76a77a3f8e41dd2d99b9e --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/ListObjects.php @@ -0,0 +1,109 @@ +<?php + +namespace Basho\Riak\Command\Builder; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * Used to list KV objects in Riak + * + * Not recommended for production use. + * This command traverses all the keys stored in the cluster and should not be used in production. + * + * <code> + * $command = (new Command\Builder\ListObjects($riak)) + * ->buildBucket('users', 'default') + * ->acknowledgeRisk(true) + * ->build(); + * + * $response = $command->execute(); + * + * $data = $response->getKeys(); + * </code> + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class ListObjects extends Command\Builder implements Command\BuilderInterface +{ + use BucketTrait; + use ObjectTrait; + + /** + * @var bool + */ + protected $decodeAsAssociative = false; + protected $acknowledgedRisk = null; + + public function __construct(Riak $riak) + { + parent::__construct($riak); + } + + /** + * {@inheritdoc} + * + * @return Command\KVObject\Keys\Fetch + */ + public function build() + { + $this->validate(); + + return new Command\KVObject\Keys\Fetch($this); + } + + /** + * ListKeys operations are dangerous in production environments and are highly discouraged. + * This method is required in order to complete the operation. + * + * @return $this + */ + public function acknowledgeRisk($acknowledgedRisk = false) + { + if ($acknowledgedRisk) { + $this->acknowledgedRisk = $acknowledgedRisk; + } + return $this; + } + + /** + * Tells the client to decode the data as an associative array instead of a PHP stdClass object. + * Only works if the fetched object type is JSON. + * + * @return $this + */ + public function withDecodeAsAssociative() + { + $this->decodeAsAssociative = true; + return $this; + } + + /** + * Fetch the setting for decodeAsAssociative. + * + * @return bool + */ + public function getDecodeAsAssociative() + { + return $this->decodeAsAssociative; + } + + /** + * Fetch the setting for acknowledgedRisk. + * + * @return bool + */ + public function getAcknowledgedRisk() + { + return $this->acknowledgedRisk; + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Bucket'); + $this->required('AcknowledgedRisk'); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/LocationTrait.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/LocationTrait.php new file mode 100644 index 0000000000000000000000000000000000000000..e69574fc10f4f84f13059c77545cbd0942d99f06 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/LocationTrait.php @@ -0,0 +1,58 @@ +<?php + +namespace Basho\Riak\Command\Builder; + +use Basho\Riak\Bucket; +use Basho\Riak\Location; + +/** + * Allows easy code sharing for Location getters / setters within the Command Builders + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +trait LocationTrait +{ + // location depends on bucket + use BucketTrait; + + /** + * @var Location|null + */ + protected $location = NULL; + + /** + * @return Location|null + */ + public function getLocation() + { + return $this->location; + } + + /** + * @param $key + * @param $name + * @param string $type + * + * @return $this + */ + public function buildLocation($key, $name, $type = 'default') + { + $this->bucket = new Bucket($name, $type); + $this->location = new Location($key, $this->bucket); + + return $this; + } + + /** + * @param Location $location + * + * @return $this + */ + public function atLocation(Location $location) + { + $this->bucket = $location->getBucket(); + $this->location = $location; + + return $this; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/MapReduce/FetchObjects.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/MapReduce/FetchObjects.php new file mode 100644 index 0000000000000000000000000000000000000000..006ca8a5dc3287c643257af2e1c13b76dd9811a1 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/MapReduce/FetchObjects.php @@ -0,0 +1,283 @@ +<?php + +namespace Basho\Riak\Command\Builder\MapReduce; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * Builds the command to fetch a collection of objects from Riak using Yokozuna search + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class FetchObjects extends Command\Builder implements Command\BuilderInterface +{ + /** + * MR inputs used by query phase + * + * @var array|string + */ + protected $inputs = []; + + /** + * MR Query phases + * - options include map, reduce or link + * + * @var array + */ + protected $query = []; + + /** + * Timeout for MR query + * + * @var int + */ + protected $timeout = 0; + + /** + * {@inheritdoc} + * + * @return Command\MapReduce\Fetch; + */ + public function build() + { + $this->validate(); + + if (is_array($this->inputs) && count($this->inputs) == 1) { + $this->inputs = $this->inputs[0]; + } + + return new Command\MapReduce\Fetch($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Inputs'); + $this->required('Query'); + } + + /** + * addBucketInput + * + * @param Riak\Bucket $bucket + * + * @return $this + */ + public function addBucketInput(Riak\Bucket $bucket) + { + // default bucket type cannot be passed to the MR api due to a bug + if ($bucket->getType() == 'default') { + $input = $bucket->getName(); + } else { + $input = [$bucket->getType(), $bucket->getName()]; + } + + $this->inputs[] = $input; + + return $this; + } + + /** + * addLocationInput + * + * @param Riak\Location $location + * + * @return $this + */ + public function addLocationInput(Riak\Location $location) + { + // default bucket type cannot be passed to the MR api due to a bug + if ($location->getBucket()->getType() == 'default') { + $input = [$location->getBucket()->getName(), $location->getKey()]; + } else { + $input = [$location->getBucket()->getName(), $location->getKey(), '', $location->getBucket()->getType()]; + } + + $this->inputs[] = $input; + + return $this; + } + + /** + * withInput + * + * Sets a single input value as a string. Can be: + * - a bucket with the default bucket type + * - a 2i index name + * - a Search/Yokozuna index name + * + * @param $input + * + * @return $this + */ + public function withInput($input) + { + $this->inputs = $input; + + return $this; + } + + /** + * withInputs + * + * Sets an array of inputs for the MR request + * + * @param array $inputs + * + * @return $this + */ + public function withInputs(array $inputs) + { + $this->inputs = $inputs; + + return $this; + } + + public function getInputs() + { + return $this->inputs; + } + + /** + * @return string + */ + public function getQuery() + { + return $this->query; + } + + /** + * buildMapPhase + * + * Allows you to define the Map Query Phase by using parameters + * + * @param string $bucket + * @param string $key + * @param string $source + * @param string $language + * @param bool $keep + * + * @return $this + */ + public function buildMapPhase($bucket = '', $key = '', $source = '', $language = 'javascript', $keep = false) + { + $this->setPhase('map', $this->assemblePhaseData($bucket, $key, $source, $language), $keep); + + return $this; + } + + /** + * setPhase + * + * @param $type + * @param $data + * @param bool $keep + */ + protected function setPhase($type, $data, $keep = false) + { + $data['keep'] = $keep; + $object = new \StdClass(); + $object->{$type} = $data; + $this->query[] = $object; + } + + /** + * assemblePhaseData + * + * Assembles the parameters into a data structure to define a Query Phase + * + * @param string $bucket + * @param string $key + * @param string $source + * @param string $language + * @param string $tag + * + * @return array + */ + protected function assemblePhaseData($bucket = '', $key = '', $source = '', $language = '', $tag = '') + { + $data = []; + + if ($language) { + $data['language'] = $language; + } + + if ($bucket) { + $data['bucket'] = $bucket; + } + + if ($key) { + $data['key'] = $key; + } + + if ($source) { + $data['source'] = $source; + } + + if ($tag) { + $data['tag'] = $tag; + } + + return $data; + } + + /** + * buildReducePhase + * + * Allows you to define the Reduce Query Phase by using parameters + * + * @param string $bucket + * @param string $key + * @param string $source + * @param string $language + * @param bool $keep + * + * @return $this + */ + public function buildReducePhase($bucket = '', $key = '', $source = '', $language = 'javascript', $keep = true) + { + $this->setPhase('reduce', $this->assemblePhaseData($bucket, $key, $source, $language), $keep); + + return $this; + } + + /** + * buildReducePhase + * + * Allows you to define the Reduce Query Phase by using parameters + * + * @param string $bucket + * @param string $tag + * @param bool $keep + * + * @internal param string $key + * @internal param string $source + * @internal param string $language + * @return $this + */ + public function buildLinkPhase($bucket = '', $tag = '', $keep = false) + { + $this->setPhase('link', $this->assemblePhaseData($bucket, '', '', '', $tag), $keep); + + return $this; + } + + /** + * withQuery + * + * Sets the Query Phase/s for the MR request. This value gets converted directly into a JSON array and passed to Riak + * + * @param array $query + * + * @return $this + */ + public function withQuery(array $query) + { + $this->query = $query; + + return $this; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/ObjectTrait.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/ObjectTrait.php new file mode 100644 index 0000000000000000000000000000000000000000..edef54392f51f9f5d7c1b233d1b7881ab7165dd0 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/ObjectTrait.php @@ -0,0 +1,72 @@ +<?php + +namespace Basho\Riak\Command\Builder; + +use Basho\Riak\Api\Http; +use Basho\Riak\DataObject; + +/** + * Allows easy code sharing for Object getters / setters within the Command Builders + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +trait ObjectTrait +{ + /** + * @var \Basho\Riak\DataObject|null + */ + protected $dataObject = NULL; + + /** + * @return \Basho\Riak\DataObject|null + */ + public function getDataObject() + { + return $this->dataObject; + } + + /** + * Mint a new Object instance with supplied params and attach it to the Command + * + * @param string $data + * @param array $headers + * + * @return $this + */ + public function buildObject($data = NULL, $headers = NULL) + { + $this->dataObject = new DataObject($data, $headers); + + return $this; + } + + /** + * Attach an already instantiated Object to the Command + * + * @param \Basho\Riak\DataObject $object + * + * @return $this + */ + public function withObject(DataObject $object) + { + $this->dataObject = $object; + + return $this; + } + + /** + * Mint a new Object instance with a json encoded string + * + * @param mixed $data + * + * @return $this + */ + public function buildJsonObject($data) + { + $this->dataObject = new DataObject(); + $this->dataObject->setData($data); + $this->dataObject->setContentType(Http::CONTENT_TYPE_JSON); + + return $this; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Ping.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Ping.php new file mode 100644 index 0000000000000000000000000000000000000000..0d6cf1c1e2a5e679c186770148d0dcfb841f833f --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Ping.php @@ -0,0 +1,48 @@ +<?php + +namespace Basho\Riak\Command\Builder; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * Used to fetch KV objects from Riak + * + * <code> + * $command = (new Command\Builder\FetchObject($riak)) + * ->buildLocation($user_id, 'users', 'default') + * ->build(); + * + * $response = $command->execute(); + * + * $user = $response->getObject(); + * </code> + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Ping extends Command\Builder implements Command\BuilderInterface +{ + public function __construct(Riak $riak) + { + parent::__construct($riak); + } + + /** + * {@inheritdoc} + * + * @return Command\Ping; + */ + public function build() + { + $this->validate(); + + return new Command\Ping($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/QueryIndex.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/QueryIndex.php new file mode 100644 index 0000000000000000000000000000000000000000..3a82e37612c2313cce57420e61ad352100347df1 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/QueryIndex.php @@ -0,0 +1,56 @@ +<?php + +namespace Basho\Riak\Command\Builder; + +use Basho\Riak\Command; + +/** + * Used to query a secondary index in Riak. + * + * <code> + * $command = (new Command\Builder\QueryIndex($riak)) + * ->buildBucket('users') + * ->withIndex('users_name', 'Knuth') + * ->build(); + * + * $response = $command->execute(); + * + * $index_results = $response->getIndexResults(); + * </code> + * + * @author Alex Moore <amoore at basho d0t com> + */ +class QueryIndex extends Command\Builder implements Command\BuilderInterface +{ + use BucketTrait; + use IndexTrait; + + /** + * {@inheritdoc} + * + * @return Command\Indexes\Query + */ + public function build() + { + $this->validate(); + + return new Command\Indexes\Query($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Bucket'); + $this->required('IndexName'); + + if($this->isMatchQuery()) { + $this->required('MatchValue'); + } + else { + $this->required('LowerBound'); + $this->required('UpperBound'); + } + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Search/AssociateIndex.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Search/AssociateIndex.php new file mode 100644 index 0000000000000000000000000000000000000000..a5291f2279e5269d16e5892277a0c4615f442b4c --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Search/AssociateIndex.php @@ -0,0 +1,36 @@ +<?php + +namespace Basho\Riak\Command\Builder\Search; + +use Basho\Riak\Command; + +/** + * Used to increment counter objects in Riak by the provided positive / negative integer + * + * <code> + * $command = (new Command\Builder\StoreObject($riak)) + * ->buildObject('{"firstName":"John","lastName":"Doe","email":"johndoe@gmail.com"}') + * ->buildBucket('users') + * ->build(); + * + * $response = $command->execute(); + * + * $user_location = $response->getLocation(); + * </code> + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class AssociateIndex extends Command\Builder\SetBucketProperties implements Command\BuilderInterface +{ + /** + * @param $name + * + * @return $this + */ + public function withName($name) + { + $this->set('search_index', $name); + + return $this; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Search/DeleteIndex.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Search/DeleteIndex.php new file mode 100644 index 0000000000000000000000000000000000000000..b17e68b6b01f3cc377ef76b48af3bf9a2f4419e1 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Search/DeleteIndex.php @@ -0,0 +1,61 @@ +<?php + +namespace Basho\Riak\Command\Builder\Search; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class DeleteIndex extends Command\Builder implements Command\BuilderInterface +{ + /** + * Name of index to create + * + * @var string + */ + protected $name = ''; + + public function __construct(Riak $riak) + { + parent::__construct($riak); + } + + /** + * @param $name + * + * @return $this + */ + public function withName($name) + { + $this->name = $name; + + return $this; + } + + public function getName() + { + return $this->name; + } + + /** + * {@inheritdoc} + * + * @return Command\Search\Index\Store + */ + public function build() + { + $this->validate(); + + return new Command\Search\Index\Delete($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Name'); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Search/DissociateIndex.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Search/DissociateIndex.php new file mode 100644 index 0000000000000000000000000000000000000000..9e4cf00c0f26542bd1bae22f0f2b585fe8be20e2 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Search/DissociateIndex.php @@ -0,0 +1,32 @@ +<?php + +namespace Basho\Riak\Command\Builder\Search; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * Used to increment counter objects in Riak by the provided positive / negative integer + * + * <code> + * $command = (new Command\Builder\StoreObject($riak)) + * ->buildObject('{"firstName":"John","lastName":"Doe","email":"johndoe@gmail.com"}') + * ->buildBucket('users') + * ->build(); + * + * $response = $command->execute(); + * + * $user_location = $response->getLocation(); + * </code> + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class DissociateIndex extends Command\Builder\SetBucketProperties implements Command\BuilderInterface +{ + public function __construct(Riak $riak) + { + parent::__construct($riak); + + $this->set('search_index', '_dont_index_'); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Search/FetchIndex.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Search/FetchIndex.php new file mode 100644 index 0000000000000000000000000000000000000000..ea1bd8a545b8459c5f55399d99db172da95a4671 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Search/FetchIndex.php @@ -0,0 +1,42 @@ +<?php + +namespace Basho\Riak\Command\Builder\Search; + +use Basho\Riak\Command; + +/** + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class FetchIndex extends Command\Builder implements Command\BuilderInterface +{ + protected $index_name = ''; + + /** + * {@inheritdoc} + * + * @return Command\Search\Index\Fetch; + */ + public function build() + { + $this->validate(); + + return new Command\Search\Index\Fetch($this); + } + + public function validate() + { + return; + } + + public function withName($name) + { + $this->index_name = $name; + + return $this; + } + + public function getIndexName() + { + return $this->index_name; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Search/FetchObjects.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Search/FetchObjects.php new file mode 100644 index 0000000000000000000000000000000000000000..76ffa194c4e116b57427ba784e7f738d613bc7d8 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Search/FetchObjects.php @@ -0,0 +1,184 @@ +<?php + +namespace Basho\Riak\Command\Builder\Search; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * Builds the command to fetch a collection of objects from Riak using Yokozuna search + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class FetchObjects extends Command\Builder implements Command\BuilderInterface +{ + protected $default_field = ''; + + protected $default_operation = ''; + + protected $index_name = ''; + + public function __construct(Riak $riak) + { + parent::__construct($riak); + + $this->parameters['wt'] = 'json'; + $this->parameters['rows'] = 10; + $this->parameters['start'] = 0; + } + + /** + * {@inheritdoc} + * + * @return Command\Search\Fetch; + */ + public function build() + { + $this->validate(); + + return new Command\Search\Fetch($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('IndexName'); + $this->required('Query'); + $this->required('MaxRows'); + $this->required('StartRow'); + } + + public function withIndexName($name) + { + $this->index_name = $name; + + return $this; + } + + public function getIndexName() + { + return $this->index_name; + } + + /** + * @return string + */ + public function getQuery() + { + return $this->parameters['q']; + } + + /** + * @return int + */ + public function getMaxRows() + { + return $this->parameters['rows']; + } + + /** + * @return int + */ + public function getStartRow() + { + return $this->parameters['start']; + } + + /** + * @return string + */ + public function getFilterQuery() + { + return $this->parameters['fq']; + } + + /** + * @return string + */ + public function getSortField() + { + return $this->parameters['sort']; + } + + /** + * @return string + */ + public function getDefaultField() + { + return $this->default_field; + } + + /** + * @return string + */ + public function getDefaultOperation() + { + return $this->default_operation; + } + + /** + * @return string + */ + public function getReturnFields() + { + return $this->parameters['fl']; + } + + public function withQuery($query) + { + $this->parameters['q'] = $query; + + return $this; + } + + public function withMaxRows($rows) + { + $this->parameters['rows'] = $rows; + + return $this; + } + + public function withStartRow($row_num) + { + $this->parameters['start'] = $row_num; + + return $this; + } + + public function withSortField($field_name) + { + $this->parameters['sort'] = $field_name; + + return $this; + } + + public function withFilterQuery($filter_query) + { + $this->parameters['fq'] = $filter_query; + + return $this; + } + + public function withDefaultField($default_field) + { + $this->parameters['df'] = $default_field; + + return $this; + } + + public function withDefaultOperation($default_operation) + { + $this->parameters['op'] = $default_operation; + + return $this; + } + + public function withReturnFields($return_fields) + { + $this->parameters['fl'] = $return_fields; + + return $this; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Search/FetchSchema.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Search/FetchSchema.php new file mode 100644 index 0000000000000000000000000000000000000000..44c5bab54fa501e3721db4de5c9d5687109e19aa --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Search/FetchSchema.php @@ -0,0 +1,48 @@ +<?php + +namespace Basho\Riak\Command\Builder\Search; + +use Basho\Riak\Command; + +/** + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class FetchSchema extends Command\Builder implements Command\BuilderInterface +{ + protected $schema_name = ''; + + /** + * @return string + */ + public function getSchemaName() + { + return $this->schema_name; + } + + /** + * {@inheritdoc} + * + * @return Command\Search\Schema\Fetch; + */ + public function build() + { + $this->validate(); + + return new Command\Search\Schema\Fetch($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('SchemaName'); + } + + public function withName($name) + { + $this->schema_name = $name; + + return $this; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Search/StoreIndex.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Search/StoreIndex.php new file mode 100644 index 0000000000000000000000000000000000000000..a5e37be3bc10d744eed1ab7e80f47578c61187d2 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Search/StoreIndex.php @@ -0,0 +1,81 @@ +<?php + +namespace Basho\Riak\Command\Builder\Search; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class StoreIndex extends Command\Builder implements Command\BuilderInterface +{ + /** + * Name of index to create + * + * @var string + */ + protected $name = ''; + + /** + * Solr schema to use for Searching your Riak data + * + * @var string + */ + protected $schema = '_yz_default'; + + /** + * @param $name + * + * @return $this + */ + public function withName($name) + { + $this->name = $name; + + return $this; + } + + /** + * @param $schema + * + * @return $this + */ + public function usingSchema($schema) + { + $this->schema = $schema; + + return $this; + } + + public function getSchema() + { + return $this->schema; + } + + public function getName() + { + return $this->name; + } + + /** + * {@inheritdoc} + * + * @return Command\Search\Index\Store + */ + public function build() + { + $this->validate(); + + return new Command\Search\Index\Store($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Name'); + $this->required('Schema'); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Search/StoreSchema.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Search/StoreSchema.php new file mode 100644 index 0000000000000000000000000000000000000000..a5a7e99707bbd4dd8e91f89df14c90d1d39b4dab --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/Search/StoreSchema.php @@ -0,0 +1,79 @@ +<?php + +namespace Basho\Riak\Command\Builder\Search; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class StoreSchema extends Command\Builder implements Command\BuilderInterface +{ + /** + * Name of index to create + * + * @var string + */ + protected $name = ''; + + protected $schema = ''; + + public function withSchemaFile($schema_file) + { + $this->schema = file_get_contents($schema_file); + + return $this; + } + + /** + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * @return string + */ + public function getSchema() + { + return $this->schema; + } + + public function withSchemaString($schema) + { + $this->schema = $schema; + + return $this; + } + + public function withName($name) + { + $this->name = $name; + + return $this; + } + + /** + * {@inheritdoc} + * + * @return Command\Search\Schema\Store + */ + public function build() + { + $this->validate(); + + return new Command\Search\Schema\Store($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Name'); + $this->required('Schema'); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/SetBucketProperties.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/SetBucketProperties.php new file mode 100644 index 0000000000000000000000000000000000000000..f08cf3b29abd5b7a650d26dcc68ec557268ceefd --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/SetBucketProperties.php @@ -0,0 +1,64 @@ +<?php + +namespace Basho\Riak\Command\Builder; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class SetBucketProperties extends Command\Builder implements Command\BuilderInterface +{ + use BucketTrait; + + /** + * @var array + */ + protected $properties = []; + + /** + * @param $key + * @param $value + * + * @return $this + */ + public function set($key, $value) + { + $this->properties[$key] = $value; + + return $this; + } + + /** + * @return array + */ + public function getProperties() + { + return $this->properties; + } + + /** + * {@inheritdoc} + * + * @return Command\Bucket\Store + */ + public function build() + { + $this->validate(); + + return new Command\Bucket\Store($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Bucket'); + + if (count($this->properties) < 1) { + throw new Exception('At least one element to add or remove needs to be defined.'); + } + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/StoreObject.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/StoreObject.php new file mode 100644 index 0000000000000000000000000000000000000000..f883fd6717bf54e0dc87a41c35ddfc05d7fc8d09 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/StoreObject.php @@ -0,0 +1,76 @@ +<?php + +namespace Basho\Riak\Command\Builder; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * Used to increment counter objects in Riak by the provided positive / negative integer + * + * <code> + * $command = (new Command\Builder\StoreObject($riak)) + * ->buildObject('{"firstName":"John","lastName":"Doe","email":"johndoe@gmail.com"}') + * ->buildBucket('users') + * ->build(); + * + * $response = $command->execute(); + * + * $user_location = $response->getLocation(); + * </code> + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class StoreObject extends Command\Builder implements Command\BuilderInterface +{ + use ObjectTrait; + use LocationTrait; + + /** + * @var bool + */ + protected $decodeAsAssociative = false; + + /** + * Tells the client to decode the data as an associative array instead of a PHP stdClass object. + * Only works if the fetched object type is JSON. + * + * @return $this + */ + public function withDecodeAsAssociative() + { + $this->decodeAsAssociative = true; + return $this; + } + + /** + * Fetch the setting for decodeAsAssociative. + * + * @return bool + */ + public function getDecodeAsAssociative() + { + return $this->decodeAsAssociative; + } + + /** + * {@inheritdoc} + * + * @return Command\KVObject\Store + */ + public function build() + { + $this->validate(); + + return new Command\KVObject\Store($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Bucket'); + $this->required('DataObject'); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/DeleteRow.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/DeleteRow.php new file mode 100644 index 0000000000000000000000000000000000000000..80e0f37955aa420fbcde3ef59a10b8c3e9b7d21e --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/DeleteRow.php @@ -0,0 +1,36 @@ +<?php + +namespace Basho\Riak\Command\Builder\TimeSeries; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class DeleteRow extends Command\Builder implements Command\BuilderInterface +{ + use TableTrait; + use KeyTrait; + + /** + * {@inheritdoc} + * + * @return Command\TimeSeries\Store + */ + public function build() + { + $this->validate(); + + return new Command\TimeSeries\Delete($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Key'); + $this->required('Table'); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/DescribeTable.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/DescribeTable.php new file mode 100644 index 0000000000000000000000000000000000000000..7710affc7af33e46d8f634a97ec313781412411b --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/DescribeTable.php @@ -0,0 +1,28 @@ +<?php + +namespace Basho\Riak\Command\Builder\TimeSeries; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class DescribeTable extends Command\Builder\TimeSeries\Query implements Command\BuilderInterface +{ + /** + * Which table do you want to describe? + * + * @param $table + * + * @return $this + */ + public function withTable($table) + { + if ($table) { + $this->query = "DESCRIBE {$table}"; + } + + return $this; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/FetchRow.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/FetchRow.php new file mode 100644 index 0000000000000000000000000000000000000000..96e9d721cb7163c2aa7048659552f52e296940ab --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/FetchRow.php @@ -0,0 +1,36 @@ +<?php + +namespace Basho\Riak\Command\Builder\TimeSeries; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class FetchRow extends Command\Builder implements Command\BuilderInterface +{ + use TableTrait; + use KeyTrait; + + /** + * {@inheritdoc} + * + * @return Command\TimeSeries\Store + */ + public function build() + { + $this->validate(); + + return new Command\TimeSeries\Fetch($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Key'); + $this->required('Table'); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/KeyTrait.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/KeyTrait.php new file mode 100644 index 0000000000000000000000000000000000000000..87016565b66f4a7fd12923ab0da681a2b8ca58bd --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/KeyTrait.php @@ -0,0 +1,40 @@ +<?php + +namespace Basho\Riak\Command\Builder\TimeSeries; + +/** + * @author Christopher Mancini <cmancini at basho d0t com> + */ +trait KeyTrait +{ + /** + * Stores the key + * + * @var \Basho\Riak\TimeSeries\Cell[] + */ + protected $key = []; + + /** + * Gets the key + * + * @return \Basho\Riak\TimeSeries\Cell[] + */ + public function getKey() + { + return $this->key; + } + + /** + * Attach the provided key to the Command Builder + * + * @param \Basho\Riak\TimeSeries\Cell[] $key + * + * @return $this + */ + public function atKey(array $key) + { + $this->key = $key; + + return $this; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/Query.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/Query.php new file mode 100644 index 0000000000000000000000000000000000000000..5df2b2f3dde7dafd8030ceb3bfd3df28bbcdfcc7 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/Query.php @@ -0,0 +1,70 @@ +<?php + +namespace Basho\Riak\Command\Builder\TimeSeries; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Query extends Command\Builder implements Command\BuilderInterface +{ + protected $query = ''; + protected $interps = []; + + public function __construct(Riak $riak) + { + parent::__construct($riak); + } + + /** + * TimeSeries SQL'ish query + * + * @param $query + * + * @return $this + */ + public function withQuery($query) + { + $this->query = $query; + + return $this; + } + + /** + * @return string + */ + public function getQuery() + { + return $this->query; + } + + /** + * @return array + */ + public function getInterps() + { + return $this->interps; + } + + /** + * {@inheritdoc} + * + * @return Command\TimeSeries\Store + */ + public function build() + { + $this->validate(); + + return new Command\TimeSeries\Query\Fetch($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Query'); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/RowsTrait.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/RowsTrait.php new file mode 100644 index 0000000000000000000000000000000000000000..e49e205a2228ba12778901365c9d4da4441aaeaa --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/RowsTrait.php @@ -0,0 +1,48 @@ +<?php + +namespace Basho\Riak\Command\Builder\TimeSeries; + +/** + * @author Christopher Mancini <cmancini at basho d0t com> + */ +trait RowsTrait +{ + /** + * Stores the rows + * + * @var array $rows + */ + protected $rows = []; + + /** + * @return array $rows + */ + public function getRows() + { + return $this->rows; + } + + /** + * Attach the provided rows to the Command + * + * @param array $rows + * + * @return $this + */ + public function withRows($rows) + { + $this->rows = $rows; + + return $this; + } + + /** + * @param \Basho\Riak\TimeSeries\Cell[] $row + */ + public function withRow(array $row) + { + $this->rows[] = $row; + + return $this; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/StoreRows.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/StoreRows.php new file mode 100644 index 0000000000000000000000000000000000000000..cd79264386e36ec9469929461a0d453a261f1287 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/StoreRows.php @@ -0,0 +1,36 @@ +<?php + +namespace Basho\Riak\Command\Builder\TimeSeries; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class StoreRows extends Command\Builder implements Command\BuilderInterface +{ + use TableTrait; + use RowsTrait; + + /** + * {@inheritdoc} + * + * @return Command\TimeSeries\Store + */ + public function build() + { + $this->validate(); + + return new Command\TimeSeries\Store($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Rows'); + $this->required('Table'); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/TableTrait.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/TableTrait.php new file mode 100644 index 0000000000000000000000000000000000000000..bfb862103958ad493bd30b29ac5e66b6f78b5238 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/TimeSeries/TableTrait.php @@ -0,0 +1,40 @@ +<?php + +namespace Basho\Riak\Command\Builder\TimeSeries; + +/** + * @author Christopher Mancini <cmancini at basho d0t com> + */ +trait TableTrait +{ + /** + * Stores the table name + * + * @var string|null + */ + protected $table = NULL; + + /** + * Gets the table name + * + * @return string|null + */ + public function getTable() + { + return $this->table; + } + + /** + * Attach the provided table name to the Command + * + * @param string $table + * + * @return $this + */ + public function inTable($table) + { + $this->table = $table; + + return $this; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/UpdateGSet.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/UpdateGSet.php new file mode 100644 index 0000000000000000000000000000000000000000..9a5c8c9f7c76ec7400c4b3fb6198e06a2f571b86 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/UpdateGSet.php @@ -0,0 +1,66 @@ +<?php + +namespace Basho\Riak\Command\Builder; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * @author Luke Bakken <lbakken@basho.com> + */ +class UpdateGSet extends Command\Builder implements Command\BuilderInterface +{ + use LocationTrait; + + /** + * @var array + */ + protected $add_all = []; + + /** + * @param mixed $element + * + * @return $this + */ + public function add($element) + { + settype($element, 'string'); + $this->add_all[] = $element; + + return $this; + } + + /** + * @return array + */ + public function getAddAll() + { + return $this->add_all; + } + + /** + * {@inheritdoc} + * + * @return Command\DataType\GSet\Store + */ + public function build() + { + $this->validate(); + + return new Command\DataType\GSet\Store($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Bucket'); + + $count_add = count($this->add_all); + + if ($count_add < 1) { + throw new Exception('At least one element to add needs to be defined.'); + } + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/UpdateHll.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/UpdateHll.php new file mode 100644 index 0000000000000000000000000000000000000000..72d0f121ae1d9b935a537aa5de8c29361d9821fc --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/UpdateHll.php @@ -0,0 +1,72 @@ +<?php + +namespace Basho\Riak\Command\Builder; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * @author Luke Bakken <lbakken@basho.com> + */ +class UpdateHll extends Command\Builder implements Command\BuilderInterface +{ + use LocationTrait; + + /** + * @var array + */ + protected $add_all = []; + + /** + * Similar to Vector Clocks, the context allows us to determine the state of a CRDT Hll + * + * @var string + */ + protected $context = ''; + + /** + * @param mixed $element + * + * @return $this + */ + public function add($element) + { + settype($element, 'string'); + $this->add_all[] = $element; + + return $this; + } + + /** + * @return array + */ + public function getAddAll() + { + return $this->add_all; + } + + /** + * {@inheritdoc} + * + * @return Command\DataType\Hll\Store + */ + public function build() + { + $this->validate(); + + return new Command\DataType\Hll\Store($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Bucket'); + + $count_add = count($this->add_all); + if ($count_add < 1) { + throw new Exception('At least one element to add must be defined.'); + } + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/UpdateMap.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/UpdateMap.php new file mode 100644 index 0000000000000000000000000000000000000000..1bfbda2a1f07bf8d35936101fd192b592e8ed4df --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/UpdateMap.php @@ -0,0 +1,280 @@ +<?php + +namespace Basho\Riak\Command\Builder; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class UpdateMap extends Command\Builder implements Command\BuilderInterface +{ + use LocationTrait; + + protected $remove = []; + + /** + * @var array + */ + protected $registers = []; + + /** + * @var array + */ + protected $flags = []; + + /** + * @var IncrementCounter[] + */ + protected $counters = []; + + /** + * @var UpdateSet[] + */ + protected $sets = []; + + /** + * @var UpdateMap[] + */ + protected $maps = []; + + /** + * Similar to Vector Clocks, the context allows us to determine the state of a CRDT Set + * + * @var string + */ + protected $context = ''; + + public function removeRegister($key) + { + $this->remove($key, Riak\DataType\Map::REGISTER); + + return $this; + } + + protected function remove($key, $type) + { + $this->remove[] = sprintf('%s_%s', $key, $type); + } + + public function removeFlag($key) + { + $this->remove($key, Riak\DataType\Map::FLAG); + + return $this; + } + + public function removeCounter($key) + { + $this->remove($key, Riak\DataType\Counter::TYPE); + + return $this; + } + + public function removeSet($key) + { + $this->remove($key, Riak\DataType\Set::TYPE); + + return $this; + } + + public function removeMap($key) + { + $this->remove($key, Riak\DataType\Map::TYPE); + + return $this; + } + + /** + * @param $key + * @param $value + * + * @return $this + */ + public function updateRegister($key, $value) + { + $this->update($key, Riak\DataType\Map::REGISTER, $value); + + return $this; + } + + protected function update($key, $type, $value) + { + $property = "{$type}s"; + $this->{$property}[sprintf('%s_%s', $key, $type)] = $value; + } + + /** + * @param $key + * @param bool $state + * + * @return $this + */ + public function updateFlag($key, $state = TRUE) + { + $this->update($key, Riak\DataType\Map::FLAG, $state); + + return $this; + } + + /** + * @param $key + * @param IncrementCounter $builder + * + * @return $this + */ + public function updateCounter($key, IncrementCounter $builder) + { + $this->update($key, Riak\DataType\Counter::TYPE, $builder); + + return $this; + } + + /** + * @param $key + * @param UpdateSet $builder + * + * @return $this + */ + public function updateSet($key, UpdateSet $builder) + { + $this->update($key, Riak\DataType\Set::TYPE, $builder); + + return $this; + } + + /** + * @param $key + * @param UpdateMap $builder + * + * @return $this + */ + public function updateMap($key, UpdateMap $builder) + { + $this->update($key, Riak\DataType\Map::TYPE, $builder); + + return $this; + } + + /** + * @param $context + * + * @return $this + */ + public function withContext($context) + { + $this->context = $context; + + return $this; + } + + /** + * {@inheritdoc} + * + * @return Command\DataType\Map\Store + */ + public function build() + { + $this->validate(); + + return new Command\DataType\Map\Store($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Bucket'); + + $count_remove = count($this->remove); + $count_registers = count($this->registers); + $count_flags = count($this->flags); + $count_counters = count($this->counters); + $count_sets = count($this->sets); + $count_maps = count($this->maps); + + if ($count_remove + $count_registers + $count_flags + $count_counters + $count_sets + $count_maps < 1) { + throw new Exception('At least one add, remove, or update operation needs to be defined.'); + } + + if ($count_remove) { + $this->required('Location'); + $this->required('Context'); + } + + // if we are performing a remove on a nested set, Location and context are required + if ($count_sets) { + foreach ($this->sets as $set) { + if (count($set->getRemoveAll())) { + $this->required('Location'); + $this->required('Context'); + break; + } + } + } + + + // if we are performing a remove, Location and context are required + if ($count_remove) { + $this->required('Location'); + $this->required('Context'); + } + } + + public function getRemove() + { + return $this->remove; + } + + /** + * @return array + */ + public function getRegisters() + { + return $this->registers; + } + + /** + * @return array + */ + public function getFlags() + { + return $this->flags; + } + + /** + * @return IncrementCounter[] + */ + public function getCounters() + { + return $this->counters; + } + + /** + * @return UpdateSet[] + */ + public function getSets() + { + return $this->sets; + } + + /** + * @return UpdateMap[] + */ + public function getMaps() + { + return $this->maps; + } + + /** + * getContext + * + * @return string + */ + public function getContext() + { + return $this->context; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/UpdateSet.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/UpdateSet.php new file mode 100644 index 0000000000000000000000000000000000000000..06017f2b666df5bf2b333fd329d25468140d5727 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Builder/UpdateSet.php @@ -0,0 +1,128 @@ +<?php + +namespace Basho\Riak\Command\Builder; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class UpdateSet extends Command\Builder implements Command\BuilderInterface +{ + use LocationTrait; + + /** + * @var array + */ + protected $add_all = []; + + /** + * @var array + */ + protected $remove_all = []; + + /** + * Similar to Vector Clocks, the context allows us to determine the state of a CRDT Set + * + * @var string + */ + protected $context = ''; + + /** + * @param mixed $element + * + * @return $this + */ + public function add($element) + { + settype($element, 'string'); + $this->add_all[] = $element; + + return $this; + } + + /** + * @param mixed $element + * + * @return $this + */ + public function remove($element) + { + settype($element, 'string'); + $this->remove_all[] = $element; + + return $this; + } + + /** + * @param $context + * + * @return $this + */ + public function withContext($context) + { + $this->context = $context; + + return $this; + } + + /** + * @return array + */ + public function getAddAll() + { + return $this->add_all; + } + + /** + * @return array + */ + public function getRemoveAll() + { + return $this->remove_all; + } + + /** + * getContext + * + * @return string + */ + public function getContext() + { + return $this->context; + } + + /** + * {@inheritdoc} + * + * @return Command\DataType\Set\Store + */ + public function build() + { + $this->validate(); + + return new Command\DataType\Set\Store($this); + } + + /** + * {@inheritdoc} + */ + public function validate() + { + $this->required('Bucket'); + + $count_add = count($this->add_all); + $count_remove = count($this->remove_all); + + if ($count_add + $count_remove < 1) { + throw new Exception('At least one element to add or remove needs to be defined.'); + } + + // if we are performing a remove, Location and context are required + if ($count_remove) { + $this->required('Location'); + $this->required('Context'); + } + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/BuilderInterface.php b/vendor/phpfastcache/riak-client/src/Riak/Command/BuilderInterface.php new file mode 100644 index 0000000000000000000000000000000000000000..9aae7247ee50dbec407fd576580806e6e4043aba --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/BuilderInterface.php @@ -0,0 +1,17 @@ +<?php + +namespace Basho\Riak\Command; + +/** + * BuilderInterface + * + * [summary] + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +interface BuilderInterface +{ + const COMMAND = ''; + + public function build(); +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Counter/Fetch.php b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Counter/Fetch.php new file mode 100644 index 0000000000000000000000000000000000000000..5a7c4a2d06b9ab578cfea89f6a33d286dd6ae2ed --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Counter/Fetch.php @@ -0,0 +1,56 @@ +<?php + +namespace Basho\Riak\Command\DataType\Counter; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; +use Basho\Riak\Location; + +/** + * Used to fetch a counter + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Fetch extends Command implements CommandInterface +{ + /** + * @var Command\DataType\Counter\Response|null + */ + protected $response = NULL; + + /** + * @var Location|null + */ + protected $location = NULL; + + public function __construct(Command\Builder\FetchCounter $builder) + { + parent::__construct($builder); + + $this->bucket = $builder->getBucket(); + $this->location = $builder->getLocation(); + } + + public function getLocation() + { + return $this->location; + } + + public function getData() + { + return ''; + } + + public function getEncodedData() + { + return ''; + } + + /** + * @return Command\DataType\Counter\Response + */ + public function execute() + { + return parent::execute(); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Counter/Response.php b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Counter/Response.php new file mode 100644 index 0000000000000000000000000000000000000000..aaeafa9d42b8098ea274e445d431f2c890f466a9 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Counter/Response.php @@ -0,0 +1,68 @@ +<?php + +namespace Basho\Riak\Command\DataType\Counter; + +use Basho\Riak\DataType\Counter; +use Basho\Riak\Location; + +/** + * Container for a response related to an operation on an object + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Response extends \Basho\Riak\Command\Response +{ + /** + * @var \Basho\Riak\DataType\Counter|null + */ + protected $counter = null; + + /** + * @var Location + */ + protected $location = null; + + /** + * @var string + */ + protected $date = ''; + + public function __construct($success = true, $code = 0, $message = '', $location = null, $counter = null, $date = '') + { + parent::__construct($success, $code, $message); + + $this->counter = $counter; + $this->location = $location; + $this->date = $date; + } + + /** + * Retrieves the Location value from the response headers + * + * @return Location + * @throws \Basho\Riak\Command\Exception + */ + public function getLocation() + { + return $this->location; + } + + /** + * @return Counter|null + */ + public function getCounter() + { + return $this->counter; + } + + /** + * Retrieves the date of the counter's retrieval + * + * @return string + * @throws \Basho\Riak\Command\Exception + */ + public function getDate() + { + return $this->date; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Counter/Store.php b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Counter/Store.php new file mode 100644 index 0000000000000000000000000000000000000000..2d6b98298d346c0cd49f66dbf4623c6cd412c635 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Counter/Store.php @@ -0,0 +1,65 @@ +<?php + +namespace Basho\Riak\Command\DataType\Counter; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; +use Basho\Riak\Location; + + +/** + * Stores a write operation to a CRDT counter + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Store extends Command implements CommandInterface +{ + protected $method = 'POST'; + + /** + * @var int + */ + protected $increment = 0; + + /** + * @var Command\DataType\Counter\Response|null + */ + protected $response = NULL; + + /** + * @var Location|null + */ + protected $location = NULL; + + public function __construct(Command\Builder\IncrementCounter $builder) + { + parent::__construct($builder); + + $this->increment = $builder->getIncrement(); + $this->bucket = $builder->getBucket(); + $this->location = $builder->getLocation(); + } + + public function getLocation() + { + return $this->location; + } + + public function getEncodedData() + { + return json_encode($this->getData()); + } + + public function getData() + { + return ['increment' => $this->increment]; + } + + /** + * @return Command\DataType\Counter\Response + */ + public function execute() + { + return parent::execute(); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/GSet/Store.php b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/GSet/Store.php new file mode 100644 index 0000000000000000000000000000000000000000..c9573e29ff5123b442f7eac8648c8f01ce9e1147 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/GSet/Store.php @@ -0,0 +1,64 @@ +<?php + +namespace Basho\Riak\Command\DataType\GSet; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; +use Basho\Riak\Location; + +/** + * Stores a write update to a gset + * + * @author Luke Bakken <lbakken@basho.com> + */ +class Store extends Command implements CommandInterface +{ + protected $method = 'POST'; + + /** + * @var array + */ + protected $add_all = []; + + /** + * @var Command\DataType\Set\Response|null + */ + protected $response = NULL; + + /** + * @var Location|null + */ + protected $location = NULL; + + public function __construct(Command\Builder\UpdateGSet $builder) + { + parent::__construct($builder); + + $this->add_all = $builder->getAddAll(); + $this->bucket = $builder->getBucket(); + $this->location = $builder->getLocation(); + } + + public function getLocation() + { + return $this->location; + } + + public function getEncodedData() + { + return json_encode($this->getData()); + } + + public function getData() + { + return ['add_all' => $this->add_all]; + } + + /** + * @return Command\DataType\Set\Response + */ + public function execute() + { + return parent::execute(); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Hll/Fetch.php b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Hll/Fetch.php new file mode 100644 index 0000000000000000000000000000000000000000..d360018449ab628d490a7569983ca6ff4f764ccd --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Hll/Fetch.php @@ -0,0 +1,56 @@ +<?php + +namespace Basho\Riak\Command\DataType\Hll; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; +use Basho\Riak\Location; + +/** + * Fetches an Hll data type from Riak + * + * @author Luke Bakken <lbakken@basho.com> + */ +class Fetch extends Command implements CommandInterface +{ + /** + * @var Command\DataType\Hll\Response|null + */ + protected $response = NULL; + + /** + * @var Location|null + */ + protected $location = NULL; + + public function __construct(Command\Builder\FetchHll $builder) + { + parent::__construct($builder); + + $this->bucket = $builder->getBucket(); + $this->location = $builder->getLocation(); + } + + public function getLocation() + { + return $this->location; + } + + public function getData() + { + return ''; + } + + public function getEncodedData() + { + return ''; + } + + /** + * @return Command\DataType\Hll\Response + */ + public function execute() + { + return parent::execute(); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Hll/Response.php b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Hll/Response.php new file mode 100644 index 0000000000000000000000000000000000000000..ce7c9e6e5c4790dd01a8f5c91fbf89db4a44b18f --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Hll/Response.php @@ -0,0 +1,58 @@ +<?php + +namespace Basho\Riak\Command\DataType\Hll; + +use Basho\Riak\DataType\Hll; +use Basho\Riak\Location; + +/** + * Container for a response related to an operation on an hll data type + * + * @author Luke Bakken <lbakken@basho.com> + */ +class Response extends \Basho\Riak\Command\Response +{ + /** + * @var \Basho\Riak\DataType\Hll|null + */ + protected $hll = null; + + public function __construct($success = true, $code = 0, $message = '', $location = null, $hll = null, $date = '') + { + parent::__construct($success, $code, $message); + + $this->hll = $hll; + $this->location = $location; + $this->date = $date; + } + + /** + * Retrieves the Location value from the response headers + * + * @return Location + * @throws \Basho\Riak\Command\Exception + */ + public function getLocation() + { + return $this->location; + } + + /** + * @return Hll|null + */ + public function getHll() + { + return $this->hll; + } + + /** + * Retrieves the date of the hll's retrieval + * + * @return string + * @throws \Basho\Riak\Command\Exception + */ + public function getDate() + { + return $this->date; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Hll/Store.php b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Hll/Store.php new file mode 100644 index 0000000000000000000000000000000000000000..892b30d3b600f8b0b375398d8d192d9184ad5686 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Hll/Store.php @@ -0,0 +1,64 @@ +<?php + +namespace Basho\Riak\Command\DataType\Hll; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; +use Basho\Riak\Location; + +/** + * Stores an update to an hll + * + * @author Luke Bakken <lbakken@basho.com> + */ +class Store extends Command implements CommandInterface +{ + protected $method = 'POST'; + + /** + * @var array + */ + protected $add_all = []; + + /** + * @var Command\DataType\Hll\Response|null + */ + protected $response = NULL; + + /** + * @var Location|null + */ + protected $location = NULL; + + public function __construct(Command\Builder\UpdateHll $builder) + { + parent::__construct($builder); + + $this->add_all = $builder->getAddAll(); + $this->bucket = $builder->getBucket(); + $this->location = $builder->getLocation(); + } + + public function getLocation() + { + return $this->location; + } + + public function getEncodedData() + { + return json_encode($this->getData()); + } + + public function getData() + { + return ['add_all' => $this->add_all]; + } + + /** + * @return Command\DataType\Hll\Response + */ + public function execute() + { + return parent::execute(); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Map/Fetch.php b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Map/Fetch.php new file mode 100644 index 0000000000000000000000000000000000000000..16a192ededcb384a72d043fcbaaa2b0332207c5d --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Map/Fetch.php @@ -0,0 +1,56 @@ +<?php + +namespace Basho\Riak\Command\DataType\Map; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; +use Basho\Riak\Location; + +/** + * Fetches a map data type from Riak + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Fetch extends Command implements CommandInterface +{ + /** + * @var Command\DataType\Map\Response|null + */ + protected $response = NULL; + + /** + * @var Location|null + */ + protected $location = NULL; + + public function __construct(Command\Builder\FetchMap $builder) + { + parent::__construct($builder); + + $this->bucket = $builder->getBucket(); + $this->location = $builder->getLocation(); + } + + public function getLocation() + { + return $this->location; + } + + public function getData() + { + return ''; + } + + public function getEncodedData() + { + return ''; + } + + /** + * @return Command\DataType\Map\Response + */ + public function execute() + { + return parent::execute(); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Map/Response.php b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Map/Response.php new file mode 100644 index 0000000000000000000000000000000000000000..91be14bc0af5eec56b09a367e8a37b1e6d425bc5 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Map/Response.php @@ -0,0 +1,68 @@ +<?php + +namespace Basho\Riak\Command\DataType\Map; + +use Basho\Riak\DataType\Map; +use Basho\Riak\Location; + +/** + * Container for a response related to an operation on an object + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Response extends \Basho\Riak\Command\Response +{ + /** + * @var \Basho\Riak\DataType\Map|null + */ + protected $map = null; + + /** + * @var Location + */ + protected $location = null; + + /** + * @var string + */ + protected $date = ''; + + public function __construct($success = true, $code = 0, $message = '', $location = null, $map = null, $date = '') + { + parent::__construct($success, $code, $message); + + $this->map = $map; + $this->location = $location; + $this->date = $date; + } + + /** + * Retrieves the Location value from the response headers + * + * @return Location + * @throws \Basho\Riak\Command\Exception + */ + public function getLocation() + { + return $this->location; + } + + /** + * @return Map|null + */ + public function getMap() + { + return $this->map; + } + + /** + * Retrieves the date of the counter's retrieval + * + * @return string + * @throws \Basho\Riak\Command\Exception + */ + public function getDate() + { + return $this->date; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Map/Store.php b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Map/Store.php new file mode 100644 index 0000000000000000000000000000000000000000..fd4d300a443f6ad2c4f3adf8d8dfd37a87fc6245 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Map/Store.php @@ -0,0 +1,133 @@ +<?php + +namespace Basho\Riak\Command\DataType\Map; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; +use Basho\Riak\Location; + +/** + * Stores a write to a map + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Store extends Command implements CommandInterface +{ + protected $method = 'POST'; + + /** + * @var Command\DataType\Map\Response|null + */ + protected $response = NULL; + + /** + * @var Location|null + */ + protected $location = NULL; + + /** + * Elements to remove from the map + * + * @var array + */ + protected $remove = []; + + /** + * @var array + */ + protected $registers = []; + + /** + * @var array + */ + protected $flags = []; + + /** + * @var Command\Builder\IncrementCounter[] + */ + protected $counters = []; + + /** + * @var Command\Builder\UpdateSet[] + */ + protected $sets = []; + + /*** + * @var Command\Builder\UpdateMap[] + */ + protected $maps = []; + + public function __construct(Command\Builder\UpdateMap $builder) + { + parent::__construct($builder); + + $this->remove = $builder->getRemove(); + $this->registers = $builder->getRegisters(); + $this->flags = $builder->getFlags(); + $this->counters = $builder->getCounters(); + $this->sets = $builder->getSets(); + $this->maps = $builder->getMaps(); + $this->bucket = $builder->getBucket(); + $this->location = $builder->getLocation(); + } + + public function getEncodedData() + { + return json_encode($this->getData()); + } + + public function getData() + { + $data = []; + + if (count($this->remove)) { + $data['remove'] = $this->remove; + } + + if (count($this->registers) || count($this->flags) || count($this->counters) || count($this->sets) || count($this->maps)) { + $data['update'] = []; + } + + foreach ($this->registers as $key => $item) { + $data['update'][$key] = $item; + } + + foreach ($this->flags as $key => $item) { + $data['update'][$key] = ($item === TRUE ? 'enable' : 'disable'); + } + + foreach ($this->counters as $key => $item) { + $data['update'][$key] = $item->getIncrement(); + } + + foreach ($this->sets as $key => $item) { + $data['update'][$key] = []; + $data['update'][$key]['add_all'] = $item->getAddAll(); + + $remove = $item->getRemoveAll(); + if (count($remove)) { + $data['update'][$key]['remove_all'] = $remove; + } + } + + foreach ($this->maps as $key => $item) { + $mapCommand = $item->atLocation($this->getLocation())->build(); + $data['update'][$key] = $mapCommand->getData(); + } + + return $data; + } + + public function getLocation() + { + return $this->location; + } + + /** + * @return Command\DataType\Map\Response + */ + public function execute() + { + return parent::execute(); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Set/Fetch.php b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Set/Fetch.php new file mode 100644 index 0000000000000000000000000000000000000000..6e4af4fd54c74df5c1691eb1615b5027638ae7f7 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Set/Fetch.php @@ -0,0 +1,56 @@ +<?php + +namespace Basho\Riak\Command\DataType\Set; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; +use Basho\Riak\Location; + +/** + * Fetches a Set data type from Riak + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Fetch extends Command implements CommandInterface +{ + /** + * @var Command\DataType\Set\Response|null + */ + protected $response = NULL; + + /** + * @var Location|null + */ + protected $location = NULL; + + public function __construct(Command\Builder\FetchSet $builder) + { + parent::__construct($builder); + + $this->bucket = $builder->getBucket(); + $this->location = $builder->getLocation(); + } + + public function getLocation() + { + return $this->location; + } + + public function getData() + { + return ''; + } + + public function getEncodedData() + { + return ''; + } + + /** + * @return Command\DataType\Set\Response + */ + public function execute() + { + return parent::execute(); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Set/Response.php b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Set/Response.php new file mode 100644 index 0000000000000000000000000000000000000000..779dbbb5b4f716a3f082c0ba49e6f14a5fcad925 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Set/Response.php @@ -0,0 +1,58 @@ +<?php + +namespace Basho\Riak\Command\DataType\Set; + +use Basho\Riak\DataType\Set; +use Basho\Riak\Location; + +/** + * Container for a response related to an operation on a set data type + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Response extends \Basho\Riak\Command\Response +{ + /** + * @var \Basho\Riak\DataType\Set|null + */ + protected $set = null; + + public function __construct($success = true, $code = 0, $message = '', $location = null, $set = null, $date = '') + { + parent::__construct($success, $code, $message); + + $this->set = $set; + $this->location = $location; + $this->date = $date; + } + + /** + * Retrieves the Location value from the response headers + * + * @return Location + * @throws \Basho\Riak\Command\Exception + */ + public function getLocation() + { + return $this->location; + } + + /** + * @return Set|null + */ + public function getSet() + { + return $this->set; + } + + /** + * Retrieves the date of the counter's retrieval + * + * @return string + * @throws \Basho\Riak\Command\Exception + */ + public function getDate() + { + return $this->date; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Set/Store.php b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Set/Store.php new file mode 100644 index 0000000000000000000000000000000000000000..944fc07e155606bbb1b454b0845549bb64966bbb --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/DataType/Set/Store.php @@ -0,0 +1,70 @@ +<?php + +namespace Basho\Riak\Command\DataType\Set; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; +use Basho\Riak\Location; + +/** + * Stores a write update to a set + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Store extends Command implements CommandInterface +{ + protected $method = 'POST'; + + /** + * @var array + */ + protected $add_all = []; + + /** + * @var array + */ + protected $remove_all = []; + + /** + * @var Command\DataType\Set\Response|null + */ + protected $response = NULL; + + /** + * @var Location|null + */ + protected $location = NULL; + + public function __construct(Command\Builder\UpdateSet $builder) + { + parent::__construct($builder); + + $this->add_all = $builder->getAddAll(); + $this->remove_all = $builder->getRemoveAll(); + $this->bucket = $builder->getBucket(); + $this->location = $builder->getLocation(); + } + + public function getLocation() + { + return $this->location; + } + + public function getEncodedData() + { + return json_encode($this->getData()); + } + + public function getData() + { + return ['add_all' => $this->add_all, 'remove_all' => $this->remove_all]; + } + + /** + * @return Command\DataType\Set\Response + */ + public function execute() + { + return parent::execute(); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Exception.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Exception.php new file mode 100644 index 0000000000000000000000000000000000000000..87fcaac57ed0019c3a4911a46eda01bbb6d4e0b7 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Exception.php @@ -0,0 +1,13 @@ +<?php + +namespace Basho\Riak\Command; + +/** + * Exception thrown when there is an error within the execution of a Command object. + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Exception extends \Basho\Riak\Exception +{ + +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Indexes/Query.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Indexes/Query.php new file mode 100644 index 0000000000000000000000000000000000000000..1fed873792e66e894749a0a8e93bf8db47e8454c --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Indexes/Query.php @@ -0,0 +1,128 @@ +<?php + +namespace Basho\Riak\Command\Indexes; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; + +/** + * Riak 2i query information. + * + * @author Alex Moore <amoore at basho d0t com> + */ +class Query extends Command implements CommandInterface +{ + /** + * @var string + */ + protected $indexName = NULL; + + protected $match = NULL; + protected $lowerBound = NULL; + protected $upperBound = NULL; + + protected $isMatchQuery = false; + protected $isRangeQuery = false; + + /** + * @var Command\Indexes\Response|null + */ + protected $response = NULL; + + public function __construct(Command\Builder\QueryIndex $builder) + { + parent::__construct($builder); + + $this->bucket = $builder->getBucket(); + $this->indexName = $builder->getIndexName(); + + if($builder->isRangeQuery()) { + $this->lowerBound = $builder->getLowerBound(); + $this->upperBound = $builder->getUpperBound(); + $this->isRangeQuery = true; + } + else { + $this->match = $builder->getMatchValue(); + $this->isMatchQuery = true; + } + + $continuation = $builder->getContinuation(); + if(!empty($continuation)) { + $this->parameters['continuation'] = $continuation; + } + + $maxResults = $builder->getMaxResults(); + if(!empty($maxResults)) { + $this->parameters['max_results'] = $maxResults; + } + + $returnTerms = $builder->getReturnTerms(); + if(!empty($returnTerms)) { + $this->parameters['return_terms'] = ($returnTerms) ? 'true' : 'false'; + } + + $paginationSort = $builder->getPaginationSort(); + if(!empty($paginationSort)) { + $this->parameters['pagination_sort'] = ($paginationSort) ? 'true' : 'false'; + } + + $termRegex = $builder->getTermFilter(); + if(!empty($termRegex)) { + $this->parameters['term_regex'] = $termRegex; + } + + $timeout = $builder->getTimeout(); + if(!empty($timeout)) { + $this->parameters['timeout'] = $timeout; + } + } + + public function getIndexName() { + return $this->indexName; + } + + public function getMatchValue() { + return $this->match; + } + + public function getLowerBound() { + return $this->lowerBound; + } + + public function getUpperBound() { + return $this->upperBound; + } + + public function isMatchQuery() + { + return $this->isMatchQuery; + } + + public function isRangeQuery() + { + return $this->isRangeQuery; + } + + public function hasParameters() + { + return true; + } + + /** + * @return Command\Indexes\Response + */ + public function execute() + { + return parent::execute(); + } + + public function getData() + { + return ''; + } + + public function getEncodedData() + { + return ''; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Indexes/Response.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Indexes/Response.php new file mode 100644 index 0000000000000000000000000000000000000000..df4e26ab404fbb012b824cf9cc75f61106af197a --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Indexes/Response.php @@ -0,0 +1,93 @@ +<?php + +namespace Basho\Riak\Command\Indexes; + + +/** + * Container for a response related to an index query + * + * @author Alex Moore <amoore at basho d0t com> + */ +class Response extends \Basho\Riak\Command\Response +{ + /** + * @var array + */ + protected $results = []; + + /** + * @var bool + */ + protected $termsReturned = false; + + protected $done = false; + + /** + * @var string|null + */ + protected $continuation = null; + + protected $date = ''; + + public function __construct($success = true, $code = 0, $message = '', $results = [], $termsReturned = false, $continuation = null, $done = true, $date = '') + { + parent::__construct($success, $code, $message); + + $this->results = $results; + $this->termsReturned = $termsReturned; + $this->continuation = $continuation; + $this->done = $done; + $this->date = $date; + + // when timeout is used, cURL returns success for some reason + if (in_array($code, ['501', '503'])) { + $this->success = false; + } + } + + /** + * Get the array of keys that match the query + * + * @return array + */ + public function getResults() + { + return $this->results; + } + + /** + * Indicates whether the terms are included in the results array. + * + * @return bool + */ + public function hasReturnTerms() + { + return $this->termsReturned; + } + + /** + * Get the continuation string for paged queries. + * + * @return null|string + */ + public function getContinuation() + { + return $this->continuation; + } + + /** + * Retrieves the date of the counter's retrieval + * + * @return string + * @throws \Basho\Riak\Command\Exception + */ + public function getDate() + { + return $this->date; + } + + public function isDone() + { + return $this->done; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/KVObject.php b/vendor/phpfastcache/riak-client/src/Riak/Command/KVObject.php new file mode 100644 index 0000000000000000000000000000000000000000..946f79e07f5b88bed16bd2e834249c9772e31191 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/KVObject.php @@ -0,0 +1,83 @@ +<?php + +namespace Basho\Riak\Command; + +use Basho\Riak\Command; +use Basho\Riak\Location; + +/** + * Base class for Commands performing operations on Kv Objects + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +abstract class KVObject extends Command +{ + /** + * @var KVObject\Response|null + */ + protected $response = NULL; + + /** + * @var \Basho\Riak\DataObject|null + */ + protected $object = NULL; + + /** + * @var Location|null + */ + protected $location = NULL; + + protected $decodeAsAssociative = false; + + public function getObject() + { + return $this->object; + } + + public function getLocation() + { + return $this->location; + } + + public function getEncodedData() + { + $data = $this->getData(); + + if (in_array($this->object->getContentType(), ['application/json', 'text/json'])) { + return json_encode($data); + } elseif (in_array($this->object->getContentEncoding(), ['base64'])) { + return base64_encode($data); + } elseif (in_array($this->object->getContentEncoding(), ['binary','none'])) { + return $data; + } + + return rawurlencode($data); + } + + public function getDecodedData($data, $contentType) + { + return static::decodeData($data, $contentType, $this->decodeAsAssociative); + } + + public static function decodeData($data, $contentType = '', $decodeAsAssociative = false) + { + if (in_array($contentType, ['application/json', 'text/json'])) { + return json_decode($data, $decodeAsAssociative); + } + + return rawurldecode($data); + } + + public function getData() + { + return $this->object->getData(); + } + + /** + * @return Command\KVObject\Response + */ + public function execute() + { + return parent::execute(); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/KVObject/Delete.php b/vendor/phpfastcache/riak-client/src/Riak/Command/KVObject/Delete.php new file mode 100644 index 0000000000000000000000000000000000000000..c06ebbb5498b52edb9467ecbb1de630dbdc2f694 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/KVObject/Delete.php @@ -0,0 +1,24 @@ +<?php + +namespace Basho\Riak\Command\KVObject; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; + +/** + * Used to remove an object from Riak + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Delete extends Command\KVObject implements CommandInterface +{ + protected $method = 'DELETE'; + + public function __construct(Command\Builder\DeleteObject $builder) + { + parent::__construct($builder); + + $this->bucket = $builder->getBucket(); + $this->location = $builder->getLocation(); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/KVObject/Fetch.php b/vendor/phpfastcache/riak-client/src/Riak/Command/KVObject/Fetch.php new file mode 100644 index 0000000000000000000000000000000000000000..b91ac6d09902a3f372f8b9c64fb9d74e796b1ecf --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/KVObject/Fetch.php @@ -0,0 +1,23 @@ +<?php + +namespace Basho\Riak\Command\KVObject; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; + +/** + * Fetches a Riak Kv Object + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Fetch extends Command\KVObject implements CommandInterface +{ + public function __construct(Command\Builder\FetchObject $builder) + { + parent::__construct($builder); + + $this->bucket = $builder->getBucket(); + $this->location = $builder->getLocation(); + $this->decodeAsAssociative = $builder->getDecodeAsAssociative(); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/KVObject/FetchPreflist.php b/vendor/phpfastcache/riak-client/src/Riak/Command/KVObject/FetchPreflist.php new file mode 100644 index 0000000000000000000000000000000000000000..a7bc06f1874f089c8b226998cfe85245a599b5f8 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/KVObject/FetchPreflist.php @@ -0,0 +1,23 @@ +<?php + +namespace Basho\Riak\Command\KVObject; + +use Basho\Riak\Command; + +use Basho\Riak\CommandInterface; + +/** + * Fetches the Preflist for a Riak Kv Object + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class FetchPreflist extends Command\KVObject implements CommandInterface +{ + public function __construct(Command\Builder\FetchPreflist $builder) + { + parent::__construct($builder); + + $this->bucket = $builder->getBucket(); + $this->location = $builder->getLocation(); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/KVObject/Keys/Fetch.php b/vendor/phpfastcache/riak-client/src/Riak/Command/KVObject/Keys/Fetch.php new file mode 100644 index 0000000000000000000000000000000000000000..fcf6eac8a1d4f2738ee20f37d557b0611edaa05b --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/KVObject/Keys/Fetch.php @@ -0,0 +1,23 @@ +<?php + +namespace Basho\Riak\Command\KVObject\Keys; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; + +/** + * Lists Riak Kv Object keys + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Fetch extends Command\KVObject implements CommandInterface +{ + public function __construct(Command\Builder\ListObjects $builder) + { + parent::__construct($builder); + + $this->parameters['keys'] = 'true'; + $this->bucket = $builder->getBucket(); + $this->decodeAsAssociative = $builder->getDecodeAsAssociative(); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/KVObject/Keys/Response.php b/vendor/phpfastcache/riak-client/src/Riak/Command/KVObject/Keys/Response.php new file mode 100644 index 0000000000000000000000000000000000000000..ab8be9389fb241ecaa9f675d0b04936934f19238 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/KVObject/Keys/Response.php @@ -0,0 +1,35 @@ +<?php + +namespace Basho\Riak\Command\KVObject\Keys; + +use Basho\Riak\Location; + +/** + * Container for a response related to an operation on an object + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Response extends \Basho\Riak\Command\Response +{ + /** + * @var \Basho\Riak\Location[] + */ + protected $keys = []; + + public function __construct($success = true, $code = 0, $message = '', $keys = []) + { + parent::__construct($success, $code, $message); + + $this->keys = $keys; + } + + /** + * Fetches the keys from the response + * + * @return \Basho\Riak\Location[] + */ + public function getKeys() + { + return $this->keys; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/KVObject/Response.php b/vendor/phpfastcache/riak-client/src/Riak/Command/KVObject/Response.php new file mode 100644 index 0000000000000000000000000000000000000000..a69c5137a4e52c138a56cabbfb2eee2e45d824d1 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/KVObject/Response.php @@ -0,0 +1,65 @@ +<?php + +namespace Basho\Riak\Command\KVObject; + +use Basho\Riak\Location; + +/** + * Container for a response related to an operation on an object + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Response extends \Basho\Riak\Command\Response +{ + /** + * @var \Basho\Riak\DataObject[] + */ + protected $objects = []; + + protected $location = null; + + public function __construct($success = true, $code = 0, $message = '', $location = null, $objects = []) + { + parent::__construct($success, $code, $message); + + $this->objects = $objects; + $this->location = $location; + } + + /** + * @return bool + */ + public function hasSiblings() + { + return count($this->objects) > 1; + } + + /** + * Retrieves the Location value from the response headers + * + * @return Location + * @throws \Basho\Riak\Command\Exception + */ + public function getLocation() + { + return $this->location; + } + + /** + * @return \Basho\Riak\DataObject|null + */ + public function getObject() + { + return !empty($this->objects[0]) ? $this->objects[0] : null; + } + + /** + * Fetches the sibling tags from the response + * + * @return array + */ + public function getSiblings() + { + return $this->objects; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/KVObject/Store.php b/vendor/phpfastcache/riak-client/src/Riak/Command/KVObject/Store.php new file mode 100644 index 0000000000000000000000000000000000000000..48c90c35b1c8aa2ef7d2e33bf880bc96edb8c5b5 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/KVObject/Store.php @@ -0,0 +1,36 @@ +<?php + +namespace Basho\Riak\Command\KVObject; + +use Basho\Riak\Api\Http\Translators\SecondaryIndexHeaderTranslator; +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; + +/** + * Riak key value object store + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Store extends Command\KVObject implements CommandInterface +{ + /** + * Type of operation + * + * @var string + */ + protected $method = 'POST'; + + public function __construct(Command\Builder\StoreObject $builder) + { + parent::__construct($builder); + + $this->object = $builder->getDataObject(); + $this->bucket = $builder->getBucket(); + $this->location = $builder->getLocation(); + $this->decodeAsAssociative = $builder->getDecodeAsAssociative(); + + if ($this->location) { + $this->method = 'PUT'; + } + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/MapReduce/Fetch.php b/vendor/phpfastcache/riak-client/src/Riak/Command/MapReduce/Fetch.php new file mode 100644 index 0000000000000000000000000000000000000000..ba3edc3fcb3f8d91f8cc55c4bb89056f097d8405 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/MapReduce/Fetch.php @@ -0,0 +1,52 @@ +<?php + +namespace Basho\Riak\Command\MapReduce; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; + +/** + * Used to fetch a result set from Riak using MapReduce + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Fetch extends Command implements CommandInterface +{ + protected $method = 'POST'; + + /** + * @var Command\MapReduce\Response|null + */ + protected $response = null; + + protected $inputs; + + protected $query; + + public function __construct(Command\Builder\MapReduce\FetchObjects $builder) + { + parent::__construct($builder); + + $this->inputs = $builder->getInputs(); + // query needs to be a list + $this->query = $builder->getQuery(); + } + + public function getEncodedData() + { + return json_encode($this->getData()); + } + + public function getData() + { + return ['inputs' => $this->inputs, 'query' => $this->query]; + } + + /** + * @return Command\MapReduce\Response + */ + public function execute() + { + return parent::execute(); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/MapReduce/Response.php b/vendor/phpfastcache/riak-client/src/Riak/Command/MapReduce/Response.php new file mode 100644 index 0000000000000000000000000000000000000000..348c35f27dd9a5643ec0070f601c3ca0fa4393b8 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/MapReduce/Response.php @@ -0,0 +1,25 @@ +<?php + +namespace Basho\Riak\Command\MapReduce; + +/** + * Container for a response related to an operation on an object + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Response extends \Basho\Riak\Command\Response +{ + protected $results = ''; + + public function __construct($success = true, $code = 0, $message = '', $results = null) + { + parent::__construct($success, $code, $message); + + $this->results = $results; + } + + public function getResults() + { + return $this->results; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Ping.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Ping.php new file mode 100644 index 0000000000000000000000000000000000000000..65e05f6fe1a383773c7ef749c32a53c6d1b43b9a --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Ping.php @@ -0,0 +1,29 @@ +<?php + +namespace Basho\Riak\Command; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; + +/** + * Pings Riak + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Ping extends Command implements CommandInterface +{ + public function __construct(Command\Builder\Ping $builder) + { + parent::__construct($builder); + } + + public function getData() + { + return ''; + } + + public function getEncodedData() + { + return ''; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Response.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Response.php new file mode 100644 index 0000000000000000000000000000000000000000..e34cd759c8e043fc6bb7d516294867481fa3fa7a --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Response.php @@ -0,0 +1,61 @@ +<?php + +namespace Basho\Riak\Command; + +/** + * Data structure for handling Command responses from Riak + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Response +{ + protected $success = false; + + protected $code = ''; + + protected $message = ''; + + public function __construct($success = true, $code = 0, $message = '') + { + $this->success = $success; + $this->code = $code; + $this->message = $message; + } + + /** + * @return bool + */ + public function isSuccess() + { + return $this->success; + } + + /** + * @return bool + */ + public function isNotFound() + { + return $this->code == '404' ? true : false; + } + + public function isUnauthorized() + { + return $this->code == '401' ? true : false; + } + + /** + * @return string + */ + public function getCode() + { + return $this->code; + } + + /** + * @return string + */ + public function getMessage() + { + return $this->message; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Fetch.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Fetch.php new file mode 100644 index 0000000000000000000000000000000000000000..77ab2b2ffd72c848edaa4af888eb7f0e02892d6b --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Fetch.php @@ -0,0 +1,51 @@ +<?php + +namespace Basho\Riak\Command\Search; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; + +/** + * Used to fetch a search results from Riak + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Fetch extends Command implements CommandInterface +{ + /** + * @var Command\Search\Response|null + */ + protected $response = null; + + protected $index_name; + + public function __construct(Command\Builder\Search\FetchObjects $builder) + { + parent::__construct($builder); + + $this->index_name = $builder->getIndexName(); + } + + public function getData() + { + return ''; + } + + public function getEncodedData() + { + return ''; + } + + /** + * @return Command\Search\Response + */ + public function execute() + { + return parent::execute(); + } + + public function __toString() + { + return $this->index_name; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Index/Delete.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Index/Delete.php new file mode 100644 index 0000000000000000000000000000000000000000..b3faef9f34011f03e1ed6d7670806c6f55abf29a --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Index/Delete.php @@ -0,0 +1,56 @@ +<?php + +namespace Basho\Riak\Command\Search\Index; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; + +/** + * Used to delete a Search Index from Riak Yokozuna + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Delete extends Command implements CommandInterface +{ + protected $method = 'DELETE'; + + /** + * @var string + */ + protected $name = ''; + + /** + * @var Command\Response|null + */ + protected $response = null; + + public function __construct(Command\Builder\Search\DeleteIndex $builder) + { + parent::__construct($builder); + + $this->name = $builder->getName(); + } + + public function getEncodedData() + { + return $this->getData(); + } + + public function getData() + { + return ''; + } + + /** + * @return Command\Response + */ + public function execute() + { + return parent::execute(); + } + + public function __toString() + { + return $this->name; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Index/Fetch.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Index/Fetch.php new file mode 100644 index 0000000000000000000000000000000000000000..66b2eab4a76a59cee2caffdb649ae4d919109b9d --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Index/Fetch.php @@ -0,0 +1,51 @@ +<?php + +namespace Basho\Riak\Command\Search\Index; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; + +/** + * Used to fetch a search index from Riak + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Fetch extends Command implements CommandInterface +{ + /** + * @var Command\Search\Index\Response|null + */ + protected $response = null; + + protected $name; + + public function __construct(Command\Builder\Search\FetchIndex $builder) + { + parent::__construct($builder); + + $this->name = $builder->getIndexName(); + } + + public function getData() + { + return ''; + } + + public function getEncodedData() + { + return ''; + } + + /** + * @return Command\Search\Index\Response + */ + public function execute() + { + return parent::execute(); + } + + public function __toString() + { + return $this->name; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Index/Response.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Index/Response.php new file mode 100644 index 0000000000000000000000000000000000000000..eb1a468dd55d4c66fba10cf1c7a012199b0bba0c --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Index/Response.php @@ -0,0 +1,28 @@ +<?php + +namespace Basho\Riak\Command\Search\Index; + +/** + * Container for a response related to an operation on an object + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Response extends \Basho\Riak\Command\Response +{ + /** + * @var \stdClass|null + */ + protected $index = null; + + public function __construct($success = true, $code = 0, $message = '', $index = null) + { + parent::__construct($success, $code, $message); + + $this->index = $index; + } + + public function getIndex() + { + return $this->index; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Index/Store.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Index/Store.php new file mode 100644 index 0000000000000000000000000000000000000000..5ea5d40033ddcc7cf565a131e064de74aeddd316 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Index/Store.php @@ -0,0 +1,62 @@ +<?php + +namespace Basho\Riak\Command\Search\Index; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; + +/** + * Riak Yokozuna Search Index Store + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Store extends Command implements CommandInterface +{ + protected $method = 'PUT'; + + /** + * @var string + */ + protected $name = ''; + + /** + * @var string + */ + protected $schema = ''; + + /** + * @var Command\Response|null + */ + protected $response = null; + + public function __construct(Command\Builder\Search\StoreIndex $builder) + { + parent::__construct($builder); + + $this->name = $builder->getName(); + $this->schema = $builder->getSchema(); + } + + public function getEncodedData() + { + return json_encode($this->getData()); + } + + public function getData() + { + return ['schema' => $this->schema]; + } + + /** + * @return Command\Response + */ + public function execute() + { + return parent::execute(); + } + + public function __toString() + { + return $this->name; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Response.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Response.php new file mode 100644 index 0000000000000000000000000000000000000000..f17fbab4ade73ddc40136243c3a8a60a90e7c0c7 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Response.php @@ -0,0 +1,55 @@ +<?php + +namespace Basho\Riak\Command\Search; + +use Basho\Riak\Search\Doc; + +/** + * Container for a response for receiving data back from a Search request on Riak + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Response extends \Basho\Riak\Command\Response +{ + /** + * @var int + */ + protected $numFound = 0; + + /** + * @var Doc[] + */ + protected $docs = []; + + /** + * Response constructor. + * @param bool|true $success + * @param int $code + * @param string $message + * @param int $numFound + * @param \Basho\Riak\Search\Doc[] $docs + */ + public function __construct($success = true, $code = 0, $message = '', $numFound = 0, $docs = []) + { + parent::__construct($success, $code, $message); + + $this->numFound = $numFound; + $this->docs = $docs; + } + + /** + * @return int + */ + public function getNumFound() + { + return $this->numFound; + } + + /** + * @return \Basho\Riak\Search\Doc[] + */ + public function getDocs() + { + return $this->docs; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Schema/Fetch.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Schema/Fetch.php new file mode 100644 index 0000000000000000000000000000000000000000..5a5c6b69e08d88e09ab998d15ff1310a7a30f1df --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Schema/Fetch.php @@ -0,0 +1,53 @@ +<?php + +namespace Basho\Riak\Command\Search\Schema; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; + +/** + * Class Fetch + * + * Used to fetch a counter + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Fetch extends Command implements CommandInterface +{ + /** + * @var Command\Search\Schema\Response|null + */ + protected $response = null; + + protected $name; + + public function __construct(Command\Builder\Search\FetchSchema $builder) + { + parent::__construct($builder); + + $this->name = $builder->getSchemaName(); + } + + public function getData() + { + return ''; + } + + public function getEncodedData() + { + return ''; + } + + /** + * @return Command\Search\Schema\Response + */ + public function execute() + { + return parent::execute(); + } + + public function __toString() + { + return $this->name; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Schema/Response.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Schema/Response.php new file mode 100644 index 0000000000000000000000000000000000000000..1f9a379aeee51560dd28ab4e2563c0aff8908b24 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Schema/Response.php @@ -0,0 +1,35 @@ +<?php + +namespace Basho\Riak\Command\Search\Schema; + +/** + * Container for a response related to an operation on an object + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Response extends \Basho\Riak\Command\Response +{ + protected $schema = ''; + protected $contentType = ''; + + public function __construct($success = true, $code = 0, $message = '', $schema = null, $contentType = '') + { + parent::__construct($success, $code, $message); + + $this->schema = $schema; + $this->contentType = $contentType; + } + + public function getSchema() + { + return $this->schema; + } + + /** + * @return string + */ + public function getContentType() + { + return $this->contentType; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Schema/Store.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Schema/Store.php new file mode 100644 index 0000000000000000000000000000000000000000..65384716eb9da0b9b16aec74008efb5bc404c93b --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Search/Schema/Store.php @@ -0,0 +1,64 @@ +<?php + +namespace Basho\Riak\Command\Search\Schema; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; + +/** + * Class Store + * + * Riak Yokozuna Search Schema Store + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Store extends Command implements CommandInterface +{ + protected $method = 'PUT'; + + /** + * @var string + */ + protected $name = ''; + + /** + * @var string + */ + protected $schema = ''; + + /** + * @var Command\Response|null + */ + protected $response = null; + + public function __construct(Command\Builder\Search\StoreSchema $builder) + { + parent::__construct($builder); + + $this->name = $builder->getName(); + $this->schema = $builder->getSchema(); + } + + public function getEncodedData() + { + return $this->getData(); + } + + public function getData() + { + return $this->schema; + } + + /** + * @return Command\Response + */ + public function execute() + { + return parent::execute(); + } + + public function __toString() + { + return $this->name; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Stats.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Stats.php new file mode 100644 index 0000000000000000000000000000000000000000..8014af3bcc387a96b9d21dbc69fe07fd337b9822 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Stats.php @@ -0,0 +1,29 @@ +<?php + +namespace Basho\Riak\Command; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; + +/** + * Riak real time stats + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Stats extends Command implements CommandInterface +{ + public function __construct(Command\Builder\FetchStats $builder) + { + parent::__construct($builder); + } + + public function getData() + { + return ''; + } + + public function getEncodedData() + { + return ''; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/Stats/Response.php b/vendor/phpfastcache/riak-client/src/Riak/Command/Stats/Response.php new file mode 100644 index 0000000000000000000000000000000000000000..10d56315aa8c24d3e586a95db70f134953991042 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/Stats/Response.php @@ -0,0 +1,34 @@ +<?php + +namespace Basho\Riak\Command\Stats; + +use Basho\Riak\Location; + +/** + * Container for a response related to an operation on an object + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Response extends \Basho\Riak\Command\Response +{ + protected $stats = []; + + public function __construct($success = true, $code = 0, $message = '', $data = []) + { + parent::__construct($success, $code, $message); + + $this->stats = $data; + } + + public function __get($name) { + if (isset($this->stats[$name])) { + return $this->stats[$name]; + } + + return null; + } + + public function getAllStats() { + return $this->stats; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Delete.php b/vendor/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Delete.php new file mode 100644 index 0000000000000000000000000000000000000000..7f164ae6692f3fb42edf6befb8742ddf7e660462 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Delete.php @@ -0,0 +1,51 @@ +<?php + +namespace Basho\Riak\Command\TimeSeries; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; + +/** + * Used to fetch data within a TS table + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Delete extends Command implements CommandInterface +{ + /** + * Stores the table name + * + * @var string|null + */ + protected $table = NULL; + + /** + * Stores the key + * + * @var \Basho\Riak\TimeSeries\Cell[] + */ + protected $key = []; + + public function getTable() + { + return $this->table; + } + + public function getData() + { + return $this->key; + } + + public function getEncodedData() + { + return json_encode($this->getData()); + } + + public function __construct(Command\Builder\TimeSeries\DeleteRow $builder) + { + parent::__construct($builder); + + $this->table = $builder->getTable(); + $this->key = $builder->getKey(); + } +} \ No newline at end of file diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Fetch.php b/vendor/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Fetch.php new file mode 100644 index 0000000000000000000000000000000000000000..3a87bfe4653fca5fd92f58dd6f4078ed82573875 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Fetch.php @@ -0,0 +1,51 @@ +<?php + +namespace Basho\Riak\Command\TimeSeries; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; + +/** + * Used to fetch data within a TS table + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Fetch extends Command implements CommandInterface +{ + /** + * Stores the table name + * + * @var string|null + */ + protected $table = NULL; + + /** + * Stores the key + * + * @var \Basho\Riak\TimeSeries\Cell[] + */ + protected $key = []; + + public function getTable() + { + return $this->table; + } + + public function getData() + { + return $this->key; + } + + public function getEncodedData() + { + return json_encode($this->getData()); + } + + public function __construct(Command\Builder\TimeSeries\FetchRow $builder) + { + parent::__construct($builder); + + $this->table = $builder->getTable(); + $this->key = $builder->getKey(); + } +} \ No newline at end of file diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Query/Fetch.php b/vendor/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Query/Fetch.php new file mode 100644 index 0000000000000000000000000000000000000000..16851ab6a853c98f90a84687b78ca643213c0554 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Query/Fetch.php @@ -0,0 +1,49 @@ +<?php + +namespace Basho\Riak\Command\TimeSeries\Query; + +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; + +/** + * Used to store data within a TS table + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Fetch extends Command implements CommandInterface +{ + protected $method = 'POST'; + + /** + * Stores the table name + * + * @var string|null + */ + protected $query = NULL; + + /** + * Interpolations in the form of key => value of the query string + * + * @var array + */ + protected $interps = []; + + public function getData() + { + return ['query' => $this->query, 'interpolations' => $this->interps]; + } + + public function getEncodedData() + { + // plain text string + return $this->query; + } + + public function __construct(Command\Builder\TimeSeries\Query $builder) + { + parent::__construct($builder); + + $this->query = $builder->getQuery(); + $this->interps = $builder->getInterps(); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Query/Response.php b/vendor/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Query/Response.php new file mode 100644 index 0000000000000000000000000000000000000000..448a2dd9d1d8e75c2703b32dbe8642713ddfeef5 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Query/Response.php @@ -0,0 +1,38 @@ +<?php + +namespace Basho\Riak\Command\TimeSeries\Query; + +use Basho\Riak\Command; + +/** + * Response object for TS Fetch, Store, Delete + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Response extends Command\Response +{ + protected $results = []; + + public function __construct($success = true, $code = 0, $message = '', $results = []) + { + parent::__construct($success, $code, $message); + + $this->results = $results; + } + + /** + * @return \Basho\Riak\TimeSeries\Cell[]|null + */ + public function getResult() + { + return !empty($this->results[0]) ? $this->results[0] : null; + } + + /** + * @return array + */ + public function getResults() + { + return $this->results; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Response.php b/vendor/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Response.php new file mode 100644 index 0000000000000000000000000000000000000000..3ab37d05dfdd511a449375706c6bfba7a040d67b --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Response.php @@ -0,0 +1,38 @@ +<?php + +namespace Basho\Riak\Command\TimeSeries; + +use Basho\Riak\Command; + +/** + * Response object for TS Fetch, Store, Delete + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Response extends Command\Response +{ + protected $rows = []; + + public function __construct($success = true, $code = 0, $message = '', $rows = []) + { + parent::__construct($success, $code, $message); + + $this->rows = $rows; + } + + /** + * @return \Basho\Riak\TimeSeries\Cell[]|null + */ + public function getRow() + { + return !empty($this->rows[0]) ? $this->rows[0] : null; + } + + /** + * @return array + */ + public function getRows() + { + return $this->rows; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Store.php b/vendor/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Store.php new file mode 100644 index 0000000000000000000000000000000000000000..d673c176238a92f2be4b431b5ad4643680d2ddd1 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Command/TimeSeries/Store.php @@ -0,0 +1,67 @@ +<?php + +namespace Basho\Riak\Command\TimeSeries; + +use Basho\Riak; +use Basho\Riak\Command; +use Basho\Riak\CommandInterface; + +/** + * Used to store data within a TS table + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Store extends Command implements CommandInterface +{ + protected $method = 'POST'; + + /** + * Stores the table name + * + * @var string|null + */ + protected $table = NULL; + + /** + * Stores the rows + * + * @var array $rows + */ + protected $rows = []; + + public function getTable() + { + return $this->table; + } + + public function getData() + { + return $this->rows; + } + + public function getEncodedData() + { + $rows = []; + foreach ($this->getData() as $row) { + $cells = []; + foreach ($row as $cell) { + /** @var $cell Riak\TimeSeries\Cell */ + if ($cell->getType() == Riak\TimeSeries\Cell::BLOB_TYPE) { + $cells[$cell->getName()] = base64_encode($cell->getValue()); + } else { + $cells[$cell->getName()] = $cell->getValue(); + } + } + $rows[] = $cells; + } + return json_encode($rows); + } + + public function __construct(Command\Builder\TimeSeries\StoreRows $builder) + { + parent::__construct($builder); + + $this->table = $builder->getTable(); + $this->rows = $builder->getRows(); + } +} \ No newline at end of file diff --git a/vendor/phpfastcache/riak-client/src/Riak/CommandInterface.php b/vendor/phpfastcache/riak-client/src/Riak/CommandInterface.php new file mode 100644 index 0000000000000000000000000000000000000000..c0f708f7d20a57694a82a7d48fabaef4ffdf67f8 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/CommandInterface.php @@ -0,0 +1,27 @@ +<?php + +namespace Basho\Riak; + +/** + * CommandInterface + * + * The interface for implementing a new Riak Command class. + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +interface CommandInterface +{ + public function getMethod(); + + public function hasParameters(); + + public function getParameters(); + + public function getData(); + + public function getEncodedData(); + + public function getBucket(); + + public function execute(); +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/DataObject.php b/vendor/phpfastcache/riak-client/src/Riak/DataObject.php new file mode 100644 index 0000000000000000000000000000000000000000..2de3d370ece3366f53d498d2901922c9b1451b45 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/DataObject.php @@ -0,0 +1,281 @@ +<?php + +namespace Basho\Riak; + +use Basho\Riak; +use Basho\Riak\Api\Http\Translator\SecondaryIndex; + +/** + * Main class for data objects in Riak + * + * When working with base64 encoded or binary data over HTTP, you need to make use of the setContentEncoding() to + * bypass rawurlencode when storing data and getRawData() to bypass + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class DataObject +{ + /** + * Stored data or object + * + * @var mixed|null + */ + protected $data = null; + + /** + * Stores raw non-decoded response data + * + * @var mixed|null + */ + protected $raw_data = null; + + protected $indexes = []; + + protected $vclock = ''; + + protected $content_type = 'text/plain'; + + protected $content_encoding = 'utf-8'; + + protected $charset = 'utf-8'; + + protected $metadata = []; + + /** + * @param mixed|null $data + * @param array|null $headers DEPRECATED + */ + public function __construct($data = null, $headers = []) + { + $this->data = $data; + + if (empty($headers) || !is_array($headers)) { + return; + } + + $this->indexes = (new SecondaryIndex)->extractIndexesFromHeaders($headers); + + // to prevent breaking the interface, parse $headers and place important stuff in new home + if (!empty($headers[Riak\Api\Http::CONTENT_TYPE_KEY])) { + // if charset is defined within the Content-Type header + if (strpos($headers[Riak\Api\Http::CONTENT_TYPE_KEY], 'charset')) { + $parts = explode(';', trim($headers[Riak\Api\Http::CONTENT_TYPE_KEY])); + $this->content_type = $parts[0]; + $this->charset = trim(strrpos($parts[1], '=')); + } else { + $this->content_type = $headers[Riak\Api\Http::CONTENT_TYPE_KEY]; + } + } + + if (!empty($headers[Riak\Api\Http::VCLOCK_KEY])) { + $this->vclock = $headers[Riak\Api\Http::VCLOCK_KEY]; + } + + // pull out metadata headers + foreach($headers as $key => $value) { + if (strpos($key, Riak\Api\Http::METADATA_PREFIX) !== false) { + $this->metadata[substr($key, strlen(Riak\Api\Http::METADATA_PREFIX))] = $value; + } + } + } + + public function getData() + { + return $this->data; + } + + public function setData($data) + { + $this->data = $data; + + return $this; + } + + public function getContentType() + { + return $this->content_type; + } + + /** + * Used to identify the mime-type of the object data + * + * If set to `application/json` or `text/json` the object data will automatically be json_encoded upon transfer to + * Riak. + * + * @param string $content_type + * @return $this + */ + public function setContentType($content_type) + { + $this->content_type = $content_type; + return $this; + } + + /** + * @return string + */ + public function getContentEncoding() + { + return $this->content_encoding; + } + + /** + * Used to identify the encoding of the object data + * + * If set to `base64`, object data will be automatically encoded to base64 upon transfer to Riak. + * If set to `binary` or `none`, object data will NOT be rawurlencoded upon transfer to Riak. + * + * @param string $content_encoding + * @return $this + */ + public function setContentEncoding($content_encoding) + { + $this->content_encoding = $content_encoding; + return $this; + } + + /** + * @return string + */ + public function getCharset() + { + return $this->charset; + } + + /** + * @param string $charset + * @return $this + */ + public function setCharset($charset) + { + $this->charset = $charset; + return $this; + } + + public function getVclock() + { + return $this->vclock; + } + + /** + * @param string $vclock + * @return $this + */ + public function setVclock($vclock) + { + $this->vclock = $vclock; + return $this; + } + + public function getIndexes() + { + return $this->indexes; + } + + public function getIndex($indexName) + { + return isset($this->indexes[$indexName]) ? $this->indexes[$indexName] : null; + } + + public function addValueToIndex($indexName, $value) + { + $this->validateIndexNameAndValue($indexName, $value); + + if (!isset($this->indexes[$indexName])) { + $this->indexes[$indexName] = []; + } + + $this->indexes[$indexName][] = $value; + + return $this; + } + + private function validateIndexNameAndValue($indexName, $value) + { + if (!is_scalar($value)) { + throw new \InvalidArgumentException("Invalid index type for '" . $indexName . + "'index. Expecting '*_int' for an integer index, or '*_bin' for a string index."); + } + + $isIntIndex = SecondaryIndex::isIntIndex($indexName); + $isStringIndex = SecondaryIndex::isStringIndex($indexName); + + if (!$isIntIndex && !$isStringIndex) { + throw new \InvalidArgumentException("Invalid index type for '" . $indexName . + "'index. Expecting '*_int' for an integer index, or '*_bin' for a string index."); + } + + if ($isIntIndex && !is_int($value)) { + throw new \InvalidArgumentException("Invalid type for '" . $indexName . + "'index. Expecting 'integer', value was '" . gettype($value) . "''"); + } + + if ($isStringIndex && !is_string($value)) { + throw new \InvalidArgumentException("Invalid type for '" . $indexName . + "'index. Expecting 'string', value was '" . gettype($value) . "''"); + } + } + + public function removeValueFromIndex($indexName, $value) + { + if (!isset($this->indexes[$indexName])) { + return $this; + } + + $valuePos = array_search($value, $this->indexes[$indexName]); + + if ($valuePos !== false) { + array_splice($this->indexes[$indexName], $valuePos, 1); + } + + if (count($this->indexes[$indexName]) == 0) { + unset($this->indexes[$indexName]); + } + + return $this; + } + + public function setMetaDataValue($key, $value = '') + { + $this->metadata[$key] = $value; + return $this; + } + + public function getMetaDataValue($key) + { + return $this->metadata[$key]; + } + + public function removeMetaDataValue($key) + { + unset($this->metadata[$key]); + return $this; + } + + public function getMetaData() + { + return $this->metadata; + } + + /** + * Getter for raw non-decoded response data [HTTP ONLY] + * + * @return mixed|null + */ + public function getRawData() + { + return $this->raw_data; + } + + /** + * + * @param mixed|null $raw_data + * @return $this + */ + public function setRawData($raw_data) + { + $this->raw_data = $raw_data; + + return $this; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/DataType.php b/vendor/phpfastcache/riak-client/src/Riak/DataType.php new file mode 100644 index 0000000000000000000000000000000000000000..015b959e18e1132155ca78b7c3a4cf1d0733d40f --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/DataType.php @@ -0,0 +1,35 @@ +<?php + +namespace Basho\Riak; + +/** + * Abstraction for Conflict-free Replicated Data Types + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +abstract class DataType +{ + /** + * DataType::TYPE + * + * Defines the key to be used to identify the data type. Used within a Maps composite key. + * + * @var string + */ + const TYPE = ''; + + /** + * Storage member for DataType's current value + * + * @var mixed + */ + protected $data; + + /** + * @return string + */ + public function getType() + { + return static::TYPE; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/DataType/Counter.php b/vendor/phpfastcache/riak-client/src/Riak/DataType/Counter.php new file mode 100644 index 0000000000000000000000000000000000000000..aaa2b061876dbe04c9ab68520ecdf3c5949e2eef --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/DataType/Counter.php @@ -0,0 +1,51 @@ +<?php + +/* +Copyright 2014 Basho Technologies, Inc. + +Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file +distributed with this work for additional information regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the +specific language governing permissions and limitations under the License. +*/ + +namespace Basho\Riak\DataType; + +use Basho\Riak\DataType; + +/** + * Class Counter + * + * Data structure for counter crdt + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Counter extends DataType +{ + /** + * {@inheritdoc} + */ + const TYPE = 'counter'; + + /** + * @param int $data + */ + public function __construct($data) + { + $this->data = $data; + } + + /** + * @return int + */ + public function getData() + { + return $this->data; + } +} \ No newline at end of file diff --git a/vendor/phpfastcache/riak-client/src/Riak/DataType/Exception.php b/vendor/phpfastcache/riak-client/src/Riak/DataType/Exception.php new file mode 100644 index 0000000000000000000000000000000000000000..ea05221d2774070daad202d756ea38f9f58d2690 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/DataType/Exception.php @@ -0,0 +1,28 @@ +<?php + +/* +Copyright 2014 Basho Technologies, Inc. + +Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file +distributed with this work for additional information regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the +specific language governing permissions and limitations under the License. +*/ + +namespace Basho\Riak\DataType; + +/** + * Exception + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Exception extends \Basho\Riak\Exception +{ + +} \ No newline at end of file diff --git a/vendor/phpfastcache/riak-client/src/Riak/DataType/Hll.php b/vendor/phpfastcache/riak-client/src/Riak/DataType/Hll.php new file mode 100644 index 0000000000000000000000000000000000000000..7dff11f97ed38c07a48d780449b1473b212b91f9 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/DataType/Hll.php @@ -0,0 +1,36 @@ +<?php + +namespace Basho\Riak\DataType; + +use Basho\Riak\DataType; + +/** + * Class Hll + * + * Data structure for HyperLogLog CRDT + * + * @author Luke Bakken <lbakken@basho.com> + */ +class Hll extends DataType +{ + /** + * {@inheritdoc} + */ + const TYPE = 'hll'; + + /** + * @param integer $data + */ + public function __construct($data) + { + $this->data = $data; + } + + /** + * @return integer + */ + public function getData() + { + return $this->data; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/DataType/Map.php b/vendor/phpfastcache/riak-client/src/Riak/DataType/Map.php new file mode 100644 index 0000000000000000000000000000000000000000..52b5a86250d1ddf4c181d75f1d873e8ad919fdc8 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/DataType/Map.php @@ -0,0 +1,140 @@ +<?php + +/* +Copyright 2014 Basho Technologies, Inc. + +Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file +distributed with this work for additional information regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the +specific language governing permissions and limitations under the License. +*/ + +namespace Basho\Riak\DataType; + +use Basho\Riak\DataType; + +/** + * Data structure for map crdt + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Map extends DataType +{ + /** + * {@inheritdoc} + */ + const TYPE = 'map'; + + /** + * Used within a composite key to identify a flag (bool) element + * + * @var string + */ + const FLAG = 'flag'; + + /** + * Used within a composite key to identify a register (string) element + * + * @var string + */ + const REGISTER = 'register'; + + /** + * @var string + */ + private $context; + + /** + * @param array $data + * @param $context + */ + public function __construct(array $data, $context) + { + $this->data = $data; + $this->context = $context; + } + + /** + * @param $key + * + * @return string + */ + public function getRegister($key) + { + return $this->getDataByKey($key, static::REGISTER); + } + + protected function getDataByKey($key, $type) + { + $compKey = $this->getCompKey($key, $type); + if (!isset($this->data[$compKey])) { + throw new Exception("{$type} {$key} not found within Map."); + } + + return $this->data[$compKey]; + } + + /** + * Fetches the composite key used with + * + * @param $key + * @param $type + * + * @return string + */ + protected function getCompKey($key, $type) + { + return sprintf('%s_%s', $key, $type); + } + + /** + * @param $key + * + * @return bool + */ + public function getFlag($key) + { + return $this->getDataByKey($key, static::FLAG) == 'enabled' ? TRUE : FALSE; + } + + /** + * @param $key + * + * @return Counter + */ + public function getCounter($key) + { + return new Counter($this->getDataByKey($key, Counter::TYPE)); + } + + /** + * @param $key + * + * @return Set + */ + public function getSet($key) + { + return new Set($this->getDataByKey($key, Set::TYPE), $this->context); + } + + /** + * @param $key + * + * @return Map + */ + public function getMap($key) + { + return new Map($this->getDataByKey($key, Map::TYPE), $this->context); + } + + public function getContext() + { + return $this->context; + } +} \ No newline at end of file diff --git a/vendor/phpfastcache/riak-client/src/Riak/DataType/Set.php b/vendor/phpfastcache/riak-client/src/Riak/DataType/Set.php new file mode 100644 index 0000000000000000000000000000000000000000..e990f46d01d11b4b5a8b72eadb9522c2c5475389 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/DataType/Set.php @@ -0,0 +1,63 @@ +<?php + +/* +Copyright 2014 Basho Technologies, Inc. + +Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file +distributed with this work for additional information regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the +specific language governing permissions and limitations under the License. +*/ + +namespace Basho\Riak\DataType; + +use Basho\Riak\DataType; + +/** + * Class Set + * + * Data structure for set crdt + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Set extends DataType +{ + /** + * {@inheritdoc} + */ + const TYPE = 'set'; + + /** + * @var string + */ + private $context; + + /** + * @param array $data + * @param $context + */ + public function __construct(array $data, $context) + { + $this->data = $data; + $this->context = $context; + } + + /** + * @return array + */ + public function getData() + { + return $this->data; + } + + public function getContext() + { + return $this->context; + } +} \ No newline at end of file diff --git a/vendor/phpfastcache/riak-client/src/Riak/Exception.php b/vendor/phpfastcache/riak-client/src/Riak/Exception.php new file mode 100644 index 0000000000000000000000000000000000000000..e6cf9b74b27fe4a94a41de1ebd7e4872f07ed93d --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Exception.php @@ -0,0 +1,13 @@ +<?php + +namespace Basho\Riak; + +/** + * Exception + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Exception extends \Exception +{ + +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/HeadersTrait.php b/vendor/phpfastcache/riak-client/src/Riak/HeadersTrait.php new file mode 100644 index 0000000000000000000000000000000000000000..63eb129db4589e8e55404875a840e4275ad495ce --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/HeadersTrait.php @@ -0,0 +1,42 @@ +<?php + +namespace Basho\Riak; + +/** + * Trait HeadersTrait + * + * Offers code reuse between kv objects & crdts since they share several common needs + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +trait HeadersTrait +{ + /** + * Request / response headers for the object + * + * Content type, last modified, etc + * + * @var array + */ + protected $headers = []; + + /** + * @return array + */ + public function getHeaders() + { + return $this->headers; + } + + /** + * Retrieve the value for a header, null if not set + * + * @param $key + * + * @return string|null + */ + protected function getHeader($key) + { + return isset($this->headers[$key]) ? $this->headers[$key] : NULL; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Location.php b/vendor/phpfastcache/riak-client/src/Riak/Location.php new file mode 100644 index 0000000000000000000000000000000000000000..6ecd5390025b21215f683ce22a7c65e68634aba9 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Location.php @@ -0,0 +1,68 @@ +<?php + +namespace Basho\Riak; + +/** + * Immutable data structure storing the location of an Object or DataType + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Location +{ + /** + * Kv Object / CRDT key + * + * @var string + */ + protected $key = ''; + + /** + * @var Bucket|null + */ + protected $bucket = NULL; + + /** + * @param $key + * @param Bucket $bucket + */ + public function __construct($key, Bucket $bucket) + { + $this->key = $key; + $this->bucket = $bucket; + } + + /** + * Generate an instance of the Location object using the Location header string value returned from Riak + * + * @param $location_string + * + * @return Location + */ + public static function fromString($location_string) + { + preg_match('/^\/types\/([^\/]+)\/buckets\/([^\/]+)\/keys\/([^\/]+)$/', $location_string, $matches); + + return new self($matches[3], new Bucket($matches[2], $matches[1])); + } + + public function __toString() + { + return $this->bucket . $this->key; + } + + /** + * @return Bucket|null + */ + public function getBucket() + { + return $this->bucket; + } + + /** + * @return string + */ + public function getKey() + { + return $this->key; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Node.php b/vendor/phpfastcache/riak-client/src/Riak/Node.php new file mode 100644 index 0000000000000000000000000000000000000000..e16dab951ad58edd13ad93a15c52371f4393d707 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Node.php @@ -0,0 +1,222 @@ +<?php + +namespace Basho\Riak; + +use Basho\Riak\Node\Config; +use Basho\Riak\Node\Response; + +/** + * Contains the connection configuration to connect to a Riak node. + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Node +{ + /** + * Configuration + * + * Contains configuration needed to connect to a Riak node. + * + * @var Config|null + */ + protected $config = null; + + /** + * Inactive node + * + * This is only set to true if the node has been marked as unreachable. + * + * @var bool + */ + protected $inactive = false; + + /** + * Node signature + * + * This property is used to store a stateless unique identifier for this node. + * + * @var string + */ + protected $signature = ''; + + public function __construct(Config $config) + { + $this->config = $config; + $this->setSignature(); + } + + /** + * This should NEVER be invoked outside of this object. + */ + private function setSignature() + { + $this->signature = md5(json_encode($this->config)); + } + + /** + * @return boolean + */ + public function isInactive() + { + return $this->inactive; + } + + /** + * @param boolean $inactive + */ + public function setInactive($inactive) + { + $this->inactive = $inactive; + } + + /** + * @return string + */ + public function getSignature() + { + return $this->signature; + } + + /** + * @return string + */ + public function getHost() + { + return $this->config->getHost(); + } + + /** + * @return Config|null + */ + public function getConfig() + { + return $this->config; + } + + /** + * @return int + */ + public function getPort() + { + return $this->config->getPort(); + } + + /** + * Returns host:port for Node + * + * @return string + */ + public function getUri() + { + return sprintf('%s:%s', $this->config->getHost(), $this->config->getPort()); + } + + /** + * useTls + * + * @return bool + */ + public function useTls() + { + return $this->config->isAuth(); + } + + /** + * getUserName + * + * @return string + */ + public function getUserName() + { + return $this->config->getUser(); + } + + /** + * getPassword + * + * @return string + */ + public function getPassword() + { + return $this->config->getPass(); + } + + public function getCaFile() + { + return $this->config->getCaFile(); + } + + public function getCaDirectory() + { + return $this->config->getCaDirectory(); + } + + /** + * getCertificate + * + * @return string + */ + public function getCertificate() + { + return $this->config->getCertificate(); + } + + public function getCertificatePassword() + { + return $this->config->getCertificatePassword(); + } + + /** + * getPrivateKey + * + * @return string + */ + public function getPrivateKey() + { + return $this->config->getPrivateKey(); + } + + /** + * getPrivateKeyPassword + * + * @return string + */ + public function getPrivateKeyPassword() + { + return $this->config->getPrivateKeyPassword(); + } + + /** + * @return int + */ + public function getTimeout() + { + return $this->config->getConnectionTimeout(); + } + + /** + * @return int + */ + public function getStreamTimeout() + { + // NB: value represents seconds + return $this->config->getStreamTimeout(); + } + + /** + * @param Command $command + * @param Api $api + * + * @return Command\Response + * @throws Exception + */ + public function execute(Command $command, Api $api) + { + $success = $api->prepare($command, $this)->send(); + if ($success === FALSE) { + return false; + } + + return $api->getResponse(); + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Node/Builder.php b/vendor/phpfastcache/riak-client/src/Riak/Node/Builder.php new file mode 100644 index 0000000000000000000000000000000000000000..c6692c98a475dd0c860efd18902a4ab35a596fe3 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Node/Builder.php @@ -0,0 +1,331 @@ +<?php + +namespace Basho\Riak\Node; + +use Basho\Riak\Node; + +/** + * This class follows the Builder design pattern and is the preferred method for creating Basho\Riak\Node objects for + * connecting to your Riak node cluster. + * + * <code> + * // simple local development / testing cluster + * use Basho\Riak\Node; + * + * $nodes = (new Node\Builder) + * ->buildLocalhost([10018, 10028, 10038, 10048, 10058]); + * </code> + * + * <code> + * // password authentication to production cluster + * use Basho\Riak\Node; + * + * $nodes = (new Node\Builder) + * ->onPort(8098) + * ->usingPasswordAuthentication('riakuser', 'riakpassword') + * ->withCertificateAuthorityFile(getcwd() . '/path/to/cacert.pem') + * ->buildCluster(['riak1.company.int','riak2.company.int','riak3.company.int']); + * </code> + * + * <code> + * // certificate authentication to production load balanced cluster + * use Basho\Riak\Node; + * + * $node = (new Node\Builder) + * ->atHost('riak.company.int') + * ->onPort(8098) + * ->usingCertificateAuthentication(getcwd() . '/path/to/client.crt') + * ->withCertificateAuthorityFile(getcwd() . '/path/to/cacert.pem') + * ->build(); + * </code> + * + * <code> + * // pam authentication to production load balanced cluster + * use Basho\Riak\Node; + * + * $node = (new Node\Builder) + * ->atHost('riak.company.int') + * ->onPort(8098) + * ->usingPamAuthentication('riakuser') + * ->withCertificateAuthorityFile(getcwd() . '/path/to/cacert.pem') + * ->build(); + * </code> + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Builder +{ + /** + * Internal storage + * + * @var Config|null + */ + protected $config = null; + + public function __construct() + { + $this->config = new Config(); + } + + /** + * usingTrustAuthentication + * + * Build nodes with trust authentication + * + * User authentication and access rules are only available in Riak versions 2 and above. To use this feature, TSL + * is required to communicate with your Riak nodes. + * + * @param string $user + * + * @return $this + */ + public function usingTrustAuthentication($user = '') + { + $this->config->setUser($user); + $this->config->setAuth(true); + + return $this; + } + + /** + * usingPasswordAuthentication + * + * Build nodes with password authentication + * + * User authentication and access rules are only available in Riak versions 2 and above. To use this feature, TSL + * is required to communicate with your Riak nodes. + * + * @param $user + * @param $pass + * @return $this + */ + public function usingPasswordAuthentication($user, $pass = '') + { + $this->config->setUser($user); + $this->config->setPass($pass); + $this->config->setAuth(true); + + return $this; + } + + /** + * usingCertificateAuthentication + * + * Build nodes with certificate authentication + * + * User authentication and access rules are only available in Riak versions 2 and above. To use this feature, TSL + * is required to communicate with your Riak nodes. + * + * CURRENTLY NOT SUPPORTED OVER THE RIAK HTTP API + * + * @param $certificate + * @param string $password + * + * @return $this + * @throws Builder\Exception + */ + public function usingCertificateAuthentication($certificate, $password = '') + { + $this->config->setCertificate($certificate); + $this->config->setCertificatePassword($password); + $this->config->setAuth(true); + + throw new Node\Builder\Exception('Riak over HTTP does not support Certificate Authentication.'); + + //return $this; + } + + /** + * usingPamAuthentication + * + * Build nodes with PAM authentication + * + * User authentication and access rules are only available in Riak versions 2 and above. To use this feature, TSL + * is required to communicate with your Riak nodes. + * + * @param $user + * + * @return $this + */ + public function usingPamAuthentication($user) + { + $this->config->setUser($user); + $this->config->setAuth(true); + + return $this; + } + + /** + * withCertificateAuthorityDirectory + * + * Path to CA file. A Certificate Authority file is required for any secure connections to Riak + * + * @param $ca_file + * + * @return $this + * + */ + public function withCertificateAuthorityFile($ca_file) + { + $this->config->setCaFile($ca_file); + + return $this; + } + + /** + * withCertificateAuthorityDirectory + * + * Directory where the CA file can be found. A Certificate Authority file is required for any secure connections to + * Riak + * + * @param $ca_directory + * + * @return $this + * + */ + public function withCertificateAuthorityDirectory($ca_directory) + { + $this->config->setCaDirectory($ca_directory); + + return $this; + } + + public function withPrivateKey($private_key, $password = '') + { + $this->config->setPrivateKey($private_key); + $this->config->setPrivateKeyPassword($password); + + return $this; + } + + /** + * Client side connection timeout for requests + * + * @param $timeout + */ + public function withConnectionTimeout($timeout) { + $this->config->setConnectionTimeout($timeout); + } + + /** + * Client side socket read/write timeout for requests + * + * @param $timeout + */ + public function withStreamTimeout($timeout) { + $this->config->setStreamTimeout($timeout); + } + + /** + * @return Config|null + */ + public function getConfig() + { + return $this->config; + } + + /** + * Build distributed cluster + * + * Build node objects configured to listen on the same port but different hosts. Commonly used in + * staging and production environments where you have multiple Riak nodes on multiple machines / vms. + * + * @param array $hosts + * @return Node[] + */ + public function buildCluster(array $hosts = ['localhost']) + { + $nodes = []; + foreach ($hosts as $host) { + $nodes[] = $this->atHost($host)->build(); + } + + return $nodes; + } + + /** + * Build node + * + * Validate configuration for a single node object, then build it + * + * @return Node + */ + public function build() + { + $this->validate(); + + return new Node(clone $this->config); + } + + /** + * Builder configuration validation + * + * Checks the current configuration of the Node Builder for errors. This method should be executed before each Node + * is built. + * + * @throws Builder\Exception + */ + protected function validate() + { + // verify we have a host address and port + if (!$this->config->getHost() || !$this->config->getPort()) { + throw new Node\Builder\Exception('Node host address and port number are required.'); + } + + if ($this->config->getUser() && $this->config->getCertificate()) { + throw new Node\Builder\Exception('Connect with password OR certificate authentication, not both.'); + } + + if ($this->config->isAuth() && !$this->config->getCaDirectory() && !$this->config->getCaFile()) { + throw new Node\Builder\Exception('Certificate authority file is required for authentication.'); + } + } + + /** + * Build with host address + * + * Build node objects with configuration to use a specific host address + * + * @param $host + * @return $this + */ + public function atHost($host) + { + $this->config->setHost($host); + + return $this; + } + + /** + * Build local node cluster + * + * Build multiple node objects configured with the same host address but different ports. Commonly used in + * development environments where you have multiple Riak nodes on a single machine / vm. + * + * @param array $ports + * @return Node[] + */ + public function buildLocalhost(array $ports = [8087]) + { + $nodes = []; + $this->atHost('localhost'); + foreach ($ports as $port) { + $nodes[] = $this->onPort($port)->build(); + } + + return $nodes; + } + + /** + * Build node objects with configuration to use a specific port number + * + * @param $port + * @return $this + */ + public function onPort($port) + { + $this->config->setPort($port); + + return $this; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Node/Builder/Exception.php b/vendor/phpfastcache/riak-client/src/Riak/Node/Builder/Exception.php new file mode 100644 index 0000000000000000000000000000000000000000..732e9ff8dc70a19b48d5f1af4d52dea1e3f45cdb --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Node/Builder/Exception.php @@ -0,0 +1,13 @@ +<?php + +namespace Basho\Riak\Node\Builder; + +/** + * Exception thrown when there is a validation error within a Builder object. + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Exception extends \Basho\Riak\Exception +{ + +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Node/Config.php b/vendor/phpfastcache/riak-client/src/Riak/Node/Config.php new file mode 100644 index 0000000000000000000000000000000000000000..ffcc73ac936e83c1c93d8ace26854283f5b31cf8 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Node/Config.php @@ -0,0 +1,304 @@ +<?php + +namespace Basho\Riak\Node; + +/** + * Configuration data structure object for connecting to a Riak node. + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Config +{ + /** + * Host address + * + * @var string + */ + protected $host = ''; + + /** + * Port number + * + * @var int + */ + protected $port = 0; + + /** + * User name + * + * @var string + */ + protected $user = ''; + + /** + * User password + * + * @var string + */ + protected $pass = ''; + + /** + * Client / user authentication flag + * + * If true, client will use HTTPS (TLS1.2) to connect to Riak node + * + * @var bool + */ + protected $auth = false; + + protected $ca_file = ''; + + /** + * [short description] + * + * @var string + */ + protected $ca_directory = ''; + /** + * Certificate to authenticate to Riak with + * + * @var string + */ + protected $certificate = ''; + /** + * Certificate to authenticate to Riak with + * + * @var string + */ + protected $certificate_password = ''; + /** + * [short description] + * + * @var string + */ + protected $private_key = ''; + /** + * [short description] + * + * @var string + */ + protected $private_key_password = ''; + + /** + * Client side connection timeout + * + * @var int + */ + protected $connection_timeout = 10; + + /** + * Client side stream (socket read/write) timeout. Default is 60 + * seconds as that is the default operation timeout in Riak + * + * @var int + */ + protected $stream_timeout = 60; + + /** + * @return int + */ + public function getConnectionTimeout() + { + return $this->connection_timeout; + } + + /** + * @param int $connection_timeout + */ + public function setConnectionTimeout($connection_timeout) + { + $this->connection_timeout = $connection_timeout; + } + + /** + * @return int + */ + public function getStreamTimeout() + { + return $this->stream_timeout; + } + + /** + * @param int $stream_timeout + */ + public function setStreamTimeout($stream_timeout) + { + $this->stream_timeout = $stream_timeout; + } + + /** + * @return string + */ + public function getCaFile() + { + return $this->ca_file; + } + + /** + * @param string $ca_file + */ + public function setCaFile($ca_file) + { + $this->ca_file = $ca_file; + } + + /** + * @return string + */ + public function getCaDirectory() + { + return $this->ca_directory; + } + + /** + * @param string $ca_directory + */ + public function setCaDirectory($ca_directory) + { + $this->ca_directory = $ca_directory; + } + + /** + * @return string + */ + public function getCertificatePassword() + { + return $this->certificate_password; + } + + /** + * @param string $certificate_password + */ + public function setCertificatePassword($certificate_password) + { + $this->certificate_password = $certificate_password; + } + + /** + * @return string + */ + public function getPrivateKey() + { + return $this->private_key; + } + + /** + * @param string $private_key + */ + public function setPrivateKey($private_key) + { + $this->private_key = $private_key; + } + + /** + * @return string + */ + public function getPrivateKeyPassword() + { + return $this->private_key_password; + } + + /** + * @param string $private_key_password + */ + public function setPrivateKeyPassword($private_key_password) + { + $this->private_key_password = $private_key_password; + } + + /** + * @return string + */ + public function getCertificate() + { + return $this->certificate; + } + + /** + * @param string $certificate + */ + public function setCertificate($certificate) + { + $this->certificate = $certificate; + } + + /** + * @return boolean + */ + public function isAuth() + { + return $this->auth; + } + + /** + * @param boolean $auth + */ + public function setAuth($auth) + { + $this->auth = $auth; + } + + /** + * @return string + */ + public function getHost() + { + return $this->host; + } + + /** + * @param string $host + */ + public function setHost($host) + { + $this->host = $host; + } + + /** + * @return string + */ + public function getPass() + { + return $this->pass; + } + + /** + * @param string $pass + */ + public function setPass($pass) + { + $this->pass = $pass; + } + + /** + * @return int + */ + public function getPort() + { + return $this->port; + } + + /** + * @param int $port + */ + public function setPort($port) + { + $this->port = $port; + } + + /** + * @return string + */ + public function getUser() + { + return $this->user; + } + + /** + * @param string $user + */ + public function setUser($user) + { + $this->user = $user; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/Search/Doc.php b/vendor/phpfastcache/riak-client/src/Riak/Search/Doc.php new file mode 100644 index 0000000000000000000000000000000000000000..5c8d8347becdeebb47036230c91b74bf7d3797a2 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/Search/Doc.php @@ -0,0 +1,77 @@ +<?php + +namespace Basho\Riak\Search; + +use Basho\Riak\Bucket; +use Basho\Riak\Location; + +/** + * Data structure for document objects returned from Solr + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Doc +{ + protected $data = null; + + protected $_yz_id = ''; + protected $_yz_rk = ''; + protected $_yz_rt = ''; + protected $_yz_rb = ''; + + public function __construct(\stdClass $data) + { + if (isset($data->_yz_id)) { + $this->_yz_id = $data->_yz_id; + unset($data->_yz_id); + } + + if (isset($data->_yz_rk)) { + $this->_yz_rk = $data->_yz_rk; + unset($data->_yz_rk); + } + + if (isset($data->_yz_rt)) { + $this->_yz_rt = $data->_yz_rt; + unset($data->_yz_rt); + } + + if (isset($data->_yz_rb)) { + $this->_yz_rb = $data->_yz_rb; + unset($data->_yz_rb); + } + + $this->data = $data; + } + + /** + * Returns object location + * + * @return Location + */ + public function getLocation() + { + return new Location($this->_yz_rk, new Bucket($this->_yz_rb, $this->_yz_rt)); + } + + /** + * Returns a single value from Solr result document + * + * @param string $name + * @return mixed + */ + public function __get($name) + { + return $this->data->{$name}; + } + + /** + * Returns all values as array from Solr result document + * + * @return array + */ + public function getData() + { + return (array)$this->data; + } +} diff --git a/vendor/phpfastcache/riak-client/src/Riak/TimeSeries/Cell.php b/vendor/phpfastcache/riak-client/src/Riak/TimeSeries/Cell.php new file mode 100644 index 0000000000000000000000000000000000000000..e0f93523bf0943d02d9f3e23c8b764fd46abc4d8 --- /dev/null +++ b/vendor/phpfastcache/riak-client/src/Riak/TimeSeries/Cell.php @@ -0,0 +1,172 @@ +<?php + +namespace Basho\Riak\TimeSeries; + +/** + * Data structure for Cells of a TimeSeries row + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class Cell +{ + const STRING_TYPE = 'varchar'; + const INT_TYPE = 'sint64'; + const DOUBLE_TYPE = 'double'; + const BOOL_TYPE = 'boolean'; + const TIMESTAMP_TYPE = 'timestamp'; + const BLOB_TYPE = 'blob'; + + protected $name; + protected $value = null; + protected $type = null; + + public function __construct($name) + { + $this->name = $name; + } + + /** + * @return string + */ + public function getType() + { + return $this->type; + } + + /** + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * @return string + */ + public function getValue() + { + return $this->value; + } + + /** + * @param string $value + * + * @return $this + */ + public function setValue($value = null) + { + $this->type = Cell::STRING_TYPE; + $this->value = $value; + + return $this; + } + + /** + * @param string $value + * + * @return $this + */ + public function setBlobValue($value = null) + { + $this->type = Cell::BLOB_TYPE; + $this->value = $value; + + return $this; + } + + /** + * @param int $value + * + * @return $this + */ + public function setIntValue($value = null) + { + if ($value != null && !is_int($value)) { + throw new \InvalidArgumentException('Expected an integer value.'); + } + + $this->type = Cell::INT_TYPE; + $this->value = $value; + + return $this; + } + + /** + * @param int $value + * + * @return $this + */ + public function setTimestampValue($value = null) + { + if ($value != null && !is_int($value)) { + throw new \InvalidArgumentException('Expected an integer value.'); + } + + $this->type = Cell::TIMESTAMP_TYPE; + $this->value = $value; + + return $this; + } + + /** + * @param \DateTime $value + * + * @return $this + */ + public function setDateTimeValue($value = null) + { + if ($value != null && !$value instanceof \DateTime) { + throw new \InvalidArgumentException('Expected a \DateTime object.'); + } + + $this->type = Cell::TIMESTAMP_TYPE; + $this->value = $value->getTimestamp(); + + return $this; + } + + /** + * @param bool $value + * + * @return $this + */ + public function setBooleanValue($value = null) + { + if ($value != null && !is_bool($value)) { + throw new \InvalidArgumentException('Expected an boolean value.'); + } + + $this->type = Cell::BOOL_TYPE; + $this->value = $value; + + return $this; + } + + /** + * @param double $value + * + * @return $this + */ + public function setDoubleValue($value = null) + { + if ($value != null && !is_double($value)) { + throw new \InvalidArgumentException('Expected an double value.'); + } + + $this->type = Cell::DOUBLE_TYPE; + $this->value = $value; + + return $this; + } + + /** + * Convenience method for inclusion in HTTP api path + * + * @return string + */ + public function __toString() + { + return rawurlencode($this->getName()) . '/' . rawurlencode($this->getValue()); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/Basho_Man_Super.png b/vendor/phpfastcache/riak-client/tests/Basho_Man_Super.png new file mode 100644 index 0000000000000000000000000000000000000000..d57651182bc837f304b11c4a58289b21ca848aa0 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/Basho_Man_Super.png @@ -0,0 +1,462 @@ +�PNG + +��� IHDR�����������X��� �IDATx��i�c�}����]p�/j_�z��鞞}�HIqH�(�$ɒ��fh�>J|�E�I�r�D^α?�$qN�$��8��m��RE���gi���tUwW�n�@�P� +�BUWU��ӷ\��^����(�����rO�B�8�l��R(�A|ϕ�*=��U�8���w[ �B�JX��E��t?��nB�DV�h�V��p���n}/��v���:��F �Bq��E8I���!{���Bq_��U�8�l%���e��o%�J`�-PªP<z�n�J���Z�l�N��p[������(�m������6?F�@8�(�1�Z�����~��<�fhyl]���A���FY� +������Q�r[B4˲H$533�c�p��BX� RJ=�__YY��7n\�V�e!��F��-�,W���V�b�Ӌ��/[I��P�L��3�����S�,t�¤�߸~�����t�u]����n��*���*��n����꺮�r�����_&�|��)�k!�~�\.��ƥK���\.W�"�^X��*�{�{}� +��#���D����l6w����r�Ny�bl%�m�����l6�T*o:�Si��cmw]��/PªP�?Z����Җ��ݾ���������u] @�AmF�u��l6;U.�_v���Xڽ�v��C���+���\����e1�B'&&������a����B�W.^��s���Wk��s���U�8�(�U��ts�v�T � +�̣G��4::������2�C+uRJPJLJ����V���5�� m�Z�a�Bq�PªP�{� j������������D�oB�i��"����cCCC����m�^G{qm~-�n+�%� +Ž�W+���:77�����?�B��RZ��R�!���i��tzض�mۮ�\;��Tq_��U��wlGT7j2���=��r�ܯBخ�*����sp�3B@HJ�6ݞ����D�T��7ǩ�y=�^�ZšF �Bqo�'�J`rrrbrr��$�� �Q�BԄ�Ap�����J�9����)%B��C�eݨT*�z�Wo"�I8��*���*{�vD��sssO�����P(�E!�֫�W +��,S��5[�u���9�*��-�:���;�J�*c���Q(3JX���K����ǿ022����{�R����5 j��o�#$�����iq�F��*��w���M�?�ԕ\Y��C�V�b�����R%��L&����_�u������g��� �6�L +H! !A�ΧJ�P,;�8�wm�^Epn��CX���P��U��ڵ'lg�n�\.�����χ��~�s�S�o`���Y�-���:l)eppĵo���b��8�ضm��2%��C�V�b��Ԟ�~�IT !���������H$��.����N!A�-�Y����5M�T*�.2�Z_�Bq_��U��]z� �TJ�633s~||��6�zq�J)!�T�w`�n���K� +���"�g=�{�X,.`�9�]���m�����U��=:�j��_ +@j�����>766�[���{Uє��]�:RB;f뺞�B����m�E��V�}�V�bw�&���Uh�f��ξ866��B�3��Sc` +u�/�Rʎ��9G$9jYV�\.��N���(qU*��*��QmWa�u�ȑ�����vtN +�~�{/G�RJ4�q�!`Y�(���������(qU"��*�e��� ���������?�}?����5�/���a/�A�p����!M�Fl���Z��;%���V�bpt�Sm������SSS�0>>��=��rR0߇����Q�@ i1J��D"s�eVWW��s���4�*�A�Vq�PªP�m�j$�����R>��M����APJ�C>���9�xk���B��B�R(n��˷[yN���P�[��*;�Q����~mhh�W{�Q����݆� + )�q*���#�a�K��7j����$�[ h'��^�=G �B�s���n�#G��͡����Q匁���v�4�M�4��Z-�)gY�����ۛ��R����A)�U���*;�Q�Z&��RT�M�6w�ݏȠ��jz�{Ä�!�q�ж��D�n���e;K�_�Tb��u��*��k�j=Q)277�˽�*�}p������<��KxԲ,oyy������k�:G�u݄��U�(JX���ʒ�[��0sff���ÿ֫� +�uBӾ���h��j���Ba��n+��~����[�ۊ�bA �B��mZݿ0Ü����###��ٿ"�Ls E�i���.a)%����߹s�2h-��ѿ�Xv�o��ۺ/%�����U��>��U)�躮=z���|�mi� +�{ۅ�4[� j.�A���% m�B�R�o��B}��v�h]�.��=�SB��%� +�����i���{qxx����:��%���?�m�����@HBF���8��H����m�֡P(d}�[MVk7��R���N�wz��*���U��ݬՆ�R��������oJ)g���jT��պ�:� ��Q O�jH� �m������� ��!dC"��n�$�9��R��@B�V�Rڼ�ͷ !Dn~3[�����$��q�V��B���y� +��g6�� !������r��nSj���(�cQ��ȝ����O�8��� �������gW8�>`����� 8g���F��0Mcvll�kKKK_�g2�����RJF��i���B}�_�y���R�T VI��RJ)E��?�d�K�f�߸-�5?]�+�Sԯ-�b{��n6$+�r�����o������ٿ��T ��I��l�@#�2T@k6�o.r���>V*��6ɷ3�L�@� PM��눆Ck(ێ��� )��uݢ�F�unjFJ�1�*B���⺦1�$��V�T?p]����ի���+w�&����V��$�].�]o�M�}�V��w��V)��9s�W���~������{UR�D ��8�㗟ӑ��D�P�Pq��]��g�Ḻ"�k]��5a![!D��\χ�bPB!!A@ j�b x?z�?Ki<�~�4ٕ\OJ��/jv�2˜���K�o���|aa��f��Uh�#�[ ���%� +E�t��5bz'N��\.�����NBqw웇�� +2� �3�5��'䢵D�4p�`^���ქ��J(E$�ip=�h��j��� ��n7��N��F������QPJ� 0��9�w4"���\/W�x}}�[���������,�J`=��U��nn`299�����?4M{���3��q��@����5|���*�@�t�·�r�w�d�p]"� +�p��FA(��f��f����E�J)���X�y���k:���|�P��˗��Ắ����v�ڋE�z��:�!D%/)�њJ����b���U9��z7H���S��S:rQw��n���%�na$K��|J����Ki�ҕLn���v4[�B�<��Bb��=`:��|:����� %WK���^�r�۶��;��k��6Ӛ�8��W2���_���t��B���������k�v���*���Sj��(>sF�W�Ԑ�wUBjV�^�I���a���a��}��/��)�ɣ٢5��>����EH����ҿ�1?�s�,��?p����*F�u�C��X��Cr���t]��<H������\<?���.��'����L)�`�&xy����K\]X�r�U@�Ԃ��a�:�������l8��(}�0�O�+U��>�q�;�R��݆�r��e��ce��g(aU(v!�L����S"��*8�3)Pt%����KO�I^Q�(�S��e�?������Q��Y⤆�#l�}�����@B״'b��V8�B4���:ߺ1������ll�#�6#;�n�v��8��K +Eotu�M����r���{������)����G�(�x��)`h� ��n��u�o]�xwI��I���,��`�CH`�J)�3)eҲ���H��d|v8�fBެV*��N�U�T�����|�QªP�F�Vb���d2�i�4�7����A���ρ|��ˏ��� RޭS�)`���:~�]��r��G�Lp���1������.fB�1�[�u&�}*�Ogҩ�f�Z-�}+�M�k�l]�8(aU(z��~�q�t]����Y�u���D�� 8۳���d~�a��K�V'�iH�9��{~��]���( 8�eh;�PsO�1�� +�'��gc�X>������8.6l�&6m��m�E �B�;������DbѲ�!��Q�k��l|ꔆ_|�@6�U-p|�o^�������%x부�a#(�Q�N�M�D �V�<�L&?�Ƣ��U���-�Xs�be��g(aU(z�݉�!����I���B��F�� ��aupv��k�8��,�t������m���K3bܿ��AѰ`����z8d=>��<�F!t�\.����H��7m�����V��w�u^j,��p8|3�|�����҅iPH $B�����g)4]��h���)���(�� +A� b��:e���r.��$�O���YSL�/H1���Ʀ%� +E�t����q��t:� ��O +� �:5종�E0�Kk�$ ��_��R/-�u ]�|w�����}�v,��}!�!k�R�>i�n���D�e�u�A �B�;�2��0� ���Ş1cTH H��䖝 �L$%��]��?���W��qD�N�{HS����O�ӧ4��r]o�g>G��N����JX���U� �T*k�e݊�b�B�@0�|w�V A,�C���_ +�ԝf�J)!�c<(7�>ۼ0�!��w���]��3<������_[ּ��u۶�������K�x[�OQªPl�NVk�}������x2?)�$�X뀅�>��0H=��"P�B}�Tc<O�1��J),�D6�@:�p:���Ʋi�f�ͦ0�M#��#! �44p.�1���q����ۛ�~AJ ��i2�x1Oh��K���ʨVqmE��D����ѩ�N=��C9233�?���\��!���tRJh�B)̐��ۦ�YJ �|�8�$��G,$b�b$ca$�Lg`"��T< +]�64�w]k�2<�Q��XZ+�\u�R*�����bŁ����.JUA��F)( f��Le)���C7�ׯ\��_.ܺ�]�u�hu�<x�Sct���G�O�B�{t��ҦK133���.��3�F� �*��a�� t[gY �s�1蚆L"�t<�l*��y�eS����tB���M��]ě�����@$}.P(W��^���5+U,ʸ�����R�F�vQu<x>!�FiMpɡ�n�a�z����\�z�����)q=$�O�B��le�6��p8L�=��t:�k��G���ގ\�uQ�D"�E��ek�cRJ����&�C85=��G�qd|8����b@ W���.kV�����B �^���u,��R(�⸨�.ʶ���J(4-�n��Z�VWW�v�ڇ��za�R[]�vlS%����� U(��nVk�[���������B?��.��C����BJ �4�D�qٳ�2. �@<lard�M��SGpl2�H8 +b�{�B�^֬]�g��Z��[˸zs �KkX+�Q�z��ʶ�9(!д��=�D����]�|�_�,/�ԼJ\8JX����j ���/����J�1���|��S���Ǣ��IT�����cz4�'����@.o,�^���`un���?B�V,�ڭ%\^X��;X\YG��l;p����knト�k�]�^�z�/-�YT�z�QY� +E�t�n^��J��7R���AI�ۜϪ�:b�U.����0>r�~��gq���CfЬԴo�/u�5��h,�sp����v��(r�8NL����c8|��$,����r����,郕u,��i����q���b�Z-7�mz�>8/�>A�A���Zj��L �333%������[�s���=�:,+.zk6�8�F)fdž��g�ᩳGAm�|w�fAk���K0v ���d$3�h��o;���M�R���D�4������yi�o.�P��x><ơiA��A9���{��^�Յ��K��1�,���X��ѭ[ΆKƘ�R~�F�P(��� ��X���½�*�A��g>������I�hr��fkTJ �8cpv� +�RA�XD�T +n�6�Z�g,�Ty ��^_�83�j��0騅S�xpv�dBpT�6�ʈd�1�W�����L�ӣ���J�U@nu��r݇(aU(vN;���}��86���d29���Q t�ZuÀo�h� .$LCËO=�/|�q�3���:`+�i�@͝���:�V�(�(��pl^-Y�.�RJ"�IZ]����u�n � d��$pvv��� ��ǁ���R���=�}�FO&�����r���[��s��U��9ݬ�M���ju�s>�N�?N)�ؔ%d���F�`�GKU-�G���\@2��=��ʤ�����V7X���sֈ��&)��A�8��k�0�O����qX���kx���!D��$ݝ���@\MC0��<��R�Vp�CS����M(�1JX���-�iS�p�\^���?44��}�ƠN�@$��xO�f��ó��KϞG6��$�ܼv��b��R1�Jk��c�{�zm4� A�m�213���Q�T�J�� �Ur�y��%�!��t��B�4�Ǣ1�y�k�j�Ew�U���JX���K���%���.��9O$>%�$�,Y�0��.���9ǹ����=�������:��J�l� +�o�J�c���B�4�ba̎e13��z���R5h�_�>$8�҃4�G�k�$ _[�r�X����̓}���}�V�bpt���Z���9��\�,��F�RB#�H�6�RJ$c|�'p��<�"�B8����:*�2|����������?d�Ȧb8>��a���F�k=s9X�/^�B�E�O�����z� ��U�u���U�[��[��<�Xa�z,d����� 2.��g��#�OC������!�� +J��V�`�� �Cl�EH �0�M!�����:*����D ��R�{�F���0��3��]^Z^�����`��JX���IX7%05-��!ĝ�p�a_��툪sc9���y��2p}��� G�\Fq}v� +��ͻ�IG{�D�d�:F��N�qmq��Ӧ=b�̇.yz~TB ���f"�82�7VVW?��m����(aU(�V� +llwH�J5m(�>�N�~�q�ugR� >��G���#���8�.�m�P(�.�A��:� +!%(�NǑM�p�&�J45���{"�����j�X,>�����J��VOۓ�S�E �B18z�Xi��R���ɓ�� cbf{��$fGs��3#?���o�Z��` ��y(�P.��9Ρ�f����`8�@6Ǎ;k(V�.ݚ�a�B�����T�݇$���t� +���w�����DB�(aU(�V��ڜ�gҩ�3�N�*ь�x�� ���/<z�O��д�;+B �D�TB�P�����7�ڌ����t�\_\�������) E��D(ٳ2���\�F"E¡�o/�y�E��C�\��%� +���N��H$2=3�d2�5�u�-jV��O<�fFr�Yo�L��( +���`�w_ +j3R�#�$��6n/�D��m��,b ���ݜ�?�@��D�����BuWw���Q�P.�ué�+K���3��W���-a��Q'�3�%㠔l�}�)��"�VVP)��99��L�Q���9���lP��Rp߃�y}�������i�LM����b�غ�Z��(�U���B��)��I����� B�#ۯ9 ��,:>��ituSJ��>J�*�|������!%��0�pq��y�����9k��W�h6̐q6b��wgie��pZ��k�h����P��5��K�DÓ�S?�D?�ڌIۊ�mpd|���ET !pl� +U�*+�#>x��NM�B�d[�6�`��������3xLdf�����h>�֧+v� S(vN7w[k���f�d�?W��}[��F0���d=�� �IDATK#lA�֝��=\)���� +Ƕ���R"����)�R�c�M��}�z��]�1����g��=u�Mw)A�(aU(O��Kb(�Ώ���5)���`(C,l�JB8�(�(���s]K���pjz������ �U|��ޑp}��B��;y��Q�'���)��cԷM��]'7]�e~d�H,�%����k�[��Ǡkt���R +����( +��+��6�HD-L�3�G���6mGp0�g�uê#���8�G�����X+V�R�d���O4M���(A�������N���օg�CGR���U��� �4�@ U��C��j��i��w|�07���P +ܸ ����I=� +��n��<���9"!Ù2�Q��N���Z�Bm�����s���?z�U)%���>���up�PªP�����e�ù�OE�֧+���k6���Q��ְX�Z\[�cۍ�,���\`:?��t�~xkg��gq�R��4�b<���XS�C�%1�Ma(��%�J�3���U+N����w/]���y�7�9��<] �.��U�ݚC�����t:�ɪ��F�R6Y.��VW��jb����aE�X��L]o���uq%����]�1PJ1�����Ο��CǦ0�f�r!�f)���0�+'��s����_�!���Z�V����JX��iWN��z8 g2�/������[�x��NJ�����*��T�x�� +��ò)�|�6����H��x��>r���D8d��ʶ�u�\��#��g���|���z��/..���9֪��=Be5(�eSlull��x"����k��� +��W��`�R"�" ���f�`�QKh�R�K���!|�����}�?0��x~�u��x����G?��ӄ4���?��P�]@ �B��NP���B!+�D?I)��9�p�PZ/�u��mW�)ۻ_w�Q0߇�y�B���8�����g�# �q}��K�ba+��?���� Ep��u�QªP�NK���ɉG2��']�l�;!���jUe��"�5��q"9NO���?�.�:�}����1x����ؓ�?~�մV������:�PªPl�nb�8y�N���a���S�Tj�*���">�`���\蚆�Ǧ�3{3#x>�e,�@� +E>�cO��X,��c�ڕ�(�V�b����8jE���M* +\�K+k�<g�������z��J����� C�p��4^z�!��&VWV�(�M J)N�N�p��̨ti S(v%� +E�tlA�P:�R$~�]/�~�w�)V0����D`�PA�q��5;ޞ��Q<rb +�{�Ad�Qx��Z��\,c����B ���_���J�ժ���%� +���vBj�p.�!�~�P�*�@]|���.���l�K���Wpci�r��qQ��ȉ)�����&c���T�%T+�ڰݝ��������䲩d���)Ϊ>B��V��?:5���1>6�x,�<`|.U)��B��T� %���|�!��Z�١�C�)B03:��8�\*�yK!�D�X�m۠;���Z��\*��O���h�j�S��*���DE)��P�IjG�s�E�����T������J�,��]��W�g;�z`v,�/}���qx��)�!`��T*�@L^J@���=�'b�866�P���(aU(z�� h�����3�P���yJH�=�gcB��r��T����Z�L����G�E��n�߿���"�t[��A͎d�����X�����ul�J�����[8>9rnbd8�4R��;(A�5vأK���hW�@�.)�rl�ȗ���_�|SljԚ H�٥�M�17�E�2!��P�B�Ѻx�q������?|�"���;X*�@)�� ����X_�X ��z����n�B;.� :�n�����oTm�E����(���W�B�m;-��⨄�aIr�7 �&����UT]�Dt��9LPB�s���Vp�� +r���R1�@`�K �\^í�".�\ƕ�%�Y/��4�c��U�MF��?���Lmh��"�R_*A�u�;W)! p����(������Zw�~���V��7zrOMM��ç|�uxx�H!�ɾqg�S��[RB�(F2 ,,�����6\�C�0�Q��/�z��`�>�Z]����~�]�G�r��S���p�"�B\�A�Z�a��K���L��N�]�qk�1��cnW%�D������ |�ԉ��Ñ�<��vb�J)!8��U̸đ�,F3IPJ����C`�8���Kx��E���X+�X/U�V��b�p��둮i;KT�������c� Ѭ��K����f(�6�N=A��k��l�շ�}�R��;xPªPlM���M� +����|�0�3;�� +�R +p����ZBN:��H�}g b���6 X��ѡ$��r�$�X/W��:�`�4�B�t� `\PJqvn?��C��B��Y���]R����*���˯��+k��;���5�(W�B�5�U�m�����A�q��� ,�������5�m�位��:E��HD-p. j�:����%��>z��O��������P�8�jIM;��"��g<��>�|:�Ŏ=�ض �RA<�����X�����L݅T����X����b��z�䉟�#?�3w�����t(E������$�|�C�x��M����x Wn/�Xqah�a+�L����-��5u ��8&ri��!f��\���x��J�KX���'�F��g��G�M֚?��B jmC�P߃� �+d��j�Ջ��_q]���j>J%�D �B�5���E������a�g���R������<���9� %�l�>��,S�{7���|�M���W�XX^Ǎ�U��.^��w�`�>LCG:�5��{�����C&�2IL�R82�C6�F)�U���u�3�EH .<ơ��y�p�>�� ��A�4�ㆠ�f�4�,kg�V#���|su�P����*��Pt��۷�� �aP��5��Q�Nr�5a�� 4�b�PF���� ��I��Q,,�'?x��A�Ѓ&Rb�P���"$�X��P"�d4��t�#C��g��$ `\����N{��`\<bq̎a�P�r�����\^ǝ�����1)%�l"�l*���F2Ϧ24�>��,Վ�`���8G��5���I +��l��x؊achC�w%� +��ؤ��2<��T���J�)�7����Yǃ����AV��^�������Ar�0&��\��۫ �`8G.C:�x6�����3��M0.����,��������X+V�^����!9RJ���D�B2F"b�}��yiU7(!�v��D2ٟ�J��l2��E,l��HlW%�@ �B��d���?k�B3;�-���Zmn�Qq� ��]���2 |��kx���p}�4:>�R�j0kB�V�bi�!%c����s)���pV��cL���+��E`1�C�3 �eS�2���F\Hx���q5��Z�F$�+�*�=��C��ޕ�� +E�u/P�:0��*ۧu� ����F~_�U@@�W�Tu�����B��R/_����,����C�h� ��s|p�~�����!�g���F�I���Yߥ+�A !8|ܛD���ypl�x�/��g�<p�LJ��?^+��܁I��PªP�GCX���i��� ! �,ӱ=>�{VC2t�ٛ�pi�N�Kw��� d�!�8~t����L��4fDz8:>���!D-����ӾȌs8��H���* �d,r!2U�u�QªP�˲t��a�}Y��߸"!X/U�l|!�,�7>���B���BɎ¼u� X/U��^ƛW0����T'&Fpt2�x�88���~�R�r��uX�p_��T<:2�p}�[�Jp�B �B�;�FmBh>��t#��/)kn�>��i��J �;�na�XA,��k ��W����G��ܽN�KK�M�д�M��[+����7rxpn��F07�C<���=�8�W�lulV8��Zȥb��-ݭU%�;D �Bљ-��B3�������%��@��'-m��flFJ�T<�g:�zC�1�*6<��KZ"�P��H8���(�.l�G�vA-��`B]� �kE|��5���<9>�s�&13�A����{�Lt��O5�<�1h�Nb��L�>6;�?��f�j7���%� +��i�\i,~�j4ї�J�C�&�z� +�6�e7�|��8==���cN��a���T��8 +eRJ�m����b����b�r��z�v���Y�R�by����m�7��'O����(��D��aW�<�E8��s=�p��������;W��X��nWv��JX���h�BH�4���T���������q�Z�� ֨kZ���l��!C�;O���?��F)�j=�s�x���d�ŵ"� +�v{�WֱZ�bq��b5��k�!�U���n,��̵1<~z��h_�����9��8} �@&? �b���YL���%� +��hUN���A\߇��N�5��:���s�\(�P�a��d˃�Oce: kc�j��� ~Td�Q%b8wl��/�ᇗ�q�� +n���^�tx�7�x�����"��ƅӘI# ���'��$&�s��hX�"�D"9b�f��K(�V��w6���p=?d���f� ! $�K%pzv�'����1������\��W����kXX^�X����5�k�D.��\��+7�����\���tM�F LC��s��[�G�o᱓�8{d�CI$�ᠩ������8�D�o��LcZ�5����ve�nՄ_��L����Sm@5����0��������r��O>��>���(���R" ��D��i�\)`�T �Y:���895�#�Y���x.4l��`l(��'�0��x���\?hȡQ�Rخ���o��|��� ��dH��!%(ն���G����vm��<�l�]A �BљM��[�d2�f���iZ��������~��g��GQ��(K��f���xc�.�\F��t�=���L�%��Q<87�ّl0݇q�>kt��4��u<���ε[p\����u��F3쀾M��`B "�趼��B��������7n}�@Xe��x�`���B �B��r}�B�FGGg���BR�6�3�S3c�+?�4����z��UT�Վ'FJb�4M��w�3 �� �u�WF��G�����r��*�������Z]��3\������D��@ �^�46 }S�� ��)!0B!�z�= ����o�m�C�,����>P1V��O!$��RJ����g�T�{�<<6 ����e[�u4<vb������A�̈́�Æ���vC05���O���2������eT>�eJ %J�z�=|��8=3�SS�8>�G���"�N�zX`O�X�!��! +m�y��� +�f���s�b�;@ �B�!6Ʃ6!����O�������&�[��@$l���ƕ�KX^/����og@ 4|���a*�����������=�h��� ������}�&�����0;���H��U�&���C���S#;���o�Bp�r�P-���M���8 %� +Ew:��A���1B���b��ɩQ\8y˄�����3���t=��#�8�{���{o���u=�nP!:NN�qd,��7�����Õ�;p}^��) Ϙ��z� +^{�ÚPI��3a<�9��"���{}<�E�I3d��<l�r��!��OIq���㲛����!Qt�q!�ؙ9���ߵP9��=N�B��4<zr +���aR���h�����!����~��O�}s��0 �6N6��(%�B��*��L"�#c9�C&�X��Ԓ����y�R���8ǃǦ�gFs�o8�� %���b7����>������(��^;�3��|[+�D*�Gϝ@<b�o�-,!�X���N\ꅆ�J ��ةi|��O���<�|&��i�H=�) ��?��|�j*!�lx>�{,)�k��K}ܞ`꺡k��j�����Mz����������i��N�Ht]#�X���\��d#C)0vWg����P����8| +��5��E4�P��X�C���A l&�s�G���w.�o_A���J�$4J�s'q��(�`;���H �y����8��Z�r���r��Zy�ZJ���$ �<8? JX���N.���N���v��UP7XƵ䥶p!ptb�t|�$D�l������5T�2:�"�����Q��q|��i<<7��{ �y�2��x��cx�c�Z���D����r��[����y�{�&*�d�g�֢��F!���3�F8��cl\�[w�V� �GL;Z��w��w*j߮U��1��:Zַ��/���Pc�C����I���>N�Bأ'��w.�P��Q�h8C����^t�"!�#CJ����8���Χ�X W�nPo���s7�W/��Z�����*ve���x�:n#��������}��W(aU��c�(���N��jG���ro�X��LJ)В� ��h6�D,�)&�]��kF ��C�c9,��\ ���ĥ�:�o�3.@��#!��il@H�+?L�d!���5�f�z�2� �iR +@�6��Z���ts wVK(�.�p�F��!��H&�x�B�bw;���A: (aU�C���������I���Ķ��v�C[ow=v�� +��l~���L��7k�����'&��ѵ[X)�ٞ���E��le�A��z?& �A �Y�5���g���UVKU���<�SyPz�zm2D��Z�����+E�W���Z���V�eTŪ��@I0���a +�s��$bX/VоA�b(aUl�^����s����nVh�!�ͷ� m�}u:�M�RJm��RJ�cQDB�KR�f�EJ JNL#bX\�X&M���T\w�P�:p=��Reӏ�A��D*F&�BH��!d�Qp.a�t�Ӊ���k^���&��_���%\������^�KO?�l2X�X/�(�(V�e��*��bņ�2؞�g�:>*���`-%0�ZJ)@H�����C>���o_*�m��z/ŶQª�^�U<�]vsӶ6��\�r��e7q݊N��@�J�RJ��z_6C4o�$.�Ld$�T,�l*�KkH�R��0c ��/��j�!%�ߕ.FA2W�4jb)a�:"!B�F 0t ��$�!�D�d�h�D��#v����0����e���[�����C&�E�c�A� Z1����|���5��&��m��$��� ��P2���,b�n-�-�[�.)�VE'�#���[�}Z�7��<|x�ѓ��a�N&#t��I8a�LZ�k�쁯Va;�,]_�^��;Ko]�_��l�yBZ.ۉk/"�z���j\ +! +\����0,�D�v�� |r8��>� ��R���Z�Xm7W +(���*Jw��H@�� +��/,y�FU"M]�A���!j��X!X��d,�ѡf�̎e��`&���p|ܸ�s������ ��h�����̎�݄��G�p!�1/�{��9H\�~�S�ڵ��PqՁ��U�J?��v"�����OZ��ʝO[��S$��\��t>����ɰA,],0k�ƀ�0F�Rv.^��o�~��/��[�V��_�d��Rh�zಝТͺ�Jtڹ��� +�yEJ���l��Y��N�F"趤k2�(,��+�PJ`�L]�5Qm��w��\��Xu D��D����MƐMD15����1L�AkIG�B��č�5����� $���H)a�>t�"��afdϟ;�d,!$��JR0lր��!:�(aU�ٮ�v� b�M�̧��O���=u"~��T�#��qn(J %���Z���]�Z3�(B�`*ENϜ>���0n������ʥ���4�XX�����k��K�+U�阚���e�����J)Q�VWR����]��6�(��A�Q�1�p*����2�Z���Mz6��L; �v=\�������[x��M<rb +O��C<�����4����-�� �IDAT�}.��N$B"b���O �N�2 �3 ����@����B��E��*z�^�S���D_�0udn4������e>59d>5y�՚�RukU�5� �!Q蚅l�Ӥy��3y��'��h�J��7o|���励t�H�~�-�=�.�M��jѶ�i��vڼH)����8<<\1���M�gp��x$]Ӑ�Z�ƾ�oKv�Rh�:|���o��jRO��C���5�C�Z��Gކ�4mo�UԒ�.���K�=�L"��z�C�����X�Bj��l@(a���6�����L⡹�G��S/=9��T��T6*���=T�)9�`��p�2��-� a����N���>}�ĺ���2���?��fb~��-�T��?�x���zl�٭��%���/�R����{�]�3�gHDðLe۽�����[X)�A;��!�R�C&ʶ�o����8������B�1&$�]}j��,��?��R��*~�i�������^�(�����nIHͷ�Y�����=���ԉ�����}��#�M�Q�}��֢o)9(� ��XZ�BL8L�BK�Cx����ђ�jլ�V���>i}�����5[/,�ҫo\������Q0;���K�RM�EB�Qp�.^J�J)���c(���V|BH���R1\���1�f?c�p}qgfFAk��{�^ޓM��s'𧯿�Bنen]k�?���R<|lӣ��������(�ǟ���fiw��UΖ�$cY���`�����p�q���������`_��$,Gْ-˒���J���N������3=�3��AҮ4���;�=���=��So�� �}� +ē�!�0����D:�(빅R�z���U�0$Iv_qú�M��o����-u<�����)����� �k�FA�@��p0������%)T���Z/���F��U'��C����]C u���?���IIB� +j�������$L�Db $�ڴ�ٍ����\� +Z�KНj��&@}uxV/>YB"�!���]�,�0ơ��ݰ +~/^=r�O�L91H)�\ p��K��9+ 9O�:Қn�G��4�Q&�s����E�ڟ����C�[K�5�ݾ����Ud��:�?m�H +N���!�E�D�'�Bp0a��5P����M��˚�-1͍�Q��.�W;Z�i�/&���OE��%Y ��Zʸ!y�����D�I�nl�嗽��l��B��*�W�y�.a1���E&�є�nE���c��*��h��Y�h��8�"�[܈��H�B/0�" �%R�)�XK�l�^seb=�1��*V5WV�m-���y�����x]���n �>Co��D19�$S����� �� 8tn��0,%,��{�Z�*N�ȯ�r$����ޡ��菢�`G���0� +@BM�+*�L�L>��`pd�d!��R�g�e���n���+��K���=�J*��LQ���R���) �s�u�ƚ0.^т���i �:]�PSĵ���"�EW顔�gphwd4E�8�2��2���(��;�ɗB����z�ʊ�7^Z���>v3��@l��HӁ=�ޭ(B��&2��s�Yc�}k\�Bl�e��t��f@<��յ�����}y]w����������`�����h,5�9]}ï�ϫ�RJ�m�����{�ãq,�W=�is��0�*�uK���Ɍf=W`��3�Y�;x�X�<���#�?<3 ���[u�5K�t�|��_�X%*���Gv�Đ4�4wFw��L�g&��$TJ)�/UoZY����n۰$p�OfH:R� ��L��� �P�D� v��q䒮�h�9�X���.8�fj��F�1,�q���;z� +����#�#�� ���.k���8!��n!]�#���q>�i�sv�����X��;��u�#L��q��XPS1#�k��[`��FDbHif�i�m����VB�̴��@��4��N�j�f[^�ՔIu�07z{�`<B��'$T�`q}�z���E7oj��ž�{d��n 9u����y�/�!�,��t��`��S� ��o46^�P����~���/���tQ�S��N��wa��&T�|03p�t&8S�GmE��lAk���G3B$�Vd��E�8oqܪ��YL������s�m=�[ipJ0�����W���\!VB�;�Ri��T�b�eLeb=;0�o�(_�X㯸hiU�[�>�eu��S�9�|6h��QX�J�\yA 2����9�;�\�nB1��$���-h�vp��������d5E�$�9z��Y��ʠ�X�S�2� X��W����u0�g��B�:3�4� +o�t �C3i-��A�6��E ����j��[j�q�RPB�]�������X*G��/��)@�X�6��G�^�.[��}˒�w���]gҳ#����܀��������K�m@~��?�{� �<-Wd���M�+��(\2C<-2sY%Jp�w�=���v�E}_g#��]�d�"�G��V�Y7�B@g�¸q�yX8� +:����m3����vL�X �Q���W��qgL��@)AW��s�X"�ߴbM�r��q��u�b"R�(��>�{~���[W���K���p?��͍7�L�g+1 k�@b*�6�s�A�s���RF��E!ӲE�D�X�[��b�ܟE�%��w�[q�%�)���f +�a��"�k/^��HG;{J��\��\`~U��|ִԛ�O�2wf�������?2�I�?Y�å*�hE3�4׃��/!;�x�o`h��6�8�X��L�s�H�$����Rm�����oy���ׇH�"3J�jo��dR�� �ʚ!Q�d��b%�vkmnٱWA�:���!��jE7��8~I�p�g��>���̯ +c��淛uHk:�C�u��նWp����&J(�qPJ�R_��n\�M��`\s�t!����b�R����#f��dr+3n�0\�4[�_�` � �Hc�����t��4�ӴI�LEQ&ֹ��h��Q�Ԅ����h^q��_Z�(_�H��<3@'�N�q^��� +0fX�j��-d�'���I���)�Ւ9[2���K�U�)*| +:�YN&�p� +��~�5�媋�*ʬ3��J�SX�Uⶫ.Ͼ��'��2��=b��8�.+������C}u�\��4tZ!�n��[�ޡ(:��ᢥ�b!ưh~5n�x5�^��$��f�"���%��B���Z��L�sS�R�>���au��_��SW���ӫ�m +�i�I�� ��.�]b��A�@�X��&@)� +k�Yrs̡���5n�ב�H ��`�����{q���p�*Қv����s]P[�۷n���ūG;O�̀�����5���"����b��ez]0֚�&V-���W4c$�@"5q�!t���*�k.Z���U��_³����w��h"i�W���˘A�[6����8�if!nJ ���>q�y7~�ƅ?Xߤ��%Af�� +���`mr۸��9F��\XK�q������}�.#x��ܺxN}yue��3W�9ؓ�hJ�+`�$����p�2��~s�ϙ� N3���n��P��g(�dZg����k�������ux���a�Bx\ +���@�R@�4ϫB$��ɾ3j��I��T9�B~l�h%6�^d�'\.7<>o��J(~��m_zv�� �Ȇ�;.����ݹ�2��n�����s#��߫�n�d��{�����|�*|�B���=# �����)8��I�c��<��1� � 9��I�.�uB�`�C�� +HJ)��$��u�0,�C����{�!EFcM+��!��0K�`<�ߜ ��E�"I���͗�� ����� �4�Ukff����0�F���@p{����͕k��>��U�r�R�7K��z�r��^���X���C_>���k ���S�2��NLVK�!T���>X��;/��_]U��eu�j�B��㎽�\!���?�ȐaA��A"OK-�Վ9�G����%�)zG9��c���7�8|��#Q�U��q�[>W�$=J �>�/���HkF)0�3�L�d�����J!K�a?���7nZ���u���?g�O��]h����@��(t��VnO�����K���uK Q��PJ�����j�� ���}z� G�#��B�z��Y���u�a��T�T���W.<�� �X��>O�@��2� +(���ާ3��ҁ �$H0@3Y�er�� +�My����S��L ��S��� +n +�E������-8l%�(EJ���VtD�� +�aEK���g+�ߣb��,��Ak��vj���n����8�%���A�.EF�j\�� KkP��*��Iu6����7o^���5xv�Q��F*�!�a��F\�b!��*�5V) ���q9����c'~�%"��tOeL�2��.�k���B�J�b��ϼ{��l\⽭:�4p�PZF��iKٳ&O�3F��̋d�8�r�p��lsn�oa��#d��yQ����*.��Q����d��q������]�����s ��P���σ5-�h�_���Q��Gk� �u�!�LO��Re,����uX�P��� |.�"A�:B�a��ܪ��K`qC 4��2��]���~bi��Z�X �i �i�G�m��W˚�)@�Xg�i����X�dJ��*��7,\�774}s]��|� +j洏Iq�_���t4e癶�����qY�Z-´4Y�9@���)O2���h�E4ZB�|@U@B���ZW�����X����U�Ƨ�%(�4k�������|n4Ԅq�f�4��8�� �GF�L頔�?�D��1�2���~�� +��@�fp�\x��n0H��*�%$3}�qs�y~`B)E-j*'V�>�;���?4�����k��1M���̣TR-�W�˛**�z��w�qm�C ��R�����В�bү��/�|� ��Fk~i�C�9I��MZe�B�&]B@���$cs&�LNAA@%�u�&U�﯂�%�*�G�jT}�<�{�p��h���9!�Ol�%p+ +�.��� +A�4��c<�ޯ��֢�B0+�3��s�B������$Ag� {�����G� Z�DzJQ&�3���S��*Q%"n�ش�|ޫ]�i��ٷe:�<����֔�,�:tQ@�儥��.���f}y��ea�$���k��10N��J��ek�;��B�)|Y�h �a�a䜃���LB�L���` �@�)T���(j;�l�V��+ �B-�d ���O<�XdtԹ�j�|�Q&�3��Hu<ӯX8/�ck�5�\V����u�H�+���-� +)X��3Ѡ��P�����e��9���y>Q�t�k�&�B��)�#( ��(�0���FZ�\� +EUˤZ"�5�Ϟ{Fa����fc��u?s��wHd��bS~�3�2�� +R*D���*�xe���y�W����"�f���4d*8�o����ƜwJ2�e�p��@�@#���aJB�f}�v�<�8QC�ǡV�D@�����% �$I�d���s�mʘ:̩J��ZܿJ����|�ۑX��V�8M(��G1R���J�7��yÝ7�|���`H�g~�>շu&�-8�9̕f�f`ˬ��$B�h�g�n� Y�盋�r�sͩ �Ju�zY��I��M�]~��7�,��r��g���e�BPJ��\��ɶg(���K�v�R�4�f�ӊ2��^L��ڟ���7�=�]Ѹ����?�l�{UZ�1��]fJS�����} +��,ӭ�L�9L�~~�#!r��P4��ll�s4���6�с#�U/������YQ��\��bS}e��B�J\����������O���8^��L����S��ū���-��}�yw��'������8�_Sv$S��Ԛ�'�/��*s�ױLp0�t3���f�W�tr�����l��%��(�e�a���e�3�K�,ߖ��/3~��S$S�$�j��pK�ӏ2��zL�T3�ԫί_}�;�����[�`�a��}#N{���M������Y�:�H��*m��ٓ3�m��j2����_�8���k l��.'��!BH�������0#w�.s�V��a�[�eL�$�AKbԲ��9v�����YsW��&�B��2feb=�(d����*�����?��%�\��D3thll%�*�,�,)��Gf�γf\B��6Șgm��&� ��v|QƔ���.�-g��,P$�=� ������ +�!+ +\n7��ixhe�up��x<���S� �j?~𱯦ӺS[�Dz�P&�S����X��ݾ�隿����J�!c�-#�np�Ets�-XAJ�Y��ܡUZ^g985]�%�"�.�M�t)`�vh�& ����� ���`z���43�(���Q`{�lK���YD�RS[}�ȉG�{y�a�� de�xAKe�0��zjP�T��sr�^�����n\�ηn���*�d�8�o�t�x���m�s��HL��:Hm���^M��j���m:IӬ� +h�+p�<l�.!�L�y���x���m��h��s(���hdڿHg-8���p�V)E�P4���=�Uƅ��[QZ:�(�̣�������/\^�������W�����F��q-�Bb� +�i�mV����?��k��3�����~۬y8�l�.�n;�)cF^�L�ý��hA�z����2\n7b��bO��2���"��q�V)���s���۶���`�})j���0��:sȧ�B�Zh[ϯ_��w��䦥`�ϑ�æJʔ�i]�s(;����jfN�`g����iKF�YB�/��_d��?�*G(b�ND����$WwBQT��$��rtpA��%Y���VC�(E��H���l�@�&�B�V�$zP&֙�dH5�O��$���y|��k�k�|iUZc�ʢt�@�� G;�`��<�o6���� H.����� +�lօ:�p��'��L�N~��h*ꖃ�/%Y���E2Yb*c,�p�\�x<ce�$�qΟ~e��}z�!af#q��DR��P��I�L��ǔH5�s)uM��w��ׇI]Z�țV��r�7A`C�R��m�� +�$R���-�1�&c��S�-5g[I.����+��� �H7�z�_�Ire�1eS�)PUz9Sy �@u���j�b-��k�գ��`ۻJ%�LU�([�(�̢$R����sM�֏����U>��&}(�8X�8����u������\�$����5Gzd�Ξk�o�sm�)c.��7#s�=Y-���z!nD��X��/��>�#��3��8; ���r�����N�$D)�?����v��@�X�ɿ�9��2��2�N*�*�}~��użTx5���^\�}'$�q0��0B���GR�$@Iv���I2$k�99 ��JM�j)�s�x'G�~d�#sn�5�r���\�HH����Fx�50S;ͤ��x �b���ed@�������V)���������0I��o�`�|��lsҙn�ƤIuYSe�3����/���ϧ +b��/���v +��FJ�NSKU�b$���cCH�u�X�eE���%px��E~���Y��Zf��3$'�7'�C��g�\��k�r���"��T� /[�%, �����e�����@08&��*K������?~���_;�,��j�Z�^�S ���5֩�R��r+VU|���y���=�L�?�>=��阰'h���D ����N@�Y�l�?5c�%Y�,Ɇ*yeJ)���$�m�iB��v�&1k�����:"�'*g�4�?z�䨴ȸ`Ţ��f��j����x�t���Ne�� ���v��*���n�<�����ې���T��oc2�ة�{N�L��C>OLD��.\V]s��V}`���e*fA��,"� �B`�*�G���}|���t �����e�U�n���O�[䚑6_l毃p���>[��N�r6��[Q��@�s�t�8��q�G�^W�0��L�$��`H�rU�2�)!�'$,�� �IDAT�v����r�hQB I�<��|�?����P�����ʖ"J�~��N[&��1R�����������-�r1Hu&0Ub.��)!�(�B�����8vD,������`KT�2͍��j�I]��h�����Zvٌ��^�Shr�4�\���-�]��xJ�?���ǖ/�����-Os������E2Q�~s.BB)�^/\.WμUE���7���?<}ߑֶ�e��1�N�"�o2e� +�7Y�}��a +�J�iM]�W��y?ȭD���#'��>&�KJ�D��4GRc�w"��� �2�a A����),��6���0?�ʨ�˨���`(���iGv�u$^��i����r��ǖ�|gS ��Ǟz����{GF��4�4ͫnb�I)�$Q�S�1��8�!����G q�+dYB"��_>�̷���?A^W���|i�bg<q4��:�DX�(ki��H�gQRݸf^�=�]�/�,v��qAfBS�)��^M�e�%L��4Ǿ�8��=�]G#��O@3�v�D��j��x��A�A�ҁ�5.s�ʦ*�`<;���|�� v*T.�H3�L�%B�{N$_8x2��w`h�w`�c���_�q�T�D !V�:Q���cB@UUB!���oU���yj�_��3�ڹ1���W��O�`����T�=�Q&։1IR6��o�罫��q���2���St#����d�`0�D��PG�^Ɓ��i�Y�^��%LX�) +n!r58�V���. �>\�=�LXw]�L3��SC���#2^?�|�Hg�U��8ҧ(�W-�Z�D�룔B�e��ipv��,��~U���������>����Ⱦ������I2-V?��C�ߝ(����R�ش�a�=w���MK\oc�Oݧ:��әj��%�<����qr@���xn�;���X +�:�R�h�&�N�\0�dTz(��!IE�O=Q�������f�H2D�C��8� +�����v��j�� 뺡���節�L�\�`�&a �d25\���9�~?���9�ʂKU�=����ׇ{�E�Lt=~@�d������y�X�z���C9x�8&K���u��������i��F��Ἷ��3�nB�Y��0�"O���j�w2���4t�#��7�3 +��=b�{��b:��u�;j�����u�����P�����@J�p�$x��F��vu�!@a�aי�� 'P�,���*˟�@% ��m�$? 3�� =}C�����n�W�n��E� �Lӱ�� >:j-�wVʢsBȊ��YQ2K�"#O�g�v��~����X"�29�ɔ!�R�� �>N��k� +&�F�VOϑ��H��5��:kP&�,���ΟW���X���,q��`l��T�0�)�� �M����t�q�#�HLCZgHj���&+K�]��\!��2dGR���2N��LMW&ɔ��B�)� +����<�Y�h�����q�p�D�ٟx�D_|�u��0����}������O~pQK}�2�x&�p ���H�ʉ#�VJ���x�~U� <����ޟ=��tZ��+2���w9� ��ЦZ�zŚ��5��.ڤHB �Q�s�y���I|$�ޤ.�_8�ᗺ$�qC��oG"�|8ˌ��\�C߱(�TmB5Iu���_����x��{u�e��e��Dd��&u�p�+�X<���O�dJ��c=U�W.�e5W.�j���TT*ф�� +�ٜCJ��&��'���I�So������%��Y,����zbW��BpŪ��*��|�y�}�����p���h'�@Ok臡�e��Y�9�� B�0�$Y*�G����=���n=�9�:f��\��#~�ԇ\o����������ʆ ��r�J�<���A L����Z! �hi.:bFg_�]�t��~����C;w�8B����lC��B"���3�H��1ؤ��-5�{�r�G�vq��ƨ1��\�Y6�H�@�t�p�+��h +�G<���IZ��:2�kј]�g{�-k]��0ti���)���:��]ËmfV$bk�����G���,plP��7��?��5���68�r�ۮ�����p�'��h��'c�L�g �D�� +�V>`��V�����}?���CGO"w������{�j^�ee��5��y��"�b!`���3΅��p����P� +�"K0#� ��$k����Gi���{���s���zRӍ�(�s�\˦�, +I�Bk&U��E5�O�c��]�C�3B��2��^I`�p�����m t��0�0K2�e=�r�8%�(翱u84P����A��fTr:͐�$x\B�N>�Ф�s`{�p{%ai�Vm�p"�j��d�em�Mrvz��/� ��s&Kw��⑧^p�]����3�*Sf�<^��h4 +�y�\�:���(��9��� +^;������ǯ�?t��A0���~��Wo]�z�y � +]�P�th7����h�{i[�f�Ҷ��1 ���KPd2��Ο�a̓`@I����M��:���d���W~�T����D�@'Qs��W&V��)�#��T�ݟz����풊O��{56{��tDm)wA���Ǿ�$����08ʐH1H����K��^� �R�s4����h,��8Mh�$הƐJ3x\��8���%� +���[u0nN{k���#WJ�KPJ0#Ow�_a����0}��L�5�W�l��憿~���S�ŬA(�/���H$�H�9J)�<^of�* +�i��?|����|��Z6 +�59@�m�����|�}� +�5u~���:�� dE��vWPRTN�Jk�$m�| +0.�aa�E6��=�L���9�v�+����k������c��=O��F��GX�"��u,��R �4��wݸ䶛.���B�7m�=�d<-Q�0����H�c@�@TC$����"�]�.E�!�1c�W.�X�~?�_����F�[Ě�Mc0���.cp��"��Y� ��20�A�!8ϑn6����+̄��*v��Do��~2��,��d8M��|H�}�K���e�C�$�a�!�J��� b�y}>�(����;�|�'�^�o�@�_5s��)��M�НW������\-�סif�2U����d�RT����$���975\��ԀW!2�dY� +��K9ER�i�$|����z��w����H +{���۽��@��ؖ�sV�����_5��H���v��n����pJ�S�`W�%SSk�3��d� =#�)YY*Ak*@zc�¥>�����A%�Ѵ�� d��#�u�D�!�(9) xUಅ����� Bp���t���Z�S���%������'�)M��b@ڻz��ѯC���-�|G�e���(UT 24�t:]�Z� |~?|�@&��KU������?��s;^v�j1�/�rq�^Uy�5+��)���&�Y}�$�� ���Ř��T�}�3���<n�T�в�6�ݐ�Ȁ�����_m�8����tpw���?�������q"R� X +zd|���o��7/�V]��j3�T-��� ɜ�y�WǑn :zF�C�IΒk�3�90���Rܔ5�伂��>���0T�iD̵]�^Ua+�d +$t��:$�pB0��L��g��C�)�:�����>ҽC�u��f��jm��a��;n���-�}KUdY7B�N�024M���:W |���dYΐꞣ��G}���v�6C����)dr��\�,�څ�?xe�]+�I��p�E�x�$�:�tM�21%�N�2��MB���⯾txx_W�v%���?���O� ��ۘ�e��TM�&X��M/�� �V����H17]�Y1�AZx�SC[���a�����Y�&h��I�`�RꚰhV'�(0�H�;;�Nk�4��36!���,p��l?� �SKpd�E�h� �`8�^ya_�^?ֻ[��|2-�8���h[gO�?|�7�\�� ��U�s�ۍ`(���aٖ1��� Y��]��S�������0I�Ѐ��K��]�r��n��Bm�/4�3����"Rj��K���З$��F�FS|��H���^9xr��R� F� �D@(D����ī�$ի�piKPӍ��yb� }������|,��fz�s�Xm�D�7mZp��o^��� +�A�~ؙa��]���") �ݩ��OG{���QfER�d�<��k�p�%���/�8�m#H2��.�+1��Q�X� �\/i4��϶��$�3�.�š����u�����z���[���ԩ����1&?������~��_9�=��n���u��JM���x��s�+�U�,���G�"U{��k���~��m/�z�s��9(1�v)���|�'���b��5hg�pJ��| �,c4)a ���#�#�յ�m@�h$��I"��!�����x"�*� v��A���ɕ$I2m�,�y.ox�s�ՙQ���7���k����u��2f՚��m�i�5S �c8�m�H���QEd;��(���Iz��'�-�]q�1�rA��IÆ�81I�4�]��*\*-ꖲ-��*x��1�P"!��}�:~v�s��㝃/G���16�R�A����7_���w�囍��5����x�H��O��q�a�mM�R3�������������w��*i�m���C2�[Q?p���>y}������qzo��-b�&e���n�W���~�g� '�@��ѱ�@ߐ)UJ☳n.���囀�5V�P �\������������ +-�=V����c��Gz�pPj�B���N���Fz%��/4ߵ[�BY�`y��M� (F +�3�A��_AEP7��&�ݽ.<rD�>�{���p4���v ���:`����j3����$���u�E>v�-��nY�嚦�`�T +�H�T�l� >��p�,CU$�S~������o�V[GW?���b��ݪB����K���߭� ��T �Y ��g}�:�xtw��]Qt���:��+)ƾx����\!s�)��_��wj��Y�T��]��ܼ�}+�� +����5,p��c_C_�A"�K�r��LO� +l�\�er�k7ub�X=��) +](J����$��S��*��k5i���\�亾.�H������]�v�.�r�4_��'l��M�T� ��m/�O�>q�{n���KߩR +J��!���@K�L�\&�3;ϳ��� +T�T�����w��<��Ht4 +���~s~4B(�zM��O\_�:?k��S�~BL���hZ��~����wEq|��Ğ�����6S�}�Pf(�D����K�Z�T���H���z��[�Z�(�����/��<T` &p�W�`7G���c 52vo\9�oם�\Ie'W���ו0��H:<^beU2���4G�'�k�����f}A� +߭�C�}�8�� ���D��R�ޱ��h<����|݁����H8�$�Bb�H9����,� B�eJ�ʁ��������x�I�y�ԫ|��X�y}��~�G����5�Ԏ�%H2���'*:�?��Ӈ�_nM��}�1��M����B�:��1� �\!�RH�:��vѕ7]\����5#�*ccn�����ݔ�8��q�G@7���?�d��ļ:��'<���)��A1����T�!��+��#�b�y脄d��[�yn��������q��0 +Mz�.��`�}��������m�^���˛�HT�T����aF���e��s���@�>�nUA<��^��~��������_{_� +������[��nӍS��J����/����#�m��|��o4a�GF��R�t2�9�se��Bfߢĺ���k�y��_և�pz\�o��J�N=d+��{D`�I���]#�rT�d�r�Rk#%ny�i�;�٨����6q���)����^E�ƫC!4�X3>h�BU&&#S�.��V/�7:��}��!09RJG��X����������P�l��Z��z�$+ ��F9��)������ #@U�����������o8�� G`$���!�����n�sK���S8I-�� +��=�������w���C�Ǣq�!7�b>����������b�H[���@6��]�_>�G�k��G*�:b���@< ��^:��p� �YJz㞇�9ٶ��$ A���B,i�,��u����K�в�.�������l6�� �vI��=GZw2.�����ڪp��r�R �10�ʦ���:�D%x�~�+*����Ͽv�����������b4�H!+s ���i�)���V�;�6���7���_1�3�A,A%'#h��䯾�������_�k����v\�H˄:�vb-�T3�K+����_��ٵUn~�n�@ u�p#T��q��A�=�&��r �����AN����{���(_J;%J��2�$�Đ~�BM- +U�)�1' +B�vI�3L�&�6ֆ�G����>@8�L\��-�c�ݔ��H��{v� G����ꊆ�`@�$��e�er���TՅ`(���J��n�������g���O��3;^ݍ�T+C�e���X���\�nݺ����H�0g���ץ�wliz��o����g��t��LY�0���?�z俞��m����;�\,65l�~Գ�L�8�|���������|����w[�fBQ4A��=j��d�N$ �%x�8�h�@�b��.0Q� +�[�����H�r>Ѣ����r��Y�"]Y��1��Hbw���W���GȒ�*���6��$7�)��' ����K���q�7.��n]�~�M���]]�2�d�w|C���O�����K?�܋�<����ƭ���iQ��U�<uA|t�����i@B)<n7���Ĵ������G����O��'��*���UUTT�B��z�j7mڴe͚�or�=���koo�S2�4�0�KQ���tݧ�\�O�����J�����e<s8��o�&���u>�=0��h9 �X��s:0���oT���� +�лr��oo~ЧEK���E�T�@�0�k�Iv��B'<4��0ι�V;�.8���3��`0�{#;;b��=���#m��1��e�K����ϭ�Ww��3�B����JuRZ� U�K���7��������l�չl\�D��7����ٱo�Dmnް~�7]{�%k�m� +j������J���<�2&�=��@��pɴ��v�y�����Ï���*��� �|~��e�|�\s�իV�t��ePU���_���?�����Q ��*��mYx��_W��!6���X���Avl�Q������N��@6}b����4���]� ��oR!U*�T3������~�=U$a�Ĝ����Ԅ��E�R��D:�����$�Ҫ/%�p����09�2�:KtD��$�x��}����:Za|���|�Ɔo�wǑ�L�U3�aeP��;5�E��~��O=��ruj@a���B�E�U��dR�4�$�s%䒭�pE8����͗�pņ��Y�pe���G�DF"�u��4�_Y���z�a��=�ݯ>��ɝ���P뉶��Jϛn����.�xuKK�چ�/�4�|eYFwww�������T,K@]����un����O�=S)q �E&H�?\��ݧ�>�]�z� +�I�P�,pULd�%Q:�8ߢRH5#�.XZ]���.���� +.�dWW:���9�c0N�넄�R�P'�a��M�"S��SJ@����b]C������ٹ�7�h�6w9O����ί����.��ƥ�t�-�)�n���� +���C/v�4X�\K!V���dY����/��K.������C}}}G~��_>���1b��iih�� �`###��̸=��{o��Maí��5�U��� 6+���&TJ)T� +��*+�.�qb`�xꕃOFu�}Ӧ�W�]���Ɔj�� �#�h�&�|�k_������O%����H�UU�xӂ�|��v�0f�T%j��茊����~���n�d�� �IDAT{�h/��ϩ���S-�T�=58ߞRL��X4?�ڝ���M���Ϫ�����8p���6=k��-5Ioz�>J $�"��X�p�H[o��^����x"&D&�S�/���*�?}c�-���+�hR��t��PT[����jE�K�~�|��<r�`�n:ӇY���¿_w�uB�4#��Ȉ���������FZ�z�_ye� ��Nt]���D2�1���o�C������_uCsC]�Ji8�L �Hd���%Yatb��<nxPՍ�H*֯)�5M�}+�����ʔZ�U�����)!8r�h߷�������iI�:��o�X��n����B�����I�^�6���t�3?{��s�D*i�K�����e-u�moL�~U�[��~ת�y�_�$Ng�[� l�Lj;�e�j��@@D���e�7�K.X�tӏJ`0� F����'���p"��s��e/dR����ᆯ����++�����j���+�24u���w�O:���?�����0�\��db�B}�-~���~e���o sn."`Z����|xxX��������kݻ��W^ؾ�Hooo��|���|�[/\����5�:��4O ��3u���\�=� �@�dx}~xC!�@S���/E�zc�R�JRa2�A)��k{������|z�����-�l�ȵ�?t�R�V�"d�Ō� LFҠ�c��g��U���[�ٰ|B��X��Hu�H�Ӄ��M��_U�aM��_�ㆧk���截J-��H�b{��}�rf�� Bx&�|R=al��w�I�` 0��B�ф�y�s��ܶ�����Hk��x~���zϢ�-�Ɔ��4).\���*��'l�E������>��^h�#�Yk� #.�K��&˲L�B�� �o{��}�����K���5L K�N�[�s�9cL�4͈D"FGg�`OwO"�W���*�kj.�,K��)$c1$SI0Ô�g��X��:�d��� �!{�pU/�ZQ(J�g$R'� @�zd�_�����=�؎[/���j�u~]S�%~�͐�@��q�x`O��_��ȷ����]";��^���%�L������W��ą˪��7�����F��F���;=�'�vzG�{l��� �S|��K�x� ���b���=~��O�u�Qi!�j1b�V�l����ߺc�wZ�b��p�$�ဂ�z3������}_|��S���I�D3{%�UTT�o�開I�\Mn�e��9�x<�ڊP������������ń�M�ι��R!2I#t���\�D����P7�H/x2 +=A2�@*�3��l��l�� PB�����py|P��p�4AT�H*@���%� � �����|o�����N+<"$�p��$��؊Y��2%�b�kOF��'���RQ�k�H��j�Xgs��Ȣ�y��_uIC(�տZ{�[/����شz���I���l�:�b� q�ZQ����l�W�� SDiױ��h��ND�����?�9x�5�J��]���@(��"gz +�5�*�~�E��º�H���E1�ڝ���T@ @�@G�=�bb�}� �U�En�� +C>��G)�d��2�T����� ��(�Ȓ���KW.[��,��+`rg��<��.���4$�����:R�ҩ�4��|_�셓L dU����냫�j�|��y ���i;J$S��=����U���ʀ�a0�T ��Y"3��R���@���ʣw��|��ɴf��u.[8YbE�>P&� 17ބ�QH[�Y���_Q��,���Xt�L��L�U'��i�b��.��V��-��N5�q�i5���Y7I��|�����ܻ-�J�9��9y��Ux夕�ly��m�g.n�Ճ �4GeX��=��*�HD ��p�;�j��<F�LQ��Β�M���(�Q�� p� 8���*46���X�8��I2��(�=�k���TU�dY��vCV0À�N#�N�3�1;�f�YQ��x���᪨����u�A�dr�i���1��j��0�Կ��2L_�"S�T�p�Ҍ</B���:ر����Ǟ90t؊���I�Nr-D��}�G�����:� ��}�7��[�Ï]��*ڠO�UOc��Gԑ$�3��8ԧd"�����E��i�'[�2_��:���O���{�##Ú��Q�PK��u���������_zG�_oj�o�R4C�*�2�i�b�Z�Yx+F����̀�h��H&bHD���S��AXY���`� 3@��J���/<���;��j��K% �2'+� +YQ�B�t�t�a@��o�(���*�7��J�B5p�k��@@$*���v�?.��"�w���S_��w�\���/�D *C*�^ �)�HD¾~����������|�fb'y#��/�ɵ��\���j�=�]����yt\�}�������Ղ¾��]�"J��}�e�N�����I��}:n;���陜��dz�L�鞓�$�O�tg��$���ıbE�dS�Hq�DR��;P{�����U����H�J�: +Ū��������ok� �jֳ�:��Y�f��� �+�\q"�[U1Ug�ԝ�3��f��2Ʌ����_�7�!�ͽ�қ���ꑷ�ft|b,�R�"�ٮ���꤂Q�X){�B����}ȵ���NhKG���1��5���Km�v���ّar��^iRd`R�����P.���e����.��Rh�;g�2p�elO&�����E��W�2���u]�X۶���$�g�QQE��.���DZl��P��t�^�t�IT��d��@PѲ����y�W ��"�iU]X�i���Fn@e���n���k��]�?������Y[WW�v��hSc��M�m�a���fc���z>3O�l���DGKM��������~3g-'WI�D���8�y"RW�u'�^�ZJI90�#�.��W�z����&*��S[n�X��\�=��Z�JU3�6�MuM�ӧ��O�U��&9n�Y����`4:�H��d;~�P%(�&ȍ ��ssU$S�lmnm�}�fb1��1R���3�/�������l�$f�9�0�Z�PIm�K�I7��2r#&K���-BJ�R�JZ��$cEM䤒T5�k�A�QN:�2ǬT� +��]G�|�?����6S���Em��R+��0!FZ`���;�$�G�X��LOoO�@o_�Pww���Ͽ��{"��*CL�w�s�������|��^�u!�j�'�ȃ��>�g �1jZ�6!D�����ȵE��b��ߕ��-w���iI�p��C'��ک��O��,�5Mg��a�y��:�xҋ����}���<�\���wlۺyK*����odr�5�JYa|���X�����B����\$�6Ѷ�۶1��naؖb S���u��ݫ�K���N�����`�e*��,M���XEY�t�������ɭ�U:��vg~6�S!�iCk��cl~���6���c�����d����T���9�&iQ��$+-ok��U�\��d:>NoE� ��+�[)�R�R�D�P�r�\ץK��tww_�r��o���Ǐ���O��rv�.���XoF�SK���͛���~����<om�}��ڪ�ȵ'�]r���Vs�gr�78 ���Z���g鍓g�xht|���4UHa��ٰkU�&sc�>�쾇y���w��u����ƭ�d��<_� +�$�����X�a��X��&L���Y�d� �$�f�ݎ/��&I`��V�-����Ԙ!Z[��<�L4b��-3G)re����I������'x���'����Y�>��Y���Ͷ0�YuG�5���W��Ѧ=<�ȓ$������B(��x��`��H0p�:�F�r�R�Qr��j�'p[�l�(��' �f�.3WJAU�Ӳ"�A�\&���FF��=��{�.^�p���c�}��C�Ţ��S0�h������?8r}���,����7�%~�3�����Z�Ϡ�Y�B)"y�W.�9��e%}~&���Z����D�Сg��������B�����{��/�{ッ㩧���w�g���{�7l����Z��A��[��3�A��� jz�C|�M#�^n~��E�j�d5P�Z)�mx����C��\�1=A,���X�A��0A�H��B�ޟ+z�RKJ|m���W���y��| ����M�Hj�O�vѠ||�|���ݽ>��ƞ��/6�m �6��f�9���~� �nj$�K�e��"��ߥp�����&I�_5� +�.��Fh���p�̦�Q�ݍ���p7z�~YJ��8�~@6�ahh�K�.�9����G��x���gs�l51����?h�u���v�J�_��Χ������)G��k�|�T��q ��Z���z������_���3_���w�KUL����[j&fKR�>x���Z��g������p���l߾��t:-�1x�7� FD /v����!ҽ�*b����Vi� ��/S�2�����W<+ 7~� �Y(�C�W.#k�H=�/I���h^f�u&��V�W��7�}. g��D�1Tm��QhM����^�T ��u�B +��qm��l;�djʖ���f��swS�r���(����N���G��GXѹ7��E�q�<R��h��vrm�Rl�?�F#��z�E$�*�T�L&C__�[gN�>~����G���r����Ź���f��ߗX��:��Ὥ[�w���m���"]����K���.&8��b����f5qk��eIJ�ɽr�̯y������\H)�\����@�74Ğy���|��w�}�oذ�m�x�O��^F9H?O|�$���#>r�[�q���4�D�#��)V:~ic�D�=��Z`L5k�_D��I=�E��~�h��u,z�'�߿��|��5ܚz�e���d=�!K��>��g_,�1����"�����6��(i����c���y�;74Q\D�S�LP�x���a�a'���vI]�&Ws��o� ���Qh~�|ˣx�;0*�K��}U(�JYU.��ʕ˯=r��˗/����^=}�� ��ٹr}_�z*���x�ٺ�.�o�ɮ�?w��'�,���؋�Y��H�Ջ N��1,�T�s}Μ�ޛ�*��0ؖ�$���y�;��l��!r�N}2�kb7{Ț��666Y/���>����~�_y��_���k�}�B],��L?ى�ڊ��J(o�(St���FH�PhaQ����K�P�6rJ)N�[�FG��C���m{�Nױ�ȗ�ڷ_�/��2a�5�&��F���$���q�� |�h�K�U�6��2�W +�+5c��;�V�&���Bڀ]�n���5�pG{�c�+�A�%���I��W 3�;1OM%ui������h�.#L���$��A��>B��)��VfQ���" +{��a�m۴�o�<p��c���={�nٸqck"�(^�|y��i-8�`.��\�y�a��"\��~n�_�P��Sa�J�p.7#]KB�k���%f��!���K&���:7].uQY�eY����'/~����V�>��07�μQoF�:s�SO=u���3���O|��>���N�� �ry���rP�&�X#^z;^���)t#�&7A$��:��-R�ud� +Ĭ�nB٘���5��M��;�0�aȷ���w��� @ �G�R�TS��� CA�+^����G�hy����br�o,ap�&gl�,���L������RS�� ��W�^�=�i�O��d��Z���� ��&IU�cIjS5)ז�RE��/�"�NQ��On�s�6�@�� ��.�����vyZk��'���e˖}��{��������ԜJ��b|||�X,V���-f[����}��J�7X����;[6��Ƿ���6��_{Y��?|��˱��T���yӱ�[h���1����0�}��1��h!9|��W�����Jw�Uf$1;�Μ�T�E���k"8x����~�s?����O�/�?����tc�T��W�~q��L��Km�On%�7#�VqAȊ�����9�Q�JD��J"7Z��F�G�G�`��H����W��?����UY +��p�vl�F�JCI+.{I�z ��8ymS��?Yu;�L�!&4���0��B/f[x%�Ļ�4 p��#e#�� �����Z��ؖ��gAD�e +�*1Չn��H Iע.m�LX�� +�����f�͏���Ar����(~�H�UB���0 �����m�z����w׃�w�L(%�����r!fzg�f���$��@�sY�3%�Ʀ��?��?to�A�Z�UKB9|�r�c].0�F�f���o��\��>� �Q�L�cg��K�����Df�]��ju����������/<�/}�~�?����[6���-!���u�IS�ݍ�܌qjQ�Vy8�� +�� Q���H[aے�-p�%�R[ ,%�l�m[$�~\����~�{x��%��@�)��b�r�R���+T:�C&�8兩�%����.ym�T!5*�f�ҭ�e� "RKT�T���W����o�{�&�.�R2W�u�����������ޭ����7��L��~�Kw�M:e�:j��@�0I�2>�ߪ%��l��+r/�֏n�0��� �� ���_/�D�����Z���g�k��� ����ܵ�WG�b��]�s��� +�a��s�US��yv�������ݦZ���ں(-itd��y-M|�ѿ�+�f�#>��1g}�Y�sv@)I��w�����~���DD�s��f�W�k2Ur�w���O~��>�K�MMi�� ���h�"���c$^&>r�bT,�,^�- �Cͤ�c�q������]�#�>~Z6V�*�%1%j���0�#(�#5��"�cڭ"�ʣ����>�*rG'9�T���X����$9m1��1z}��劗䲗��%1�g �c��,a~�0�.���z��>tB�i�����L�ݿ"�����d�XL�� +��(!�T�&�^@��-k([��T�UO^5py��M���ݳ�}�Z�!�����ξw�O���}��^>w��ׯ��$91��u��N�7KP��Vww֧����~��'B/XS5�����uۼr!^ItX�7��Wf<!��t����䅯>�����i^��hA彩��S'3W�U&s��?q�g�K_:p�ޏ��B]��@�$V����!bc'HL��U!�.Q7��d�`�M������j畾85vU&рT�D�I0s��n 2�F�n��o.CD���HahR�v�z��l��W�Ԥd�% ʛ|�s?����3�lh1�d�͐�����.%�p���Dy+ +,�0NX�P}��^� 7���m���>�-�K��;����/��>2ߋ�L��cU[�E�@�"��R��œ)���ҔU-E���Ղo��=0��]4��������P�,�tf5!�Ķm��"o�q����_����:b�����6W,�}G�+��|k1��^Z��?����>o��ЏV�p�m8����w�,�MEa��m�7��Nt��-��1�AJ�R���^<r�7�={�D�6� +�w��������R�h���dܖ�kw�4��k�C�Ko4[�!$���H�<sl���?u���������I�ص�c�A��3��#8-����"��שz�<�Qq� +l�����t<��#�]���^��I;���!�8�9t1� T<��%#W�,q?��`��Z��6c%'j�R��Q����V�|��T�C�C�(��\ha ��#*�I��HI���.e�� ��,�� ����n�����1z��C���m[8����#lB'�I|���j��V��%�V��y|t���k�^����&�&X�6� �5�r۶y����={��xSc�/���+{�ܹ����:�Փa�|nݓ�Z�Xb�J��n�����ջ����p�.����yaH�ݳ1re�����_S7%����RF�s�#/�|�ܯ���u���]��LM{s�~k[mkC�J������ݛ��V�XS��V�*'W +�RH��G�68x�T�\�g��5���OuL�� �IDAT�?V����~"��_d-�퇴�Dz�ϰ͜�6;{ �adl�Y��4`(�4���c��[�b|�l?q��o²������0���r�%'�� ���������b�QZ!Ak�_@��rn��v�%,���}w�|�t�5�-���D��a��X.�1H|UCY;�BI��c۱�q0��hW����"(˜>�L.Gm}=�>��M����.�xH9�ꔔjN ��|;`Y�r�7�������/���)�3n�P�Y^�;��u>kU4������ٽ�����r�-����7!y�M�$Pr���v��b���dE�����/}�л���?�M��k�vlK{mk[�۰�%�����#���t�b i�6`LH��@TJb� u��4nϏ{J!�6��=��/��Ju+���IG0b�����"��]ܱw���X�!$#��R*��a�B��2N�n�`5�O��5{/z���.��p�����1��Ct~�"*^�p�QC�E�������>+��Em��ˣKYL̙4&m�y��9~���l�K1��G_�e:���?�A�������Z��쿥~���T��l�;w��ЀeY(eUDg손3�hR,�J�)��hM���������:R�$��ڸ`%�e��S�|a��-������7��W��Q\�J�7L����V�u�Y��b�{d�=����aE$|m�%a4/8r��ڈ�R�2������LXR"8v������S�111ޗJĒ[Z�Mu);y��훟9����;k��htB��1F�+���|TFb ��8u�1�Ly�A�`��eW��.����AJ�R����A�o9q�P��2!���v�Vh�� +���&PqBǗ �v��d��V��_��ճW}5C�D8n��]�7���AK"��\i��W������%�˄��+r���ߴ]��Q.{�աw�y9���_.Gm�f�t,Z3:6A[S��r�)��BY�b���qz�)KQX%%5�R �\��@ �R�R�8٤@ B���1��E��"�T*�0c�;6s�=��ѱ�vny��C��l۾��������d2��?�����B��1�\�#ҵ��/k�<[&�,�5��������?+���2��V�-^;oq�����ƈ���Ǣ��y?,;��g�?q���6N{�[�[�|�noO�۔�h��ZoY���>ج[�N3�(�L�CL4>Y���H<u��m���z����Ν[i���8I9��G��q�8*(N\4�D)e�x��@�)YM�&��M�2�4>1%85���G.q�o�������J����!-��"b)�� �U�*0s&:�D��& ,���+�haK�Ώ��E +�O��G���ul�9ȲCc\��Æ�&:�Z&k`�b��b����vu�78D._�P���\��ql����Ɍ����)cc����D�NŤ�;e�����l��;/|��رsV�U�*�����?����DžBa��z����Xע�:��:������w�����O��(�v��l-�9#ђ��p���c-c�_!�[��>�1BCid"wbxt�l����c�m�{��V���2A���F�6ٺ��h|�}[_� +��u1���M�u�FG�u��<�-�e�W/b��6n%�nqL�:VuJ�q�d �����^���jQP +�.�</d��\�ra;H' KH��*�xS�%{m�4�'�a�kV�h��)�!��M��V<�6�~u��75r�����7`� +m#cښP���B2�,��y��G���d�HMFs�t��<�*��B�ǧot�k�����3::�R�W� \��K��˿k0����$��U[��|*~_�����LX��z*�������W��ɘl ����T +��Gbx�Wp욈bHK�$�.�VV�mYR�r%R��-���|����5��� ��lY�(>XH�a��������9 ZTݘ����L� �ꦍ�`�0h06>Az4�'��A�`K��ߖ�w�����!�i��hݒN�YZ��}�=B?� la�"kVٕ}Q��ji�`]�F��{��t��K���/�'Q. u@�x�wz��֔µ-�Y\a��DZ)K�ghonDJI�P����W���eY3�jv�I��cͲڦ��oe|u.�aH<���_����a����?-��S��L�����`��L�f� +)%?�����y�j��� ����piPp���샒���m$�e��!"T���$]Ik���v��F�5f�VA$���U���{9Z\K���7=�VQ��z�K) +�2cY�f�;~@��MM*���r���%���#�za������U�A8q�[í��_��e(N ����Ҋ$�%M���k���^߷�EjB� r������BY���%�_� ��h$���1��Ӎ9�g�F�V�5.]�ͷ�E��l�pe6cmm���5�V���d���������p�7���W� �i�V���ֵD��V ���������p�(,)�8vM0�[�7�y�m�X�憿BوqG��+:�v�;4�Z`�?S�����g�X3���;��B]���s��#��Mdhnj��U+"-W(�/�PR���H!�-%����@����e(�õ��U�CƓ�ݖ�*�X5��cz�r0̂2�W�����WB��+�y.e��^y�f*c�R��J��B��l�0�y���K�(^���a�\�Ҝ|9�Z�m�vҵ��Y��Q��y��[:>��/����@�������ֵD�U̴P��v,�~�#[��kC�~��x�JAI(�p�Kpa�B��4>z��[c*�S� fAc�b_G���1b��<{�oߺ�T��(%�S�ٽ��k RJJe��l�R�]�R|ߧop��6v��ּ�%��o���l�8��W�na�omRт1}:�f}�v�X +�E�<FXJr��0{�k�����c h$�b!� C���jW̓H���_*����'�� +���h��;�b.�l۶���(���ݻ��O|�'�\��+=��E����,�ue�����)������O�yFY��h 7B���5���H�P�+����L�W��c��c��}GA[���=)>v_�=�bĝ(\ﭽ��b����Yk��+!%���Dv��d��1��!����圤����}�����P��b$B c ��\#� +7��7{��FE�`�����&8�7N�b��,KE �4]���9r�Ƙ%������J��$4���e.vm��$R���%�G���,��O�ZGR�O>���?�܇>,����g3��%֚�:���<�1[Y�x���Z�c{�,](VJ��>��]�#��`nx��Xܘ�D�RВ�ؿ٥�9��D�Q�]c��M)�I)щз�Z�����%!����uu�)�����q� D)EM21�b%^�0�.R��i���$�nje'�~�!��ˈ0$4��]c������� V��d�����}��˚�֚���Uw-D���%�f�%�>?��C�{�T� R�4�p+��>MM��}���[G�����O�3�Pץ�Z�Z�Xj���|p��g�ּ���k�Z�$f�v��K�,���T,��n�nᚊ�*д�)��W��� .IWFֹ����>��D!�sUn/c���i�'�}j��R���a���H!){>�\~���|F�&"mi!H�cQ��,_ ���,/��c([�1Y�v���B�����XU�϶���pi$3��6QS*'����}-��a�����icH)��H���.���9z`�T��~���������~�L'���ٸa]`-Y��,��e��G��ms���k@�Z +�B8~�pi�`/��6[���O�K(vor���R��ژJ&����� ����V\�RJ +�CÕ�D���qlj��ʱa����[�B@�x���� (���R04:Fɋ�x,Kwc��W����Ϸ����`[��gɘ���M�rx�B(aY� :�E_s�{��m�l�K��x���s?>1�����*p�zW�,,��"����|���inn���5��>u� ֣�>v߷�������X��ui�N�j났UKJ�3�y�;�O�f-4-� +�\Ҽӣo���<�[�n� �w&R{q��Mqvo�S���UT�V�«���]G��H���++�51Ǧ���\�Hw��������.wI&�$qjk����Jtz��lB����Y*ZS��S.{�uT+�J�Q�q��H�9�������n(�tkN�Iu�0���<q��d�8�l�������`cLE�#���c�����@`�6�m/�e[��z��F���]�v=}�������:�Iu�&.��k�Z��#�=���uI�y-X�����3=?��{Vbẑ�V�Z�>^�3����ۜ���&fG.������aZ��Ԫ�Cʊ�j�$�.�l�����F���1�R +�R8�EM2A}]-� �����r#) +A��)K��A��勌e�dry"�EQ�J��^���_�<¡���1kʢ.2^�p�H���A�q�WĄR +r�=��k���6AVU��H�Z~y�1(��2����P���U�J�۶mg��m8�s[e +����o�ѹe�C�!���3�u]a5�uA֪cI���w캧�} +�\��B@�dx�K3��8j����� +�ߜ�l4�,lK���ƍ����>�Sa4��!��X��ժЅ�X���KC}�M���op�R��(C�f���c_S�զimj��>�mY�eE����x�?)" ��P*1<<6ϕB�NƧ�W�uxi���O�0�)�)W���A�R�xiZ=e!���<��Jq�o�3�t6�&�UII.7Nww7���(�B�D��rI.`�N��Gmmݢ[��.h�I�Ӳ�������+v]^�k�b�+@-�c[����6�|]�j�ZO��*n�ra D-�?$ܔ������5ؖ`�8�6'h�uPRL������N��?z�gba��k��J%hom������Q��hc(����|������Csc#ۚq]�`l<���8��]}���� #���^"�"�*.B��C���n�N��$P �RR]ڢ��(���0����тϙ� ���H"f��AYc\�ti���T���s5�q�����{�J���FY(���vݱc��}ͧN�;|����]-b���[��:����m۱��bku����cI8~5�twH�uԵfAc�Z�Q�G��ְ�9F:�����`��4Wլ嵁jB��8� ��KsSݽ�MD���` +E +��l���q6mh����l.��xv����R�c`h�r�����l`9y��tf��nǺ�1�`�j[1�r��D��H�K����SFZ���;��=�<y��А��x�� ,k��e����eᄏhjnb��ؓ���斖�۷7V�u�;x]b-X�31yPK�tӗ�*enE��"�7!�oB�N�O��Re1\�x�lB��`��8{:���9Q&j��,����rM&�q�Km����a���S,E�<U�E��>�C��r���Z_O6R�y>��!D��d)I:��<C�:�\������U�A� D<i��#�.J!l����/[�D�8�75R_�����3�έ���|� +����$�)�ID�.� �Tr��RX b��QJ���no����( gz�gíZJ���o] � a��s�X��UU�����mi:[b���+um- �a�r����RQ[�$s��Mq����ᱨU�I���%��Q���&Ԙ0$J\������<�ձ"�z���\ {j7�E�5���*�(k�gI!PK6�o�)r�y����R�]\q��7����������������a�Uk����m۶a��W^�i��h'�a5�� +ׂ�:�,��pT�'���gM52m�P� +ϰ���[}.����`O�VW��;�J���mq�ޚbSC�R�C3_m�ڂ�H]@�x�jOhnc�e)Z���]�5)�z�)˓�Z�TE�F!!@c�ae�JIM�:�f���|���2�.a��E��Q�U$ը�3�.᰽���L�+C�b���:c�.#�1� $[�����AX²'�8��g��{�9��r��%� �q��(~�I-Z<�������*��! +{ȼ���c]"j���]͍��K}�6]�ݜ�y�Wq������f�zj�1ɾ�voJМ���z,u��� +�X�8f�K +c�f�d���jj�\����X�R�\��9��T�ۄ8��mYX�䲿>��ѫ�`�\�ƀG�ӕ�嫋�r�z>��ܽ���B�?{����e\{�V]��gw���N|_s��??r�3=#8�-���ԴF.+!���C9�3�ͅ����O�� +�5�d�{�u����+{�\.�[���V�b��ZM��䧞��c�IٰZZ�Y�6��1���1�Y?z�2����kllO��-I"&�5���$�.c��u��&#����&\��JW/C#�a8o�1�0�J7��8U�|�k�����tE�� &-�X�˷g�昷���䧞�I�9�ּv���,;���xl�0��d�zKՄ��W]1ۢ{h���Ed������ƶm�������j�9�]'O��}`���%�Y����O<����USY�Fñk><��`[S�f.s]��Fn6�\c�JL:�]��ZÖ��~�3���'��1|��V� +�A!�uib1���p�����c���\��R�V���G���ט(x��dEUɎ����A�k)��d�5�µ�H5��j� �}</�������r���*� +�"̏�'��qq���X�Ͷ]{��J)�j'7���G�r�J��@��ĺ�a5E�o(�Lm҉���'�kE˪AMh`\s�R����oPW�)t?��b���� ��ݵ1�����ښ@��r��HdpJ}��IY�0$���s�:7�p]��b_��� QRP�N�)�|�..e�KgJ+r��U����s�5���d� +B�j�A�����:H*f3<�獋}Lʳv� ��쇔�pRta�A��D.a@i�<A,,�R�0+�jL�����3�/���?EwxmB)E&3A__�8�_��r[���K ��[�}t��V-X H���ƅ������Т���a�c�>��Q��Hq��4u)?X/��PX�n� +���՞͒�!�m�e�F,��x��B�|���� +I�SX��7�����A%�,�D �I���D� ��8w��s�g�lɟ��ɖ<�P#�����8����2o]����!�u4�;��䵡2�� �5�)� uQ+��l���<��hm��!"�d��R7���1���P5|��_zv�FXq�U"�E����k�� +��uy���ع����+I�Ԥ���"n>DĚ����}���n�.H"����o�cC�عZGWVfu��̥��֕�z��,����P�2~`�OYܳ��]��$c~�gg�� ��D�ԃ� �9M�E{���()ٴ� ����kK�3����c���q�k����]���j�T� +�hE��\ᡤ�]������6���e����1�k�/�1��w�Rhc8|���t���u�X�oO^��Q65�(z5q���$c�H�C� )��w�s���Φ00Q�L�(o^짭6�֖4�����:��@�0�~��ƒ��v�����Pk��=^>��X!��.�ΈRV#�@��38�fMtܼc�D��z��[���&�/��At�����*����ԩS/=z�Mnt�[�]+�KЍ5������_pmVōYM�΄�P�B�9����o)�_`X�@j�6��cOG �]��Ba���ϝ���$b-�7Z���p �FI���F��p��l�G +�:*߰,�=�_��"W���eE��N��~���CH��`1�b�X�|�8e/j+f+Ɂ�f�����G�c�6|��x��0!�>v��u)�oo$��G�~����PC�X���'� UJ�4muI>��>~��V6ԥ&�s%%%/��]lnL�oS�V\���p�k��9�+�[ ٵ��{� ��h�d��7�<����T:-��Ue_;� ��Rh9��V�����Z��)m�P�� �IDAT��\Z/ߙ�:�q���GsK+An���9������( +=z��˗.��z�=�����`��cJ>��a�f����Ũ��u�H� �Y��w��XŔ��7kk]��vֳ�5�\I�5���&G"�|z?�]��"7��A �a�ڃ��ư9�(��ʄH��AK�P1��X�K����%D<��U�i�v��Z�=>ƿi?L{C ����dB. M�K��u.L�X� u)�����W��=2E��9'_����=ݹ��m�|�Gs�:�re�T�L��Q��Y����t�/>��O?��� pm�B8��c���N�P�/�H/ [�b�s݆�J~�����s8��L��a|��+��ߝ�o"�r�~c0�K���G0�4�C�F�b)����_��69�a�=3�"���D ��"z�H��0I������b��d��Z$ө�m�'�}��������fm�Y�b�+�Z}-��R���܇v|<a�*�x������EB�+q��s������))iZ�]��HgK� �� ��VBa�IM��xL�B��/�(g� d9~�R�e�Y6;��m�R��(F,�rYq�Z�b�q��L�%�-�<��Ϥ���ɯ}�q�N��6�[�ٻ1�;��d�e�_"�:��F��t,E�h���x�R?'� �Ў�>jpm�wn�ӏ�I���j�K�Xǒ����ٌZ`OSCT��gc�{r�ln��5B +�w��_�DZ�2H�� +�8�TPDWʛ�6xA�ֆ�T�Ά4��8�5 ��-E{c]��*R�������S,{��b�l��X6O�X�������ת���mm�tvnAJ�.D!�Rx^�W^��_?��*^K�[��`W��f�O��ީ�ӑ��1zu�U!�B^?���l�h�^��E����>��{�ܔ��S�a�j���g���E`ձ���[]���#J����4�����t|+0@XY>ahI�8-i_Y�֕��P���3�X� �$K%W�x�/�������H��1��F:��g�l���A8@�X�o��ą��(V9���Q�ܟ>���6%?��J��t�aȶ�4�߱m�x���o_�w_z��zG��������]��IL��lo��vm��wo%�ے�q������+D��-���Eb�>��*M�C�bsk#��پ����6�����tj�8��SR�H)�04��t�˽C� �12�ch,�X6�1��jV� ��d2���=��k�J��q�|����^{�e�T����nq��u�k�wp*��>|_��z�tp����Q��Lw��l9��Z�Ă��1��P&��[�b<������$�����) Ny���#�5}�5�D(h�,M 3݈�x�2�rD�A���Ƅ���m⹝���;#�v5G�D����"�^侇���5J2^�8�5�~�]j�6=cY�b4W�.�p�����̛�y�g�����HJ.Np�r?�r@�k�-�������8:[�\)8?0�o�x���,�XT�ry8����t4��gsfwPh45��O<|'ww4�!8�5��^~��.[5&��Nn���d$1[�ic#�:�xh�v��ށ� �J�@o��Y�ɚD�t2�ΎV�<p'��=4���]���͕�a�Ƴ�:ĩ�Ϋ�ZSWW�}�ݏ�,nI����8d2��o}뛿���#�n��:�R�b5% ���ڒ>���_$Է=V(*�����#�:2.nv><���1m����=MlnNL���C�U�#*,�̞���I9� ւ"��CTn1х������e�j���!e�s�r��$_{�� +���P;����А��C�����s��K��6�_�����Z^|�"�}bo\�����!^�{���������gy�t�����B�' +dK�MJYBm�qm:k�Z�)z:���D���1�7�)���lk�#�[��4�74D��ָ�Ź�1~��N��;WH�VFj�H�X�1�Khm �ܳ��g��ͮ͑�[��/�:4���R���F�nh��q��U���]�et"�b+._�kם465E�:k�bB ���W_��W_���3�Z�/wlnw��L01[�ݛS:ս���T�RYs�R��3]��^��k�sytO#����_Ii���Bycԍb4��@�0�KLz6TI5ۏ���\"��DPQ�zls���x|��^�P�e��-�e/(k�C6ԧx��-h���%[,3�)�֕Aٵ�������|幃\����w�S=#��G�����k��JSv[PB��,8�/*����Be�)�^I�ɕ����*t"�S��(��-�"JO 0F#����ǹc�^x��sJ)���<J����DDf�]}wOwύ� <���xB�DH�(Z%Q��֖זV���zo�O�l�o���[=�NJ\���'�"��q�q0�f�gz����<"b�Ȫ���>����ꪮ�Ȍ�Ȍo�ncwGh�6�a��8�{�i��O��:���MDE��wp�}�!��\�j2���ϼ��O��/^�8�ri�κt�`7�u#NK�d_��=t�?p�a�m�rp�3��q�� ?���&^k���5���v�ߙ��i~Н��E\��-_�6��� ��O^� R��j�c�ڀ�;��lM�k���|�b�(������tΎL�;_}�|����)\��e|�̅�9����3|������rqb��]�?|�i +Հ�R o����*a+ �:��cL��ihʍ��tO+�����%�`�T#�]�A���X7���w����)^�!����FH��]v�}�m|���Ӟ'�fOH,����H�:��}�|����/P�"��r�ԍ!<�& f��f�����>��cg�=�K��J�E���!��XW�����/�}Ȳ$�`���k�����]�2���;�j����1t�&x�m��C�(�t\�����>��g�BƹQ���S�'�sWw�T���Ԗ��W��Ã7�~�06��jT�yap��_�I�%�(Vxqp�7�$҆�� ��� >t�IҞã�9;<��l1{���B-��tk,���[O�rCO�1�i ��dWo8�M�s +�7������cgy�� ��M�{����C���lyf�@W��w︑����t�Ť��B�� *҆㽝�����Ύv��ַ�J%|�]���O�ǯ|�K��~ �ԥث��0`��Rɟx[�m�y��k^���N֘��"�q�� ���^�r�6�VC>�r�-��L����!��(%"+3|�٫\����)�HQ����~E�.�j�X5ܚT���pwO�Я�C+6@���EO)����o�!��\�/T�ʧ�$f�>�{�"?r�a�=�{�ns�v�db��S�PJi� �-������;��%�̥������[8}��P�u�"�8<ui���ʳ<sik�Q���8��co�'�FoaA_k8��Go;�s���P'w�`�%�4��9>p��<x�=��Mo��vp�ո��o��o>���|��B1N��ܮ�!��*X�xo��=ҕ��ﶮ�� ��LΆ<y���삆u�M��do���ގԂ����Z�@kC-�*>ϟ����TC�T�ٱ��������w��u�!�� $� &ը��|KKR��o�b��1^B�IgCUja��':�?vS���B(T|�����)L��x���?xg�^��Q�z�bd��W_���o?F[6�ֆ{N��<U�Ǻ���f4��k_X! �*~�*�����>�fn;܉�$|� $���&��M�����d��x{+�>�A��C� +�Ʊ��]��ġ~Hm᳛�J!��'��ҟ~�O����˓\kW���^�ϖI�R +N�x}��{���{VIA�fx}�L�\cMIsK*�M����2Ɛ�$���� }�z}����$D=�O��]�JՀ�s|�������ӯ�R�c'3)�D�_����Zy�� �̚8F�:W��cVKl���3�Gnm�'a ��{�Zk ��U�����Ozt�S�RF��Ώ���$�6��+)@�X� �ͽ��.4^���'����P�C)q��p{�{O�q�}�ȡM�Oؑ�}H�lѻ��JJ������w�pu:N}��\>x�I~����%� ?G�����7fxױ,��+��!� sW�����}�{����?�/�0@lW]� �!�.�n�B��T�~�7i���'�w-�^�W��B���b0lrwz�-ƀR�ۏ�r�PG �9��ˎ@��u����nG�+�� +��)3_�D]/��,�^9�(����qӼ���Ke1�.�TB@ ��q�}p&�'Vx� y����T=;��H�.����|���z֠\����ݼ�h�����㔃���+�"�j���@L�P���]t%�4JЕ���ֵQ�#)�y�?��{'���p�j�7_��5˭��$<�j-��(>~hj��(����x ���DW.��$��W��|�W��k؉��3]��m �s�C�z��xM��~JS�|/*�[J�5��+��o���}�̙\����� +^ȴt�;}����^�+)(W4�G��a�n�n����ZkQBp��vn;֎��6����h���5X�j��D����SE�KA}�7D�d�J +�iT,�Яrᙯ�����]��q=���W!�&"�� +�y\g�jXX9O�c'S\��T,�u��B@�5�b����^���,O]�;g�6N�X��1���ER��?��>��E�5L�L����D)����)~�O�t�6L�/�����G���/���i�|�]�$(UC^����)�g�k�"��T�+�p���߿�s�'1�0[��2U�uJ�y��uv������9J +��5ҞC9X�~��d���.���G}ꯛ$Dyr�����R���KM����ȑ���g�Tfs���J�<vc�^i_mx���g�p��_�������WDa���>�@*ɥ�2_��Q��ԯ%��c�54T��x����d<�Id@,U�-�Ȓ�K~_�}��*Ob�^Ŋ���_,۠����my{Q_e#�"��t���e'J�}�PF� ���E��FK�{��`-VkR�����q����1�B9�j��3߁�D.�B*�B��Q-���e�1�q��D�Xkci2�p���{�]�8>;�9)��Ԃ����~+]1��z��cY�j�����P�?�����Hp,'��t�1�'�� �le'�H���Q�����}�� ?� b ��͑�_|vf�y�u���V����u��^ro(v�����>���?)�^��k;�nc��T��R�+�j~������_�g���w��$���Ʋz-����B���*sy���T�R-"�~�ѺN���q�U�J�E�� +��/}�/@HN��u�ufI!�:",LU +XR��� "�AJ�/a����W�ʜa��M� �CܺMt-�z��Fە�Nj�x����5��H���jѨ�*���ܺrTnVc��X������%���V����� �� +����B��b{�eG�V� �"� $��n��R�Z��S@��/b�f��i�����g���K�s�\j�~��3r�m����/s�3y�ƾ�O���]�U���wO�9�ׇ +8r����q^��K*���{�i�`���a7� T�eh��� +W�+�!�0&S�@ +�t��h��8��g�wMV)�J����~!$'��ja!$:��Oս�%QQ��#�"���qv�#yBm��/�� +����]-��p^])Ě��e��5 ��7q����[�����wv��E.��nP�Q-�";�=��0"�0�s7�R*���g���+��b<+Zk��F]�ly�O����-��,�F�7K��mc]����s�sG�HkΦu�5����T��b���:�p�{Y�#;;��X<%y�M]����)�BJV0U8?T��d��JD����:V�I�s�WҪc�X��z^�݊��.�K�T��#�@r��{Qnb{�*6�g�h$�ĵ0��"Q��҂��Iha�֤�v�W� 5�kb~�a��'x�Q����Τ�,�5���eM7!b�|m Q��Vjxygu!@*̕K��_��z|<o��F������|�5{�+��w0z���L*��$�v�XW㻥�jo:�~��;zR���4��+-�$��V�0T�Ul@��%�%�X%8u��S��p�80qr�E,yBmy}�ƅ�*�s�r-N^ �"�p��_��e��g�m�M���t��y��/���>��n�\�j�0��퍟�Tr�JEd�-��)�{��niSt�$E����!��Q����.��2Va�w���A�U��������y��J�F:ݤ�T ���?� ������2@�������j�K��̾�b��2�X��#�p��w�G�R�O����V8DH%�-�\)ƪ� -�wh���n��j�����$=��=����i87Z�Ҹ�t1b�� "�#��,��5v�f���㵖6a�oK. +�}�H�Ji�W�2A�ʩ�މ�ʠ7y� !1A�`v$��J��_���s��a@6�C*�'�a�gyO��H��S�z��zqXZ ;�}I�U�a�EӍ���$��z��:\��/�%���x�pv��N��s����k�ݕٹ)��j�@��w�XW��J�Ζ����Z��Sj� �dl&�V=�d᳂�v��i�!�Jp�͇�4�6���R��Ū��H�Kcs�]�4�lT�Z2��H���r2�%�U/Ί�V�f�W9TK����27��}�s�D�&n@!1:$(L/�9�6�() +DaH6�#�H���`-��+ڒ��:7'���ᬤ?#q� �~�q����2;ˆ�Pa����/�"M���R�����y��}��o��4x���U�(:�x��~�b{��OԂ��V+��hL�+%ӕ6��b���l���D{��o�zp/��R � +�F�A@� Ell�X<Gr� ��w�0ב����P������*)% O��uH��AV�X���6�8=)/E�Z��Kߣ�W��m��ً� ���Zy�^�U��r�(Ig�d2�.��@�d��p����6^$�����zy�B�u ����*���i��1���TK���|��o>�y��8IJ"�a�[(���>�I�ƙ|�£��S,��jNL� �6��6j��ɛo�M�/��BJ�'�\��S쀺d�{�&b�$ݱ�Vn<�އ{&��@-��֜���*���s�&���Io��/:%���Zp�>P}䛄/������gص�q��U]+՝C6�륪a� ��L6K"��5�kd�3%ȹ�Ȳa�ؿ����z*�Z��a���{%�7�5j�FQ��t#0R�!��9�G����H$�]��j�Y8���#�����W^���ʵ�VX_�=�� b]O ,�іO:o>�;�N۴�#5�P�E�Δ��IOnaHv`��Kw[��N���p�wd�sq�p~\si�0[�ˍ%��#� �d��^�B�C$'_�:x�g�!��w�+!��O��j��<�}�����p�D��YR��R;N�ȸ�9����I]�<W��S$ҙ�����b�y��7��eڑR���j��9���N~��o�_C��[��BE!o���M�������?����7S_W*�R�;Nt��{k�;1[���YW1<V���<^�� V~����k�GF�K'��t]m����*�)Y^5�:j�*��y2��[f㤷���n����D��c��� +���?�]ܙ)���8�[���^k&�n搋=\"�FQ�J�H�R(�v�8��{F{�#4�j�J�5�d2I2��q]�'؆ ����$� +�,x����ҪTX�C� �~��؇���Hn��Z���D�g�w�>��j��0l�S�u��������R�����X +�����3� +)���y%��Nm��/vpɍG;8��^/�̖W{� WA-����F-W�-~$��$W���˴��{~�gta-F)D:���:�����F��~�H�<��U�o����Xc(�J��i�'�N�%���L�R���@C�5A}lj��d�K�&�8��!��k |�0q���@^;�7Hr���j5�_�"��(�y�{x��"깧bI��&�� �IDAT�u�6�����a�2|�����S/��翲��u�q�K� Z����x�D6k�7>��U �sqdOY�P���V�f��&�L���q��9n9�� �V��Qa������0Wx� �4No5��fX�D��f/0Jrxp�c���zI]N��Q�����O�\�D�G?N�5�p�BĉR��b��_��L�I��$����[����b����,�����U��j�K�H&�<�u�m6�g���A��w�5A�!QԵ �l7�!�iE�Z���ݔR�j ��` ��8����}�k����TfGn,c-�83� ���h��AG�_��]��_Z������P o�X��WW¼���{o�|F/Dsn�0�l-�j��t���2)Wԝ�6��m��FHy�v�ִ�S�qC�t�W���B��/M�W��@���O���]e��i��ܣӷ�Rt�Nr����jm9��1T�Z�w�I4>B�O��ދ�މ�4T�vGb��D=��G2��K&Hx�q6M���d�R +-9���cA �����*~��r����8q>k�JJD]�[:V��;A]�-�?��ZE:�L a��w�㠤���U�Bj5�j��1�Q$S�8�|�oPD�Je�(Bd3P���}�G����#P�bӛ�����5h+HJ�'xg"��ណ�~����_�- ��.U»� b���z${���̃[Wo�J%�,su��+�i�6#�n�_Z��⦣��nE��R�)O�~�5x}B��U�L9vZZH+V��Il��X�m�Ř������eL�8��1ԴA(�H���=����\�D�?I��[!B!��ەV�pA�T\R�^"�㺸�K��C���C)�~·,0HB)q�agAR�"*Q�-�P��W'X��� �BH����dBR�u�c0����ĵe1&&S�1ZFQEvIliC�B�W���z�Ak�ZS*� �8�X@i2���ÐJ�F $�q��/�<�=�Ǿ��|�zqj���km|cV��@RA�O�?�\G���>˫��ā����H���wI�gi���f�!W&�N�Iɷ㠴l��Y�j�;۸�X��LW�ӂ���0�<"��hc���d��'�J�+9����"F +�IN�jY[��d6�.���'��?G�G?N��{P�V�|��c��� 8 +C�a���D2V� �H)��4�����و���0O���0�\(+�od��ڤ�*Yk�j��f�EJ�@�c�@9j]bպN����Rkaa�Y<.��t3H�g�¯\�.H��vA`���B��Դ��jf +��3��|u��4v��� !T��s@ ���֏��u!�����RC%�k������v�u-5pc�a�:���֛Zo�'�i)�R��\t�7��[�qX�$"�io�p��n�I/�V��K�Ggp���Y�v ���������d�� ��=1;+-q�@`-Em�� +G�"\����Wh��ϐ����vv#SY�*��;����Zj� +�r������|� |) +^�0�V�Z�?��"�_.�-� Li�����56����E�#M�/7�$T�X�]�aQ��c��q#3Xh$S���gp�~��o#�fb��].$!���"CQ[rJA=�nϻ�=��30�o�*�Fb�f�ہ���v���hǝG���#47Sn�Q��04Q�S�͠�͎�1Ǒ����Xo�|����S�Ԁe����.;Օ��J���m��:m��y�m��VJ������BXs ��� �Y�l��T�hr����/�μH��e �Z�mf���".6��|��i�55k��D�Y���ՍA�'M�e�ޤF ��k�I������(%��x酰�J��L�]�RX/�(��^�y� ��~ 9>��M6I����'�T�����DB���������㋃_��rg���:����K�}-��瘍��-�siV��������ʤ��nMگ�K�5���9u�s�^J@-�����/B�fm� ;����ѐ��T��MDk��������<���I�Ѣ�5� ���k��oS9����q��Eo�=² ��$�\��W$ڂ�CU��Ѹ�ߞNpS6�p*B��ge"��u���D�|��/�_�EB-QC�Q�����7PW."��H)�o�� �N�С���zοx������S�\��t�U»n#�:� ��#ɣN�w�H ���JIF��*n�4�v� h�I�<N�w�њ%�v_��q�Y%� /���v.��v��k�]� +� �M]�ō�i���pt`��5� +K�+U�kA�硧�(~�oI;?�s��8�u�� +�xf>�D qŁ�S�4��W��J=�mH�{km�<�%���MF�r��H���P)�\D ��<����Q���j��5�?�AZJf��� �J!��[\y�?�n���*�~u�Z+�I�R%��+��}u٪�������z�E5��n���`x���\�nk��Qwf�G{�8�۾����V�N��]1D��d�#�տ�p�]i�T�������ʘk<�v�R3��!\[��?�,����/��Q+�8[vxbZ1�j���������LıT�^Y��B��HaS�q�m��=��c�3��q�k/�>� ��帡T��Ó��Դ�� ��8+S�Ń�p��'~�φ�j�f������8֕����]y�M�l<�f�WH +(����(�m��pi��/��t���p�w l� I��ËWcR����QzM�Қ6�kK����in<7�F˼!���bdײ��!�P������w�њ����*#��x�Ѫēnn�.�x^)8<6���!�,��?�k"�X%^:C�h�i!! +az59��ԣ8�Q��"@�C��(�����#���XAB"�[ߧį?����c�S\�n��Ժ�6)OɣΑdR�I��R��:��dW�M{o���J +������z0HU,U�j��hÊ�b���V��ni�jk�@iC��7��ڔT�ᬤ��9�����H�t��}��!�[rU"+��d�� +.���0�m@?_OЗԼ��?�*�8��a��THP��Y���0�|q�5�#R��O��ë�k�XJZ�:N��5�Î9�����~e��K��Z��R[����\W�X+%Ӧ���������G�Z�[u���'��ׇ��s�v��"MoW+��<L>�\���й����o���LSc�以�-���{%� +^����m,RX�A�4��7��Jەh��]�mL�:&��C��*Ďm��n B@���3$���Ӆͤ맳���q���f�M2*���l��0Pt����N��,n"A���ZUP|�,��}������'�&��Ð���EƉ�A���J���ĥ4-��+�5�D�����l�(�ZqOcv:�����Ӗ�7�u�� g��J +��T��by�=[���i��#w �U%����] 1f+��W�u�r�䲱v��:ˍ��iV%����Z����9-ܳ��aHxߛ�]�ߥ3��TONj>�z� �I�2��b,��{<�5+To��%�Ah��B���#��� ���\�E:�l��%F��/����Q:�*�0@�|cp� �$I%9�� O�*NQ5�2R�U�~)��Ӈ:�������A��Kx;�����$`������m�Y�w}!�8�gϏsap +%��o�""�9���m���܅s�/�U ���H�ӗ�^J��-�nP*]��5��ŗ���߱n<?K�k�j!�Dvg'������`rzu� +��--�;nǒ"�슆G� �z�D��"?&r� �ҹf밀��D[���6��EI�$ր4^B����*��`�> ��ĝ�:�T�1�"h�L��꜡%!9��H���%�@"�Ǚ�a���?4Q����}��o,��(YW�i�׆���f�lhq蘈�Y #D�+�������Z�`���j�?{���җ��đΔ������#黣=�0���aƧ�p�����`mL������N"�^��*E,Q�>�y�Ip�H����6A�P� +P��;:���xk�Ck)hC���*��#�;��CS��*�U��a��,&���S�$� 6i��d��7\���e͗���,�����XZ cG!VV9�d�H��+5 �TI'$���_��� +'�N���j�9��s�5DXCiR*�So�X"�m�X�_�V�a-��S,� +��+8�����%Xx��|��E��E����,�T��Rrm���֯���P�Sp�ko�}a��b�M�V�lV�։,,��}w����-wm0G�6 ���x�B���c=�6������l��d�X��2����`������|e��4�#��2��M��QD`v橳īϬ�Ȩ&�������I^B�:Ax�혞��I�.�<&��rĆFY0 ���<<2\���,�k Vl��UUD2�t��l���%, ��K�s[~�S�)Nd�8���'��m3�T�a�XR�yS:nj�bV�DŽ�W�\^��83��H�42|�i��S+b�����į����F�8����gm��`��7�B��S���_ze�x[jb/��Z�J�ե���%�NJE�D��K�J�$��J�ʳݝ_����y�n����n�W��Nı^�:ٛ{k[�{c���]H!8wu�ɹ +�ھ�`����๊���t�d �`�G02���>�Am;��*����Ə��R7og� �G�2�ѫ���J�)���H����R�U���mS���R`�T�y�5��+�;;Nǽ�Fd>�]�<4����&C�'���u�A�HGx&�F���iܴ�`��-�X/�L����Ibuo<+Jy�s�����M�v*"!C\7���i�a�� ��:�W 3��>LK����DDMkf*5^�|k �WZ06^<�]�b� +�/ǒ���[� \�TT�/ͺ��,�qwK�8㽙���xbh��K��e�1%�6�K�W��XMV)�������X��Ml�qf�Nu�|[��ziR}l��3�ڭ;ǺT%l���� �4�̫B����%�($��]&m�z;9�Ѳ��׃���g.֘*��U`gIoc�d�%�f#�rlp��Wg�$U�&�N�� +$�$�$�k�jB���a���3�T.�+r�dW�0K�4Oe~k"���Y����u"�4Y�8���hˌ��P�"'VWzik,ֆ��(� ��X� j�(@��:������"�K������^�/=O�WE��I h���FkW, ���^�̝�N;*}2u�%�������D<p��G�k���_��K�r��c��o%b)�� |h�G�DS�T$���buz=�3���E�h5��;5�D�z�Bժ��h4��PՀ���Sy�Y��9,vˤ�����M�x�hH�i��M6�A/i�Wϝ���N���'����_��R�WX�?+w�/�I�`��!���X�G(Ö˯n�B08Q�P�q�N?���/�V=�A{>C����JBٷ��10�W��(�p��-����dJ>'���;VX�TXÖ���R8b�=�'钲���R=<��#}�t�HRkj���E)������zt�rxXn�,G�IF��<1\��#%Ja���B(��b�� �h�a�K4�Ut �)���JId'���_��'��hf��D� ��H�T�I��'QA7��-.��f���$�p�I� D�f��Tw\Zz�$��Μ�G��uk�!������d:���r�,�gkOx��7A�W�H� /��U"^x�X��ȂŢ�H�Z2�z�/rez��)Ӓ�����&R ��W��|=1�.W�Bl��������X +��>�M�АZe\+���� -N���j�C��^��~�[Cc/�0l8�,���$�=�Z7C�����N�����t�'{Q�j6;�}B.��1W�c/�=R*c8��Aw{~O����F}^�Rw�[5��V�|�©K�tN��ƮJ��ƒjm�7���~�:��5�[KM[L#�p��)�Q�Iz���F�KW�0��Q��365K{K��БrhO:��]�����H���*�T�������K0"�%��z&&au����/�,-)�G�=�?��1��E��P�Hi "��^L�����s�.|��y�[z�\�1`u[8ի�x�O s����^���0�GjW���-�[&y�+�N�t%\��yfu�@[�d��ƥZ��Z�M �$B� ���-�H�$M��`����=�疮W2:^�ʔ�+$:��ք%�l|�ר��b��]J�"�l34Jxa�h|[,���x����� ���ykЊ�{�اA����^��� ��sk�# +�m������L�L���u��l_T�[����e�O�dߖO���f���Β� AQ����.�t�u$�V�D��'7G����}����ivϬuћ-��igW�[��F������2'/��9S�Ց�I�u���N���kD6�9������$��pb�hv&��6��s$7�Ea�:��`��X�0[(�֒�Xt���dL��s.���D�GK����_�����Gd�F�iޖ}����[�_�+Q$Ћ�7��RI�G[87��*�0������w��Jo +D��^@ 2'-o�7��׀�@'1��⤛e�ٗ����p(�U�X����1�gB��Z�Z��i�HL�E���R�����|��nA(��K�K$�9�M]+s�-��g��+Eo�%�9\�bpd�0҄BP�����ݭY�t�p�vr4�Z6�0_�Tk�B39��/b�5��Ѕ6�q�*K��x�j)�}Erj35�B� CP�P�4�+pD�5�+�����G>�'C�_��J�]^��f��yqS"!<�J��ma�e\�,Q��1P{k-=9:Z2����̆|�b��J�jS[�Z���uۉv+�_�]�$�&J�pi�\)�=VW�Tw�Tv��#H�7��q�K�4}��RS��ģm��p��~q�R G)� `tr��|!łj��`��.}Y�;�R�4Y�ѫeF�J�P|B[I�8�:�M_�No�c�'{����$µ�H�9�L�a����,�c�#�� +i%�3>~�!�������9��8�/O�gP�f]Oym�ע��ǩ��Pѷ'k��$(��R�I��cΦ��s%jcL�0v0e2�$&^hX�Pn]�� D�L��I�⅌�p��=��;&Ԥ!�)pud� ��GZ#�$]=]��氙�ZB�L�ԣ�$_z��Hc��[��D*��J!�{[έA`%W�I��!������N��B:�fnqB�E��d�7�t�}�;�S/����TU�Z�w�d7J�+g����z�5uco�O�K^n u;6�f)�}�xoQd8��I[>K���%�͙+F��x��PE��H�kl�)g���Y+A�ѡ"'�̑��X!���촤�R���xb�Jk�ZKE�]�ʱ`�%l���`ą<��ı~����� +hc)�����������ƒv%�u���{�֙b`�癱�LGrGb�����㈚�K���|��!ڕ�uG���(i������.#�#��S>�����S�L� u�$@� �"]-.w���;�+��UnHLX���p���$��"0��6�F[d�6YA2�#� +�M�9��dt�1��R���n�j�ƈm!r�( +�B�Z�pc�KO���#-��;� �I2�$І� +j5���) +� +J)�ָ�Cg'=�m�G���EP(�/ �ِ�*����B +�rω��+��:1��W?R�IA`m�5c�L�EJA�_��l{�{yf��ǣp���땗�U�du�u�S�{2��gk-�b ?I�{��ZKK.EW[�UD��k�kΏT9?R���Ľc��ư�NH�3R�����LJ +$��*�����i�m�� i�HI�#ؖ��@������D�Ϣ�d2���a�%�Nq��Q��\�4���O�Ғ�.l���Dƒr$o��r���;Z�z�D���87x3�d��(":����R�b0֡*zbӬ��e��p���Zrx�w�ԗ/3:>�&�hA�� �IDAT�q�L��n�9�6(%���{~����G�ԍ�J����}�����RZr=�yS� 0v��]_�$E�a�Gbq=M`�:ˬM3�SL�Wu��v.D]\�:�m�(a�ċ��X���7�fxSo�[:�d=E`,�(�⦵fx|��鹅���yu��֚#��0��KE�;�Zm%��bQ:��@f$WK��))%��˾/�=)��=6��G�ȟ]��B�Vfc^»J��I�T,�q�/��l�9e�Ʈ������Թ��&g+����A��Xn8�E{>�o�V%���`� ���.���5�n�¢�$] 9v�@�h72�j�N�[vKl�I)I�.���ӥ��lVI�/�T��Z �����F���hM*����^J�9F'f�+�(W�dҩ�+"r�2��y�*x�nzk4�u)��M2"�m��c��L�n��Y� @'$%��<��|�'"�]�GkHy!�> +!��\+sy��k��|>���+��%X�-��-�����KiYM�]= �t=�"@պ,��B%'^���4�Q� �gu;��n.�m�G9����I��Nrc�GG�E� u�2&�g����iuw���B&����Z���t"�;$]�@hcAB��+^@ �by����&�,h*�p&��v�>����l68�as]�Pw�\�� b����ے ���}]��ko!�}���P ����k-��K_g��G�=��s�`b.���3E�N�+~'Ho<�����*G�J�LVQڢ��L5���1��R�jC�LJAJū`��l�+�Xцh)Z������AGW��YkI���?Dj� +EFƧ8}�0B��� +�EFe��s$�_�+_�-#�2�P�a٣m�Mi�9�m&�b�N��.����>Xᙳ3�OU����r��ِ��5<)��#E��V���G���'����]@ +�G��q1��U������\�dKD����7� ��pI��$!'�ind��L�CQ+�:τ�$�v�[������ +jQK�#GI��\'Қý]�l�%��uT\p�Y���f�ɩq� �%���p��|,��@JJJ+�X�ڐU�GwW���3m�yv��#Q8N�n�s�\%�bݐ}����{���ҲU�w)PR0>=O���D�u�ɦ���P#˫Ce�N�b�<ثbgHv��]�V]��;^��P�����m-R��TCk7U��qtW@J)RR,L;9��5T��ÛN=B`*eL��ڬ�6&�l:ɉ��\�b�������L:��.V88�q��xŋx�˸�A�5���d�LJt<��&Zq|�A��;0N������λ���rn��ן�`t����Lg�����Z��J\G��s�C��ݝ&�q��o��\��+�;�����g0��AT\�+��h��;RQ�!���i.'|��F�K��˽Dy��j���Ta�+]��(��\�uGz���h%�L��Y�����U������KQZ�\���CRʅҏKQ�geJHA�ED?�����o�j�gU�!�kLFu,��x����G:S}{qC�5����m�~�p�P;�t�%��-��HkJ��Ǣ��q��ҕm����o,&�tEc�h�w%�s����\w�(�6$QOJ�q��ʄ�;���� +!0a''Xcb�&^(��2�<�Ǖ� ��>�J�6�7�*^�����?�Eb��D���҉I�Z�5 �E�n��g�M�,ɮ��߹73��j���{zv�v� )bA��(R���(��J�7}�G���r�Î�#a�ÒlJ����LI ���3�LO��R����̼����W��jy�U��O��W/_������S{*|Z�j���s�<��/��]��k���\95���ScT��yk��[�2�s�u{�J����W�y�㏾y����m>��Yb��ڿ�Y�$*�)����#ǐk�r� +�w��& yW�"�ÚU/�Uα�*Qm���*�Z)��t�v���U��s�Ј��G�Lx�7����葉 JS~y���~�i��'�����ڮkp�!��x�[��K�?Q���ZK�8l|�k3Kt����An���C�u��H������E�;!�1�=���|��$4x���v���].��g[�~a�� 9ˎ�ASvȽ+A�T��Jf5�:�%_��:��0�|~���lCL�U1j?�{���שu��,���ۨ���N��@�o�XV.a/��ΐWE���;|����RG�B��P�X~�s���O_�l�Wޜ�����j��:�Z��Kj��g.���֭��~�O^��v��Ҩ +`̐��PLL�e6]��R�{��<EZ>υ�f�*��}��1��۲���<V!,x--su݇��O�Q2���� JLk]!<�"$��p��~�'�����ߟi�B�k �گ�qݯ��Ɵ�ҩ����4Gy?��G�ƽe:�k��ϣ����OQ��p#\8l��s|��%�/�'�{��r�m��"��O�|�������� ]-�v��n#��e�f��F�A����M�^���z�b6NP[�����[\l��K����z�ob�̴݆hXfH�,2�a�U���#d�������l嘽�#�O�?u��u��|�'��Lrc�M�q�L��X^|z����4_��Y��қ���MdEpg�u36Έ� 6�ˤ�T�����S��ׯ�֯�U/�Zx}�y4�`Z��`�[��pKU�p���!_�������V���=& +�HG�V����K8���{~�,��S�_��y��:�����v�#�A���Ưu��g�d�-� 8�i��q��ƣ_9�B)�8?5F��v��]Y�{ﵹ~���ҚM?o�u{Aɀu�ه)�o�h.��T���3�C�:���jn,!wZ�GcP�:O�ua��G�b�Q �J�oQZ~���k�Z�"�7�K�s�!cF�ӰQ)I������'M���=��GO39UF;y��̈́��x�E���f=�K ����qs���J�wx^:H{4� -�dKwC�_D���š��,��]t�[d�K�Ǟ#�^$�^"+��ϐ�������kk�Ge`<�Fd�J�rU<���4���v���qY~���0��kM��t�8-�i1A�������^�W�?|�Axd+�t$^�n�u7���\k^��O�:��H e6Y����azr�ZezU6c3�.�y���n�Ei�V8���ߚ��E���S.�鑤ۋ���t���oS��ao��*�C-+��0��(�v����-��ZK�kŠ&A\������|��ƟPj��J��cY���Z���)#�A��F���\Qjq>4O"˥s5�j�k�v�pa�^�]�A��V;�y�����tPH\��J#��}R +�:�+�;�����u]s�?�ÝWY�dAI��E�����ϓ�.���qq��9���#�'���R��$R���焺�L!S�bds]=/Î6-�LcG�o��$A�0���zN��Ӱ�T�']��n��kח���|���pD�C�A�m4��O~��T�)�`���o�^��wG�N�⡾4=N���� ��_{w��s�x7�b�����&̂S�Kw���MQdK��T�{O�(������$�jQ���(���EU� ᗗW��-!ޑ�ޥ2�2��_��{�V���i�n4~�W!� �p R�?�l��0�͡����@*DQ�w.���H6QV��*���2���;ܺs��U�`�Dz9/\�y +C_���b��#x�A�����Oa��l�xa�{(� #�}*�/S��i�2���{��r���ۣ�`�]���1YJ�9-Bd�2�rU2U�>��4��s�q���#̷�kȶḬ g9�P����L���/g���g;���zP~DD.�*}�˩Q�%�����[�Y~Da�VN8=�(� �ΰ#\�����6y�W���ư]6j7a��n��"L(��$}�鹜'n���4Hn������8�c�Q��{��Z��xMP��JK�����7�vjb�D��{�^�~�)�|Nj�u��a���4ū��kD��&�hT����"b��$1�z��W���h�� ����߾O)��b��ZV;V�+i;Gz��[��6/���Ic�D���B�3�r��vV1 �=wA%i�&����Fs��]�-EP �q���Tg�Iw�EzcϑM<M.Q ]�|(� +!�y�Q�e�1EE��bB +�_h\�>�>Hen5��{���a�;j�x�F��V��� +�=2!$\�w�/��~��v�[�������,��*�5�L�ȏ��y���rI���aV�g�ƨ�����@���ڵ9�[=�u��7�d��ז��m����va[o�U-�⽌�3)F�2�Z�M����_�y�j(ީx��P2a"<jc�v쫄���@M��>�oӸ�Tg���^x�FE���� !�v�UC���62X��[!789�m~������M,�Ƿ�i��5���c����(�k?�����f:!<,!��NYj�tz���>o^_�g&8w*��fXX��8㩖�3���.��B��`WX����ڳG��5�އ>������[���u�FW�cM���/Q}�Mzӟ��O�7-��Q��b�W�f�n���G�hɖ������E�x��W�J;wDq��z;*؉�-��B��c�hX��ʋ�~�3�ʟ�h���O�x����o���N��L�#sn̜3Fq�>�3�}�m)�oUd��r��F:{�I)��Qvظk�[�<X�zP�$1�Wz��骗g����L��+�_���(e�t�2��v�� ���P�B��y�e�Q#-&�=C,Q��ۿG��Iܾ���J�w����M(f'��\(Q���IJ�,�x�^L�R�]F7��-�7Ѕ�����|�'���=��7fq�I���/�[��i����B��'���wg���so���Ŕ��?� ��j��'�қ��Wf��x�b�mkn���/F�|�n�>��fÛ;�E1��[x�*X���%F\��ݯPv�f���g>�!R�?�#������G"4�P�J��S��8�L�SV Yݎ^�}0ƪ��}�-��D���~�_����5Ƿ�����P���@8h�s��'�N]��'�~K���7-0�a� �����h���r���:Q�*s�c���>��,��gDv/�Z��3<�~/�"`P�x��s\��庥AU(V�9��{6�� +$�P1�����>�~j�Bm�ʽ��|�н�nS����u��)!����1��=�G��V�@�����|5e������q�\�o�1������sWY���+1��n����g�,w2r�|�S<w�C�:�~�w������|��'��ml}��Ӟ�� +��GsգAX{��T!�>�v%\S,��V)�'�(Gi:�Gt�^i9O#�D�m1U#TM�@t��n�`��*¯�!�a )HL[E��0�t�'6�B�{�/U�_z�^������o\+���}�~% �1|r��Jr~g���Y.�Ȝc��CCȿ��H�hԌ����ƍ9旺������{;e��s��F�2��<q;g|�o�R��Aw�f�k$<��s(I W��~x(a�� ��]�}�v�1 %+N#��}|�GuJw����$�Ө+�V1���^�lD���h�G�5�?}��w���߿��s5>���Ԫd���k����!�|g�?��]n�K�����ӷp?��^���D���w�8��o�U\����&�L���@bkV3tH�u�n�F4���pZ�R��A�x�8��[��pm��څ �Z�k�o����B��lQ:��@��yΏU����S������?�C�f0Em4�V��;��t����s��&�i��RqIqޑ�C~uW��(V�LP��i�����H?��ü��v�P9�a�&�g@j]��{ʅ{�t�A�*�Z��bL�B�Aۧ�ؚ�U��A;��LZ������"��XKv����1��1L��*����h��t�(�k����Y^{k���˷���6���OL39QƖ���Sc<��8����X�{�?}����'��_�������[8��GS,ӻ����r��V0f]89D���(��D%���=�v>�QзZѤ��ޓ���M�����ƮCGt۹Y u�qE��u��oT��k�������밎���o�'�r7yU�8a>P��F%H$nػs-r�7��G�R��lV�v�^�#�H�&���s�;��F:�殟,V�Q��+w<c˺���4�f�έ���M�1$��+� +��B�1�}�|���$!̽�V���!�zO��-�j��y��\÷�u�La&>�JL�)qd��~�Y�W��k3��������<����<u�N9 ���3��u���.��5��M�}�3��kq����ԦوbPҶe�F �+ָ-�0B$�x�9��\�р��2�rg���(�µ�ȡ�kCrKW��_Ii;X�G����v%���9OYR����gK��7"�?��s{k�s���Z�3�[yכ>SM�L78-vs��aADȝ���6Y�0#�1�"�6=�$�쑄�+�{s-f.�;�� <,7Ǫ�0�=�p_9_�n�Q����J��1Ԋ�\��K��@o��_V�`�֡��Y+�1��*Ҝŷ�!&�~��,�51cC�S�r�C��Y�����g��#��kw�����~��g�|��I��p���n.3�\�r��ʏ���?���['�kE1�ɽa~����2�^�B���N�P���jkM-����%���6���X'&���c�|���Q���8�D�`�����XC+wt2b+�D�9�}솊Rd�4P�q��1�i������s����WY/u�1,<��A~�c��Ό�c�bs�#��b�܍�QQB7�sSM��IXDp^y��C:�~᭮N��~�]5��`s��U.߁Z�5l��[���!akf���m�j��6�nj��n%M +��g�����:���j���ԯ�#M �k����g���Η�����s�a�?��]T=�s�B����/�͏>ӥ�j"�0�J���~��L��w���O0���;g�7]��<x�3�ͤic�xd����b%���)�5��z�" :0���(�*+�B�d�j�R +�˖�5����i#������ ��sG�{z^�m�`�0�*&�9!D�:�!�y���+�iԾuk��eu��8���#i(��5�#ϝ�x��Ly�]����hxz{�����'7Bh���l�43�����*����y�D����!��r�+^���\��`���o�0����I4�k�ih�~PU:Q��-3N琵��ښ�U�G���=�f�x/�;['>7��Qs�D\!���c�$��4~n���=n�����e�fߥa�4�xj:��XN9��6U+a��Zi��=��?��Q�3�~��=�9��=���^�C8g�8cZ��r:j1m����LJC�\����g����Պ_gp�:�+q���0f-Q�Ԍ��P����Pz��mL!����Pc9�8��6��(��ekp��Ң��p�=���<�����������V矫�V��H�K��KNU>G2���gt"�Գ���\:zoU���D�8:Ғ!�=oO��NJ�[��r��Y� +�g��/�C���nHV��6P@�E�*7�{l�S�`���x�5?U�ʬ�q�5��&Xp�&��]7�*�{���,?}y�/<��� ���VSW�k�a#��D�u����SW�/���Q!LB�^&��G��>ŗ�>͗�?�[�S,ge2o���0}� ��;kf�_�-y&J=Q&��+�[#J��+�%ɹ�R���v�1��]$!�]���V��\D���O4��B'u5�zΑ�<�����`���QD�y��c��C�e�^!w��N)�G�a"�&���3������XOd�*� +{4�{U^Z��"���<[1{�{� ��s��[��B�'��D k���"!�6�����E�s������r�*�hȥ��5\�'4:��Aި���Px�s���@&i���Ȑe~�v���EK��|��n<��� �IDAT�y_��^^gƍ1��m�%S�Ð�-�~��Y�p������n�(��Nwx�T����gNy�1��)�Ć��b��M�Mlz`"�j�Ylr��`�_��)�]����)��괲�y ��H�ن�1�����`JD߇ �`qaQn�qJһ��+J�cҶ9m�\��2-.D�\��3�Ow0��^��+�v��1J3����*�עN����8������,m/��!�нg;!�qJ,`���r���j���{�/k>��߭�֡���AN��@:*�*!�s�~�Ɏf?(�1��S ";"v����7oܣ��c��V�&�:5o8��0��|o^�� ������MD��nL�c�焌�:�t�����r;���f6�Wcƍ��+����jI5"-�7��>�bQ")���k�ܲ�Zt�[l�5JV�D�k��Z�!_Cݕ��+B�-��d��sqx��B$����3�{9��L�6��0©/�,J���'��Q��X 9%ɩ���f�����2�f���L�V��,k��ڑ ��dr66:[�����$����Jߍ�� +��3�B�n�?�Y�mj��~x�8��6�/Xk��������8?�t���lMdb����a�il+??{�O��1dt������.��*�}P Fu�Q�Z*�>��B�������ou���aL�>���.Ne�m�p�0�h��!���N�>���y��=�A�"��>�,]1 �A��S�+��G��un�qn�����V>�����4&UKOc$�#*Z����"�$�s5,�¤��Op��.M���#��S���)Ig#V<M�|.�m�'k��$�m9M%�D"9%r�&甴��s�.r!��j4�y���=o��;�����zç�@Y�@jd]��Q �B��(�� ��btXT��!��y���z�"������x-���-�IL�Z�%G�~�c��E����?����s�[xr�#.�u���Ƒ��������t{��в�[��m� + J�k8��2�h�u$�}����U���Q���(k�>�Wj�&��g�n�����̸&KZ��:���t5^�@MA�1��%�u�{�eE�u[yAW�N.���B!i`p�)��3X��nv��dTMJUR�M���OƳ\�s<�Ҵ]p�p�ޠi���6t���F"A��y�C\�wQ��B�Q��B�-݅ &�ǎ��֒dY��$��_�t�����+�7��Z��_w���\�X�ƪx�A-���;迺���}!�9B�0�05Q/:Y�v�%�4��;��Ĺ_��V��[���k�3J��D���Ժ�ȅ��1��$@�~]��8�/��{�iG���4o��\�O�vv���ɢ+���1�M�j�"+FԊ��CQ��cl�`�2@�"�MD����9!��Zz���S5}ƤǤ��T�'��Y�fa�^g0�[,�/mb���t�?�žӠN�X9���QA ����^��=�)��� ѫ_����W��W��ݮ������%Ǻ�#+b���)S�o��_"i�q����ƭ#C $�e�^�����͝c��<�vp�]6�̍Ĵ��y[%|u)��Ŝ^�4ږ$ީ{lPס�J�v1L`����n�ȟ����_a�WY�U�Z"���ʒ=���cl�P�J�Tu��j�}�\�!��Rz�3,���;��5!�1��"k��̓��a=���R6����IDI�-�����?]�(K���/D�������k7��j�u_���SNJf�f��"fO��=|�B�3�E~Udd^����x�$�F�`�������<+k���6�.l^����#�"�]C�o� �K]�u���hw���$��~�j�!��S��P�8���{�GE���D%�S�eH�b�j�C�}���x�^��b��q{4��-U u�m��:� +t�\�R=�^kTt�I�8zE�Y+0�z���?}�Z����n�Cȵ�OyIU�r�Z�?���V�#$.y�rd8=Qm�Fx{ B��m�/�ޯ =��?�EQ����\̩��F�PN �(�#j�u�K�a՝��2ћ�|�iTb}��cCz� Q S��w�P��eh���O��2[��A��l��`#K$��s�J���B��^]�B��ߙ�ᘃ"�R� %��Oq��g��wo�B�u�a݉T��x�d'kRma����G���#�T��12R⒈����̒e�r���bP{�3���"��A�"\�Fe�T�Rާ����� �]A1�o�����倂��DHT4�����9ƇF������PU��X��s��t��8#EU�Ƀ%:B�Ü��{�.�e�ď����k~���r�͊L{�Z��#c>���je[]2�8;�>�Ѳ�a.%�Zy䵲���ܜy��?p�,gBX�ڳ\�[���Δ9=���Bn���uA��CyèO�����d� ����x+��-� Q�$UL�����m�a�:�3�����S�c�=P+����<��"���3���7.�I����S_@W/�J�����l�.�6�سS�L"��a5��q�a .�0 +��5�7*D�h��N=�Xlw����N��9֊x�N��nVx�v�3s1Q.��c�:��@�8���Ά�1N +T�6Fr�� $�^�4�9��ÃW,B��a�N�{B���Q4�8L$ư=�������gb�;皍Тi��Vb�֒�|�1b'���H2������ݝ�\�W�ĥ��h����i�{3�>� ��V�T�7����|�ӷ�<{���;eN��D.�ǵ��A=?�Z��P*i�J�ٶ����G��@�x�^���"<��"3�P�)`EhXK�Z����Lv��V1X3�(�P�F�B�9���_���42�#��k��t홼d3^3�ao��=@���n:rU�"é�jA"�@/�`e{��-�(��f�2֊8�Q�y��P5,x�����W��"')�$2�b��6WG�NW��{�ԻǨ_���AL��1�/|�e�нHk�'.�F ռ�������5����J�� +�����Iv9��H�QK��M�J�+���j�� �J�/����vʵn�.��t}�`N��+!|0��Wz���Ta����Y/���F�?�{�Z�6���/0�q�^��BL��*���»QE�#�{$2�f S��%l=A���;\�:�r�|�C��f9&�C1ȅ�@��'�Qjzmدzv�Z!�1�GO�{��ȳ��Y���q�rm� +�M0ޏ�f�f������Z�'����a���s������I�ş:{�/���_Rյ��1�7�a��V6Ns��25c@G�+R�~��]����:��+ q4�U�C��2�pS�g�=.�x�Y�=՞!r�r2C��<� +C�X��2v�L<V&�,��b%�� +�xS���d�w�^N��%�ۢw}���E�oϢ�C"����z��u��G���b�}�b:�nw��o���$i�lD�٤b��f<�� .��E�"�=x���ֺa�3�����$���~`X7�/툵�u�1X#���f�Y����Ü�D��9斺����U)E�Sc�~ᾬ1�i�������+6*̎��7s�-��RD�k�� ������15�����2�D�h"�d�F<]�t��m���)�UPp� �h�L4U���4�6K_�A��3�=��e�A����xO�f������SG2��8�ԣ:��d&b�<�3C��?�k<��*�纸��p�óQ�'����$�!C(���Rx���O|���կ����s~�q�]����h)���~�ғIb�A#XW�p��`�J �<�ӑ��JY�����f�D!<˝.˝pB�n6E\c���)e�����1Ժ�J�gB)3�yQ�( �Q����ZB4U%j��c ��1��$�Lj��?-���7���d�И+>Ua��%>]e�K���!,,�6�����:��~�j���V�xVM<[a��0̾�c�xz�%�j�u+T��E����?w�qzU2���eE��칗r��kM&E�u���ߜ��߸U�絆t�Q]����K�;5V}ވ�7I`��fHs���>���vU%�㍐_%˹�Ϙy��vd��Qf�rN(� ՞�Ժ�zWH�`h���J���D�xj ���+ޥ)GD��^�6�s �W�I.4�OUC��0�����܃�����2��o��@l* B�G?y�j�e��mKnD$ԛ=�1��ޣn ~���,�x�O^��^�J��aU�j�B��:D��IOp8x�F���[�����Jn �z�#.�+����ݥVO/b�qe�߁�����Y+����k����_j����M}"B)�4k%\�e6�.;?&D��[�t*o2�B�g�u,��0�&��M������,x�R�$Z�� �}w�����+�J�����S/��R:ߤt�Ar���l��pTMZ|HQ4>q����/� ,�"�����(�� +��X�'P $�!&BA�b��<Kf�ѕSl�o`����� C���m�Q +f�Wb�k���s?�����g������&[��} +�F�&�}dĭ������T����A�(�:��O�_n!2�1�35wJ�v�ä���)^����:����,�?��;)���C�.�R·�(�E� �-���S��80x��5�s �35�uLl�cE�#,QE���W�]_ ����P6>h`��2�;\�7���������jY�c5�4��E�K�T��[C����|c�g�z*�a-�Ѱ�� �����DB�G���d�o�����ð�W�e v�*O e\��{���t�}'U ��Fe���,g~�E��ۋB�~ Z��r��x��YF�ʔ��\YD�w�d�[�K=��.���/��~���(<R;���a�%�f��l�H��P�����Cn�'�er�A����P���G�[]���^)�m���1���D8����Xj�Xi���L[!�H�'[(X��*� ��X 2 {���Nj�<���ynr��K�f[�Z�m���Φ(*Մƺ?t��ˤP\ZX���_��U����j�}{4"t{9�����t��a߆f�ΙS��A.X�� �*����k�l�')h��]�#{�!��|�}vw���oQ�-�Ol��cH!��"�\� +�x����yf���qG8D�q�����ךؓ�g��(��0?���,P[��3�م���֚�������F������7롫/Q�����jn���Zk���/N���Y�������8�Wʥ2W/^"�֬�6�IW���[���_�k_��摢K��v�T,���"[I̪�ᖓj��{ +>Pՠ�5�-���N^�U0#n.���P��ΏjCv��#�j���S\�f���!1����l��:�U��i_�ƪ���|80��罇�=�z�!�Q��F�^x����� ��-�_c�=�J�+�C�v��h_Uu��x���[z|_��%$gH)�j�f��B�� 뱇P���KY� [��<O?JvV��YKy��8���~Vv����{�J�3����b���XsB�P�����C��j��_8�#�5ɨ�i+��N/x���� +q�QMv�� "�Y��r�<����,&��)��G��� �sMl-.�''3���]�>n�Ok�X�O^���a�n %��� ��!�zR��c��!�z��J�����_j&q�Uf��t��Æ����z���D�Z�a�K��`� �ߨ��[5"���K�C�E�{y��*e��x�H�܇�@(\��|#T(���1?"?&0{x��Z��Ѝ���&�l|��ൈE�XX�;|Σ���w`h�g��a@b����|�e���a�lܥl�3qd�ٱ�9#��a�QP��ig�8�C�4:�N��n?en���(���{*�2g����-u,��SL9B���\6�*�6�~k�z���v ���|/�T`�9M7.?2�U ��]Db��/����>����}ڥ/��2��_`�%Q,ƞ�����,������� +g�i��Rgd��ὧ\*1=5EEF��:A��R�7BD���z���-�v��"���c{x�C�5�ؼ3����}���d�m�V!t}9ɆB(x?:�MR a�si�Z^�I��[�z��d=����\52苹���0"�c����s����qdh�0,"8�i�R�l�5�k�U)% S����2؇�*J����ӣ�ݥu�U�����k;���i đw&�Ўk�G��WB{��5�6H$�0��D(!���u�}��C� �ȕ����J��ӵ��o���X#S ��R�n|E�,�,����ʁ¡;ADHbK�n�Zɯ.��4�轧R*q�ԩ���q�W��5l-���L�~�m�J��u��s�"�i��=�P�Z��!��תd@O*� )����� +B�%�ɺ��a݈-cQ[�"֨����H"�"B�y.�#��0D���0�X"����V�Ȓz6�x�A�Z=q!�QA�x���F��Ǚ�n~y��O0�eH�`7|DJP����@;�<r�I0��6!���B��}?S�ίZ��;k��9t��d�JuT6�d�g�=�vY +��T��H'א_�Y��lz��S*����ʼn�*����>Ք�[��]�&� +�c֓wATi��0���!$���,��G �a8��l[~�'�J�۲_�u�6~��@�`'��F0��Y]�~:b�`k�r2zFp�������B�{)P)���^�� ��,a"!B0��� +���u���}�D��:NR�;��ŷ�B�>�w�w{�Z�4�҉+�c�����ͱ0ȳfx�w�%3���V���|��5���G{��D����H]�+�F�X}t� "B�;���ӡ��a@U)' ��a}����k�zB�ʱ�`�A��� +�XNw����7��_��3ߣoG+��h��iX����e�I�{�Px�F6�_}�0��~�������"f�6\(8I��'O?e��QN�?ZÊ��R2Lz0F�)˝��z�*���r�?r?�x��/��a}D�p(c'���ژ'n���{�w��_���n�5�Ɇ���&�M��Oӏ�G&�(��*��>�����춽���;3ofi?�M��M�g�ݾ�8�*��\<�Z��vz�s�Y�Xj�G�>Wk�j)m�j?�������[k4�7�־t`X� Ƈn������c{*y�+w8ՙ#31�=|��t��T������@�������K,'�c��V 1�҆k��>�?P� �}��a�����tqi�����v˯jY��^����{(x��h�HGV��,�������VЦ�X�����fP�:�hm�c<D��*&2Ģ��o;T�j�C�������'���r�=˥�P%7��������/�e�&�'Z���E�c~w� +���C`��l2 +���� kRH�݉K��Q��j�����J4ш��#����N 9��|(A#��D�����4g��=2�%U%�c��یV���ך(Ļ��^�~�zoy{V��zf��@f#�-����r���mB���S��Յ;�mj&O4TQ��$�"(���i'�ccX�`H6>��X�u����@���"�5�xB���U(x�%P��rS�h�F��)s���`BP\*'#�#��4����:�R�D�^�����{JWư�U�Sb�h����K^�x�$bs:�xBb�8�t���,~M;3�f�ܵ�Qs�Ӑ��c8X���S,T�P�O���� ���F���X�P[��)6@�r�<��-g�T��`��w H9���a !�y! v���D�0�#<�4������8��)^!��Xc(�F۱�D�+��M������{ގ$�O)؋a���tg�~�9�����Χn~�=!�54��1�^��.�\�a�IK�U��s�z� �~Y���1�FI��g�f���w���0;�,r���ȚD�U]]1��A�Pp�4:��S�;]��U�#K�R>1�"�P~r{�J� �ޢ�� �IDAT!�u�yV�!/�E^ʍ�L{�3�9�-Ɲڄz��'��ą����?N���-Be����e�+�Ǣ�6{���te�}�@x�J�h�7m�,�ma��ʱn#�R�x�W�;B ��!<�Ԧ�n2C?���SL�w<j��jB�RA�G���GN���}�SG�ىУ5���"䣀�ψ�ee;��xc���3ՙ�o#n��r�u�O_�Fu��3��>q��r�h�9GK`�DZ����?K��߹?�;�wY�c6�M'g�;[L�@Qa� OPD=:�ds�(YC%�Ս"B�����v��_�E�#?js����/QzbSO�5���j�����aQ@;ȳo(�xw���"~� g�<�w^�o���pl�C�k(x���4s���[��� ����G8���3"c�~R��ݟ��97ha��A`�E�e8�*�w#����c��FG^�~��饈#���JYJI�C���N��p��1l�w!?t���}JYo�p���� �P�����I\�c�4�b�i��_�*�~��CdRP��iH�*��ĝ�4����Y�A�M��=���b�0(�*%� +0f ��P(�D�k��M��Ј-���ߞ[�9�Yc��\yo��VA��&-��tzِfd�P"Bl ��Z�C�;z+G#��ؽ�E?��\I��T�4�{���9e+��9q��X�t���p���Do �K^X�w\���'n�Ɨ��ޘccT�u3|p/�kO�:Ʌ�;�����U$"t(�#�T�40��(a��^�m;?sc�s��\�\�r�l����ɺw�w9z�z� ���1�������|���A�q��u�3�Sk�'�$�(^=����0p����HX�~J�;��h&�A k�R}\j3$4�T_��k��7oS����-��99V/�S�y&�KC�MsQͺ��o���yXG�c +�$���=$ްu�`�)�&yb�=R����HL��#�S�*��q��5�O��F�����}���d���ݛ{�9�z�y����S-�p$��p)�lM��wn(�=b�偱s�7����vFu�oj�O��tS�2�p��Y�t��������~��&F��ĆZ9��a7Miw����|�p�1F�ǡ�� �:%/S��Y�����2����H�d���F�hJ,6.����"T�.��7\�T@U8ݙ�n�9��̧�mtl������#3XT��8�lu2���8�5���� �`U����%nx}���KoH�g//v�蕇s�X��^��K�^Xz���Z��~�T�~���b�S0d���Z���������ޱr=ֽ��a��6��Z#�����>����`���� +Ae#T��-YB �i�#2�Q<,���e�G�x���iN�I������M��ӈ,��c�fL�<����u*=��ݠ"4{�4�-���;g,�Ϗ�z������3�.�OV�����N���Y��Sɻ�r<��!��lJ1E�����w����T�տ�q����r��*�Io-)��jw��k��Oҋ���9Q�H��N��U�8�-�����7���nu���ge�a��V��ǣ��^�����������x�����FExv4w�)����ّI`�!��S>�8�]P�������/]�����r?"��C�����}�k�0�yj"0`c��e���Xo�~4|�c���o�㷾�o?�Y�QLt��VB�s�sdϢU�{�癭Npy��@#Z � +A�l�7߀�L1���7R������oo�����nt=eͿ댫���s/���קE?�ݔB�Ќ"���?����{f犼�n�*[����o$R���{��L7? @�{:��;��`no`�1�QS)��9�;G���ཧ�$4j5���ߠN1�Ə]��r��~�zq���۴էt�o �`��(�������|NoS�7�$O���Wy��\?�s���G]���q}� +��<5{�����U �u�"*�*b-b����g�ͣ$9�����YU}�\=��}�@����a��'���)QH]\{�^[�%z�����+?=S%Y�-Q2� J�!�o$H��A3������}w]yDķdfuVuUwUOw� +ӿ��3;�����w��=��5��?~e��h�l��V�ZS��p~����f��~ۃB�G��0�yf��.�ȵmkc�Q;������vΘ��� � +f�Q&�s�E�%Zjq��vc�Q"�V�`�%V�{��݄v�k9�a��JߜD>2PB�Fhm]N�N�l��@&���@B� �*`�0�����h�C~?x�Q|��?����m�u�`a-ƇO`f�pe�؉��B�B`(`)q��s����?==���r��F�k#�mF�i��s��L�Ud�~I�{.g��6����H��v�-�����'g-/���v�#��2 :�����6�.���P��(�X���d�'*�.�n��Bz�{7@��ߜ�(���R� +m�ퟳ�+'0I�~)@Dm8�Q�g�!x&�k�m��%e5^3s�\^<pC�J�����<Ѝ���0_8�����n�ؼ�ξ�8��"���Y=��b�����_�uG`s 1�F�j��QG�u������E2�<F����T����bfs�i���ecmܹ&N˺�q�<����*�9Q�R��>��m�p[��#f������&8���^m��^{0���^i`c! +��z8c�X��h��@$�����C."(����$�$@�p��X�r(���H��m�y["�U�"��%�k"����8�5���B�u�`b�i��R����q���������/P�4���! �/qIy��l��o�n���"fN�/�Ko�z͒*��`� 2cV_7j�S�&��#�Gb�q/|�b~�kW�/7�vG*�� �k7m,�R�g��M��7~t��?�X)r2�lA�I��Jzm6r�XV��vw�����q�M r���D����(1aJ��������"JߙF4S����8�N�CٗI�I���2,�#.ʣ.��E�_ '*`����@��V^�P���`[�` �Z�5�g�4���X;�R+b����?�_Z��7`j`w̝E�E�Y%r:+���/ +����������\X���f�����VC�kZ/���}��[�u�>F�4��^~ᯫ�7����op��R������� h$�fvVTC�8Y~� �����(!�e��e��� l-���m��jv�V%�D��B�M��z��V�cؘ�䠋�k� w�(��"���N���6�76�I:��D�� + +�A�i.���$(����[��w+ty��N2Q��B�p"��z������z����I����U��b�(f�� w�]��!�v��@�Wp��/}���'�'?9]�� Rj+50�[�L�_��s�`�w����R�I1�8\㨒��!���.N|�ԓ�Vv�-�Jb�,-���}��?y�k��(��d+�T�,܆x���H�ϲA�hؿ�� �DD�h�����0� � <�nq��0�,X[X_C/VA̰�0>�a�y&�E,���ɔ �D"&q{Y$�K[�!���8Ĉ�B��`�<�%�o���8v'��'� ����3u01058���Q�TW��Ķ;0]��,�V������o=��t&Ц�A�R��������~�?�"Q� E�I�^�*��_���YX`�� +���[����5������gW�ʥE��k +x N��թ7!٭U-���l<��3��Q2��6c��7�D��� �s�`A�Pk���8�~XÝ�MR�A����I����[kQ6E�+UH�ƈ�� �ՆI�b��A����Bւ�k����n�M2C�*^;�<�zTj���c��c"\����p����ʈEl'�YjO-K�~�������_���2�֦F�f�A[�2[�l��C}?~k���j��4b`J�N������������D����w�N�n�%*��'�s���_�w��·�̬Z��4 k��9����o��?M�l��{���� �5��[���mv�%��0"���a�yŁ��S%���, ve^A8.l����w�W%(V��v,@�`D̨ZF`9���D��މ��c�ƪ�߃��� � `�d�ɡc��?�E� ���J���̻��W*������W|��t���1�����y����C'~���y�aB�2C�-��y����bR�|zݫ"U`k�ڏ�����/\z�[�~��w��/)x�Y����g5^���kٖ�\�Z�%2 �b� �BG�|ld0Y��X�/ g!�Bخ��5�?D���l��� ��s#��<q�e�������zN��Vtiz5�-�� <�7���Qt脣�?l�Ἁ`A�]��_<"��E`QOS0R]�mK�X�?�H���|��AG�J�(z��:���iMO&�'��r����N/��7�V���Nխ@��j������\�;���t��+ƀ)N 9"�B)���3P�t*�6^��Ih b�X�\�)������{��*���ܿ���nI�U������x1�56�+U����2����c�J�q���H�t9�g��-�ija<�����c�X�Kw��������N)�Ihƍ6�V��D�N�6&�l����9����Bw�F["ہ�ג@�+�I6���@��G��Bbfu�я\z�\����1%��?0��� +?}�DoL& @p�DA��k�XD��D f|����01t� ^�_�M�v�D̉*������<�پC8�:+{�XS{��{��\���]\����RBmjގ + �I���>r��Ω����$�aT��~�������ٿ\�t�zR��>:�Q�R�7�q����?��g�?t�?|���1�WZX��Q!����4�Mk\Y2X��*��`62� �Cs6�vRk[�^zrzau���0�䆌�����Ykc���� sɴ�I��������<�{w�|��P�H�p}2�t��E�M��3W�~J��j��@��Mk�2�v5�b����C��h��n�\�@Aum�T\.���/�x&�8��5��C�ozC��œQp2�c�$��P��������nu3�kd�;���l����J+�1>|C�pj�2�Ht�B�~�G��?~yem%3��JJm���D��?r�G� +����e���AI��'�������̧�ab�Z�J�|Սm��6����/N��c�7?���G���O|��w�|l�OILBB�dx-,����מ[��g��yfv�Ʃ΄�ˈ�E����X�e�V���h��^�>����5��|��ʇ��7�����?"} ב����2�d��'4�&g +�>N3#0.��"��c'��m�;t��3�E�t�� +"���ʔ� +����� (�X�\9�Grħnrթ�;�/n��M2�?@�RJ�Q�Uñ��{�\�������`�M�6 ��������O$���v�1S���k�X��/.�~q�Z�:tbO`�����T��`�G��U�F��V}O�ժ�/�vb��r4W������gS�#�6o�Қo����3���F�����뙄�Ahé%m�X�nq��̑�ov\��,�Zk/dn���w��=�C�X��� +&A@��X*3B�C0Փ"�I��@iY6135l��fb�A������Ğ���R�������66�ࡾ���b�Z\�b�4���={�#n�ţ�&����R$Ix�([���W�<�GO܋��hGR_���Q����������,���a�$�\3��S /��^x������\|��(;'�j쩍hJ�7��jt�'����A�J"�z���?�_����S���0LS�5^s�{�v�k�+�%�"!���R8�T +�,g�5��K����~X������1�GN/��ѯO��p�O��:���1�,`Dg/c]Q�%�t-�#Fݶ����B���4L���T���B�G8r��h�(�[*����M��&<�B$�-≧�7���������Е ���?X�����(8��B%�a%U2�� +�K��QtP]�)�%�)Y���wdgum���c�4|w�<�i�!��>�r�x��������3�͛����/�������{�#�/�`t@��<c��=��G���X;�rX�k��������⍪��e����p;d����k��j9���g/��`_n���?��]�]E_%�J�xa2�Բ �kp���[���>����� +�?��b-�<OQ ��ad&� ����ӳKk/1�YKlh�P9�||�Ʒ������;%��c����ù��AS�v1y� ����j��`~jy��ي�;e���>8������G4��a��#�a�4�}�UX�C��������D#ځ�-�ƕ�c�<��M~�l?��^A��B���}��Z��g��3����n������#7������h��=8���T�Ň�?�b�\���0� ������u��klnu�v�i��f^c�/͔���C������������ƃ�{�:ν�[߈�8��' ����Wqz� +��q�/4��d�I��'�dCc&�ȜC��.M-^0�F� ��0��E�0|ȏ�ֶ*ə��J�U�۔�~�\a��7!�zpzBς��+��#��8h�\�=����u�� N ��6#W �A=߽�K�w����ltgh �R�V��N���1�d�kπ�� ����X� br�|'�UvVBLkn���_?4���Kˋ�]���Y}+ ?|bl����u~�N������r��O-~����O�y�!�i`��X/���ڸ�V�� +��߷Z���+����J�>?㟹�x������:~ �c�9���x/?�`�D]�s,P��5�+KQ��lT>=^^*ً9W`fz�����s��fa-#��)І�bmm)�f [,ť�b��o�J�Y[��d��^^�����)7=B���0�en{��@�+��bGf���{� (BZm��T�9�dQk��kŕq��+L�td�W^��mRh������x��M�?���<%�� +��(��x:\;]!��3�3��1V��l7�#�W�h1x����>����&��L��&�,��6|$o<<���_��/�8�|x��?~e�\E��cIvZ�1ڱ�7#�V��!l�f�s\+�oJ���瞘<��'p����Ǐ�x2�ax0Ǯ�B����� r�K� �uz�b%\5�E%�ƿ�l�+j�k��!sK���by�(�9h����M���Pu��KG���:�W:�H�S�:��*h8��ӕ�:�w�#��`Ө��X���?���Ԫ5��������>����i"�f�N�qq�h�^�[��+�|��#�WG�>��7�����N�O�;���������?���VlfK�D� +u��;F������ү��|�_�J��m]����KV��S�����w�L�ڌ`���ݧ��.hg�>|�_~jj���9��l�ၾ\_�7�3Ss�g��d����%�v^�fO��kݽ�� +#S*U��1�����C�GE�c���� +��}�g�P� �$�F�FsRږS�~�����t5���������cB��%�j�2N�\�bO�Nޕ���m@Y�+C�����x��Gv�۸fG��{�Og���־�X*Z���Hu�BӝF藏���w ��Sn��>�\y�_M-|Ck�z�6=n���4�3��U��[�;��6#�fu��)v�Ğxqn��sZ�N�fΫ��7#���c�\ ��b1x��1��������'0��w��:���h�Pڍ��؞ �����f�O�h��+G��V��~�<�~�<=z�����hHc��N#�f��`�0�BX}Y�*0�q�]r>��ٕ�����X'���S��1)��{�α�������h��//�����Ӌ0�|Ĺ������v%��};9�j�J�ߪ4:`��%�f�4�gK�������ٹk�:�T^��3�_Ur7����U,3�x�ay�� �IDAT D-WǮ!��v���z:7��[Z����O�/��fW��YR��VY��k3p�F�8� � o�\brhgܴ� �# T���������_���\J�����(�@���+'��z}!��>�X���8��{�4�c�BF���/h'�e5��ն����[I�ّ �^jm���|����;�N��x?�R+���_��ӓ/�럼3>��:�Wq�ꅵ�Xl'4G��`�#;��]"mD3)#;�U_�_����ݿ~�ッ-M��de��a�v�C������q�4���P�`j`��O����F(��5P�PJaZ���+�������έ����T�z�W��m�f�c�q����/M,'�[�j��D�rw�[}#a�"���3I:`ä�����~��5�y�yXg�h����8����bui�%lT�;��~d�ͥ�1ӥ����w�w�����tt�Ή���bMޭ��<ܑ�U��jn��Qv �$���@��!r\<a��\y�旾ZBF}�Ҵ��~�;�����vi��LU;�e㢮�Rw�F���N�f���=�V�A5�ks������ �0�c{�Z� +x�=�5�����7�&u���Ƣ^*>�7���<ua�IZ�n��N� wvߒ-&����]��J`x�p��+�=���?̮���]��bB��z�S���%�w�ѐ��b͢�o�ʸ�l��v���Z]>3��))�vXkau�d��i,$���\%�8b�:���N��:r��r��g'�{��J/�)娊N��I�1�w���'v����� +ˎ7�������O����{�^\�B��M�i��I�NN��E��;�n�S�������9���vBbf�T������7�����5�<0� L:�=���� 0��`D[��f-1�d��MO�Z\��R�4�Eu���%bK�?�#� ���m~�� ����� �i6ڀ��`��Ʌ3O<����]���Z��z��V�� ��y\�Ě"���j���)���n�]db���y4���D����c ��Ѡ�1���8k-�(�3~yjYO�G[g���vAD0�1�Rݖ}u[H^#IL�}Ȑ���m��͢Y�f��#y����cc�������2q9��.�3���2tW��a�4��l7@2C �H*,Y^��_�����?7��Z�z������Iu\�ĚņFA1@g�I��@JY[R�W2-�\RJ!�T����PJ���n�:��� ��R"M���0)�"�ZCkMQQE�ZK����jHF���ӕ�;><�K�Dh�N��Q<uvŇ�vo���.ڱw5ӥ���\S����Obt�5����(�T��158���S0jkb��0�E-$�$�m^��������M�=�P���![�$�LݻO�\��*��S�1��S�B��)%<�c""�<σ�8��%��X����J���u����#i�uRlr.b25� !ДXk�!ZE���Hz���J��]�����f���q�f�F��j��3���։:�qZ\���]~2\��<����7G�Ftp�D��(��R~��O��гD*@��$P*e�/_����T_��R�cg��ؘv|;ڵ���$ �������/���Ç���y\�EJ��4 + �/ ���,�ę�bJ��1d���Z����TL)���m�Iս��FE����1�ZS�!W��(�D^k�Z̳���5�66(�[���e��6�Rg�Xc�!�br��kT�~�Ws*4Wg;|1���{�鑱��ʬ��]�}u�`��ۇ��cX�a ,�I�s�D�H���jyq���/����Z.�;K˳���r-КH��ԫ�+�XS�$"9r��~;�0���|�\�Z(�(U�ZkkD��f�S)5�Ri����q(����t��Zv�vL@�&�5�'k-EQ��/i��q�����(���"i!EU���S��dž +o%�K�;"Bd,fV*Ir��K�@v�'�U@J���x�F�J�m�n&��K���D�ˮ�K>�~�u0`#�Z��,��s}�p����S6Bf_[�����(��(�ļ���V��}ur�\`lh�� ��p@{���h�y�,�z�WG^Y�?�;�����<�|RJ$Ĕ:�ֺN���u��3��e�3��RiJ� I7�pj�'j��E)U;6U ;�CZk !��(���T)����RR�V�{���V)��������r�2�6��@b�q��cQ�hb��a�����r��V+A'�zU�[EL��Z�噧����0|�;`z��q䃔�N�E�&���<|����3_�gqe1�?[��}jqe�4����9bk�y��$��Խ�:���=G���B������u�]� 6�#�@�Z�����Q���Qem���z ����mO��^+K���T��!���}7K��֧��.�1���֚�����Z�B +!�L���ke0�\Y�s'G��͜���.�B�9,~�����:#��)�[z7f����� +�˃���蛅�#����������O�#4��{��a�@�x�-�-�ف�/=^������(�6s�����NHi#k�M������ z�XS��|ccc���p�|���}}}��� �T��:%���:/�� Ké��%��D��������n�N$�d�MH�ǩI��vJ�%�"�-�K����fU�\}~&��ɑ����:�ZT-"D�bj�kv����뜗2?�/�>T�m���H���5�EX^p9B�B�5�����P�F����'_uk0q�|R�F��>��L�3mf�Pw�=A��|�x�;0<<���!8��0��{ +!�uݚĚz�&����E�u��9U3��q�����Zۖt�� ��vM�V)E�Z�Z�R*es@0sJ�2] +!T��J��_z!���n��l����qu ����P �M�y�L���A����*�i3�k���a��k_�|v)��n�6�F�[Ր��#�#���߱N���j�Z�I������ t=���y�����7�fF�Mտ �[ֹ�����Bk]/NfԾi}"y�$K� Ӭ�J��5�p+BްL��)�g��)�c3�RJ�? ����<�U�!����9}枓�5;-�^K �e���a�;Zq��7]��_�C*R�(��J8�c�b��3���=�?�Oo1Au�.�7`]l.N^�f# ��2:r�uC����M�b��w��Ѱ�ꮠk�u``�o�ۑ��066�0���� 6�v ė�kZG�Z�d�:^ܔLS�k�_�>�X�d�� +N�[#�T�l� ђ���R"%Y"��JX2����Z|�b�Ы��; e;�d�U;j3"����B�2,�z���E�t�e����N��݆��=[�ۿ�@����ٜ Q�5up��Q�:Tk�8v�����չO~�s6o�4o���t%�����q�7�� h���ͨ���Q����8�V$�j�h�r�fD��.q�J���2=�H �Z+R;k� +��,�Y��x,�8�Z��s��ٙh��c��Ժ5k�"����Pcf�c�u��[l�e�ݎ�'$�Nۺ�`����v����#������zA��YP��^j��#��@ܡ:�h���9v��>�� +4'�f*�f���*�m���j�}�]Rm�F��ę�BЬN4Yo���=�"���?N���Y1����!���)�#�t��%�BG�p�q\�U9���Z�_�`?� k�.��6j��U�6��`9�?��-�)������i��8��E".Dr�H�v� +u��"JӗήN��s�])#l��Et��B+8tө�CG�j'[_nV�������t�����mo{[�T;$Ԧ��&��r:j\���-�RB��7��F� �d]�#�p�8D��@ !!�+���R��8J)�H)�TZ\�u<�/����̢�ʠ�"������`mL�� i6�m����{5�8}���y��s�}c;��u�K��/�� +`���� ��$nCg�m,C ��t��{�EkRm�}R�#t�0odd?�3?��o������n'��:넊&���[�R���V�JÉڗ{*%�U)bȴ$R�`fED�s!���G.�����q�aW�֜�]A;"B� f�+(VC%/}�.���'�Z_ ]�j!�v�ݸ�\��:6����j�k���RG>`4���w���\�Qw즿�hފ�"��yP=���X�;��������[��T��PZ�fĹYi$��%P/�T�)a"�*N�R V��R�$��B(��J$V��r�V��t!�/;�\\0�����~���u��P�5�M����$�FpR�m����Nbw/�mlvs�ިN��DX����g������0n,�� �� =|�FW����>�]A���ø��;Q�T^��7�h;A+ V`#�6[fU�5�qj�E☔����u;�B��֪��K��U&��Jy�q�߸D_����k��ݲ7D���J��R�c +S숔)&[lL���X��!r����ʀP�b��^���ӗff�<�wBu��=����`��A�i~^wÑW��6��O»�� Vc|�߉S5�d'�����ilF�ͶgI��T��� %��U�R�HHWQJ�J$"lB��q�R��{�)3% �%������@ɏ�50SS����j���Bb�LP���)�6�2CKF���j�}��u�\�*�/M�{�Y��n:�h��������~��r�|ݯ��oG��w�G��˅f[�����ĆZ���x�$��֪d�afW1+?R�k��ׯ5?y���FSk���B!�,��X,P�ZwMIk���q�"q\��_�:�P�$��O��N��V�+ Op�ӕ� +r'w�Z{k�Q8��'e-��)=x�ծ�X"�W:�Bb�a4�6�7.�ۛ����O6��H���H��#��p�i>���b$^�BO� +!)�+�t'J�K��Ӂ�Z�N�Q��K!�\)Aų�I��QJm5������3b�l��ƺ[���f +�jq"*.}�Ǻ4����)�'n<t���B�"%��]@��¶�r�S�s6;W�=��OD��L2�d���R�Sr�i9N26udr���B~����K\���7 ��P .̖�T +��6!Hˀ���m�t��W,IXڱ���h�N�Af��}�k�<����md�FC���M?�ݗ���+�e4��Vd��[�� �̓b�����{��,�T:M03e". "���lP��P��JA��9��\�O�V���u_���e/N�!��%S4���I�I��D���R��������u-=D��V��a�G��a�l���s��p%��4a;[X�fp�>�>�i5�a{�W2���`[I��u�2H4ַ���ا�Xp�4�!eȕ�P�,���F@�V�R)�OϹ/|k�/[%8 �z��G�N�Q l����m���g0�~KSI�볺�9��� +�>W����\�7M�@ɵ��^s`���ɴ$� ���:r�kN%��x���^{@=�k�XS4S�f�ەR�e�،hM��ǘ�ھ)�Zkk�h������ձ�ԉL2�lbwHA�@��yq��Y�b�2�G����RƅY?N5�=z; e��qG4�`�{�uO�h�Ɓ��7����cw���7����3������)�`�'v���k�<tt��x'o�ϻ��\c�ֺ�v��ͤ�f��H��*^�����)�af�̩:�����m"a�7��d?�^7C����B����P�ܥϝύ/�P�]�ֻw��`\���� +�MU���ޖ�[M���g�V�^8�c��TB�R�1��U_a��@�gW��>���9:!�ѱwp�n�V:J�\~`ĥ�ͧ��ܓ�U\kĚ�]�\�*���Xg��dmB���L"�Z��"��v&"c���M�"2B�(9�!��!XI�/��3�E�c�0���$az%³�%��ZG�ͤ�&�*�Rs�ѱ]���9ޘ�+�s�( +"�ϓ�y$��iJv���Ekmå������$��M�a&�!;zݱ����Vu�zc�84ٶ�]��8�5�,�fg���Y�&���<��EC}�9�E��R�3�� Mp�3u"M=��+�@��$��Ƙl�W�R���}��{f$���m|K��ޟ^�6EX�h<u����9%ڊ��f�no҇YB ]��G/�m����Q�Đ�$������1�Zk��c8�^���u�l�3��2 +��s�:�v���3��@�����Y~�gC�N���6p�k���jj�#�����v�uͮ3�$�I�E�0��S���}��m�=%�ԁ)]O��iXD��eŏ\2�x:��M8�(Bh^��Z��8��J8sŇ�dL��W[�k�*�����QPD�F�*�i���r����w��k�N �Yk�þ�R��k�N���7H�Z\Wf��7�=|��&G!���0��Rv�ě���_[j'��Һ.k@�<t������x��^�}���Jc�ۤޠZ��5+�'j_ʬsx�9鐲�[�5�V"�I��q5��l�wM�I��F`(���k�9;pr��N�kzR�f<�RO_��p������f�kR�鳅آ�0�w3J�!�k�U���wDpa�?�Wg/*�RJ(��8\�e�u)��#��c``��|���H4(�l�ݰq�+t�F���uw=؋jvr<t�_��;�ȯM>�6��3�M/���ǦؗX7G�Q^�:�q����x+��Ie�Q�!3c�Jl�6��n��7C�Fak�#��B��!R�ef�J�[�ܙϾ�?� +��{RV����j+OWxj���Ε��&�]R[l��Ҵs�k��K�I� �#A�qH:�$"BX)%%!���R{�������>��e,,,l'^x�ƈu�����(4�^��I�S;�h�-��Y|��'l�w�>��%���=4�b����C����5K��~����Ҵr����r<w���6�5�)�,b�b �����J)#c�+�L��t��]��a�M��K?���{^wR�*"tc��� +l��0�/Nxz��R`�HZW7�}[j�{̜�r��� +�-�G삠��C���Fl�GZ�0�p!�W�B�8D�TJ���J�����q@Q�p��DQ� ����ﰦ�Q�~���!��w���l5�!;�� )x��������̾:x��O��c��]I֢y��4(�H�{� �6�H���JJ��1��"��*�P"�2! ���=�.br����ff�H�����<S1�ן���^���v�7)b��0��/�1���d����ڴ�։NO�gX�f��j����+AH��|�:w�v�CЦ�xO��% !��B��Ji��!)%)��y)�8C�R���� �#G����3gΠ\.o�4DF�ɨ�e����}��"B���o�̰B��N��}��?��'��M�m���{Jݎ}b�z�j����N �5#�4tR6�DL���T"�J)�bfm�U�Z�xG��SB7��M��FBG)ct"�j���F�Vs/|�Ű���{O�q�!�=�ٝ�<����g+X(H!�r�����\�13�� 4���ZQ�Z1PKXk�e��Z�����m������˾��I��PRI)�"���R6%Z�K)�u]�r96��u]$s_�P(@���iLMM!úˠ��` +��r�2?�%?����J��DH�Й:o�����E���� +S�>�}�C���b��`+Bm\6�K�+�xE�iIc�N%�LQ"������*�^�a"�zB'���p�9L��bI�!�;]��?�,�˕��7�·:�D��K��x�l߾�0Q���f Ύ�����D[ �V5Bߪ"��2��2�f�a �af�$+�e�@BH�4x}z���@�U�z�C ���6i�B����(`����qXJ )% �R +����Rbbb��\��2�Q^Y�N<�g����{�՚����P̀Go�~����WJ�6��{0��}b�=46ڭ�٭�5bM����'*a�qV���J����Z��L7 +@��@3;RJ��%"���9ffaˑ�}f��� �IDAT;�ٳ�Jя�o�żn�O"��>~Rg�j��ʙ +��"4A�+uf�â�H���H�����#Ver +��,ٲ� "bK�`A�Z�D��ܠ�} ̦đ��M�Ҿ�p����� h���=5�/ �q(�?~�Dp�4�q�`P�P`�8v��R�r� +���K�^�Yc f�j��0�������q�R�� +b� �:~��x�ӏEQ�3�`!�� c���?݀}b�;�k��#Z��bkIљY2�B���)��*��4�("���I�k��̑��#"�DgJ�'���~��W/�7g��ڛo�o���� ���I�63%���g�.��L�Rv��ݨ[� ����mE�R+��P9�J0Tl; �؊��6YI8AV���{"v#k�t��e5���[���CX� pj� R�4PIR!���5�PJ�R" +F��Zcrrr+�a�H��Z��t��.�y �0���q3H:����}P<��g�!��]ڀ�S�N�mo{�0��y����>���$�}b}��#D+��1�(��*���Z+�TƩk�UB�q�9�8;�B�PJ�>�"# ��:�Q�����-����{�?E�+A��ڶ�������<s��cL��:RmT���J�k +5�>9�2ChVd���ڒ�$��%�$���<�Z|����3����F;}� 0�D�T�X�����}5ީ+A�;,����B&(K)Y��t��I�\�ja�g���.����� P*���ׇ(�`�i�Ί((���0�� s�gۥ`��I(�͇l�B"<tӏ�-���VQ�|���x(B��y<xa��088�|��jEz�"z�S +�8! w�f���l�)7��Xm��)�o�DD!�,���X�D�$&1��"I����%qeb���93v�O(���O��������'/X.["(Q��1��b�j��O�r�-M~�g��W6@8! ���Z��� �B�M�φ��OT�6y/i��Z�� �F���'þQUU^}�L&��1�� 0��8og2���g���%���z"Q�"�q�4`�K�Rg&�qR�1��u]B�)%��rjom`6� cMԧ�����K^!�P�d�U�@��wpG�G��冸�D�ʹKF���V'z��]w݅_��_�m�݆�}�qFGGq�=���s�=W��v�k��#�4�6�'��Z����BԲ�c4�y��1s��hS��+)�B����LIν�$&W��p��\"*��� +�dJ!���|���f(I��`�j�b��e_TW"w�d����RD^Ő +,d@REB�HJ�� -��j�d +��$4H�-2D���cc"2> }[y��?�z���_~w^�.�MC1P� +�������X�0�Z<�5��ۋސ�4��B녉�ظni�寜S��(��qVJ�dJ��P��.��(��"udJ �������422B���( +���N�I��D2�����`q�����v��T��5o�Z��B���mD�� � �B��DG -��֧uP����x ��{�����v�y�8r�r�\q����a<x'O�ij�>�亯 +�-l�U�$:�TEl9I����Yk�1F0�������Bx�<kmNJ�'���!��KNq�"M=;c�sסw����ͼW"@P ���t��5��o�G�P���!�� �e6L$4 ���D��D)G�D"Mշ�J\'R��8E_-3QR�iX�$�P�Bk����aƉ����4]����˸{�,*㏡����1��K��c���X,�b67mD"���w̠zg�N�P�I�� �l6i8gT�H.0�a0,c����꒻Z]\U��R�dj��H��BJ)�,���3U�1����R������a�E�E��e�T*T�VEQ$�%cD9!x \^8�:s��I,���ĉ{1�(m��v��מ��#��@�i�v��p�������Rƀ��y���NL��曱���j��tf���B��oƻ��.���~���ں����Hmx��+�4U�� I'O���cMZNXkEB��Z+����m�D�K�zD�Bx�ڂ�s������<�*g�Jb�̂}쎃ѫn?d_}ǘ�Q2w��)-�(��$0�j�ԥ*&� �φ�+q���$�0���B[fZ��$aUl����P�)a +!l��e{)'�i��V'�03�Ȗc���8�_�É��`�́�?|4��j��'�`�pT�������P�~o��r�"Lƪp8� +#�����!��A0��9���H�m����UXXlql� +��0Z]EX�q0(#oB(k����A��z�P�S�AG�2��,��y'~v�)�f���+��(�(��)�ˡ�����*��O��S"C��"�q���;�_ ��q����V���0���C7��C7c��,��1�v���E��F'_3��s�_��?RY����r1�Z�¦z������r[��4aéS�`��;��NA��~��XYYك;���� +��<��+++���G*-�a�u�@,��ZKZkk�M��P�G3�$q%������Z��sD�c�yWQN +xںs�V��\I\xz�~��8=5�s�(�:uP(GP-G������C:eFP8?��Ox~Zۗ�?�?0�6�a�d��V(@��U�)�_r�D��&�7i5=.L:~KI\愄Si��k7 �u!k� "D��xn��(��-,)DB�~�����EEk�`�$���U��[@���"̨:9��ٖ��c4r&X�if�%H����m=�Wz�9y��������!�C��KR#R����.v%-dK�a���6À��_�`�X �0`ݽ+-ŵ��(qx9����UwUef��CƉ���&{��p.u��̌ʌ���/�suʦB�����a���!D �6C��l�5���� +����j��ۮo�6���a�a����A���ʲ���TO&SU��l�ivȼ���2mG��`p� +��U<�y���+�����Y���E�5|S��z���h}�:1�A?Z7-��������_�5�v�0��o��r�wmm �=�677�\�WD"�}�����ַ0�a��w��\�v����X"�P�( +���{x�Wt[�}�Y�y�^��Xk �OK ++BBk���i�i�&xn2���FAVY,3�DTB�0��-�Sg�w/��՝f��7�յ��i�����;���>N����`B:���u��܂����ڶ��=T7�h���~{3��L����J��J�p�kճ�01���p ��~��n +�>ئ#sU��qM.��&3p�Y�5�L<����b��?!�+:87��p�pĠ������d�ѭ��x�=Wv�?�����&9�������Z�iF_�y���6�R�XE_C� B:NHg��0�����cL��d�m�Dz��,�VCD1���&f6�Z�Y�#����~����D�a6lаA�>����M\$�s7_���5nu�����i\��{�S��VZ�%�{��TmLk�9p5�5�<1�f�s[�����pn��g��1'�֘�G���z��%|�_@������AuQ`�y�����x<����=���;w��w,K`}���d�˗/�}]�_��Nui�v���t�( +-�N����.�X�� 2;����ic� K>�,�ne߾5���m��9�MǺ���V;�tʌM�p'Ws.3Ru�%;��L��Δw�F����h +�W��f�a|fa˜@M��JY7��c�NG�V�.�:H�!����U�V����Ԧ�����������w2�xT"p����ό� +~���DTPUJ��`�fD����9q[WX��y���9%ϛ)|)B̌1vZ����m4�>���K����j���[ �e��Ulu��.��,V�~w ���q���!*��-�o+��5!�4\3�}� 1<d��������U�ڹ����pj��M��`�k�����6�6��;w�kw*�����կ~�N����~��8��6_�py�����ƍ(�?�я������v��e ��(sMecc����E�<�% З,˨,KɲA���<gc�C�Xf�CV' +�b��0�%"[k�2x*�'|e�s�w(P.������d�IJ@�DV��^E��qm gLb�e��șI���5��I#����S��{m����U鉪�!Va�X���U{�v27�/�g������[��2 +�F��~+��4�X�ͅ�Ҝ����������Z��W�ڝ�ph�� +M�Yu�����y��79|��L�%K����`2Y9���L��x������M�xL��v�����;e��N��Ͳ����������g%6�U�& ���A��}�F 죖�v�}��m`X�pl������^G��_��>��`��6V�z�� [�Qi�}��_7�m�T�����ΝÙ3gp�֭���ݒ�t��d���z +/^D�e����e�_��W��/yW�{�,����������xH��:�( +t:�!Z,xv�1���@Dl�5a[�Td�f��x-�+���������l��S�gd��c&)��(� �m�F�S�d�v!�$,V��� +��>��qB�ZL>�)q`��7�l�7���iΏv>�G��Kjݯ?L-�OÊp?JG������7�"̜c�\���|�רzO�g��.�1�{��Rp#iK(�d�LMDD�=_�7�L�9*r�JUm�,�a�˼���-��.&6�(�a�\���e]4lP�������*�pdnS��+��te=�'�A����XWa�U8N��>:���[��S侁cG�[��(��s�ǫ������ޯ�kU]��)�:�ҥKx��gq��Y�F����Q,;("8w�.\���Ȳ�?�8Ο?���W�\��~���ޏ%�.�PI��e<c<��ʊ$��ZL3�(۠0y2����j��2<�sLa�5�ܦ�2�Ȑ'��O�H٠e5����� ��O8�H�oD� +��Ƅ ��N��*�zj���F�K��s�� �KP��̶v�dM]^����'�����*��nS�`��'B�4�:ޯ�X�UYE=����4K���&��۶���̬��@�p��*��?�=��D"bJ���p�?���3'i:�}y2h`b�?������x��L-�f�QVDt�M�ݼ�f�Z�,` X���l��(�&\��5�A����1�� +LQ~h�W�~b�_�tg����Vrh@�:k}���} �O�� >>I`M��PUU,� "8v����/h��ڵkX__���̌�t������K`]ʑ�{/ 8I�&֬O̧X4��0�)�iU�E�c�z���K�>�`��&�� �s��Rz�p��^^U��lA�(�%�>s�6"¡��3��fq�LD�a��m��{[�X"!�~��j/h=0���Y�x���0YcL�|������f�K@�kIe���R���w���dY� 4To����������pP�P&a$?Ű���|�f�j���ٛUH�Q�9�=M�4D�C�o��濼�D;���~�*�_|�N��� +T"B�4�0�z�����V��(���t�,�u)G�vww�( +*��Z�˦�)��h��qdw��VU���O��� +�d�!��[تVQ�!h`��Y�XkVݏvGb��HՊP[������i���0�B�LŦ>=�y�m���M5������4L��;[U��!_poc���!��2�$S�A҄VӞzm�������✋�~fV�0�Ŏ��R�hn��u���j��������r��f����QXs�Hx�����6|�=�uu2YL]t��Uu8b�S�Ä���sX� "�����%�.����t:EUUR�5VVV(�AD����,�$�UM�Ӎ��Q������� ��뱠^�l2��1Ք�b�X�s-zG��j��E�5�U;������w������{���x���PZo���h��:M���f�e�E��y��n��P5~8M�!jϖ��SboՅ�1�E��z��J�V����}k�պz�K��ģ��7�y�U�;��S����I������Cnq�d����`��/���N�<����{����""��I����;�t:�t:E��Մ�6��(�qR��i�(Ml���x(��hvb�����u���^�I0}�:is��U�j�>�����ȫi��W�K9ڤ�Gc�S/h-0�V��9�0&ˌ�dL9�ií�ZK�n�NC�$���'}���͕�� +�?�{�9q�ٝ���7��Ogd�8L�G���������+�����+�wWH�z�����{/i"���/��~��/}�KX]]�/Կ��,�u)I��q5W�j%XYY! +�?Z���1QHXQ����p,6�2E���1e� ӝWݟ���|��ԾA3�&f������sYs-�g�!"������x���x�����Y9jx Тy#���J��i�Cfn�1��) c\+%�#y�� + �� C��X��*�bk�.v�q�9�1͊���O<��A��;��`XO��~��7ȾQ5�ض�W�(����KUUT�u���dp̌����711�0�I@UY�R>��a꺖�hM8��vUe���$H�T��#ȥlT�3�k�,�R��g +�)S"U��D��Vhm���`���� +����]C���Ǟz��������AS��P�I���qZRi������{�'�p� n��yV�U�,%�i!�fNL��5 �I5�v�)9��f �Y�iY��m<�P��A�UCPyA�G����şu�~��o~3�ߖ���%�=�Z]Є�R�5�}��h��L&1���ut�]��9(eP�����("���m�@Y�R�%��.ʲ�~�/EQĸX>����,����J6T<I6e����6HY��`e� +�z�~.�))�'XT�iR �셈h}{�Ͼ��o�x���+�[�|G�*B[cn�����x� +��y�'�ލ�5uÆ���U�2u���1�I�l�h<�Ĵ"0� +��V��ܠ�y�=�,kn������6��+�6C0�ٝ��A8]O�=g���F�zܶó�![k}(���yNeY�s�=k-��h4«��ڞ�{̗}}����-����d��d���-�e)���eY"�sZ]]����,k����7��hW �ǔ�JhK!����XS֩L5�ѣ��9�}���]�D]����]��J�*�������/�����)s�6A�=�ډMB�D��A�}kߦ0��$�,u�jb���n��͕������:�����𝌠�U`>�j �B(\"���R(�Gx ++�Zd�i\�5�+&w��S@�AW�"m��;+�-��� ^�t��r��z���<�~c��B����e�h-��C!gΜ�3�<����Q'�^�X�,�t:Y[[C�Ӂ���zq�S6�|Q�@Sk,C��{%��4�'�k_TE�0N���gu���h(�P��U�U +�ȯ�8�e�7+{�ϭU��;M�>pug�i���s'2�U#�V<2xd"1�} ���o�;J��{Y14P@@�n{�53*cP�r4)������foe�汓��v�5�Y�1!km���W�%�\6�4FU�g��J�³�s�����p^0��fj�����5��g���ЀpQ�u����ٍ,�6$zc[kQ�*���y�KXS�esyǗ2�%�.垊�c���`eeE�:���>��>eY&����M�j��J2��# +�)�L<N�ׯ@����<1�H�o�a�{��9���<D�N��ݔ�_5���n��T�Qo<ƣ'�Mǟ����wǺ�9��.�&�ޭ�"���b��!��Y����{0$е�Y��[9 +S�����P�S�=��a3�m��o���<����֭��孵��ew3k �0��c�8jճ��jxV +������w�PJv�j%�®TE�ml+�%�a ��b�[Oˇ�� +&^�5w����D��ؓe��[��M0��1F�����Z�,��.b��胠?�O�~DY�R>j��#��YIDAT5Q��q���رc8}��E��(���0#�%�Z�@k�MD�DpU��n�6z})�&����t���K�<���*L"���`�L�'E�5βݫn��;+",�'`g�M'g�Mu>YT� |֭�c��� X��"^�9�g�H`%�% $g/�Q����8�w +���l{��a+˝cnv��Ve��^�}g���ݸ�l�� F��(�����gk��X�S0���z������8�~U�<��3�L��O�|�G~�P��P����;L��y�����7���u���\� +���m����sћ_U�@\���zde �K�odccc� +ϱc���SO!�sQ�][[�:ATՔ:��M���OT� ���-]}/2X=fj�1*�O�k�ܐz{�8k;�9!2 #b�36��7�}[�g��]j��`�0Ł��I_���? ��rώs�n]?fį���|"D}8�d�mn�7�-�gc�6��kS�� a��1{Z���≉A4�盄0E���R犕��&����a_�����\é��f��װ�1�@f�;�k�����jz�zT��נ}Dm�c/(�0��x��|�l���w_���\em��.���σz�j��ت�# �K`]�}+�uk�3|8��_DY�(�EQ����A�DD�9�@�M��aP��d?@5�^8_U��X��339�4�� �g�q��D.t������o�5��"b�U�L�bb �7��|3+�B8���B֨�h��8�햵� +���T=�-H�����R���D�@�������b��.��3۷�i�����</oI�Ɋ�o�|��]]]�����ꉝ��j<�]�5��HF�L���,����Ł#��f�O���y��d�$Q�B1���| +)*S�IT'�J��%�.徖Tͻ������$;�^z�%�8q�~y����IQ���)��Ekm:1�>���C����K��*h��-V���Z6O߫�8�8�ymcр�9��T��J �ֶ�هgi��A�M%��{����G�ªC����W�]�v�8f�i������}��_j/�oJ����g74�&����0�Y[o�����k�u�=�q�OOln����S���Y�V��0���>Z'�=�10G�&�eꞝ���ߺᏮ��W8���I�\�6������a�{б�N����JR��h4���H������m�:u*��DP3.��"�"�Ќ3A�,Җ�SVF!����"L4jV��6Ye��6H +��,�pZ`�+ _� iF��<1��b6�p�4'rڎ��n�D���Lc���8�}��8hVg�ԗ� P=p_�������L�t`#,�� QU�Ɖ������-��/>�����хa5)K�$�,~�`��H�Bhպ'蛃�ϼ�$V�qD�����:s\���֊e������3gz �AU�c0?��>��c*K`]�-iNS��.?���W`����k!"�Q(��̨�RFK�6-f�"� H�l��D���SDQu00��6�%*�YWf���X�RSЌ`�x���58���Q���� +���1�L�y?��.� �u�3Hؽ�'33�37@ fq.�+�������5v��;�������/�MƧ���9�`ۚ����С_�{!^c簢 VBo(���척\ϊ�׳����w��+���� �.I�@��D�o������ �<Djp]�R�I�(��e��{��cXkՆ���!"�4 9���s1�U��97W����� 0���!״-Z53Ђ�]�U-�������@5gG��UV���mr�'���㩍uhC絞�,Z�ej�KT�s��T��#L�zX�CD؈��L\3�.�G�[���7��Z]�$j�?9�q���4���N��zM�V�*��Փ�/�v�7��e~�1;��4���ɍ#T��|��������f��(�7��m2�c�dm�����.�4�FӇ����PK]}��u �KYʂ03����[�b�����*�\�h�u]a���\t�H�R��۬�,�[<g��$�q�b#Ɨ�h +���َ�?Q�F{j�0P��EJ�^T���� +�ӱ 畴O ۍ�>��j_��:.鶎�J�XU���!�b|&�LQ�k��i�7��0��7��Uv��w�c��+'���A5��>?_��ߩ�զ�� �t�v��(�g4;�'j�Y>y?+�����.�7�������ck�`�<�f;�Mlf]�F�a �T��t��7u؞���/>#�q���P��X����Z�+W��'?�I�4���p��?.���u]�9���`)��uR +�;��2佟�4#@��h7;��QF�1�lx=���m20oOE��,X�n�����H�K���艍�IՏH�3'���P�Ŋ�B$EH(�e]����`��}��S6mĉ'��x�p�m��Ԋ��<��L_8W�k����x7���g��`:9i�K�@<I���m�l����yg��7*��6?���l�'��DӚx2e3&�����f0[�������`+� ^���&�d�R�,�u)KY�<���k��?�F��ܱ��-�y3A��r��1�C�y���(�R۩�eIQf�N�A���=��J�͝StT��a;�V��&��X�Y���ޔ�F֚�Oeq3�maQH@W�2�N1�B���[��7vl��it�੭}g�&y�}Ka��{c��yg +�X���DxS�o�HN��E�3� ķ�fE�S1j��.�4�;P�D�3�v"����D�j&�2ܼ�w��c<��3>��P�X��L5 ����9��r��Gx�����,a<��@[�2���dwwy��-ڦ��@�ߗ�,)I'Y�A���NB�\��i怪i��JNA3��m�@i��^�VU|���)���L;�E���mn��kN�-�Q{r>�ho�~�f �V�Q�NY���5�X�tQ��˳�#�/I�\�yL��C�,ׇ�]z*�/����!����2W!�=""X�ȓE�2�i\u�k�},ۧl���<c��c�����{�]>TJ�]�R�r���>PD����c�����ܜ�C*�Zkeee +�s�T��������j́W�H�yǟL)P��SU��4�o�Sr���:��_O"R���`���wz�z���D���>O������d\XBrM�@�M:��y���&��C��&�C8�k�����C&����!�$�sS&��qc���4��:%yބ�F�`���m�����nѾ�QA���%�.e)�@Ұ�E���NMc|������R���<�xCNWZHԠ�� ܖ���W* ��4틪��i����/�?�4�:��CX��"8���ڤ�2�3��vj���R�ڭi]�9[mb� �ںSv���@��0� �Sp�l���Ҧ��>��qq�DsD`��m*�& =��P���҇m=�~�T҉g������H��T�����|�XաǷ��#�M�W��ݮ�r_��t�E�*AI�D�[@���*6�Ԏ� P� ~����0��NU�;���1���m&G�� Zz��IsLUU�� ����D0��p'��]�NU� +PiAt�IM�4:���%����"�j;͊�`���{�i>�Ϧ�72Ք�.x,z@UY�R�r���j��[�n����m�:��<��ښ�z=��KD�<�Q�%�eY�z��@���T��H+�U��2�U�Cż�֢z@?�LQ�u���'vʴ�0愑�E��� +��<��f����""e�::~)(���,�Y�i��zO)���������^�hRz���:6 +��PZ($�Ȁ�A�֥,�!e��������c}�R-�ݏ'N`8��這e0�,�9�h��U{�o�TU�p`7i|��������A�4s�X&$�5s�{!lg��m�Q�P�s����V��z�^RpM�Gܴ���εAj�&u\S�2O�y�ޖ�YU�Uҭx U��3_XTŦ�|e �KY�#$���P'�T�^��^��}�N'�oP � ��ٳ8s���@Y�<��.z�^�d��@���YzfD�J�%�D + +��<����_������3a��c��a,z����Kϓ~� �M�&j`=���{Uߪ�7I���#v��� ��=�ݮԷ���֥,e)��d2�d29R�7�|���\�xO?�4��A��(�b@�|�y�S[��UU�<��8ԄJE@`����`�{h$�S +( �΅ߤ@��N�̵O��pl���VoXU��9�!u����4���Oϥ�(����q���G~h��,�u)KY�ǒ�hc~��>�{�Ⱥ>��9�0s��;���������4��6""�u������4M�idY��V�izo +�zL���d?�����ۢ-6a�i̜�X�֡���mL�пhO-��[���o��D�N�.]BY���=*�֥,e)wM�r�DE����`oo;;;�y�&._��S��vPUUt��::x�B0Ơ,KQ֧,�ZKʒl��-xQ��M�����"km�f��*뮪*�5ƈ��k��Xu��*b=3c{{����|�s��h����s��Yi�����IEND�B`� \ No newline at end of file diff --git a/vendor/phpfastcache/riak-client/tests/TestCase.php b/vendor/phpfastcache/riak-client/tests/TestCase.php new file mode 100644 index 0000000000000000000000000000000000000000..efd8f3cad8c72a6888dd1cfcfa9ef728d40f0fab --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/TestCase.php @@ -0,0 +1,110 @@ +<?php + +namespace Basho\Tests; + +use Basho\Riak; +use Basho\Riak\Node; + +/** + * Main class for testing Riak clustering + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +abstract class TestCase extends \PHPUnit_Framework_TestCase +{ + const TEST_NODE_HOST = 'riak-test'; + const TEST_NODE_PORT = 8087; + const TEST_NODE_HTTP_PORT = 8098; + const TEST_NODE_SECURE_PORT = 8498; + + const BITCASK_BUCKET_TYPE = 'bitcask'; + const COUNTER_BUCKET_TYPE = 'counters'; + const HLL_BUCKET_TYPE = 'hlls'; + const LEVELDB_BUCKET_TYPE = 'plain'; + const MAP_BUCKET_TYPE = 'maps'; + const SEARCH_BUCKET_TYPE = 'yokozuna'; + const SET_BUCKET_TYPE = 'sets'; + const GSET_BUCKET_TYPE = 'gsets'; + + const TEST_IMG = "Basho_Man_Super.png"; + + /** + * @var \Basho\Riak|null + */ + static $riak = null; + + /** + * Gets a cluster of 3 fake nodes + * + * @return array + */ + public static function getCluster() + { + return (new Node\Builder) + ->onPort(static::getTestPort()) + ->buildCluster(['riak1.company.com', 'riak2.company.com', 'riak3.company.com',]); + } + + public static function getLocalNode() + { + return (new Node\Builder) + ->atHost(static::getTestHost()) + ->onPort(static::getTestPort()) + ->build(); + } + + public static function getApiBridgeClass() + { + return !empty($_ENV['PB_INTERFACE']) ? new Riak\Api\Pb() : null; + } + + public static function getTestHost() + { + $host = getenv('RIAK_HOST'); + return $host ?: static::TEST_NODE_HOST; + } + + public static function getTestHttpPort() + { + return getenv('RIAK_HTTP_PORT') ? getenv('RIAK_HTTP_PORT') : static::TEST_NODE_HTTP_PORT; + } + + public static function getTestPort() + { + if (getenv('PB_INTERFACE')) { + $port = getenv('RIAK_PORT') ? getenv('RIAK_PORT') : static::TEST_NODE_PORT; + } else { + $port = static::getTestHttpPort(); + } + + return $port; + } + + public static function getTestSecurePort() + { + if (getenv('PB_INTERFACE')) { + $port = static::getTestPort(); + } else { + $port = getenv('RIAK_HTTPS_PORT') ? getenv('RIAK_HTTPS_PORT') : static::TEST_NODE_SECURE_PORT; + } + + return $port; + } + + /** + * Parent setup method opens Riak connection and initializes static variable + */ + public static function setUpBeforeClass() + { + static::$riak = new Riak([static::getLocalNode()], [], static::getApiBridgeClass()); + } + + /** + * Parent tear down method closes Riak connection and uninitializes static variable + */ + public static function tearDownAfterClass() + { + static::$riak->getApi()->closeConnection(); + static::$riak = null; + } +} diff --git a/vendor/phpfastcache/riak-client/tests/TimeSeriesTrait.php b/vendor/phpfastcache/riak-client/tests/TimeSeriesTrait.php new file mode 100644 index 0000000000000000000000000000000000000000..f1b14510cdd24c6fa95b103b0f97291359f11441 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/TimeSeriesTrait.php @@ -0,0 +1,101 @@ +<?php + +namespace Basho\Tests; + +use Basho\Riak\TimeSeries\Cell; + +/** + * Helps with reusability for timeseries commands + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ + +trait TimeSeriesTrait +{ + protected static $table = "WeatherByRegion"; + protected static $tableBlob = "GeoCheckin_Wide_1_5"; + protected static $key = []; + protected static $now; + + protected static function tableDefinition($table_name = "") + { + $table = " + CREATE TABLE %s ( + region varchar not null, + state varchar not null, + time timestamp not null, + weather varchar not null, + temperature double, + uv_index sint64, + observed boolean not null, + PRIMARY KEY((region, state, quantum(time, 15, 'm')), region, state, time) + )"; + + return sprintf($table, $table_name ? $table_name : static::$table); + } + + protected static function populateKey() + { + static::$now = new \DateTime("@1443816900"); + + static::$key = [ + (new Cell("region"))->setValue("South Atlantic"), + (new Cell("state"))->setValue("South Carolina"), + (new Cell("time"))->setTimestampValue(static::$now->getTimestamp()), + ]; + } + + public static function generateRows() + { + $row = static::generateRow(); + $rows = [ + $row, + [ + $row[0], + $row[1], + (new Cell("time"))->setTimestampValue(static::oneHourAgo()), + (new Cell("weather"))->setValue("windy"), + (new Cell("temperature"))->setDoubleValue(19.8), + (new Cell("uv_index"))->setIntValue(10), + (new Cell("observed"))->setBooleanValue(true), + ], + [ + $row[0], + $row[1], + (new Cell("time"))->setTimestampValue(static::twoHoursAgo()), + (new Cell("weather"))->setValue("cloudy"), + (new Cell("temperature"))->setDoubleValue(19.1), + (new Cell("uv_index"))->setIntValue(15), + (new Cell("observed"))->setBooleanValue(false), + ], + ]; + + return $rows; + } + + public static function generateRow() + { + $row = static::$key; + $row[] = (new Cell("weather"))->setValue("hot"); + $row[] = (new Cell("temperature"))->setDoubleValue(23.5); + $row[] = (new Cell("uv_index"))->setIntValue(10); + $row[] = (new Cell("observed"))->setBooleanValue(true); + + return $row; + } + + public static function oneHourAgo() + { + return static::$now->getTimestamp() - 60 * 60 * 1; + } + + public static function twoHoursAgo() + { + return static::$now->getTimestamp() - 60 * 60 * 2; + } + + public static function threeHoursAgo() + { + return static::$now->getTimestamp() - 60 * 60 * 3; + } +} diff --git a/vendor/phpfastcache/riak-client/tests/functional/BucketOperationsTest.php b/vendor/phpfastcache/riak-client/tests/functional/BucketOperationsTest.php new file mode 100644 index 0000000000000000000000000000000000000000..591a26cf66047fa78920199ffed95ae23e71222e --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/functional/BucketOperationsTest.php @@ -0,0 +1,115 @@ +<?php + +namespace Basho\Tests; + +use Basho\Riak\Command; + +/** + * Class BucketOperationsTest + * + * Functional tests related to bucket operations + * + * @author Christopher Mancini <cmancini at basho d0t com> + * @author Luke Bakken <lbakken@basho.com> + */ +class BucketOperationsTest extends TestCase +{ + private static $hll_present = false; + + public static function setUpBeforeClass() + { + parent::setUpBeforeClass(); + + try { + $command = (new Command\Builder\FetchBucketProperties(static::$riak)) + ->buildBucket('test', static::HLL_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + if ($response->isSuccess() && $response->getCode() == 200) { + static::$hll_present = true; + } + } catch (\Exception $ex) { + static::$hll_present = false; + } + } + + public function testStore() + { + $command = (new Command\Builder\SetBucketProperties(static::$riak)) + ->buildBucket('test') + ->set('allow_mult', false) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('204', $response->getCode(), $response->getMessage()); + } + + public function testFetch() + { + $command = (new Command\Builder\FetchBucketProperties(static::$riak)) + ->buildBucket('test') + ->build(); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode()); + + $bucket = $response->getBucket(); + $this->assertNotEmpty($bucket->getProperties()); + $this->assertFalse($bucket->getProperty('allow_mult')); + } + + public function testStore2() + { + $command = (new Command\Builder\SetBucketProperties(static::$riak)) + ->buildBucket('test') + ->set('allow_mult', true) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('204', $response->getCode(), $response->getMessage()); + } + + public function testFetch2() + { + $command = (new Command\Builder\FetchBucketProperties(static::$riak)) + ->buildBucket('test') + ->build(); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode()); + + $bucket = $response->getBucket(); + $this->assertNotEmpty($bucket->getProperties()); + $this->assertTrue($bucket->getProperty('allow_mult')); + } + + public function testFetchAndStoreHllPrecision() + { + if (static::$hll_present) { + $command = (new Command\Builder\FetchBucketProperties(static::$riak)) + ->buildBucket('test' . md5(rand(0, 99) . time()), static::HLL_BUCKET_TYPE) + ->build(); + + $bucket = $command->execute()->getBucket(); + $this->assertNotEmpty($bucket->getProperties()); + $this->assertEquals(14, $bucket->getProperty('hll_precision')); + + $command = (new Command\Builder\SetBucketProperties(static::$riak)) + ->buildBucket('test', static::HLL_BUCKET_TYPE) + ->set('hll_precision', 12) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('204', $response->getCode(), $response->getMessage()); + } else { + throw new \PHPUnit_Framework_SkippedTestError("hlls bucket type is not enabled and activated, skipping"); + } + } +} diff --git a/vendor/phpfastcache/riak-client/tests/functional/CounterOperationsTest.php b/vendor/phpfastcache/riak-client/tests/functional/CounterOperationsTest.php new file mode 100644 index 0000000000000000000000000000000000000000..6e4548c36e593f836b1386c54e5794c8bd34a5ad --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/functional/CounterOperationsTest.php @@ -0,0 +1,155 @@ +<?php + +namespace Basho\Tests; + +use Basho\Riak\Command; + +/** + * Class CounterTest + * + * Functional tests related to Counter CRDTs + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class CounterOperationsTest extends TestCase +{ + private static $key = ''; + + public static function setUpBeforeClass() + { + parent::setUpBeforeClass(); + + // make completely random key based on time + static::$key = md5(rand(0, 99) . time()); + } + + public function testIncrementNewWithoutKey() + { + // build an object + $command = (new Command\Builder\IncrementCounter(static::$riak)) + ->withIncrement(1) + ->buildBucket('visits', static::COUNTER_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + // expects 201 - Created + $this->assertEquals('201', $response->getCode()); + $this->assertNotEmpty($response->getLocation()); + } + + public function testFetchNotFound() + { + $command = (new Command\Builder\FetchCounter(static::$riak)) + ->buildLocation(static::$key, 'visits', static::COUNTER_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('404', $response->getCode()); + } + + /** + * @depends testFetchNotFound + */ + public function testIncrementNewWithKey() + { + $command = (new Command\Builder\IncrementCounter(static::$riak)) + ->withIncrement(1) + ->buildLocation(static::$key, 'visits', static::COUNTER_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + // expects 204 - No Content + // this is wonky, its not 201 because the key may have been generated on another node + $this->assertEquals('204', $response->getCode()); + $this->assertEmpty($response->getLocation()); + } + + /** + * @depends testIncrementNewWithKey + */ + public function testFetchOk() + { + $command = (new Command\Builder\FetchCounter(static::$riak)) + ->buildLocation(static::$key, 'visits', static::COUNTER_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode()); + $this->assertInstanceOf('Basho\Riak\DataType\Counter', $response->getCounter()); + $this->assertNotEmpty($response->getCounter()->getData()); + $this->assertTrue(is_integer($response->getCounter()->getData())); + $this->assertEquals(1, $response->getCounter()->getData()); + } + + /** + * @depends testFetchOk + */ + public function testIncrementExisting() + { + $command = (new Command\Builder\IncrementCounter(static::$riak)) + ->withIncrement(1) + ->buildLocation(static::$key, 'visits', static::COUNTER_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + // 204 - No Content + $this->assertEquals('204', $response->getCode()); + } + + /** + * @depends testIncrementExisting + */ + public function testFetchOk2() + { + $command = (new Command\Builder\FetchCounter(static::$riak)) + ->buildLocation(static::$key, 'visits', static::COUNTER_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode()); + $this->assertInstanceOf('Basho\Riak\DataType\Counter', $response->getCounter()); + $this->assertNotEmpty($response->getCounter()->getData()); + $this->assertTrue(is_integer($response->getCounter()->getData())); + $this->assertEquals(2, $response->getCounter()->getData()); + } + + /** + * @depends testFetchOk + */ + public function testDecrementExisting() + { + $command = (new Command\Builder\IncrementCounter(static::$riak)) + ->withIncrement(-1) + ->buildLocation(static::$key, 'visits', static::COUNTER_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + // 204 - No Content + $this->assertEquals('204', $response->getCode()); + } + + /** + * @depends testDecrementExisting + */ + public function testFetchOk3() + { + $command = (new Command\Builder\FetchCounter(static::$riak)) + ->buildLocation(static::$key, 'visits', static::COUNTER_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode()); + $this->assertInstanceOf('Basho\Riak\DataType\Counter', $response->getCounter()); + $this->assertNotEmpty($response->getCounter()->getData()); + $this->assertTrue(is_integer($response->getCounter()->getData())); + $this->assertEquals(1, $response->getCounter()->getData()); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/functional/GSetOperationsTest.php b/vendor/phpfastcache/riak-client/tests/functional/GSetOperationsTest.php new file mode 100644 index 0000000000000000000000000000000000000000..0c303675d1f57d25b6f00180884fb209819d71b2 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/functional/GSetOperationsTest.php @@ -0,0 +1,141 @@ +<?php + +namespace Basho\Tests; + +use Basho\Riak\Command; + +/** + * Functional tests related to GSet CRDTs + * + * @author Luke Bakken <lbakken@basho.com> + */ +class GSetTest extends TestCase +{ + /** + * Key to be used for tests + * + * @var string + */ + private static $key = ''; + + public static function setUpBeforeClass() + { + parent::setUpBeforeClass(); + + // make completely random key based on time + static::$key = md5(rand(0, 99) . time()); + + try + { + // Skip this suite if the "gsets" bucket type is not present + $command = (new Command\Builder\FetchBucketProperties(static::$riak)) + ->buildBucket('test', static::GSET_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + if (!$response->isSuccess() || $response->getCode() != 200) { + throw new \PHPUnit_Framework_SkippedTestSuiteError("gsets bucket type is not enabled and activated, skipping"); + } + } + catch (\Exception $ex) + { + throw new \PHPUnit_Framework_SkippedTestSuiteError("gsets bucket type is not enabled and activated, skipping"); + } + } + + public function testAddWithoutKey() + { + // build an object + $command = (new Command\Builder\UpdateGSet(static::$riak)) + ->add('gosabres poked you.') + ->add('phprocks viewed your profile.') + ->add('phprocks started following you.') + ->buildBucket('default', static::GSET_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + // expects 201 - Created + $this->assertEquals('201', $response->getCode()); + $this->assertNotEmpty($response->getLocation()); + } + + public function testFetchNotFound() + { + $command = (new Command\Builder\FetchSet(static::$riak)) + ->buildLocation(static::$key, 'default', static::GSET_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('404', $response->getCode()); + } + + /** + * @depends testFetchNotFound + */ + public function testAddNewWithKey() + { + $command = (new Command\Builder\UpdateGSet(static::$riak)) + ->add('Sabres') + ->add('Canadiens') + ->add('Bruins') + ->add('Maple Leafs') + ->add('Senators') + ->add('Red Wings') + ->add('Thrashers') + ->buildLocation(static::$key, 'Teams', static::GSET_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + // expects 204 - No Content + // this is wonky, its not 201 because the key may have been generated on another node + $this->assertEquals('204', $response->getCode()); + $this->assertEmpty($response->getLocation()); + + $command = (new Command\Builder\FetchSet(static::$riak)) + ->buildLocation(static::$key, 'Teams', static::GSET_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode()); + $this->assertInstanceOf('Basho\Riak\DataType\Set', $response->getSet()); + $this->assertNotEmpty($response->getSet()->getData()); + $this->assertTrue(is_array($response->getSet()->getData())); + $this->assertEquals(7, count($response->getSet()->getData())); + $this->assertEmpty($response->getSet()->getContext()); + } + + /** + * @depends testAddNewWithKey + */ + public function testAddAnotherNew() + { + // add without context + $command = (new Command\Builder\UpdateGSet(static::$riak)) + ->add('Lightning') + ->buildLocation(static::$key, 'Teams', static::GSET_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + // 204 - No Content + $this->assertEquals('204', $response->getCode()); + + $command = (new Command\Builder\FetchSet(static::$riak)) + ->buildLocation(static::$key, 'Teams', static::GSET_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode()); + $this->assertInstanceOf('Basho\Riak\DataType\Set', $response->getSet()); + $this->assertNotEmpty($response->getSet()->getData()); + $this->assertTrue(is_array($response->getSet()->getData())); + $this->assertEquals(8, count($response->getSet()->getData())); + $this->assertEmpty($response->getSet()->getContext()); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/functional/HllOperationsTest.php b/vendor/phpfastcache/riak-client/tests/functional/HllOperationsTest.php new file mode 100644 index 0000000000000000000000000000000000000000..882843215192e767d76e2028f8b86ac74f8c7977 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/functional/HllOperationsTest.php @@ -0,0 +1,167 @@ +<?php + +namespace Basho\Tests; + +use Basho\Riak\Command; + +/** + * Functional tests related to Hll CRDTs + * + * @author Luke Bakken <lbakken@basho.com> + */ +class HllOperationsTest extends TestCase +{ + /** + * Key to be used for tests + * + * @var string + */ + private static $key = ''; + + public static function setUpBeforeClass() + { + parent::setUpBeforeClass(); + + // make completely random key based on time + static::$key = md5(rand(0, 99) . time()); + + try + { + // Skip this suite if the "hlls" bucket type is not present + $command = (new Command\Builder\FetchBucketProperties(static::$riak)) + ->buildBucket('test', static::HLL_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + if (!$response->isSuccess() || $response->getCode() != 200) { + throw new \PHPUnit_Framework_SkippedTestSuiteError("hlls bucket type is not enabled and activated, skipping"); + } + } + catch (\Exception $ex) + { + throw new \PHPUnit_Framework_SkippedTestSuiteError("hlls bucket type is not enabled and activated, skipping"); + } + } + + public function testAddWithoutKey() + { + // build an object + $command = (new Command\Builder\UpdateHll(static::$riak)) + ->add('gosabres poked you.') + ->add('phprocks viewed your profile.') + ->add('phprocks started following you.') + ->buildBucket('default', static::HLL_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + // expects 201 - Created + $this->assertEquals('201', $response->getCode()); + $this->assertNotEmpty($response->getLocation()); + } + + public function testFetchNotFound() + { + $command = (new Command\Builder\FetchHll(static::$riak)) + ->buildLocation(static::$key, 'default', static::HLL_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('404', $response->getCode()); + } + + /** + * @depends testFetchNotFound + */ + public function testAddNewWithKey() + { + $command = (new Command\Builder\UpdateHll(static::$riak)) + ->add('Sabres') + ->add('Canadiens') + ->add('Bruins') + ->add('Maple Leafs') + ->add('Senators') + ->add('Red Wings') + ->add('Thrashers') + ->buildLocation(static::$key, 'Teams', static::HLL_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + // expects 204 - No Content + // this is wonky, its not 201 because the key may have been generated on another node + $this->assertEquals('204', $response->getCode()); + $this->assertEmpty($response->getLocation()); + + $command = (new Command\Builder\FetchHll(static::$riak)) + ->buildLocation(static::$key, 'Teams', static::HLL_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode()); + $this->assertInstanceOf('Basho\Riak\DataType\Hll', $response->getHll()); + $this->assertNotEmpty($response->getHll()->getData()); + $this->assertTrue(is_int($response->getHll()->getData())); + $this->assertEquals(7, $response->getHll()->getData()); + } + + /** + * @depends testAddNewWithKey + */ + public function testAddExisting() + { + $command = (new Command\Builder\UpdateHll(static::$riak)) + ->add('Thrashers') + ->buildLocation(static::$key, 'Teams', static::HLL_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + // 204 - No Content + $this->assertEquals('204', $response->getCode()); + + $command = (new Command\Builder\FetchHll(static::$riak)) + ->buildLocation(static::$key, 'Teams', static::HLL_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode()); + $this->assertInstanceOf('Basho\Riak\DataType\Hll', $response->getHll()); + $this->assertNotEmpty($response->getHll()->getData()); + $this->assertTrue(is_int($response->getHll()->getData())); + $this->assertEquals(7, $response->getHll()->getData()); + } + + /** + * @depends testAddNewWithKey + */ + public function testAddExistingAndNew() + { + $command = (new Command\Builder\UpdateHll(static::$riak)) + ->add('Penguins') + ->add('Sabres') + ->buildLocation(static::$key, 'Teams', static::HLL_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + // 204 - No Content + $this->assertEquals('204', $response->getCode()); + + $command = (new Command\Builder\FetchHll(static::$riak)) + ->buildLocation(static::$key, 'Teams', static::HLL_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode()); + $this->assertInstanceOf('Basho\Riak\DataType\Hll', $response->getHll()); + $this->assertNotEmpty($response->getHll()->getData()); + $this->assertTrue(is_int($response->getHll()->getData())); + $this->assertEquals(8, $response->getHll()->getData()); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/functional/MapOperationsTest.php b/vendor/phpfastcache/riak-client/tests/functional/MapOperationsTest.php new file mode 100644 index 0000000000000000000000000000000000000000..b2da728b05fa6b1f182f44d497069d581a6482ce --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/functional/MapOperationsTest.php @@ -0,0 +1,236 @@ +<?php + +namespace Basho\Tests; + +use Basho\Riak\Command; + +/** + * Functional tests related to Counter CRDTs + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class MapOperationsTest extends TestCase +{ + /** + * Key to be used for tests + * + * @var string + */ + private static $key = ''; + + /** + * Array of context generated from working with the same Set + * + * @var array + */ + private static $context = []; + + public static function setUpBeforeClass() + { + parent::setUpBeforeClass(); + + // make completely random key based on time + static::$key = md5(rand(0, 99) . time()); + } + + public function testAddWithoutKey() + { + // build a map update command + $command = (new Command\Builder\UpdateMap(static::$riak)) + ->updateRegister('favorite', 'Buffalo Sabres') + ->buildBucket('default', static::MAP_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + // expects 201 - Created + $this->assertEquals('201', $response->getCode()); + $this->assertNotEmpty($response->getLocation()); + } + + public function testFetchNotFound() + { + $command = (new Command\Builder\FetchMap(static::$riak)) + ->buildLocation(static::$key, 'default', static::MAP_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('404', $response->getCode()); + } + + /** + * @depends testFetchNotFound + */ + public function testAddNewWithKey() + { + $updateSetBuilder = (new Command\Builder\UpdateSet(static::$riak)) + ->add('Sabres'); + + $updateCounterBuilder = (new Command\Builder\IncrementCounter(static::$riak)) + ->withIncrement(1); + + $command = (new Command\Builder\UpdateMap(static::$riak)) + ->buildLocation(static::$key, 'Teams', static::MAP_BUCKET_TYPE) + ->updateCounter('teams', $updateCounterBuilder) + ->updateSet('ATLANTIC_DIVISION', $updateSetBuilder) + ->build(); + + $response = $command->execute(); + + // expects 204 - No Content + // this is wonky, its not 201 because the key may have been generated on another node + $this->assertEquals('204', $response->getCode()); + $this->assertEmpty($response->getLocation()); + + $command = (new Command\Builder\FetchMap(static::$riak)) + ->buildLocation(static::$key, 'Teams', static::MAP_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $map = $response->getMap(); + + $this->assertEquals('200', $response->getCode()); + $this->assertInstanceOf('Basho\Riak\DataType\Map', $response->getMap()); + + $this->assertInstanceOf('Basho\Riak\DataType\Set', $map->getSet('ATLANTIC_DIVISION')); + $this->assertEquals(1, count($map->getSet('ATLANTIC_DIVISION')->getData())); + + $this->assertInstanceOf('Basho\Riak\DataType\Counter', $map->getCounter('teams')); + $this->assertEquals(1, $map->getCounter('teams')->getData()); + $this->assertNotEmpty($map->getContext()); + + static::$context[] = $response->getMap()->getContext(); + } + + /** + * @depends testAddNewWithKey + */ + public function testAddExisting() + { + $updateSetBuilder = (new Command\Builder\UpdateSet(static::$riak)) + ->add('Bruins') + ->add('Thrashers'); + + $updateCounterBuilder = (new Command\Builder\IncrementCounter(static::$riak)) + ->withIncrement(2); + + // build a map update command + $command = (new Command\Builder\UpdateMap(static::$riak)) + ->updateFlag('expansion_year', TRUE) + ->updateCounter('teams', $updateCounterBuilder) + ->updateSet('ATLANTIC_DIVISION', $updateSetBuilder) + ->buildLocation(static::$key, 'Teams', static::MAP_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + // 204 - No Content + $this->assertEquals('204', $response->getCode()); + + $command = (new Command\Builder\FetchMap(static::$riak)) + ->buildLocation(static::$key, 'Teams', static::MAP_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $map = $response->getMap(); + + $this->assertEquals('200', $response->getCode()); + $this->assertInstanceOf('Basho\Riak\DataType\Map', $response->getMap()); + + $this->assertInstanceOf('Basho\Riak\DataType\Set', $map->getSet('ATLANTIC_DIVISION')); + $this->assertEquals(3, count($map->getSet('ATLANTIC_DIVISION')->getData())); + + $this->assertInstanceOf('Basho\Riak\DataType\Counter', $map->getCounter('teams')); + $this->assertEquals(3, $map->getCounter('teams')->getData()); + + $this->assertTrue($map->getFlag('expansion_year')); + + static::$context[] = $response->getMap()->getContext(); + } + + /** + * @depends testAddExisting + * + * @expectedException \Basho\Riak\DataType\Exception + */ + public function testRemoveExisting() + { + $updateSetBuilder = (new Command\Builder\UpdateSet(static::$riak)) + ->remove('Thrashers') + ->add('Lightning'); + + // build a map update command with stale context + $command = (new Command\Builder\UpdateMap(static::$riak)) + ->removeFlag('expansion_year') + ->updateSet('ATLANTIC_DIVISION', $updateSetBuilder) + ->buildLocation(static::$key, 'Teams', static::MAP_BUCKET_TYPE) + ->withContext(static::$context[0]) + ->build(); + + $response = $command->execute(); + + // 204 - No Content + $this->assertEquals('204', $response->getCode()); + + $command = (new Command\Builder\FetchMap(static::$riak)) + ->buildLocation(static::$key, 'Teams', static::MAP_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $map = $response->getMap(); + + $this->assertEquals('200', $response->getCode()); + $this->assertInstanceOf('Basho\Riak\DataType\Map', $response->getMap()); + + $this->assertInstanceOf('Basho\Riak\DataType\Set', $map->getSet('ATLANTIC_DIVISION')); + $this->assertEquals(3, count($map->getSet('ATLANTIC_DIVISION')->getData())); + + $this->assertInstanceOf('Basho\Riak\DataType\Counter', $map->getCounter('teams')); + $this->assertEquals(3, $map->getCounter('teams')->getData()); + + $this->assertTrue($map->getFlag('expansion_year')); + + static::$context[] = $response->getMap()->getContext(); + } + + /** + * @depends testRemoveExisting + */ + public function testAddMapExisting() + { + $updateMapBuilder = (new Command\Builder\UpdateMap(static::$riak)) + ->updateFlag('notifications', FALSE) + ->updateRegister('label', 'Email Alerts'); + + // build a map update command + $command = (new Command\Builder\UpdateMap(static::$riak)) + ->updateMap('preferences', $updateMapBuilder) + ->buildLocation(static::$key, 'Teams', static::MAP_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + // 204 - No Content + $this->assertEquals('204', $response->getCode()); + + $command = (new Command\Builder\FetchMap(static::$riak)) + ->buildLocation(static::$key, 'Teams', static::MAP_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + $map = $response->getMap(); + + $this->assertEquals('200', $response->getCode()); + $this->assertInstanceOf('Basho\Riak\DataType\Map', $response->getMap()); + + $this->assertInstanceOf('Basho\Riak\DataType\Map', $map->getMap('preferences')); + $this->assertEquals('Email Alerts', $map->getMap('preferences')->getRegister('label')); + $this->assertFalse($map->getMap('preferences')->getFlag('notifications')); + + static::$context[] = $response->getMap()->getContext(); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/functional/MapReduceOperationsTest.php b/vendor/phpfastcache/riak-client/tests/functional/MapReduceOperationsTest.php new file mode 100644 index 0000000000000000000000000000000000000000..640bf19211a50f9d6dfeb7cebcd52202e6834df8 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/functional/MapReduceOperationsTest.php @@ -0,0 +1,65 @@ +<?php + +namespace Basho\Tests; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * Functional tests related to Counter CRDTs + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class MapReduceOperationsTest extends TestCase +{ + protected static $mr_content = [ + 'p0' => "Alice was beginning to get very tired of sitting by her sister on the bank, and of having nothing to do: once or twice she had peeped into the book her sister was reading, but it had no pictures or conversations in it, 'and what is the use of a book,' thought Alice 'without pictures or conversation?'", + 'p1' => "So she was considering in her own mind (as well as she could, for the hot day made her feel very sleepy and stupid), whether the pleasure of making a daisy-chain would be worth the trouble of getting up and picking the daisies, when suddenly a White Rabbit with pink eyes ran close by her.", + 'p2' => "The rabbit-hole went straight on like a tunnel for some way, and then dipped suddenly down, so suddenly that Alice had not a moment to think about stopping herself before she found herself falling down a very deep well." + ]; + + public static function setUpBeforeClass() + { + parent::setUpBeforeClass(); + + foreach (static::$mr_content as $key => $value) { + $command = (new Command\Builder\StoreObject(static::$riak)) + ->buildObject($value) + ->buildLocation($key, 'phptest_mr') + ->build(); + + $command->execute(); + } + } + + public static function tearDownAfterClass() + { + foreach (static::$mr_content as $key => $object) { + $command = (new Command\Builder\DeleteObject(static::$riak)) + ->buildLocation($key, 'phptest_mr') + ->build(); + + $command->execute(); + } + + parent::tearDownAfterClass(); + } + + public function testFetch() + { + $command = (new Command\Builder\MapReduce\FetchObjects(static::$riak)) + ->addBucketInput(new Riak\Bucket('phptest_mr')) + ->buildMapPhase('', '', + "function(v) {var m = v.values[0].data.toLowerCase().match(/[A-Za-z]*/g); var r = []; for(var i in m) {if(m[i] != '') {var o = {};o[m[i]] = 1;r.push(o);}}return r;}") + ->buildReducePhase('', '', + "function(v) {var r = {};for(var i in v) {for(var w in v[i]) {if(w in r) r[w] += v[i][w]; else r[w] = v[i][w];}}return [r];}") + ->build(); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode(), $response->getMessage()); + + $results = $response->getResults(); + $this->assertEquals(8, $results[0]->the); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/functional/ObjectOperationsTest.php b/vendor/phpfastcache/riak-client/tests/functional/ObjectOperationsTest.php new file mode 100644 index 0000000000000000000000000000000000000000..911da779e00f9295be33c8228bdaf38744cc69de --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/functional/ObjectOperationsTest.php @@ -0,0 +1,215 @@ +<?php + +namespace Basho\Tests; + +use Basho\Riak\Command; + +/** + * Functional tests related to Key-Value objects + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class ObjectOperationsTest extends TestCase +{ + private static $key = ''; + + /** + * @var \Basho\Riak\DataObject|null + */ + private static $object = NULL; + + public static function setUpBeforeClass() + { + parent::setUpBeforeClass(); + + // make completely random key based on time + static::$key = md5(rand(0, 99) . time()); + } + + public function testStoreNewWithoutKey() + { + // build an object + $command = (new Command\Builder\StoreObject(static::$riak)) + ->buildObject('some_data') + ->buildBucket('users') + ->build(); + + $response = $command->execute(); + + // expects 201 - Created + $this->assertEquals('201', $response->getCode()); + $this->assertNotEmpty($response->getLocation()); + $this->assertInstanceOf('\Basho\Riak\Location', $response->getLocation()); + } + + public function testFetchNotFound() + { + $command = (new Command\Builder\FetchObject(static::$riak)) + ->buildLocation(static::$key, 'users') + ->build(); + + $response = $command->execute(); + + $this->assertEquals('404', $response->getCode()); + } + + /** + * @depends testFetchNotFound + */ + public function testStoreNewWithKey() + { + $command = (new Command\Builder\StoreObject(static::$riak)) + ->buildObject('some_data') + ->buildLocation(static::$key, 'users') + ->build(); + + $response = $command->execute(); + + // expects 204 - No Content + // this is wonky, its not 201 because the key may have been generated on another node + $this->assertEquals('204', $response->getCode()); + $this->assertEmpty($response->getLocation()); + } + + /** + * @depends testStoreNewWithKey + */ + public function testFetchOk() + { + $command = (new Command\Builder\FetchObject(static::$riak)) + ->buildLocation(static::$key, 'users') + ->build(); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode()); + $this->assertInstanceOf('Basho\Riak\DataObject', $response->getObject()); + $this->assertEquals('some_data', $response->getObject()->getData()); + $this->assertNotEmpty($response->getObject()->getVclock()); + + // confirm we are using the HTTP api bridge + if (static::$riak->getApi() instanceof \Basho\Riak\Api\Http) { + $headers = static::$riak->getApi()->getResponseHeaders(); + $this->assertNotEmpty($headers); + $this->assertNotEmpty($headers["Last-Modified"]); + $this->assertNotEmpty(new \DateTime($headers["Last-Modified"])); + } + + static::$object = $response->getObject(); + } + + /** + * @depends testFetchOk + */ + public function testStoreExisting() + { + $object = static::$object; + + $object->setData('some_new_data'); + + $command = (new Command\Builder\StoreObject(static::$riak)) + ->withObject($object) + ->buildLocation(static::$key, 'users') + ->build(); + + $response = $command->execute(); + + // 204 - No Content + $this->assertEquals('204', $response->getCode()); + } + + /** + * @depends testStoreExisting + */ + public function testDelete() + { + $command = (new Command\Builder\DeleteObject(static::$riak)) + ->buildLocation(static::$key, 'users') + ->build(); + + $response = $command->execute(); + + $this->assertEquals('204', $response->getCode()); + } + + /** + * @depends testDelete + */ + public function testFetchDeleted() + { + $command = (new Command\Builder\FetchObject(static::$riak)) + ->buildLocation(static::$key, 'users') + ->build(); + + $response = $command->execute(); + + $this->assertEquals('404', $response->getCode()); + + // deleted keys leave behind a tombstone with their causal context, aka vclock unless delete_immediate = 1 + //$this->assertNotEmpty($response->getVclock()); + } + + public function testListKeys() + { + $bucket = 'list-keys-php'; + $keys = ['key1','key2','key3','key4','key5']; + + $builder = (new Command\Builder\StoreObject(static::$riak)) + ->buildObject(true); + + foreach($keys as $key) { + $builder->buildLocation($key, $bucket)->build()->execute(); + } + + $response = (new Command\Builder\ListObjects(static::$riak)) + ->buildBucket($bucket) + ->acknowledgeRisk(true) + ->build() + ->execute(); + + $this->assertTrue($response->getKeys() >= count($keys)); + + $found = []; + foreach ($response->getKeys() as $location) { + if (in_array($location->getKey(), $keys)) { + $found[$location->getKey()] = 1; + } + } + + $this->assertEquals(count($found), count($keys)); + } + + public function testFetchAssociativeArray() + { + $data = ['myData' => 42]; + + $command = (new Command\Builder\StoreObject(static::$riak)) + ->buildLocation(static::$key, 'users') + ->buildJsonObject($data) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('204', $response->getCode()); + + // Fetch as associative array + $command = (new Command\Builder\FetchObject(static::$riak)) + ->buildLocation(static::$key, 'users') + ->withDecodeAsAssociative() + ->build(); + + $response = $command->execute(); + $this->assertEquals('200', $response->getCode()); + $this->assertEquals($data, $response->getObject()->getData()); + $this->assertEquals('array', gettype($response->getObject()->getData())); + + // Fetch normal to get as stdClass object + $command = (new Command\Builder\FetchObject(static::$riak)) + ->buildLocation(static::$key, 'users') + ->build(); + + $response = $command->execute(); + $this->assertEquals('200', $response->getCode()); + $this->assertEquals('object', gettype($response->getObject()->getData())); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/functional/PingTest.php b/vendor/phpfastcache/riak-client/tests/functional/PingTest.php new file mode 100644 index 0000000000000000000000000000000000000000..012f19cb400c2551b8aaea03b452e336e6111767 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/functional/PingTest.php @@ -0,0 +1,25 @@ +<?php + +namespace Basho\Tests; + +use Basho\Riak\Command; + +/** + * Functional test to ping Riak + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class PingTest extends TestCase +{ + public function testPing() + { + // build an object + $command = (new Command\Builder\Ping(static::$riak)) + ->build(); + + $response = $command->execute(); + + // expects 201 - Created + $this->assertEquals('200', $response->getCode()); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/functional/PreflistTest.php b/vendor/phpfastcache/riak-client/tests/functional/PreflistTest.php new file mode 100644 index 0000000000000000000000000000000000000000..8e9d6081994c04f02e42b00454c01dcf78e3b5e8 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/functional/PreflistTest.php @@ -0,0 +1,46 @@ +<?php + +namespace Basho\Tests; + +use Basho\Riak\Command; + +/** + * Class PreflistTest + * + * Functional tests related to Riak Preference lists + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class PreflistTest extends TestCase +{ + public function testFetch() + { + // build a store object command, get the location of the newly minted object + $location = (new Command\Builder\StoreObject(static::$riak)) + ->buildObject('some_data') + ->buildBucket('users') + ->build() + ->execute() + ->getLocation(); + + // build a fetch command + $command = (new Command\Builder\FetchPreflist(static::$riak)) + ->atLocation($location) + ->build(); + + try { + $response = $command->execute(); + if ($response->getCode() == 400) { + $this->markTestSkipped('preflists are not supported'); + } else { + $this->assertEquals(200, $response->getCode()); + $this->assertNotEmpty($response->getObject()->getData()->preflist); + $this->assertObjectHasAttribute("partition", $response->getObject()->getData()->preflist[0]); + $this->assertObjectHasAttribute("node", $response->getObject()->getData()->preflist[0]); + $this->assertObjectHasAttribute("primary", $response->getObject()->getData()->preflist[0]); + } + } catch (\Basho\Riak\Exception $e) { + $this->markTestSkipped('preflists are not supported'); + } + } +} diff --git a/vendor/phpfastcache/riak-client/tests/functional/SearchOperationsTest.php b/vendor/phpfastcache/riak-client/tests/functional/SearchOperationsTest.php new file mode 100644 index 0000000000000000000000000000000000000000..0f820aaa7dc309176bacb930ccdaa04237411c12 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/functional/SearchOperationsTest.php @@ -0,0 +1,261 @@ +<?php + +namespace Basho\Tests; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * Functional tests related to Counter CRDTs + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class SearchOperationsTest extends TestCase +{ + const SCHEMA = '_yz_default'; + const INDEX = 'player_index'; + + protected static $default_schema = ''; + + protected static $search_content = [ + 'tennis' => ['name_s' => 'T. Ennis', 'forward_i' => 1, 'position_s' => 'LW'], + 'zgirgensons' => ['name_s' => 'Z. Girgensons', 'forward_i' => 1, 'position_s' => 'C'], + 'rristolainen' => ['name_s' => 'R. Ristolainen', 'forward_i' => 0, 'position_s' => 'RD'], + 'zbogosian' => ['name_s' => 'Z. Bogosian', 'forward_i' => 0, 'position_s' => 'LD'], + 'alindback' => ['name_s' => 'A. Lindback', 'forward_i' => 0, 'position_s' => 'G'], + 'bgionta' => ['name_s' => 'B. Gionta', 'forward_i' => 1, 'position_s' => 'RW', 'captain_i' => 1], + ]; + + public static function setUpBeforeClass() + { + parent::setUpBeforeClass(); + + $response = (new Command\Builder\Search\FetchIndex(static::$riak)) + ->withName(static::INDEX) + ->build() + ->execute(); + + if ($response->getCode() == '200') { + (new Command\Builder\Search\DissociateIndex(static::$riak)) + ->buildBucket('sabres', self::SEARCH_BUCKET_TYPE) + ->build() + ->execute(); + + (new Command\Builder\Search\DeleteIndex(static::$riak)) + ->withName(static::INDEX) + ->build() + ->execute(); + } + } + + public static function tearDownAfterClass() + { + foreach (static::$search_content as $key => $object) { + (new Command\Builder\DeleteObject(static::$riak)) + ->buildLocation($key, 'sabres', self::SEARCH_BUCKET_TYPE) + ->build() + ->execute(); + } + + parent::tearDownAfterClass(); + } + + public function testFetchSchema() + { + $response = (new Command\Builder\Search\FetchSchema(static::$riak)) + ->withName('_yz_default') + ->build() + ->execute(); + + $this->assertEquals('200', $response->getCode(), $response->getMessage()); + $this->assertEquals('application/xml', $response->getContentType()); + $this->assertNotEmpty($response->getSchema()); + + static::$default_schema = $response->getSchema(); + } + + /** + * @depends testFetchSchema + */ + public function testStoreSchema() + { + $command = (new Command\Builder\Search\StoreSchema(static::$riak)) + ->withName('users') + ->withSchemaString(static::$default_schema) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('204', $response->getCode(), $response->getMessage()); + } + + public function testFetchIndexNotFound() + { + $command = (new Command\Builder\Search\FetchIndex(static::$riak)) + ->withName(static::INDEX) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('404', $response->getCode(), $response->getMessage()); + } + + /** + * @depends testFetchIndexNotFound + */ + public function testStoreIndex() + { + $command = (new Command\Builder\Search\StoreIndex(static::$riak)) + ->withName(static::INDEX) + ->usingSchema('_yz_default') + ->build(); + + $response = $command->execute(); + + $this->assertEquals('204', $response->getCode(), $response->getMessage()); + + $command = (new Command\Builder\Search\FetchIndex(static::$riak)) + ->withName(static::INDEX) + ->build(); + + $response = $command->execute(); + + // indexes take time to propagate between solr and Riak + $attempts = 1; + while ($response->getCode() <> '200' || $attempts <= 5) { + sleep(1); + $response = $command->execute(); + $attempts++; + } + + $this->assertEquals('200', $response->getCode(), $response->getMessage()); + $this->assertEquals(static::SCHEMA, $response->getIndex()->schema); + } + + /** + * @depends testStoreIndex + */ + public function testAssociateIndex() + { + $command = (new Command\Builder\Search\AssociateIndex(static::$riak)) + ->withName(static::INDEX) + ->buildBucket('sabres', self::SEARCH_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('204', $response->getCode(), $response->getMessage()); + } + + /** + * @depends testAssociateIndex + */ + public function testSearch() + { + foreach (static::$search_content as $key => $object) { + $command = (new Command\Builder\StoreObject(static::$riak)) + ->buildObject($object, ['Content-Type' => 'application/json']) + ->buildLocation($key, 'sabres', self::SEARCH_BUCKET_TYPE) + ->build(); + + $command->execute(); + } + + sleep(5); + + $command = (new Command\Builder\Search\FetchObjects(static::$riak)) + ->withQuery('name_s:*Gi*') + ->withIndexName(static::INDEX) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode(), $response->getMessage()); + $this->assertEquals(2, $response->getNumFound()); + + $docs = $response->getDocs(); + foreach ($docs as $d) { + $this->assertTrue('B. Gionta' == $d->name_s || 'Z. Girgensons' == $d->name_s); + } + } + + /** + * @depends testSearch + */ + public function testSearchWithSort() + { + $command = (new Command\Builder\Search\FetchObjects(static::$riak)) + ->withQuery('name_s:*Gi*') + ->withIndexName(static::INDEX) + ->withSortField("name_s asc") + ->build(); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode(), $response->getMessage()); + $this->assertEquals(2, $response->getNumFound()); + $this->assertEquals('B. Gionta', $response->getDocs()[0]->name_s); + } + + /** + * Tests handling of a badly formed query + * + * @depends testAssociateIndex + */ + public function testBadSearch() + { + $response = (new Command\Builder\Search\FetchObjects(static::$riak)) + ->withIndexName(static::INDEX) + ->withQuery('ffffff') + ->build() + ->execute(); + + $this->assertEquals('400', $response->getCode(), $response->getMessage()); + $this->assertEmpty($response->getNumFound()); + $this->assertEmpty($response->getDocs()); + } + + /** + * @depends testSearch + */ + public function testDissociateIndex() + { + $command = (new Command\Builder\Search\DissociateIndex(static::$riak)) + ->buildBucket('sabres', self::SEARCH_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('204', $response->getCode(), $response->getMessage()); + } + + /** + * @depends testDissociateIndex + */ + public function testDeleteIndex() + { + $command = (new Command\Builder\Search\DeleteIndex(static::$riak)) + ->withName(static::INDEX) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('204', $response->getCode(), $response->getMessage()); + + $command = (new Command\Builder\Search\FetchIndex(static::$riak)) + ->withName(static::INDEX) + ->build(); + + $response = $command->execute(); + + // indexes take time to propagate between solr and Riak + $attempts = 1; + while ($response->getCode() <> '404' || $attempts <= 5) { + sleep(1); + $response = $command->execute(); + $attempts++; + } + + $this->assertEquals('404', $response->getCode(), $response->getMessage()); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/functional/SecondaryIndexOperationsTest.php b/vendor/phpfastcache/riak-client/tests/functional/SecondaryIndexOperationsTest.php new file mode 100644 index 0000000000000000000000000000000000000000..3aae0caa5e9f81ace00adc07b1f8a0ac8a2717f2 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/functional/SecondaryIndexOperationsTest.php @@ -0,0 +1,299 @@ +<?php + +namespace Basho\Tests; + +use Basho\Riak\Command; +use Basho\Riak\DataObject as RObject; + +/** + * Functional tests related to secondary indexes + * + * @author Alex Moore <amoore at basho d0t com> + */ +class SecondaryIndexOperationsTest extends TestCase +{ + private static $key = ''; + private static $bucket = ''; + + /** + * @var \Basho\Riak\DataObject|null + */ + private static $object = NULL; + + /** + * @var array|null + */ + private static $vclock = NULL; + + public static function setUpBeforeClass() + { + parent::setUpBeforeClass(); + + // make completely random key/bucket based on time + static::$key = md5(rand(0, 99) . time()); + static::$bucket = md5(rand(0, 99) . time()); + } + + public function testStoreObjectWithIndexes() + { + $object = new RObject('person'); + $object->addValueToIndex('lucky_numbers_int', 42); + $object->addValueToIndex('lucky_numbers_int', 64); + $object->addValueToIndex('lastname_bin', 'Knuth'); + + $command = (new Command\Builder\StoreObject(static::$riak)) + ->withObject($object) + ->buildLocation(static::$key, 'Users', static::LEVELDB_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('204', $response->getCode()); + } + + /** + * @depends testStoreObjectWithIndexes + */ + public function testFetchObjectWithIndexes() + { + $command = (new Command\Builder\FetchObject(static::$riak)) + ->buildLocation(static::$key, 'Users', static::LEVELDB_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode()); + $this->assertInstanceOf('Basho\Riak\DataObject', $response->getObject()); + $this->assertEquals('person', $response->getObject()->getData()); + $this->assertNotEmpty($response->getObject()->getVClock()); + $indexes = $response->getObject()->getIndexes(); + $this->assertEquals($indexes['lucky_numbers_int'], [42, 64]); + $this->assertEquals($indexes['lastname_bin'], ['Knuth']); + + static::$object = $response->getObject(); + static::$vclock = $response->getObject()->getVClock(); + } + + /** + * @depends testFetchObjectWithIndexes + */ + public function testRemoveIndexes() + { + $object = static::$object; + $object->removeValueFromIndex('lucky_numbers_int', 64); + $object->removeValueFromIndex('lastname_bin', 'Knuth'); + $object->setVclock(static::$vclock); + + $command = (new Command\Builder\StoreObject(static::$riak)) + ->withObject($object) + ->buildLocation(static::$key, 'Users', static::LEVELDB_BUCKET_TYPE) + ->build(); + + // TODO: internalize Vclock to Riak\Object. + + $response = $command->execute(); + + $this->assertEquals('204', $response->getCode()); + + $command = (new Command\Builder\FetchObject(static::$riak)) + ->buildLocation(static::$key, 'Users', static::LEVELDB_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode()); + $this->assertInstanceOf('Basho\Riak\DataObject', $response->getObject()); + $this->assertEquals('person', $response->getObject()->getData()); + $indexes = $response->getObject()->getIndexes(); + $this->assertEquals($indexes['lucky_numbers_int'], [42]); + } + + public function testSetupIndexObjects() + { + for($x = 0; $x <= 1000; $x++) { + $object = (new RObject('student'.$x)) + ->addValueToIndex('lucky_numbers_int', $x) // 0,1,2... + ->addValueToIndex('group_int', $x % 2) // 0,0,1,1,2,2,3,3,... + ->addValueToIndex('grade_bin', chr(65 + ($x % 6))) // A,B,C,D,E,F,A... + ->addValueToIndex('lessThan500_bin', $x < 500 ? 'less' : 'more'); + + $command = (new Command\Builder\StoreObject(static::$riak)) + ->withObject($object) + ->buildLocation('student'.$x, 'Students'.static::$bucket, static::LEVELDB_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + $this->assertEquals('204', $response->getCode()); + } + } + + /** + * @depends testSetupIndexObjects + */ + public function testScalarQuery() + { + $command = (new Command\Builder\QueryIndex(static::$riak)) + ->buildBucket('Students'.static::$bucket, static::LEVELDB_BUCKET_TYPE) + ->withIndexName('lucky_numbers_int') + ->withScalarValue(5) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode()); + $this->assertEquals(1, count($response->getResults())); + $this->assertEquals('student5', $response->getResults()[0]); + } + + /** + * @depends testSetupIndexObjects + */ + public function testRangeQuery() + { + $command = (new Command\Builder\QueryIndex(static::$riak)) + ->buildBucket('Students'.static::$bucket, static::LEVELDB_BUCKET_TYPE) + ->withIndexName('grade_bin') + ->withRangeValue('A', 'B') + ->build(); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode()); + $matches = $response->getResults(); + sort($matches, SORT_NATURAL | SORT_FLAG_CASE); + $this->assertEquals(334, count($matches)); + $this->assertEquals(['student0','student1','student6','student7'], array_slice($matches, 0, 4)); + } + + /** + * @depends testSetupIndexObjects + */ + public function testReturnTerms() + { + $keysAndTerms = [['A' => 'student0'], ['B' => 'student1'], ['A' => 'student6'], ['B' => 'student7']]; + + $command = (new Command\Builder\QueryIndex(static::$riak)) + ->buildBucket('Students'.static::$bucket, static::LEVELDB_BUCKET_TYPE) + ->withIndexName('grade_bin') + ->withRangeValue('A', 'B') + ->withReturnTerms(true) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode()); + $matches = $response->getResults(); + usort($matches, function($a, $b) { return strnatcmp(current($a), current($b)); }); + + $this->assertEquals(334, count($matches)); + $this->assertTrue($response->hasReturnTerms()); + $this->assertEquals($keysAndTerms, array_slice($matches, 0, 4)); + } + + + + /** + * @depends testSetupIndexObjects + */ + public function testGettingKeysWithContinuationWorks() + { + $builder = (new Command\Builder\QueryIndex(static::$riak)) + ->buildBucket('Students'.static::$bucket, static::LEVELDB_BUCKET_TYPE) + ->withIndexName('lucky_numbers_int') + ->withRangeValue(0,3) + ->withMaxResults(3); + + // Get first page + $command = $builder->build(); + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode()); + $this->assertEquals(3, count($response->getResults())); + $this->assertNotNull($response->getContinuation()); + $this->assertFalse($response->isDone()); + + // Get second page + $builder = $builder->withContinuation($response->getContinuation()); + $command2 = $builder->build(); + + $response2 = $command2->execute(); + + $this->assertEquals('200', $response2->getCode()); + $this->assertEquals(1, count($response2->getResults())); + $this->assertNull($response2->getContinuation()); + $this->assertTrue($response2->isDone()); + } + + /** + * @depends testSetupIndexObjects + */ + public function testTimeoutWorks() + { + $this->markTestSkipped('It is a weak test since it depends on local processing speed.'); + + $builder = (new Command\Builder\QueryIndex(static::$riak)) + ->buildBucket('Students' . static::$bucket, static::LEVELDB_BUCKET_TYPE) + ->withIndexName('lucky_numbers_int') + ->withRangeValue(0, 1000) + ->withTimeout(1); + + // Get first page + $command = $builder->build(); + $response = $command->execute(); + $this->assertFalse($response->isSuccess()); + $this->assertContains($response->getCode(), ['500', '503']); + $this->assertEquals(0, count($response->getResults())); + $this->assertNull($response->getContinuation()); + $this->assertTrue($response->isDone()); + } + + /** + * @depends testSetupIndexObjects + */ + public function testUsingPaginationSortWillSortResultsWhilePaging() + { + $builder = (new Command\Builder\QueryIndex(static::$riak)) + ->buildBucket('Students'.static::$bucket, static::LEVELDB_BUCKET_TYPE) + ->withIndexName('lucky_numbers_int') + ->withRangeValue(0,500) + ->withMaxResults(10) + ->withReturnTerms(true); + + // Get first page + $command = $builder->build(); + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode()); + $this->assertEquals(['0' => 'student0'], $response->getResults()[0]); + + // Get second page + $builder = $builder->withContinuation($response->getContinuation()); + $command2 = $builder->build(); + + $response2 = $command2->execute(); + + $this->assertEquals('200', $response2->getCode()); + $this->assertEquals(10, count($response2->getResults())); + $this->assertEquals(['10' => 'student10'], $response2->getResults()[0]); + } + + + /** + * @depends testSetupIndexObjects + */ + public function testUsingTermRegexOnARangeFiltersTheResults() + { + $builder = (new Command\Builder\QueryIndex(static::$riak)) + ->buildBucket('Students' . static::$bucket, static::LEVELDB_BUCKET_TYPE) + ->withIndexName('lessThan500_bin') + ->withRangeValue('a', 'z') + ->withTermFilter('^less'); + + // Get first page + $command = $builder->build(); + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode()); + $this->assertEquals(500, count($response->getResults())); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/functional/SecurityFeaturesTest.php b/vendor/phpfastcache/riak-client/tests/functional/SecurityFeaturesTest.php new file mode 100644 index 0000000000000000000000000000000000000000..51520934f358da0243f888ca3edddec6abbec156 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/functional/SecurityFeaturesTest.php @@ -0,0 +1,66 @@ +<?php + +namespace Basho\Tests; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * Functional tests verifying TSL features + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class SecurityFeaturesTest extends TestCase +{ + public function testUnauthorized() + { + $nodes = [ + (new Riak\Node\Builder()) + ->atHost(static::getTestHost()) + ->onPort(static::getTestSecurePort()) + ->usingPasswordAuthentication('unauthorizeduser', 'hispassword') + ->withCertificateAuthorityFile(getcwd() . '/tools/test-ca/certs/cacert.pem') + ->build() + ]; + + $riak = new Riak($nodes); + + // build an object + $command = (new Command\Builder\StoreObject($riak)) + ->buildObject('some_data') + ->buildBucket('users') + ->build(); + + $response = $command->execute(); + + // expects 401 - Unauthorized + $this->assertEquals('401', $response->getCode()); + } + + public function testPasswordAuth() + { + $nodes = [ + (new Riak\Node\Builder()) + ->atHost(static::getTestHost()) + ->onPort(static::getTestSecurePort()) + ->usingPasswordAuthentication('riakpass', 'Test1234') + ->withCertificateAuthorityFile(getcwd() . '/tools/test-ca/certs/cacert.pem') + ->build() + ]; + + $riak = new Riak($nodes); + + // build an object + $command = (new Command\Builder\StoreObject($riak)) + ->buildObject('some_data') + ->buildBucket('users') + ->build(); + + $response = $command->execute(); + + // expects 201 - Created + $this->assertEquals('201', $response->getCode(), $response->getMessage()); + $this->assertNotEmpty($response->getLocation()); + $this->assertInstanceOf('\Basho\Riak\Location', $response->getLocation()); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/functional/SetOperationsTest.php b/vendor/phpfastcache/riak-client/tests/functional/SetOperationsTest.php new file mode 100644 index 0000000000000000000000000000000000000000..b10a236dea9bade72b8c4c71ddf99e124298a0cd --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/functional/SetOperationsTest.php @@ -0,0 +1,202 @@ +<?php + +namespace Basho\Tests; + +use Basho\Riak\Command; + +/** + * Functional tests related to Set CRDTs + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class SetTest extends TestCase +{ + /** + * Key to be used for tests + * + * @var string + */ + private static $key = ''; + + /** + * Array of context generated from working with the same Set + * + * @var array + */ + private static $context = []; + + public static function setUpBeforeClass() + { + parent::setUpBeforeClass(); + + // make completely random key based on time + static::$key = md5(rand(0, 99) . time()); + } + + public function testAddWithoutKey() + { + // build an object + $command = (new Command\Builder\UpdateSet(static::$riak)) + ->add('gosabres poked you.') + ->add('phprocks viewed your profile.') + ->add('phprocks started following you.') + ->buildBucket('default', static::SET_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + // expects 201 - Created + $this->assertEquals('201', $response->getCode()); + $this->assertNotEmpty($response->getLocation()); + } + + public function testFetchNotFound() + { + $command = (new Command\Builder\FetchSet(static::$riak)) + ->buildLocation(static::$key, 'default', static::SET_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('404', $response->getCode()); + } + + /** + * @depends testFetchNotFound + */ + public function testAddNewWithKey() + { + $command = (new Command\Builder\UpdateSet(static::$riak)) + ->add('Sabres') + ->add('Canadiens') + ->add('Bruins') + ->add('Maple Leafs') + ->add('Senators') + ->add('Red Wings') + ->add('Thrashers') + ->buildLocation(static::$key, 'Teams', static::SET_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + // expects 204 - No Content + // this is wonky, its not 201 because the key may have been generated on another node + $this->assertEquals('204', $response->getCode()); + $this->assertEmpty($response->getLocation()); + + $command = (new Command\Builder\FetchSet(static::$riak)) + ->buildLocation(static::$key, 'Teams', static::SET_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode()); + $this->assertInstanceOf('Basho\Riak\DataType\Set', $response->getSet()); + $this->assertNotEmpty($response->getSet()->getData()); + $this->assertTrue(is_array($response->getSet()->getData())); + $this->assertEquals(7, count($response->getSet()->getData())); + $this->assertNotEmpty($response->getSet()->getContext()); + + static::$context[] = $response->getSet()->getContext(); + } + + /** + * @depends testAddNewWithKey + */ + public function testAddAnotherNew() + { + // add without context + $command = (new Command\Builder\UpdateSet(static::$riak)) + ->add('Lightning') + ->buildLocation(static::$key, 'Teams', static::SET_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + // 204 - No Content + $this->assertEquals('204', $response->getCode()); + + $command = (new Command\Builder\FetchSet(static::$riak)) + ->buildLocation(static::$key, 'Teams', static::SET_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode()); + $this->assertInstanceOf('Basho\Riak\DataType\Set', $response->getSet()); + $this->assertNotEmpty($response->getSet()->getData()); + $this->assertTrue(is_array($response->getSet()->getData())); + $this->assertEquals(8, count($response->getSet()->getData())); + + static::$context[] = $response->getSet()->getContext(); + } + + /** + * @depends testAddNewWithKey + */ + public function testRemoveExisting() + { + // using stale context + $command = (new Command\Builder\UpdateSet(static::$riak)) + ->remove('Thrashers') + ->buildLocation(static::$key, 'Teams', static::SET_BUCKET_TYPE) + ->withContext(static::$context[0]) + ->build(); + + $response = $command->execute(); + + // 204 - No Content + $this->assertEquals('204', $response->getCode()); + + $command = (new Command\Builder\FetchSet(static::$riak)) + ->buildLocation(static::$key, 'Teams', static::SET_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode()); + $this->assertInstanceOf('Basho\Riak\DataType\Set', $response->getSet()); + $this->assertNotEmpty($response->getSet()->getData()); + $this->assertTrue(is_array($response->getSet()->getData())); + $this->assertEquals(7, count($response->getSet()->getData())); + + static::$context[] = $response->getSet()->getContext(); + } + + /** + * @depends testRemoveExisting + */ + public function testAddRemoveExisting() + { + // using latest context + $command = (new Command\Builder\UpdateSet(static::$riak)) + ->add('Penguins') + ->add('Ducks') + ->remove('Lightning') + ->remove('Red Wings') + ->buildLocation(static::$key, 'Teams', static::SET_BUCKET_TYPE) + ->withContext(end(static::$context)) + ->build(); + + $response = $command->execute(); + + // 204 - No Content + $this->assertEquals('204', $response->getCode()); + + $command = (new Command\Builder\FetchSet(static::$riak)) + ->buildLocation(static::$key, 'Teams', static::SET_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode()); + $this->assertInstanceOf('Basho\Riak\DataType\Set', $response->getSet()); + $this->assertNotEmpty($response->getSet()->getData()); + $this->assertTrue(is_array($response->getSet()->getData())); + $this->assertEquals(7, count($response->getSet()->getData())); + $this->assertTrue(in_array('Ducks', $response->getSet()->getData())); + $this->assertFalse(in_array('Lightning', $response->getSet()->getData())); + + static::$context[] = $response->getSet()->getContext(); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/functional/TimeSeriesOperationsTest.php b/vendor/phpfastcache/riak-client/tests/functional/TimeSeriesOperationsTest.php new file mode 100644 index 0000000000000000000000000000000000000000..fa40ccc27fd73762db9b57bdef62a55d91f43bd0 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/functional/TimeSeriesOperationsTest.php @@ -0,0 +1,291 @@ +<?php + +namespace Basho\Tests; + +use Basho\Riak; +use Basho\Riak\Command; +use Basho\Riak\TimeSeries\Cell; + +/** + * Functional tests related to TimeSeries operations + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class TimeSeriesOperationsTest extends TestCase +{ + use TimeSeriesTrait; + + protected static $ts15 = false; + + public static function setUpBeforeClass() + { + parent::setUpBeforeClass(); + + static::populateKey(); + + $response = (new Command\Builder\TimeSeries\DescribeTable(static::$riak)) + ->withTable(static::$table) + ->build() + ->execute(); + + if ($response->getCode() == '404') { + (new Command\Builder\TimeSeries\Query(static::$riak)) + ->withQuery(static::tableDefinition()) + ->build() + ->execute(); + } + + $response = (new Command\Builder\TimeSeries\DescribeTable(static::$riak)) + ->withTable(static::$tableBlob) + ->build() + ->execute(); + + if ($response->getCode() != '404') { + static::$ts15 = true; + } + } + + public static function tearDownAfterClass() + { + parent::tearDownAfterClass(); + } + + public function testFetchTableDescriptionNotFound() + { + $command = (new Command\Builder\TimeSeries\DescribeTable(static::$riak)) + ->withTable(static::$table . 'notfound') + ->build(); + + $this->assertInstanceOf('Basho\Riak\Command\TimeSeries\Query\Fetch', $command); + + $response = $command->execute(); + + $this->assertEquals('404', $response->getCode(), $response->getMessage()); + } + + public function testCreateTable() + { + $command = (new Command\Builder\TimeSeries\Query(static::$riak)) + ->withQuery(static::tableDefinition(static::$table . rand(0, 1000))) + ->build(); + + $response = $command->execute(); + + $this->assertContains($response->getCode(), ['200', '204'], $response->getMessage()); + } + + public function testFetchTableDescription() + { + $command = (new Command\Builder\TimeSeries\DescribeTable(static::$riak)) + ->withTable(static::$table) + ->build(); + + $this->assertInstanceOf('Basho\Riak\Command\TimeSeries\Query\Fetch', $command); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode(), $response->getMessage()); + $this->assertNotEmpty($response->getResults()); + $this->assertCount(7, $response->getResults()); + $this->assertGreaterThanOrEqual(5, $response->getResult()); + } + + public function testFetchRowNotFound() + { + $response = (new Command\Builder\TimeSeries\FetchRow(static::$riak)) + ->atKey(static::$key) + ->inTable(static::$table . 'notfound') + ->build() + ->execute(); + + $this->assertEquals('404', $response->getCode(), $response->getMessage()); + } + + public function testQueryNotFound() + { + $response = (new Command\Builder\TimeSeries\Query(static::$riak)) + ->withQuery("select * from " . self::$table . " where time > 0 and time < 10 and region = 'South Atlantic' and state = 'South Carolina'") + ->build() + ->execute(); + + $this->assertContains($response->getCode(), ['200', '204'], $response->getMessage()); + $this->assertCount(0, $response->getResults()); + } + + public function testStoreRow() + { + $response = (new Command\Builder\TimeSeries\StoreRows(static::$riak)) + ->inTable(static::$table) + ->withRow(static::generateRow()) + ->build() + ->execute(); + + $this->assertContains($response->getCode(), ['200', '204'], $response->getMessage()); + } + + public function testFetchRow() + { + /** @var Command\TimeSeries\Response $response */ + $response = (new Command\Builder\TimeSeries\FetchRow(static::$riak)) + ->atKey(static::$key) + ->inTable(static::$table) + ->build() + ->execute(); + + $this->assertEquals('200', $response->getCode(), $response->getMessage()); + $this->assertCount(7, $response->getRow()); + + if (static::$riak->getApi() instanceof Riak\Api\Pb) { + $this->assertEquals("region", $response->getRow()[0]->getName()); + $this->assertEquals("South Atlantic", $response->getRow()[0]->getValue()); + $this->assertEquals("varchar", $response->getRow()[0]->getType()); + + $this->assertEquals("uv_index", $response->getRow()[5]->getName()); + $this->assertEquals(10, $response->getRow()[5]->getValue()); + $this->assertEquals("sint64", $response->getRow()[5]->getType()); + } else { + $this->assertEquals("South Atlantic", $response->getRow()['region']); + $this->assertEquals(10, $response->getRow()['uv_index']); + } + } + + public function testStoreRows() + { + $response = (new Command\Builder\TimeSeries\StoreRows(static::$riak)) + ->inTable(static::$table) + ->withRows(static::generateRows()) + ->build() + ->execute(); + + $this->assertContains($response->getCode(), ['200', '204'], $response->getMessage()); + } + + /** + * @depends testStoreRows + */ + public function testQuery() + { + $upper_bound = static::$now->getTimestamp() + 1; + $lower_bound = static::oneHourAgo() - 1; + + $response = (new Command\Builder\TimeSeries\Query(static::$riak)) + ->withQuery("select * from " . static::$table . " where region = 'South Atlantic' and state = 'South Carolina' and (time > {$lower_bound} and time < {$upper_bound})") + ->build() + ->execute(); + + $this->assertEquals('200', $response->getCode(), $response->getMessage()); + $this->assertCount(2, $response->getResults()); + $this->assertCount(7, $response->getResult()); + if (static::$riak->getApi() instanceof Riak\Api\Pb) { + $this->assertEquals('South Atlantic', $response->getResults()[0][0]->getValue()); + } else { + $this->assertEquals('South Atlantic', $response->getResult()['region']); + } + } + + /** + * @depends testStoreRow + */ + public function testDeleteRow() + { + $response = (new Command\Builder\TimeSeries\DeleteRow(static::$riak)) + ->atKey(static::$key) + ->inTable(static::$table) + ->build() + ->execute(); + + $this->assertContains($response->getCode(), ['200', '204'], $response->getMessage()); + } + + public function testStoreBlobRow() + { + if (!static::$ts15) { + $this->markTestSkipped('BLOB storage is not supported in Riak TS <1.5.'); + } + + $key = [ + (new Cell("geohash"))->setValue("hash1"), + (new Cell("user"))->setValue("user1"), + (new Cell("time"))->setTimestampValue(static::$now->getTimestamp()), + ]; + + $row = $key; + $row[] = (new Cell("weather"))->setValue("cloudy"); + $row[] = (new Cell("temperature"))->setDoubleValue(19.1); + $row[] = (new Cell("uv_index"))->setIntValue(15); + $row[] = (new Cell("observed"))->setBooleanValue(false); + $row[] = (new Cell("sensor_data"))->setBlobValue(file_get_contents(__DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . static::TEST_IMG)); + + $command = (new Command\Builder\TimeSeries\StoreRows(static::$riak)) + ->inTable(static::$tableBlob) + ->withRow($row) + ->build(); + + $response = $command->execute(); + + $this->assertContains($response->getCode(), ['200', '204'], $response->getMessage()); + + /** @var Command\TimeSeries\Response $response */ + $response = (new Command\Builder\TimeSeries\FetchRow(static::$riak)) + ->atKey($key) + ->inTable(static::$tableBlob) + ->build() + ->execute(); + + $this->assertEquals('200', $response->getCode(), $response->getMessage()); + $this->assertCount(8, $response->getRow()); + + if (getenv('PB_INTERFACE')) { + $this->assertEquals($row[7]->getValue(), $response->getRow()[7]->getValue()); + } else { + $b64 = base64_encode($row[7]->getValue()); + $this->assertEquals($b64, $response->getRow()['sensor_data']); + } + } + + public function testStoreNullBlob() + { + if (!static::$ts15) { + $this->markTestSkipped('BLOB storage is not supported in Riak TS <1.5.'); + } + + $key = [ + (new Cell("geohash"))->setValue("hash1"), + (new Cell("user"))->setValue("user1"), + (new Cell("time"))->setTimestampValue(static::oneHourAgo()), + ]; + + $row = $key; + $row[] = (new Cell("weather"))->setValue("cloudy"); + $row[] = (new Cell("temperature"))->setDoubleValue(19.1); + $row[] = (new Cell("uv_index"))->setIntValue(15); + $row[] = (new Cell("observed"))->setBooleanValue(false); + $row[] = (new Cell("sensor_data"))->setBlobValue(file_get_contents(__DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . static::TEST_IMG)); + + $command = (new Command\Builder\TimeSeries\StoreRows(static::$riak)) + ->inTable(static::$tableBlob) + ->withRow($row) + ->build(); + + $response = $command->execute(); + + $this->assertContains($response->getCode(), ['200', '204'], $response->getMessage()); + + /** @var Command\TimeSeries\Response $response */ + $response = (new Command\Builder\TimeSeries\FetchRow(static::$riak)) + ->atKey($key) + ->inTable(static::$tableBlob) + ->build() + ->execute(); + + $this->assertEquals('200', $response->getCode(), $response->getMessage()); + $this->assertCount(8, $response->getRow()); + + if (getenv('PB_INTERFACE')) { + $this->assertEquals($row[7]->getValue(), $response->getRow()[7]->getValue()); + } else { + $b64 = base64_encode($row[7]->getValue()); + $this->assertEquals($b64, $response->getRow()['sensor_data']); + } + } +} diff --git a/vendor/phpfastcache/riak-client/tests/scenario/EncodedDataTest.php b/vendor/phpfastcache/riak-client/tests/scenario/EncodedDataTest.php new file mode 100644 index 0000000000000000000000000000000000000000..72351b0ab07232307627a7e8c21bb878a8d29b4f --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/scenario/EncodedDataTest.php @@ -0,0 +1,113 @@ +<?php + +namespace Basho\Tests; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * Scenario tests for when storing / retrieving binary data + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class EncodedDataTest extends TestCase +{ + const BUCKET = "encodeddata"; + const BASE64_KEY = "base64"; + const BINARY_KEY = "binary.png"; + const TEST_CONTENT_TYPE = "image/png"; + + /** + * Test storing and fetching an image represented in base64 encoding + */ + public function testBase64EncodedData() { + $image = file_get_contents(__DIR__ . DIRECTORY_SEPARATOR . ".." . DIRECTORY_SEPARATOR . static::TEST_IMG); + + $object = (new Riak\DataObject($image))->setContentEncoding("base64")->setContentType(static::TEST_CONTENT_TYPE); + + $storeCommand = (new Command\Builder\StoreObject(static::$riak)) + ->withObject($object) + ->buildLocation(static::BASE64_KEY, static::BUCKET) + ->build(); + + $response = $storeCommand->execute(); + + $this->assertEquals('204', $response->getCode()); + + $fetchCommand = (new Command\Builder\FetchObject(static::$riak)) + ->buildLocation(static::BASE64_KEY, static::BUCKET) + ->build(); + + $response = $fetchCommand->execute(); + + $this->assertEquals('200', $response->getCode()); + $this->assertInstanceOf('Basho\Riak\DataObject', $response->getObject()); + $this->assertEquals(static::TEST_CONTENT_TYPE, $response->getObject()->getContentType()); + $this->assertEquals(base64_encode($image), $storeCommand->getEncodedData()); + $this->assertEquals($storeCommand->getEncodedData(), $response->getObject()->getData()); + $this->assertEquals(md5($storeCommand->getEncodedData()), md5($response->getObject()->getData())); + } + + /** + * Test storing and fetching an image as a base64 embedded HTML img tag so it can be accessed via the browser + */ + public function testNoEncoding() { + $image = file_get_contents(__DIR__ . DIRECTORY_SEPARATOR . ".." . DIRECTORY_SEPARATOR . static::TEST_IMG); + + $object = (new Riak\DataObject('<img src="data:image/png;base64,' . base64_encode($image) . '"/>'))->setContentEncoding("none")->setContentType("text/html"); + + $storeCommand = (new Command\Builder\StoreObject(static::$riak)) + ->withObject($object) + ->buildLocation(static::BASE64_KEY . '.png', static::BUCKET) + ->build(); + + $response = $storeCommand->execute(); + + $this->assertEquals('204', $response->getCode()); + $this->assertEquals(md5($object->getData()), md5($storeCommand->getEncodedData())); + + $fetchCommand = (new Command\Builder\FetchObject(static::$riak)) + ->buildLocation(static::BASE64_KEY . '.png', static::BUCKET) + ->build(); + + $response = $fetchCommand->execute(); + + $this->assertEquals('200', $response->getCode()); + $this->assertInstanceOf('Basho\Riak\DataObject', $response->getObject()); + $this->assertEquals($object->getData(), $response->getObject()->getData()); + } + + /** + * Test storing and fetching a Binary image + */ + public function testBinaryData() { + $image = file_get_contents(__DIR__ . DIRECTORY_SEPARATOR . ".." . DIRECTORY_SEPARATOR . static::TEST_IMG); + $md5 = md5($image); + + $object = (new Riak\DataObject($image))->setContentEncoding("binary")->setContentType(static::TEST_CONTENT_TYPE); + + $storeCommand = (new Command\Builder\StoreObject(static::$riak)) + ->withObject($object) + ->buildLocation(static::BINARY_KEY, static::BUCKET) + ->build(); + + $response = $storeCommand->execute(); + + $this->assertEquals('204', $response->getCode()); + $this->assertEquals($md5, md5($storeCommand->getEncodedData())); + + $fetchCommand = (new Command\Builder\FetchObject(static::$riak)) + ->buildLocation(static::BINARY_KEY, static::BUCKET) + ->build(); + + $response = $fetchCommand->execute(); + + $this->assertEquals('200', $response->getCode()); + $this->assertInstanceOf('Basho\Riak\DataObject', $response->getObject()); + $this->assertEquals(static::TEST_CONTENT_TYPE, $response->getObject()->getContentType()); + + // Since Riak doesn't return ContentEncoding used to store the object, we have to access + // the raw_data retrieved in the response to avoid data corruption from rawurldecode + $this->assertEquals($md5, md5($response->getObject()->getRawData())); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/scenario/InternalServerErrorTest.php b/vendor/phpfastcache/riak-client/tests/scenario/InternalServerErrorTest.php new file mode 100644 index 0000000000000000000000000000000000000000..cb3623c69123f22f7db1e292b808b42cebe84f74 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/scenario/InternalServerErrorTest.php @@ -0,0 +1,29 @@ +<?php + +namespace Basho\Tests; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * Scenario tests for when an internal server error occurs + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class InternalServerErrorTest extends TestCase +{ + /** + * Currently not executable on any Riak instance configured for multi-backend + * @expectedException \Basho\Riak\Exception + */ + public function testQueryInvalidIndex() + { + $command = (new Command\Builder\QueryIndex(static::$riak)) + ->buildBucket('Students', static::BITCASK_BUCKET_TYPE) + ->withIndexName('index_not_found_int') + ->withScalarValue(5) + ->build(); + + $command->execute(); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/scenario/NodeUnreachableTest.php b/vendor/phpfastcache/riak-client/tests/scenario/NodeUnreachableTest.php new file mode 100644 index 0000000000000000000000000000000000000000..c5f901f625f62b50d3ef20f0abc0c81f64ee37ba --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/scenario/NodeUnreachableTest.php @@ -0,0 +1,78 @@ +<?php + +namespace Basho\Tests; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * Scenario tests for when Nodes become unreachable + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class NodeUnreachableTest extends TestCase +{ + /** + * @expectedException \Basho\Riak\Exception + */ + public function testUnreachableNode() + { + $nodes = $this->getCluster(); + $riak = new Riak([$nodes[0]]); + $response = (new Command\Builder\Ping($riak)) + ->withConnectionTimeout(1) + ->build() + ->execute(); + + $this->assertFalse($response); + } + + /** + * @expectedException \Basho\Riak\Exception + */ + public function testUnreachableNodes() + { + $riak = new Riak($this->getCluster()); + $response = (new Command\Builder\Ping($riak)) + ->withConnectionTimeout(1) + ->build() + ->execute(); + + $this->assertFalse($response); + } + + /** + * @expectedException \Basho\Riak\Exception + */ + public function testMaxConnections() + { + // grab three unreachable nodes + $nodes = $this->getCluster(); + + $riak = new Riak($nodes, ['max_connect_attempts' => 2]); + $response = (new Command\Builder\Ping($riak)) + ->withConnectionTimeout(1) + ->build() + ->execute(); + + $this->assertFalse($response); + } + + public function testReachableNodeInCluster() + { + // grab three unreachable nodes + $nodes = $this->getCluster(); + + // replace third one with reachable node + $nodes[2] = $this->getLocalNode(); + + $riak = new Riak($nodes, ['max_connect_attempts' => 3], static::getApiBridgeClass()); + $response = (new Command\Builder\Ping($riak)) + ->withConnectionTimeout(1) + ->build() + ->execute(); + + $this->assertInstanceOf('Basho\Riak\Command\Response', $response); + $this->assertTrue($response->isSuccess()); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/scenario/ObjectConflictTest.php b/vendor/phpfastcache/riak-client/tests/scenario/ObjectConflictTest.php new file mode 100644 index 0000000000000000000000000000000000000000..4301dd1610bb57fb828f206adb0af880fd7805e3 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/scenario/ObjectConflictTest.php @@ -0,0 +1,90 @@ +<?php + +namespace Basho\Tests; + +use Basho\Riak; +use Basho\Riak\Command; + +/** + * Scenario tests for when Kv Object changes result in a conflict + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class ObjectConflictTest extends TestCase +{ + private static $key = 'conflicted'; + private static $vclock = ''; + + public function testStoreTwiceWithKey() + { + $command = (new Command\Builder\StoreObject(static::$riak)) + ->buildObject('some_data') + ->buildLocation(static::$key, 'test', static::LEVELDB_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('204', $response->getCode()); + + $command = (new Command\Builder\StoreObject(static::$riak)) + ->buildObject('some_other_data') + ->buildLocation(static::$key, 'test', static::LEVELDB_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('204', $response->getCode()); + } + + /** + * @depends testStoreTwiceWithKey + */ + public function testFetchConflicted() + { + $command = (new Command\Builder\FetchObject(static::$riak)) + ->buildLocation(static::$key, 'test', static::LEVELDB_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('300', $response->getCode()); + $this->assertTrue($response->hasSiblings()); + $this->assertNotEmpty($response->getSiblings()); + $this->assertNotEmpty($response->getObject()->getVclock()); + + static::$vclock = $response->getObject()->getVclock(); + } + + /** + * @depends testFetchConflicted + */ + public function testResolveConflict() + { + $object = new Riak\DataObject('some_resolved_data'); + $object->setVclock(static::$vclock); + + $command = (new Command\Builder\StoreObject(static::$riak)) + ->withObject($object) + ->buildLocation(static::$key, 'test', static::LEVELDB_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('204', $response->getCode()); + } + + /** + * @depends testResolveConflict + */ + public function testFetchResolved() + { + $command = (new Command\Builder\FetchObject(static::$riak)) + ->buildLocation(static::$key, 'test', static::LEVELDB_BUCKET_TYPE) + ->build(); + + $response = $command->execute(); + + $this->assertEquals('200', $response->getCode()); + $this->assertEquals('some_resolved_data', $response->getObject()->getData()); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/Api/Translator/SecondaryIndexTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/Api/Translator/SecondaryIndexTest.php new file mode 100644 index 0000000000000000000000000000000000000000..78f18b7a951763900188c675728d613befc82812 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/Api/Translator/SecondaryIndexTest.php @@ -0,0 +1,57 @@ +<?php + +namespace Basho\Tests\Riak; + +use Basho\Riak\Api; +use Basho\Tests\TestCase; + +/** + * Test set for the HTTP Header <-> Secondary Index translator + * + * @author Alex Moore <amoore at basho d0t com> + */ +class SecondaryIndexTest extends TestCase +{ + public function testExtractIndexes() + { + $headers = ['My-Header' => 'cats', 'x-riak-index-foo_bin' => 'bar, baz', 'x-riak-index-foo_int' => '42, 50']; + $translator = new Api\Http\Translator\SecondaryIndex(); + + $indexes = $translator->extractIndexesFromHeaders($headers); + + // Check that array was modified, and only the non-index header is left. + $this->assertEquals(['My-Header' => 'cats'], $headers); + + // Check that we have 2 indexes, with the appropriate values. + $this->assertNotEmpty($indexes); + $this->assertEquals(2, count($indexes)); + $this->assertEquals(['bar', 'baz'], $indexes["foo_bin"]); + $this->assertEquals([42, 50], $indexes["foo_int"]); + } + + public function testExtractIndexesNoHeaders() + { + $headers = []; + $translator = new Api\Http\Translator\SecondaryIndex(); + $indexes = $translator->extractIndexesFromHeaders($headers); + + // Check that we get an empty array back. + $this->assertNotNull($indexes); + $this->assertEmpty($indexes); + } + + public function testCreateHeaders() + { + $indexes = ['foo_bin' => ['bar', 'baz'], 'foo_int' => [42, 50]]; + $translator = new Api\Http\Translator\SecondaryIndex(); + + $headers = $translator->createHeadersFromIndexes($indexes); + + // Check that 4 different header key/value pairs are created, with the correct values. + $this->assertEquals(4, count($headers)); + $this->assertEquals(['x-riak-index-foo_bin', 'bar'], $headers[0]); + $this->assertEquals(['x-riak-index-foo_bin', 'baz'], $headers[1]); + $this->assertEquals(['x-riak-index-foo_int', '42'], $headers[2]); + $this->assertEquals(['x-riak-index-foo_int', '50'], $headers[3]); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/FetchCounterTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/FetchCounterTest.php new file mode 100644 index 0000000000000000000000000000000000000000..234181e26fb7f7b5b45fef3ae59fb871c23623e0 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/FetchCounterTest.php @@ -0,0 +1,49 @@ +<?php + +namespace Basho\Tests\Riak\Command\Builder; + +use Basho\Riak\Command; +use Basho\Tests\TestCase; + +/** + * Tests the configuration of Riak commands via the Command Builder class + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class FetchCounterTest extends TestCase +{ + /** + * Test command builder construct + */ + public function testFetch() + { + // build an object + $builder = new Command\Builder\FetchCounter(static::$riak); + $builder->buildLocation('some_key', 'some_bucket'); + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\DataType\Counter\Fetch', $command); + $this->assertInstanceOf('Basho\Riak\Bucket', $command->getBucket()); + $this->assertInstanceOf('Basho\Riak\Location', $command->getLocation()); + $this->assertEquals('some_bucket', $command->getBucket()->getName()); + $this->assertEquals('default', $command->getBucket()->getType()); + $this->assertEquals('some_key', $command->getLocation()->getKey()); + + $builder->buildLocation('some_key', 'some_bucket', 'some_type'); + $command = $builder->build(); + + $this->assertEquals('some_type', $command->getBucket()->getType()); + } + + /** + * Tests validate properly verifies the Location is not there + * + * @expectedException \Basho\Riak\Command\Builder\Exception + */ + public function testValidateLocation() + { + $builder = new Command\Builder\FetchCounter(static::$riak); + $builder->buildBucket('some_bucket'); + $builder->build(); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/FetchHllTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/FetchHllTest.php new file mode 100644 index 0000000000000000000000000000000000000000..3e5b3d7e60113518062dac22356ecb87ead28041 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/FetchHllTest.php @@ -0,0 +1,49 @@ +<?php + +namespace Basho\Tests\Riak\Command\Builder; + +use Basho\Riak\Command; +use Basho\Tests\TestCase; + +/** + * Tests the configuration of Riak commands via the Command Builder class + * + * @author Luke Bakken <lbakken@basho.com> + */ +class FetchHllTest extends TestCase +{ + /** + * Test command builder construct + */ + public function testFetch() + { + // build an object + $builder = new Command\Builder\FetchHll(static::$riak); + $builder->buildLocation('some_key', 'some_bucket'); + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\DataType\Hll\Fetch', $command); + $this->assertInstanceOf('Basho\Riak\Bucket', $command->getBucket()); + $this->assertInstanceOf('Basho\Riak\Location', $command->getLocation()); + $this->assertEquals('some_bucket', $command->getBucket()->getName()); + $this->assertEquals('default', $command->getBucket()->getType()); + $this->assertEquals('some_key', $command->getLocation()->getKey()); + + $builder->buildLocation('some_key', 'some_bucket', 'some_type'); + $command = $builder->build(); + + $this->assertEquals('some_type', $command->getBucket()->getType()); + } + + /** + * Tests validate properly verifies the Location is not there + * + * @expectedException \Basho\Riak\Command\Builder\Exception + */ + public function testValidateLocation() + { + $builder = new Command\Builder\FetchHll(static::$riak); + $builder->buildBucket('some_bucket'); + $builder->build(); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/FetchMapTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/FetchMapTest.php new file mode 100644 index 0000000000000000000000000000000000000000..2195efe76668c47a30cddb8dc8d48b8320277161 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/FetchMapTest.php @@ -0,0 +1,49 @@ +<?php + +namespace Basho\Tests\Riak\Command\Builder; + +use Basho\Riak\Command; +use Basho\Tests\TestCase; + +/** + * Tests the configuration of Riak commands via the Command Builder class + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class FetchMapTest extends TestCase +{ + /** + * Test command builder construct + */ + public function testFetch() + { + // build an object + $builder = new Command\Builder\FetchMap(static::$riak); + $builder->buildLocation('some_key', 'some_bucket'); + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\DataType\Map\Fetch', $command); + $this->assertInstanceOf('Basho\Riak\Bucket', $command->getBucket()); + $this->assertInstanceOf('Basho\Riak\Location', $command->getLocation()); + $this->assertEquals('some_bucket', $command->getBucket()->getName()); + $this->assertEquals('default', $command->getBucket()->getType()); + $this->assertEquals('some_key', $command->getLocation()->getKey()); + + $builder->buildLocation('some_key', 'some_bucket', 'some_type'); + $command = $builder->build(); + + $this->assertEquals('some_type', $command->getBucket()->getType()); + } + + /** + * Tests validate properly verifies the Map is not there + * + * @expectedException \Basho\Riak\Command\Builder\Exception + */ + public function testValidateLocation() + { + $builder = new Command\Builder\FetchMap(static::$riak); + $builder->buildBucket('some_bucket'); + $builder->build(); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/FetchObjectTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/FetchObjectTest.php new file mode 100644 index 0000000000000000000000000000000000000000..6fe148916ac560b3b07345b6da1a8299fc0e41ae --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/FetchObjectTest.php @@ -0,0 +1,49 @@ +<?php + +namespace Basho\Tests\Riak\Command\Builder; + +use Basho\Riak\Command; +use Basho\Tests\TestCase; + +/** + * Tests the configuration of Riak commands via the Command Builder class + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class FetchObjectTest extends TestCase +{ + /** + * Test command builder construct + */ + public function testFetch() + { + // build an object + $builder = new Command\Builder\FetchObject(static::$riak); + $builder->buildLocation('some_key', 'some_bucket'); + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\KVObject\Fetch', $command); + $this->assertInstanceOf('Basho\Riak\Bucket', $command->getBucket()); + $this->assertInstanceOf('Basho\Riak\Location', $command->getLocation()); + $this->assertEquals('some_bucket', $command->getBucket()->getName()); + $this->assertEquals('default', $command->getBucket()->getType()); + $this->assertEquals('some_key', $command->getLocation()->getKey()); + + $builder->buildLocation('some_key', 'some_bucket', 'some_type'); + $command = $builder->build(); + + $this->assertEquals('some_type', $command->getBucket()->getType()); + } + + /** + * Tests validate properly verifies the Object is not there + * + * @expectedException \Basho\Riak\Command\Builder\Exception + */ + public function testValidateLocation() + { + $builder = new Command\Builder\FetchObject(static::$riak); + $builder->buildBucket('some_bucket'); + $builder->build(); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/FetchSetTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/FetchSetTest.php new file mode 100644 index 0000000000000000000000000000000000000000..643741d5298dc32a8dffc73ab09f6ac09ce921d2 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/FetchSetTest.php @@ -0,0 +1,49 @@ +<?php + +namespace Basho\Tests\Riak\Command\Builder; + +use Basho\Riak\Command; +use Basho\Tests\TestCase; + +/** + * Tests the configuration of Riak commands via the Command Builder class + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class FetchSetTest extends TestCase +{ + /** + * Test command builder construct + */ + public function testFetch() + { + // build an object + $builder = new Command\Builder\FetchSet(static::$riak); + $builder->buildLocation('some_key', 'some_bucket'); + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\DataType\Set\Fetch', $command); + $this->assertInstanceOf('Basho\Riak\Bucket', $command->getBucket()); + $this->assertInstanceOf('Basho\Riak\Location', $command->getLocation()); + $this->assertEquals('some_bucket', $command->getBucket()->getName()); + $this->assertEquals('default', $command->getBucket()->getType()); + $this->assertEquals('some_key', $command->getLocation()->getKey()); + + $builder->buildLocation('some_key', 'some_bucket', 'some_type'); + $command = $builder->build(); + + $this->assertEquals('some_type', $command->getBucket()->getType()); + } + + /** + * Tests validate properly verifies the Location is not there + * + * @expectedException \Basho\Riak\Command\Builder\Exception + */ + public function testValidateLocation() + { + $builder = new Command\Builder\FetchSet(static::$riak); + $builder->buildBucket('some_bucket'); + $builder->build(); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/IncrementCounterTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/IncrementCounterTest.php new file mode 100644 index 0000000000000000000000000000000000000000..c22b6a76c2069d59352f623bb19de92fb0538e40 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/IncrementCounterTest.php @@ -0,0 +1,74 @@ +<?php + +namespace Basho\Tests\Riak\Command\Builder; + +use Basho\Riak\Command; +use Basho\Tests\TestCase; + +/** + * Tests the configuration of Riak commands via the Command Builder class + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class IncrementCounterTest extends TestCase +{ + /** + * Test command builder construct + */ + public function testStoreWithKey() + { + // build an object + $builder = new Command\Builder\IncrementCounter(static::$riak); + $builder->withIncrement(1); + $builder->buildLocation('some_key', 'some_bucket'); + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\DataType\Counter\Store', $command); + $this->assertInstanceOf('Basho\Riak\Bucket', $command->getBucket()); + $this->assertInstanceOf('Basho\Riak\Location', $command->getLocation()); + $this->assertEquals('some_bucket', $command->getBucket()->getName()); + $this->assertEquals('default', $command->getBucket()->getType()); + $this->assertEquals('some_key', $command->getLocation()->getKey()); + $this->assertEquals(['increment' => 1], $command->getData()); + $this->assertEquals(json_encode(['increment' => 1]), $command->getEncodedData()); + } + + /** + * Test command builder construct + */ + public function testStoreWithOutKey() + { + // build an object + $builder = new Command\Builder\IncrementCounter(static::$riak); + $builder->withIncrement(1); + $builder->buildBucket('some_bucket'); + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\DataType\Counter\Store', $command); + $this->assertEquals('some_bucket', $command->getBucket()->getName()); + } + + /** + * Tests validate properly verifies the Object is not there + * + * @expectedException \Basho\Riak\Command\Builder\Exception + */ + public function testValidateObject() + { + $builder = new Command\Builder\IncrementCounter(static::$riak); + $builder->buildBucket('some_bucket'); + $builder->build(); + } + + /** + * Tests validate properly verifies the Bucket is not there + * + * @expectedException \Basho\Riak\Command\Builder\Exception + */ + public function testValidateBucket() + { + $builder = new Command\Builder\IncrementCounter(static::$riak); + $builder->withIncrement(1); + $builder->build(); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/ListObjectsTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/ListObjectsTest.php new file mode 100644 index 0000000000000000000000000000000000000000..c9ecaec7051379cd8d272b666e0d3fd61158bd49 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/ListObjectsTest.php @@ -0,0 +1,46 @@ +<?php + +namespace Basho\Tests\Riak\Command\Builder; + +use Basho\Riak\Command; +use Basho\Tests\TestCase; + +/** + * Tests the configuration of Riak commands via the Command Builder class + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class ListObjectsTest extends TestCase +{ + /** + * @expectedException \Basho\Riak\Command\Builder\Exception + */ + public function testListKeysFailsWithoutAcknowledgingRisk() + { + $response = (new Command\Builder\ListObjects(static::$riak)) + ->buildBucket('list-keys-php') + ->build(); + } + + /** + * Test command builder construct + */ + public function testList() + { + // build an object + $builder = (new Command\Builder\ListObjects(static::$riak)) + ->buildBucket('some_bucket') + ->acknowledgeRisk(true); + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\KVObject\Keys\Fetch', $command); + $this->assertInstanceOf('Basho\Riak\Bucket', $command->getBucket()); + $this->assertEquals('some_bucket', $command->getBucket()->getName()); + $this->assertEquals('default', $command->getBucket()->getType()); + + $builder->buildBucket('some_bucket', 'some_type'); + $command = $builder->build(); + + $this->assertEquals('some_type', $command->getBucket()->getType()); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/QueryIndexTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/QueryIndexTest.php new file mode 100644 index 0000000000000000000000000000000000000000..09958348eb2907b80fa63ed2b4f9da85eff171d2 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/QueryIndexTest.php @@ -0,0 +1,142 @@ +<?php + +namespace Basho\Tests\Riak\Command\Builder; + +use Basho\Riak\Command; +use Basho\Tests\TestCase; + +/** + * Tests the configuration of Riak commands via the Command Builder class + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class QueryIndexTest extends TestCase +{ + /** + * Test command builder construct + */ + public function testQuery() + { + // build an object + $builder = new Command\Builder\QueryIndex(static::$riak); + $builder->buildBucket('some_bucket', 'some_bucket_type') + ->withIndexName('foo_int') + ->withScalarValue(42); + + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\Indexes\Query', $command); + $this->assertInstanceOf('Basho\Riak\Bucket', $command->getBucket()); + $this->assertEquals('some_bucket', $command->getBucket()->getName()); + $this->assertEquals('some_bucket_type', $command->getBucket()->getType()); + $this->assertEquals('foo_int', $command->getIndexName()); + $this->assertEquals('42', $command->getMatchValue()); + } + + /** + * Tests validate properly verifies the index name is not there + * + * @expectedException \Basho\Riak\Command\Builder\Exception + */ + public function testValidateLocation() + { + $builder = new Command\Builder\QueryIndex(static::$riak); + $builder->buildBucket('some_bucket'); + + $builder->build(); + } + + /** + * Tests validate properly verifies the scalar match value is not there + * + * @expectedException \Basho\Riak\Command\Builder\Exception + */ + public function testValidateScalarValue() + { + $builder = new Command\Builder\QueryIndex(static::$riak); + $builder->buildBucket('some_bucket') + ->withIndexName("foo_int") + ->withScalarValue(null); + + $builder->build(); + } + + /** + * Tests validate properly verifies the range lower bound value is not there + * + * @expectedException \Basho\Riak\Command\Builder\Exception + */ + public function testValidateRangeLowerBound() + { + $builder = new Command\Builder\QueryIndex(static::$riak); + $builder->buildBucket('some_bucket') + ->withIndexName("foo_int") + ->withRangeValue(null, 42); + + $builder->build(); + } + + /** + * Tests validate properly verifies the range upper bound value is not there + * + * @expectedException \Basho\Riak\Command\Builder\Exception + */ + public function testValidateRangeUpperBound() + { + $builder = new Command\Builder\QueryIndex(static::$riak); + $builder->buildBucket('some_bucket') + ->withIndexName("foo_int") + ->withRangeValue(42, null); + + $builder->build(); + } + + /** + * Test command builder defaults for options + */ + public function testOptionDefaults() + { + // build an object + $builder = new Command\Builder\QueryIndex(static::$riak); + $builder->buildBucket('some_bucket', 'some_bucket_type') + ->withIndexName('foo_int') + ->withScalarValue(42); + + $command = $builder->build(); + + $parameters = $command->getParameters(); + + $this->assertFalse(isset($parameters['continuation'])); + $this->assertFalse(isset($parameters['return_terms'])); + $this->assertFalse(isset($parameters['pagination_sort'])); + $this->assertFalse(isset($parameters['term_regex'])); + $this->assertFalse(isset($parameters['timeout'])); + } + + /** + * Test command builder settings for options + */ + public function testOptionSettings() + { + // build an object + $builder = new Command\Builder\QueryIndex(static::$riak); + $builder->buildBucket('some_bucket', 'some_bucket_type') + ->withIndexName('foo_int') + ->withScalarValue(42) + ->withContinuation('12345') + ->withReturnTerms(true) + ->withPaginationSort(true) + ->withTermFilter('foobar') + ->withTimeout(43); + + $command = $builder->build(); + + + + $this->assertEquals('12345', $command->getParameter('continuation')); + $this->assertEquals('true', $command->getParameter('return_terms')); + $this->assertEquals('true', $command->getParameter('pagination_sort')); + $this->assertEquals('foobar', $command->getParameter('term_regex')); + $this->assertEquals(43, $command->getParameter('timeout')); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/StoreObjectTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/StoreObjectTest.php new file mode 100644 index 0000000000000000000000000000000000000000..5288f3caa559dad7e4143cb678c200370261663a --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/StoreObjectTest.php @@ -0,0 +1,98 @@ +<?php + +namespace Basho\Tests\Riak\Command\Builder; + +use Basho\Riak\Api\Http; +use Basho\Riak\Command; +use Basho\Tests\TestCase; + +/** + * Tests the configuration of Riak commands via the Command Builder class + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class StoreObjectTest extends TestCase +{ + /** + * Test command builder construct + */ + public function testStoreWithKey() + { + // build an object + $builder = new Command\Builder\StoreObject(static::$riak); + $builder->buildObject('some_data'); + $builder->buildLocation('some_key', 'some_bucket'); + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\KVObject\Store', $command); + $this->assertInstanceOf('Basho\Riak\DataObject', $command->getObject()); + $this->assertInstanceOf('Basho\Riak\Bucket', $command->getBucket()); + $this->assertInstanceOf('Basho\Riak\Location', $command->getLocation()); + $this->assertEquals('some_bucket', $command->getBucket()->getName()); + $this->assertEquals('default', $command->getBucket()->getType()); + $this->assertEquals('some_key', $command->getLocation()->getKey()); + } + + /** + * Test command builder construct + */ + public function testStoreWithOutKey() + { + // build an object + $builder = new Command\Builder\StoreObject(static::$riak); + $builder->buildObject('some_data'); + $builder->buildBucket('some_bucket'); + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\KVObject\Store', $command); + $this->assertEquals('some_bucket', $command->getBucket()->getName()); + } + + /** + * Tests validate properly verifies the Object is not there + * + * @expectedException \Basho\Riak\Command\Builder\Exception + */ + public function testValidateObject() + { + $builder = new Command\Builder\StoreObject(static::$riak); + $builder->buildBucket('some_bucket'); + $builder->build(); + } + + /** + * Tests validate properly verifies the Bucket is not there + * + * @expectedException \Basho\Riak\Command\Builder\Exception + */ + public function testValidateBucket() + { + $builder = new Command\Builder\StoreObject(static::$riak); + $builder->buildObject('some_data'); + $builder->build(); + } + + /** + * Tests that attempting to store an object generates headers for any + * 2i entries on the object. + */ + public function testStoreObjectWithIndexGeneratesHeaders() + { + $inputHeaders = [Http::METADATA_PREFIX . 'My-Header' => 'cats', 'x-riak-index-foo_bin' => 'bar, baz', 'x-riak-index-foo_int' => '42, 50']; + $builder = new Command\Builder\StoreObject(static::$riak); + $builder->buildObject('some_data', $inputHeaders); + $builder->buildBucket('some_bucket'); + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\KVObject\Store', $command); + + $this->assertArrayHasKey('My-Header', $command->getObject()->getMetaData()); + $this->assertEquals($command->getObject()->getMetaData()['My-Header'], 'cats'); + + $this->assertArrayHasKey('foo_bin', $command->getObject()->getIndexes()); + $this->assertCount(2, $command->getObject()->getIndex('foo_bin')); + + $this->assertArrayHasKey('foo_int', $command->getObject()->getIndexes()); + $this->assertCount(2, $command->getObject()->getIndex('foo_int')); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/TimeSeries/DeleteRowTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/TimeSeries/DeleteRowTest.php new file mode 100644 index 0000000000000000000000000000000000000000..d15b73597e6fef31e2e6fb111a0b899093b3349b --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/TimeSeries/DeleteRowTest.php @@ -0,0 +1,51 @@ +<?php + +namespace Basho\Tests\Riak\Command\Builder; + +use Basho\Riak\Command; +use Basho\Riak\TimeSeries\Cell; +use Basho\Tests\TestCase; +use Basho\Tests\TimeSeriesTrait; + +/** + * Tests the configuration of Riak commands via the Command Builder class + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class DeleteRowTest extends TestCase +{ + use TimeSeriesTrait; + + public static function setUpBeforeClass() + { + parent::setUpBeforeClass(); + + static::populateKey(); + } + + /** + * Test command builder construct + */ + public function testDelete() + { + // initialize builder + $builder = (new Command\Builder\TimeSeries\DeleteRow(static::$riak)) + ->atKey(static::$key) + ->inTable(static::$table); + + // build a command + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\TimeSeries\Delete', $command); + $this->assertEquals(static::$table, $command->getTable()); + $this->assertEquals(static::$key, $command->getData()); + $this->assertEquals("region/South%20Atlantic/state/South%20Carolina/time/1443816900", implode("/", $command->getData())); + + // change the key and reuse builder to create new command + $key = static::$key; + $key[2]->setTimestampValue(1443816901); + $command = $builder->atKey($key)->build(); + + $this->assertEquals("region/South%20Atlantic/state/South%20Carolina/time/1443816901", implode("/", $command->getData())); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/TimeSeries/DescribeTableTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/TimeSeries/DescribeTableTest.php new file mode 100644 index 0000000000000000000000000000000000000000..e0d353e1b77d60cbfc05b2ffd172ce301490adf5 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/TimeSeries/DescribeTableTest.php @@ -0,0 +1,34 @@ +<?php + +namespace Basho\Tests\Riak\Command\Builder; + +use Basho\Riak\Command; +use Basho\Riak\TimeSeries\Cell; +use Basho\Tests\TestCase; +use Basho\Tests\TimeSeriesTrait; + +/** + * Tests the configuration of Riak commands via the Command Builder class + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class DescribeTableTest extends TestCase +{ + use TimeSeriesTrait; + + /** + * Test command builder construct + */ + public function testDescribeTable() + { + // initialize builder + $builder = (new Command\Builder\TimeSeries\DescribeTable(static::$riak)) + ->withTable(static::$table); + + // build a command + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\TimeSeries\Query\Fetch', $command); + $this->assertEquals("DESCRIBE " . static::$table, $command->getData()["query"]); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/TimeSeries/FetchRowTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/TimeSeries/FetchRowTest.php new file mode 100644 index 0000000000000000000000000000000000000000..e65d45fed976b94a3cbc2a4a3b48b1dd3a11b4e3 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/TimeSeries/FetchRowTest.php @@ -0,0 +1,51 @@ +<?php + +namespace Basho\Tests\Riak\Command\Builder; + +use Basho\Riak\Command; +use Basho\Riak\TimeSeries\Cell; +use Basho\Tests\TestCase; +use Basho\Tests\TimeSeriesTrait; + +/** + * Tests the configuration of Riak commands via the Command Builder class + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class FetchRowTest extends TestCase +{ + use TimeSeriesTrait; + + public static function setUpBeforeClass() + { + parent::setUpBeforeClass(); + + static::populateKey(); + } + + /** + * Test command builder construct + */ + public function testFetch() + { + // initialize builder + $builder = (new Command\Builder\TimeSeries\FetchRow(static::$riak)) + ->atKey(static::$key) + ->inTable(static::$table); + + // build a command + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\TimeSeries\Fetch', $command); + $this->assertEquals(static::$table, $command->getTable()); + $this->assertEquals(static::$key, $command->getData()); + $this->assertEquals("region/South%20Atlantic/state/South%20Carolina/time/1443816900", implode("/", $command->getData())); + + // change the key and reuse builder to create new command + $key = static::$key; + $key[2]->setTimestampValue(1443816901); + $command = $builder->atKey($key)->build(); + + $this->assertEquals("region/South%20Atlantic/state/South%20Carolina/time/1443816901", implode("/", $command->getData())); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/TimeSeries/QueryTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/TimeSeries/QueryTest.php new file mode 100644 index 0000000000000000000000000000000000000000..10e4111063fef99c79d2be7c6e0d4fefcf9d5b0d --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/TimeSeries/QueryTest.php @@ -0,0 +1,34 @@ +<?php + +namespace Basho\Tests\Riak\Command\Builder; + +use Basho\Riak\Command; +use Basho\Riak\TimeSeries\Cell; +use Basho\Tests\TestCase; +use Basho\Tests\TimeSeriesTrait; + +/** + * Tests the configuration of Riak commands via the Command Builder class + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class QueryTest extends TestCase +{ + protected static $query = "select * from GeoCheckin where time > 1234560 and time < 1234569 and myfamily = 'family1' and myseries = 'series1'"; + + /** + * Test command builder construct + */ + public function testFetch() + { + // initialize builder + $builder = (new Command\Builder\TimeSeries\Query(static::$riak)) + ->withQuery(static::$query); + + // build a command + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\TimeSeries\Query\Fetch', $command); + $this->assertEquals(static::$query, $command->getData()["query"]); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/TimeSeries/StoreRowsTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/TimeSeries/StoreRowsTest.php new file mode 100644 index 0000000000000000000000000000000000000000..da499572590a300a65446d72998811791815a0a2 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/TimeSeries/StoreRowsTest.php @@ -0,0 +1,81 @@ +<?php + +namespace Basho\Tests\Riak\Command\Builder; + +use Basho\Riak\Command; +use Basho\Riak\TimeSeries\Cell; +use Basho\Tests\TestCase; +use Basho\Tests\TimeSeriesTrait; + +/** + * Tests the configuration of Riak commands via the Command Builder class + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class StoreRowTest extends TestCase +{ + use TimeSeriesTrait; + + public static function setUpBeforeClass() + { + parent::setUpBeforeClass(); + + static::populateKey(); + } + + /** + * Test command builder construct + */ + public function testStoreSingle() + { + $row = static::generateRow(); + + // initialize builder + $builder = (new Command\Builder\TimeSeries\StoreRows(static::$riak)) + ->inTable(static::$table) + ->withRow($row); + + // build a command + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\TimeSeries\Store', $command); + $this->assertEquals(static::$table, $command->getTable()); + $this->assertEquals([$row], $command->getData()); + } + + /** + * Test command builder construct + */ + public function testStoreMany() + { + $rows = static::generateRows(); + + // initialize builder + $builder = (new Command\Builder\TimeSeries\StoreRows(static::$riak)) + ->inTable(static::$table) + ->withRows($rows); + + // build a command + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\TimeSeries\Store', $command); + $this->assertEquals(static::$table, $command->getTable()); + $this->assertEquals($rows, $command->getData()); + } + + /** + * @expectedException Basho\Riak\Command\Builder\Exception + */ + public function testEmptyRowsException() { + // initialize builder + $builder = (new Command\Builder\TimeSeries\StoreRows(static::$riak)) + ->inTable(static::$table); + + // build a command + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\TimeSeries\Store', $command); + $this->assertEquals(static::$table, $command->getTable()); + $this->assertEquals($rows, $command->getData()); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/UpdateGSetTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/UpdateGSetTest.php new file mode 100644 index 0000000000000000000000000000000000000000..e85bd0ca1caece5f712125f23e0df510e6713b25 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/UpdateGSetTest.php @@ -0,0 +1,76 @@ +<?php + +namespace Basho\Tests\Riak\Command\Builder; + +use Basho\Riak\Command; +use Basho\Tests\TestCase; + +/** + * Tests the configuration of Riak commands via the Command Builder class + * + * @author Luke Bakken <lbakken@basho.com> + */ +class UpdateGSetTest extends TestCase +{ + /** + * Test command builder construct + */ + public function testStoreWithKey() + { + // build an object + $builder = new Command\Builder\UpdateGSet(static::$riak); + $builder->add('some_element'); + $builder->buildLocation('some_key', 'some_bucket'); + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\DataType\GSet\Store', $command); + $this->assertInstanceOf('Basho\Riak\Bucket', $command->getBucket()); + $this->assertInstanceOf('Basho\Riak\Location', $command->getLocation()); + $this->assertEquals('some_bucket', $command->getBucket()->getName()); + $this->assertEquals('default', $command->getBucket()->getType()); + $this->assertEquals('some_key', $command->getLocation()->getKey()); + $this->assertEquals(['add_all' => ['some_element']], $command->getData()); + $this->assertEquals(json_encode(['add_all' => ['some_element']]), $command->getEncodedData()); + } + + /** + * Test command builder construct + */ + public function testStoreWithOutKey() + { + // build an object + $builder = new Command\Builder\UpdateGSet(static::$riak); + $builder->add('some_element'); + $builder->buildBucket('some_bucket'); + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\DataType\GSet\Store', $command); + $this->assertEquals('some_bucket', $command->getBucket()->getName()); + $this->assertEquals(['add_all' => ['some_element']], $command->getData()); + $this->assertEquals(json_encode(['add_all' => ['some_element']]), $command->getEncodedData()); + } + + /** + * Tests validate properly verifies that an intended change is not applied + * + * @expectedException \Basho\Riak\Command\Builder\Exception + */ + public function testValidateObject() + { + $builder = new Command\Builder\UpdateGSet(static::$riak); + $builder->buildBucket('some_bucket'); + $builder->build(); + } + + /** + * Tests validate properly verifies the Bucket is not there + * + * @expectedException \Basho\Riak\Command\Builder\Exception + */ + public function testValidateBucket() + { + $builder = new Command\Builder\UpdateGSet(static::$riak); + $builder->add('some_element'); + $builder->build(); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/UpdateHllTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/UpdateHllTest.php new file mode 100644 index 0000000000000000000000000000000000000000..4e0717d6fb91970e43df6ee86293569cce7beffe --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/UpdateHllTest.php @@ -0,0 +1,80 @@ +<?php + +namespace Basho\Tests\Riak\Command\Builder; + +use Basho\Riak\Command; +use Basho\Tests\TestCase; + +/** + * Tests the configuration of Riak commands via the Command Builder class + * + * @author Luke Bakken <lbakken@basho.com> + */ +class UpdateHllTest extends TestCase +{ + /** + * Test command builder construct + */ + public function testStoreWithKey() + { + // build an object + $builder = new Command\Builder\UpdateHll(static::$riak); + $builder->add('foo'); + $builder->add('bar'); + $builder->add('baz'); + $builder->buildLocation('some_key', 'some_bucket'); + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\DataType\Hll\Store', $command); + $this->assertInstanceOf('Basho\Riak\Bucket', $command->getBucket()); + $this->assertInstanceOf('Basho\Riak\Location', $command->getLocation()); + $this->assertEquals('some_bucket', $command->getBucket()->getName()); + $this->assertEquals('default', $command->getBucket()->getType()); + $this->assertEquals('some_key', $command->getLocation()->getKey()); + $this->assertEquals(['add_all' => ['foo', 'bar', 'baz']], $command->getData()); + $this->assertEquals(json_encode(['add_all' => ['foo', 'bar', 'baz']]), $command->getEncodedData()); + } + + /** + * Test command builder construct + */ + public function testStoreWithOutKey() + { + // build an object + $builder = new Command\Builder\UpdateHll(static::$riak); + $builder->add('foo'); + $builder->add('bar'); + $builder->add('baz'); + $builder->buildBucket('some_bucket'); + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\DataType\Hll\Store', $command); + $this->assertEquals('some_bucket', $command->getBucket()->getName()); + $this->assertEquals(['add_all' => ['foo', 'bar', 'baz']], $command->getData()); + $this->assertEquals(json_encode(['add_all' => ['foo', 'bar', 'baz']]), $command->getEncodedData()); + } + + /** + * Tests validate properly verifies that an intended change is not applied + * + * @expectedException \Basho\Riak\Command\Builder\Exception + */ + public function testValidateObject() + { + $builder = new Command\Builder\UpdateHll(static::$riak); + $builder->buildBucket('some_bucket'); + $builder->build(); + } + + /** + * Tests validate properly verifies the Bucket is not there + * + * @expectedException \Basho\Riak\Command\Builder\Exception + */ + public function testValidateBucket() + { + $builder = new Command\Builder\UpdateHll(static::$riak); + $builder->add('some_element'); + $builder->build(); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/UpdateMapTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/UpdateMapTest.php new file mode 100644 index 0000000000000000000000000000000000000000..581c29b4c8672e02b5a9ed3662e90c159a3912e9 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/UpdateMapTest.php @@ -0,0 +1,86 @@ +<?php + +namespace Basho\Tests\Riak\Command\Builder; + +use Basho\Riak\Command; +use Basho\Tests\TestCase; + +/** + * Tests the configuration of Riak commands via the Command Builder classes + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class UpdateMapTest extends TestCase +{ + /** + * Test command builder construct + */ + public function testStoreWithKey() + { + // build an object + $builder = new Command\Builder\UpdateMap(static::$riak); + $builder->updateRegister('some_key', 'some_data'); + $builder->buildLocation('some_key', 'some_bucket'); + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\DataType\Map\Store', $command); + $this->assertInstanceOf('Basho\Riak\Bucket', $command->getBucket()); + $this->assertInstanceOf('Basho\Riak\Location', $command->getLocation()); + $this->assertEquals('some_bucket', $command->getBucket()->getName()); + $this->assertEquals('default', $command->getBucket()->getType()); + $this->assertEquals('some_key', $command->getLocation()->getKey()); + $this->assertEquals(['update' => ['some_key_register' => 'some_data']], $command->getData()); + $this->assertEquals(json_encode(['update' => ['some_key_register' => 'some_data']]), $command->getEncodedData()); + } + + /** + * Test command builder construct + */ + public function testStoreWithOutKey() + { + // build an object + $builder = new Command\Builder\UpdateMap(static::$riak); + $builder->updateRegister('some_key', 'some_data'); + $builder->buildBucket('some_bucket'); + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\DataType\Map\Store', $command); + $this->assertEquals('some_bucket', $command->getBucket()->getName()); + } + + /** + * Tests validate properly verifies that intended changes are not there + * + * @expectedException \Basho\Riak\Command\Builder\Exception + */ + public function testValidateUpdate() + { + $builder = new Command\Builder\UpdateMap(static::$riak); + $builder->buildBucket('some_bucket'); + $builder->build(); + } + + /** + * Tests validate properly verifies the Bucket is not there + * + * @expectedException \Basho\Riak\Command\Builder\Exception + */ + public function testValidateBucket() + { + $builder = new Command\Builder\UpdateMap(static::$riak); + $builder->updateRegister('some_key', 'some_data'); + $builder->build(); + } + + /** + * Tests validate properly verifies that remove commands require the context + * + * @expectedException \Basho\Riak\Command\Builder\Exception + */ + public function testValidateRemove() + { + $builder = new Command\Builder\UpdateMap(static::$riak); + $builder->removeRegister('some_key'); + $builder->build(); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/UpdateSetTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/UpdateSetTest.php new file mode 100644 index 0000000000000000000000000000000000000000..e2d31a505d570d287a5d9c7a7f28aae11ecb030b --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/Command/Builder/UpdateSetTest.php @@ -0,0 +1,89 @@ +<?php + +namespace Basho\Tests\Riak\Command\Builder; + +use Basho\Riak\Command; +use Basho\Tests\TestCase; + +/** + * Tests the configuration of Riak commands via the Command Builder class + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class UpdateSetTest extends TestCase +{ + /** + * Test command builder construct + */ + public function testStoreWithKey() + { + // build an object + $builder = new Command\Builder\UpdateSet(static::$riak); + $builder->add('some_element'); + $builder->remove('some_other_element'); + $builder->buildLocation('some_key', 'some_bucket'); + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\DataType\Set\Store', $command); + $this->assertInstanceOf('Basho\Riak\Bucket', $command->getBucket()); + $this->assertInstanceOf('Basho\Riak\Location', $command->getLocation()); + $this->assertEquals('some_bucket', $command->getBucket()->getName()); + $this->assertEquals('default', $command->getBucket()->getType()); + $this->assertEquals('some_key', $command->getLocation()->getKey()); + $this->assertEquals(['add_all' => ['some_element'], 'remove_all' => ['some_other_element']], $command->getData()); + $this->assertEquals(json_encode(['add_all' => ['some_element'], 'remove_all' => ['some_other_element']]), $command->getEncodedData()); + } + + /** + * Test command builder construct + */ + public function testStoreWithOutKey() + { + // build an object + $builder = new Command\Builder\UpdateSet(static::$riak); + $builder->add('some_element'); + $builder->buildBucket('some_bucket'); + $command = $builder->build(); + + $this->assertInstanceOf('Basho\Riak\Command\DataType\Set\Store', $command); + $this->assertEquals('some_bucket', $command->getBucket()->getName()); + $this->assertEquals(['add_all' => ['some_element'], 'remove_all' => []], $command->getData()); + $this->assertEquals(json_encode(['add_all' => ['some_element'], 'remove_all' => []]), $command->getEncodedData()); + } + + /** + * Tests validate properly verifies that an intended change is not applied + * + * @expectedException \Basho\Riak\Command\Builder\Exception + */ + public function testValidateObject() + { + $builder = new Command\Builder\UpdateSet(static::$riak); + $builder->buildBucket('some_bucket'); + $builder->build(); + } + + /** + * Tests validate properly verifies the Bucket is not there + * + * @expectedException \Basho\Riak\Command\Builder\Exception + */ + public function testValidateBucket() + { + $builder = new Command\Builder\UpdateSet(static::$riak); + $builder->add('some_element'); + $builder->build(); + } + + /** + * Tests validate properly verifies that remove commands require the context + * + * @expectedException \Basho\Riak\Command\Builder\Exception + */ + public function testValidateRemove() + { + $builder = new Command\Builder\UpdateSet(static::$riak); + $builder->remove('some_element'); + $builder->build(); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/DataType/CounterTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/DataType/CounterTest.php new file mode 100644 index 0000000000000000000000000000000000000000..14f837c17694f51c6c3bf5b0a4dcbad1e4130d51 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/DataType/CounterTest.php @@ -0,0 +1,21 @@ +<?php + +namespace Basho\Tests\Riak; + +use Basho\Riak\DataType\Counter; + +/** + * Test set for counter crdt + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class CounterTest extends \PHPUnit_Framework_TestCase +{ + public function testType() + { + $this->assertEquals('counter', Counter::TYPE); + + $crdt = new Counter(1); + $this->assertEquals('counter', $crdt->getType()); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/DataType/HllTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/DataType/HllTest.php new file mode 100644 index 0000000000000000000000000000000000000000..9d9a711f9b2e8c48ef154d8a6829a8efaeecc5cf --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/DataType/HllTest.php @@ -0,0 +1,21 @@ +<?php + +namespace Basho\Tests\Riak; + +use Basho\Riak\DataType\Hll; + +/** + * Test for HyperLogLog CRDT + * + * @author Luke Bakken <lbakken@basho.com> + */ +class HllTest extends \PHPUnit_Framework_TestCase +{ + public function testType() + { + $this->assertEquals('hll', Hll::TYPE); + + $crdt = new Hll([], ''); + $this->assertEquals('hll', $crdt->getType()); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/DataType/MapTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/DataType/MapTest.php new file mode 100644 index 0000000000000000000000000000000000000000..695aeb4f16a8ac6f0b48912a5f1bab250afab96d --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/DataType/MapTest.php @@ -0,0 +1,21 @@ +<?php + +namespace Basho\Tests\Riak; + +use Basho\Riak\DataType\Map; + +/** + * Test set for counter crdt + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class MapTest extends \PHPUnit_Framework_TestCase +{ + public function testType() + { + $this->assertEquals('map', Map::TYPE); + + $crdt = new Map([], ''); + $this->assertEquals('map', $crdt->getType()); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/DataType/SetTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/DataType/SetTest.php new file mode 100644 index 0000000000000000000000000000000000000000..66beaacf081c10ed3f0eebac581cc256f44a73d9 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/DataType/SetTest.php @@ -0,0 +1,22 @@ +<?php + +namespace Basho\Tests\Riak; + +use Basho\Riak\DataType\Set; + +/** + * Test set for set crdt + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class SetTest extends \PHPUnit_Framework_TestCase +{ + public function testType() + { + $this->assertEquals('set', Set::TYPE); + + $crdt = new Set([], ''); + $this->assertEquals('set', $crdt->getType()); + + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/Node/BuilderTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/Node/BuilderTest.php new file mode 100644 index 0000000000000000000000000000000000000000..178112493b3e0f8dc0cda85e6233136259102977 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/Node/BuilderTest.php @@ -0,0 +1,98 @@ +<?php + +namespace Basho\Tests\Riak\Node; + +use Basho\Riak; +use Basho\Riak\Node\Builder; +use Basho\Tests\TestCase; + +/** + * Tests the configuration of Riak nodes via the Node Builder class + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class BuilderTest extends TestCase +{ + /** + * testConstruct + * + * Test node builder construct + */ + public function testConstruct() + { + $builder = new Builder(); + + $this->assertInstanceOf('Basho\Riak\Node\Builder', $builder); + } + + /** + * testWithHost + */ + public function testWithHost() + { + $builder = (new Builder) + ->atHost('localhost'); + + $this->assertEquals($builder->getConfig()->getHost(), 'localhost'); + } + + /** + * testWithPort + */ + public function testWithPort() + { + $builder = (new Builder) + ->onPort(10018); + + $this->assertEquals($builder->getConfig()->getPort(), 10018); + } + + /** + * testBuildLocalhost + * + * Test the localhost node builder + */ + public function testBuildLocalhost() + { + $nodes = (new Builder) + ->buildLocalhost([10018, 10028, 10038, 10048, 10058]); + + $this->assertTrue(count($nodes) == 5); + $this->assertTrue($nodes[0]->getHost() == 'localhost'); + $this->assertTrue($nodes[0]->getPort() == 10018); + } + + /** + * testBuildCluster + * + * Test the cluster node builder + */ + public function testBuildCluster() + { + $nodes = (new Builder) + ->onPort(10018) + ->buildCluster(['riak1.company.com', 'riak2.company.com', 'riak3.company.com',]); + + $this->assertTrue(count($nodes) == 3); + $this->assertTrue($nodes[1]->getHost() == 'riak2.company.com'); + $this->assertTrue($nodes[0]->getPort() == 10018); + $this->assertTrue($nodes[1]->getPort() == 10018); + } + + public function testUsingAuth() + { + $node = (new Builder()) + ->atHost(static::getTestHost()) + ->onPort(static::getTestSecurePort()) + ->usingPasswordAuthentication('unauthorizeduser', 'hispassword') + ->withCertificateAuthorityFile(getcwd() . '/tools/test-ca/certs/cacert.pem') + ->build(); + + $riak = new Riak([$node]); + + $this->assertEquals('unauthorizeduser', $node->getUserName()); + $this->assertEquals('hispassword', $node->getPassword()); + $this->assertEquals(getcwd() . '/tools/test-ca/certs/cacert.pem', $node->getCaFile()); + $this->assertInstanceOf('Basho\Riak', $riak); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/NodeTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/NodeTest.php new file mode 100644 index 0000000000000000000000000000000000000000..7ce7a1ef638be37991372c0a3ef42cb01fa3361f --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/NodeTest.php @@ -0,0 +1,23 @@ +<?php + +namespace Basho\Tests\Riak; + +use Basho\Riak\Node; +use Basho\Tests\TestCase; + +/** + * Main class for testing Riak clustering + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class NodeTest extends TestCase +{ + public function testConfig() + { + $node = static::getLocalNode(); + + $this->assertEquals(static::getTestHost(), $node->getHost()); + $this->assertEquals(static::getTestPort(), $node->getPort()); + $this->assertNotEmpty($node->getSignature()); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/ObjectTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/ObjectTest.php new file mode 100644 index 0000000000000000000000000000000000000000..cb588aa5870e3f524ee1220e3171a12c633be1ab --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/ObjectTest.php @@ -0,0 +1,134 @@ +<?php + +namespace Basho\Tests\Riak; + +use Basho\Riak\DataObject as RObject; +use Basho\Tests\TestCase; + +/** + * Test set for key value objects + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class ObjectTest extends TestCase +{ + public function testConstruct() + { + // simple new object + $object = new RObject(); + $this->assertEmpty($object->getData()); + + // more complex object + $data = new \StdClass(); + $data->woot = 'sauce'; + $object = new RObject($data, ['Content-Type' => 'text/plain']); + $this->assertEquals('sauce', $object->getData()->woot); + $this->assertEquals('text/plain', $object->getContentType()); + } + + public function testExtractIndexes() + { + // no headers means no indexes, empty array. + $data = new \StdClass(); + $data->woot = 'sauce'; + + $object = new RObject($data); + $this->assertEmpty($object->getIndexes()); + $this->assertEquals(NULL, $object->getIndex("foo_bin")); + + // 2i headers will result in indexes + $headers = ['My-Header' => 'cats', 'x-riak-index-foo_bin' => 'bar, baz', 'x-riak-index-foo_int' => '42, 50']; + $object = new RObject($data, $headers); + + $indexes = $object->getIndexes(); + $this->assertNotEmpty($indexes); + $this->assertEquals(2, count($indexes)); + $this->assertEquals(['bar', 'baz'], $indexes["foo_bin"]); + $this->assertEquals([42, 50], $indexes["foo_int"]); + } + + public function testAddIndexes() + { + $data = new \StdClass(); + $data->woot = 'sauce'; + + $headers = ['x-riak-index-foo_bin' => 'bar', 'x-riak-index-foo_int' => '42']; + $object = new RObject($data, $headers); + + $object->addValueToIndex("foo_int", 50); + $object->addValueToIndex("foo_bin", 'baz'); + + $indexes = $object->getIndexes(); + $this->assertNotEmpty($indexes); + $this->assertEquals(2, count($indexes)); + $this->assertEquals(['bar', 'baz'], $indexes["foo_bin"]); + $this->assertEquals([42, 50], $indexes["foo_int"]); + } + + public function testRemoveIndexes() + { + $data = new \StdClass(); + $data->woot = 'sauce'; + + $headers = ['x-riak-index-foo_bin' => 'bar, baz', 'x-riak-index-foo_int' => '42, 50']; + $object = new RObject($data, $headers); + + $object->removeValueFromIndex("foo_int", 50); + $object->removeValueFromIndex("foo_bin", 'baz'); + $object->removeValueFromIndex("foo_bin", 'bar'); + + $indexes = $object->getIndexes(); + $this->assertNotEmpty($indexes); + $this->assertEquals(1, count($indexes)); + $this->assertEquals([42], $indexes["foo_int"]); + } + + public function testGetIndex() + { + $data = new \StdClass(); + $data->woot = 'sauce'; + + $headers = ['x-riak-index-foo_bin' => 'bar, baz', 'x-riak-index-foo_int' => '42, 50']; + $object = new RObject($data, $headers); + + $index = $object->getIndex('foo_bin'); + $this->assertNotNull($index); + $this->assertEquals(['bar', 'baz'], $index); + } + + /** + * @expectedException \InvalidArgumentException + */ + public function testInvalidIndexName() + { + $data = new \StdClass(); + $data->woot = 'sauce'; + $object = new RObject($data); + + $object->addValueToIndex('foo_bar', 42); + } + + /** + * @expectedException \InvalidArgumentException + */ + public function testInvalidDataTypeForBinIndex() + { + $data = new \StdClass(); + $data->woot = 'sauce'; + $object = new RObject($data); + + $object->addValueToIndex('foo_bin', 42); + } + + /** + * @expectedException \InvalidArgumentException + */ + public function testInvalidDataTypeForIntIndex() + { + $data = new \StdClass(); + $data->woot = 'sauce'; + $object = new RObject($data); + + $object->addValueToIndex('foo_int', 'bar'); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/Riak/Search/DocTest.php b/vendor/phpfastcache/riak-client/tests/unit/Riak/Search/DocTest.php new file mode 100644 index 0000000000000000000000000000000000000000..1bd5605a25ad31b7456a74d3f3860f27f297a8a0 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/Riak/Search/DocTest.php @@ -0,0 +1,55 @@ +<?php + +namespace Basho\Tests\Riak\Search; + +use Basho\Riak\Search\Doc; +use PHPUnit_Framework_TestCase as TestCase; + +/** + * Search result document test + * + * @author Michael Mayer <michael@lastzero.net> + */ +class DocTest extends TestCase +{ + /** + * @var Doc + */ + protected $doc; + + public function setUp() + { + $data = new \stdClass(); + $data->_yz_id = '1*tests*test*5*39'; + $data->_yz_rk = '5'; + $data->_yz_rt = 'tests'; + $data->_yz_rb = 'test'; + $data->foo = 'bar'; + $data->_status = 200; + $this->doc = new Doc($data); + } + + public function testGetLocation() + { + $result = $this->doc->getLocation(); + $this->assertInstanceOf('\Basho\Riak\Location', $result); + $this->assertInstanceOf('\Basho\Riak\Bucket', $result->getBucket()); + $this->assertEquals('tests', $result->getBucket()->getType()); + $this->assertEquals('test', $result->getBucket()->getName()); + $this->assertEquals('5', $result->getKey()); + } + + public function testGetData() + { + $result = $this->doc->getData(); + $this->assertInternalType('array', $result); + $this->assertEquals('bar', $result['foo']); + $this->assertEquals(200, $result['_status']); + } + + public function testMagicGetter() + { + $this->assertEquals('bar', $this->doc->foo); + $this->assertEquals(200, $this->doc->_status); + } +} diff --git a/vendor/phpfastcache/riak-client/tests/unit/RiakTest.php b/vendor/phpfastcache/riak-client/tests/unit/RiakTest.php new file mode 100644 index 0000000000000000000000000000000000000000..e923c047111316bf1244012df1e2a3725a041c30 --- /dev/null +++ b/vendor/phpfastcache/riak-client/tests/unit/RiakTest.php @@ -0,0 +1,44 @@ +<?php + +namespace Basho\Tests; + +use Basho\Riak; +use Basho\Riak\Node; +use Basho\Riak\Node\Builder; + +/** + * Main class for testing Riak clustering + * + * @author Christopher Mancini <cmancini at basho d0t com> + */ +class RiakTest extends TestCase +{ + public function testNodeCount() + { + $nodes = static::getCluster(); + $riak = new Riak($nodes); + $this->assertEquals(count($riak->getNodes()), count($nodes)); + } + + public function testConfig() + { + $nodes = static::getCluster(); + $riak = new Riak($nodes, ['max_connect_attempts' => 5]); + $this->assertEquals(5, $riak->getConfigValue('max_connect_attempts')); + } + + public function testPickNode() + { + $nodes = static::getCluster(); + $riak = new Riak($nodes); + $this->assertNotFalse($riak->getActiveNodeIndex()); + $this->assertInstanceOf('Basho\Riak\Node', $riak->getActiveNode()); + } + + public function testApi() + { + $nodes = static::getCluster(); + $riak = new Riak($nodes); + $this->assertInstanceOf('Basho\Riak\Api', $riak->getApi()); + } +} diff --git a/vendor/phpmailer/phpmailer/COMMITMENT b/vendor/phpmailer/phpmailer/COMMITMENT new file mode 100644 index 0000000000000000000000000000000000000000..a687e0ddb6f266cd0778ee124f1b47d7103f845b --- /dev/null +++ b/vendor/phpmailer/phpmailer/COMMITMENT @@ -0,0 +1,46 @@ +GPL Cooperation Commitment +Version 1.0 + +Before filing or continuing to prosecute any legal proceeding or claim +(other than a Defensive Action) arising from termination of a Covered +License, we commit to extend to the person or entity ('you') accused +of violating the Covered License the following provisions regarding +cure and reinstatement, taken from GPL version 3. As used here, the +term 'this License' refers to the specific Covered License being +enforced. + + However, if you cease all violation of this License, then your + license from a particular copyright holder is reinstated (a) + provisionally, unless and until the copyright holder explicitly + and finally terminates your license, and (b) permanently, if the + copyright holder fails to notify you of the violation by some + reasonable means prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is + reinstated permanently if the copyright holder notifies you of the + violation by some reasonable means, this is the first time you + have received notice of violation of this License (for any work) + from that copyright holder, and you cure the violation prior to 30 + days after your receipt of the notice. + +We intend this Commitment to be irrevocable, and binding and +enforceable against us and assignees of or successors to our +copyrights. + +Definitions + +'Covered License' means the GNU General Public License, version 2 +(GPLv2), the GNU Lesser General Public License, version 2.1 +(LGPLv2.1), or the GNU Library General Public License, version 2 +(LGPLv2), all as published by the Free Software Foundation. + +'Defensive Action' means a legal proceeding or claim that We bring +against you in response to a prior proceeding or claim initiated by +you or your affiliate. + +'We' means each contributor to this repository as of the date of +inclusion of this file, including subsidiaries of a corporate +contributor. + +This work is available under a Creative Commons Attribution-ShareAlike +4.0 International license (https://creativecommons.org/licenses/by-sa/4.0/). diff --git a/vendor/phpmailer/phpmailer/LICENSE b/vendor/phpmailer/phpmailer/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..f166cc57b2783565bc48e8999103c572fca4c0e4 --- /dev/null +++ b/vendor/phpmailer/phpmailer/LICENSE @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + <one line to give the library's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + <signature of Ty Coon>, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! \ No newline at end of file diff --git a/vendor/phpmailer/phpmailer/README.md b/vendor/phpmailer/phpmailer/README.md new file mode 100644 index 0000000000000000000000000000000000000000..c287e307a6c844969d17c3ba1d8dae731086c598 --- /dev/null +++ b/vendor/phpmailer/phpmailer/README.md @@ -0,0 +1,221 @@ + + +# PHPMailer - A full-featured email creation and transfer class for PHP + +Build status: [](https://travis-ci.org/PHPMailer/PHPMailer) +[](https://scrutinizer-ci.com/g/PHPMailer/PHPMailer/) +[](https://scrutinizer-ci.com/g/PHPMailer/PHPMailer/) + +[](https://packagist.org/packages/phpmailer/phpmailer) [](https://packagist.org/packages/phpmailer/phpmailer) [](https://packagist.org/packages/phpmailer/phpmailer) [](https://packagist.org/packages/phpmailer/phpmailer) [](http://phpmailer.github.io/PHPMailer/) + +## Class Features +- Probably the world's most popular code for sending email from PHP! +- Used by many open-source projects: WordPress, Drupal, 1CRM, SugarCRM, Yii, Joomla! and many more +- Integrated SMTP support - send without a local mail server +- Send emails with multiple To, CC, BCC and Reply-to addresses +- Multipart/alternative emails for mail clients that do not read HTML email +- Add attachments, including inline +- Support for UTF-8 content and 8bit, base64, binary, and quoted-printable encodings +- SMTP authentication with LOGIN, PLAIN, CRAM-MD5, and XOAUTH2 mechanisms over SSL and SMTP+STARTTLS transports +- Validates email addresses automatically +- Protect against header injection attacks +- Error messages in over 50 languages! +- DKIM and S/MIME signing support +- Compatible with PHP 5.5 and later +- Namespaced to prevent name clashes +- Much more! + +## Why you might need it +Many PHP developers need to send email from their code. The only PHP function that supports this is [`mail()`](https://www.php.net/manual/en/function.mail.php). However, it does not provide any assistance for making use of popular features such as encryption, authentication, HTML messages, and attachments. + +Formatting email correctly is surprisingly difficult. There are myriad overlapping RFCs, requiring tight adherence to horribly complicated formatting and encoding rules – the vast majority of code that you'll find online that uses the `mail()` function directly is just plain wrong! +*Please* don't be tempted to do it yourself – if you don't use PHPMailer, there are many other excellent libraries that you should look at before rolling your own. Try [SwiftMailer](https://swiftmailer.symfony.com/), [Zend/Mail](https://zendframework.github.io/zend-mail/), [ZetaComponents](https://github.com/zetacomponents/Mail) etc. + +The PHP `mail()` function usually sends via a local mail server, typically fronted by a `sendmail` binary on Linux, BSD, and macOS platforms, however, Windows usually doesn't include a local mail server; PHPMailer's integrated SMTP implementation allows email sending on Windows platforms without a local mail server. + +## License +This software is distributed under the [LGPL 2.1](http://www.gnu.org/licenses/lgpl-2.1.html) license, along with the [GPL Cooperation Commitment](https://gplcc.github.io/gplcc/). Please read LICENSE for information on the software availability and distribution. + +## Installation & loading +PHPMailer is available on [Packagist](https://packagist.org/packages/phpmailer/phpmailer) (using semantic versioning), and installation via [Composer](https://getcomposer.org) is the recommended way to install PHPMailer. Just add this line to your `composer.json` file: + +```json +"phpmailer/phpmailer": "~6.1" +``` + +or run + +```sh +composer require phpmailer/phpmailer +``` + +Note that the `vendor` folder and the `vendor/autoload.php` script are generated by Composer; they are not part of PHPMailer. + +If you want to use the Gmail XOAUTH2 authentication class, you will also need to add a dependency on the `league/oauth2-client` package in your `composer.json`. + +Alternatively, if you're not using Composer, copy the contents of the PHPMailer folder into one of the `include_path` directories specified in your PHP configuration and load each class file manually: + +```php +<?php +use PHPMailer\PHPMailer\PHPMailer; +use PHPMailer\PHPMailer\Exception; + +require 'path/to/PHPMailer/src/Exception.php'; +require 'path/to/PHPMailer/src/PHPMailer.php'; +require 'path/to/PHPMailer/src/SMTP.php'; +``` + +If you're not using the `SMTP` class explicitly (you're probably not), you don't need a `use` line for the SMTP class. + +If you don't speak git or just want a tarball, click the 'zip' button on the right of the project page in GitHub, though note that docs and examples are not included in the tarball. + +## Legacy versions +PHPMailer 5.2 (which is compatible with PHP 5.0 - 7.0) is no longer being supported, even for security updates. You will find the latest version of 5.2 in the [5.2-stable branch](https://github.com/PHPMailer/PHPMailer/tree/5.2-stable). If you're using PHP 5.5 or later (which you should be), switch to the 6.x releases. + +### Upgrading from 5.2 +The biggest changes are that source files are now in the `src/` folder, and PHPMailer now declares the namespace `PHPMailer\PHPMailer`. This has several important effects – [read the upgrade guide](https://github.com/PHPMailer/PHPMailer/tree/master/UPGRADING.md) for more details. + +### Minimal installation +While installing the entire package manually or with Composer is simple, convenient, and reliable, you may want to include only vital files in your project. At the very least you will need [src/PHPMailer.php](https://github.com/PHPMailer/PHPMailer/tree/master/src/PHPMailer.php). If you're using SMTP, you'll need [src/SMTP.php](https://github.com/PHPMailer/PHPMailer/tree/master/src/SMTP.php), and if you're using POP-before SMTP, you'll need [src/POP3.php](https://github.com/PHPMailer/PHPMailer/tree/master/src/POP3.php). You can skip the [language](https://github.com/PHPMailer/PHPMailer/tree/master/language/) folder if you're not showing errors to users and can make do with English-only errors. If you're using XOAUTH2 you will need [src/OAuth.php](https://github.com/PHPMailer/PHPMailer/tree/master/src/OAuth.php) as well as the Composer dependencies for the services you wish to authenticate with. Really, it's much easier to use Composer! + +## A Simple Example + +```php +<?php +// Import PHPMailer classes into the global namespace +// These must be at the top of your script, not inside a function +use PHPMailer\PHPMailer\PHPMailer; +use PHPMailer\PHPMailer\SMTP; +use PHPMailer\PHPMailer\Exception; + +// Load Composer's autoloader +require 'vendor/autoload.php'; + +// Instantiation and passing `true` enables exceptions +$mail = new PHPMailer(true); + +try { + //Server settings + $mail->SMTPDebug = SMTP::DEBUG_SERVER; // Enable verbose debug output + $mail->isSMTP(); // Send using SMTP + $mail->Host = 'smtp1.example.com'; // Set the SMTP server to send through + $mail->SMTPAuth = true; // Enable SMTP authentication + $mail->Username = 'user@example.com'; // SMTP username + $mail->Password = 'secret'; // SMTP password + $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged + $mail->Port = 587; // TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above + + //Recipients + $mail->setFrom('from@example.com', 'Mailer'); + $mail->addAddress('joe@example.net', 'Joe User'); // Add a recipient + $mail->addAddress('ellen@example.com'); // Name is optional + $mail->addReplyTo('info@example.com', 'Information'); + $mail->addCC('cc@example.com'); + $mail->addBCC('bcc@example.com'); + + // Attachments + $mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments + $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name + + // Content + $mail->isHTML(true); // Set email format to HTML + $mail->Subject = 'Here is the subject'; + $mail->Body = 'This is the HTML message body <b>in bold!</b>'; + $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; + + $mail->send(); + echo 'Message has been sent'; +} catch (Exception $e) { + echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}"; +} +``` + +You'll find plenty more to play with in the [examples](https://github.com/PHPMailer/PHPMailer/tree/master/examples) folder. + +If you are re-using the instance (e.g. when sending to a mailing list), you may need to clear the recipient list to avoid sending duplicate messages. See [the mailing list example](https://github.com/PHPMailer/PHPMailer/blob/master/examples/mailing_list.phps) for further guidance. + +That's it. You should now be ready to use PHPMailer! + +## Localization +PHPMailer defaults to English, but in the [language](https://github.com/PHPMailer/PHPMailer/tree/master/language/) folder you'll find many translations for PHPMailer error messages that you may encounter. Their filenames contain [ISO 639-1](http://en.wikipedia.org/wiki/ISO_639-1) language code for the translations, for example `fr` for French. To specify a language, you need to tell PHPMailer which one to use, like this: + +```php +// To load the French version +$mail->setLanguage('fr', '/optional/path/to/language/directory/'); +``` + +We welcome corrections and new languages - if you're looking for corrections to do, run the [PHPMailerLangTest.php](https://github.com/PHPMailer/PHPMailer/tree/master/test/PHPMailerLangTest.php) script in the tests folder and it will show any missing translations. + +## Documentation +Start reading at the [GitHub wiki](https://github.com/PHPMailer/PHPMailer/wiki). If you're having trouble, this should be the first place you look as it's the most frequently updated. + +Examples of how to use PHPMailer for common scenarios can be found in the [examples](https://github.com/PHPMailer/PHPMailer/tree/master/examples) folder. If you're looking for a good starting point, we recommend you start with [the Gmail example](https://github.com/PHPMailer/PHPMailer/tree/master/examples/gmail.phps). + +Note that in order to reduce PHPMailer's deployed code footprint, the examples are no longer included if you load PHPMailer via Composer or via [GitHub's zip file download](https://github.com/PHPMailer/PHPMailer/archive/master.zip), so you'll need to either clone the git repository or use the above links to get to the examples directly. + +Complete generated API documentation is [available online](http://phpmailer.github.io/PHPMailer/). + +You can generate complete API-level documentation by running `phpdoc` in the top-level folder, and documentation will appear in the `docs` folder, though you'll need to have [PHPDocumentor](http://www.phpdoc.org) installed. You may find [the unit tests](https://github.com/PHPMailer/PHPMailer/blob/master/test/PHPMailerTest.php) a good source of how to do various operations such as encryption. + +If the documentation doesn't cover what you need, search the [many questions on Stack Overflow](http://stackoverflow.com/questions/tagged/phpmailer), and before you ask a question about "SMTP Error: Could not connect to SMTP host.", [read the troubleshooting guide](https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting). + +## Tests +There is a PHPUnit test script in the [test](https://github.com/PHPMailer/PHPMailer/tree/master/test/) folder. PHPMailer uses PHPUnit 4.8 - we would use 5.x but we need to run on PHP 5.5. + +Build status: [](https://travis-ci.org/PHPMailer/PHPMailer) + +If this isn't passing, is there something you can do to help? + +## Security +Please disclose any vulnerabilities found responsibly - report any security problems found to the maintainers privately. + +PHPMailer versions prior to 5.2.22 (released January 9th 2017) have a local file disclosure vulnerability, [CVE-2017-5223](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-5223). If content passed into `msgHTML()` is sourced from unfiltered user input, relative paths can map to absolute local file paths and added as attachments. Also note that `addAttachment` (just like `file_get_contents`, `passthru`, `unlink`, etc) should not be passed user-sourced params either! Reported by Yongxiang Li of Asiasecurity. + +PHPMailer versions prior to 5.2.20 (released December 28th 2016) are vulnerable to [CVE-2016-10045](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-10045) a remote code execution vulnerability, responsibly reported by [Dawid Golunski](https://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10045-Vuln-Patch-Bypass.html), and patched by Paul Buonopane (@Zenexer). + +PHPMailer versions prior to 5.2.18 (released December 2016) are vulnerable to [CVE-2016-10033](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-10033) a critical remote code execution vulnerability, responsibly reported by [Dawid Golunski](http://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10033-Vuln.html). + +See [SECURITY](https://github.com/PHPMailer/PHPMailer/tree/master/SECURITY.md) for more detail on security issues. + +## Contributing +Please submit bug reports, suggestions and pull requests to the [GitHub issue tracker](https://github.com/PHPMailer/PHPMailer/issues). + +We're particularly interested in fixing edge-cases, expanding test coverage and updating translations. + +If you found a mistake in the docs, or want to add something, go ahead and amend the wiki - anyone can edit it. + +If you have git clones from prior to the move to the PHPMailer GitHub organisation, you'll need to update any remote URLs referencing the old GitHub location with a command like this from within your clone: + +```sh +git remote set-url upstream https://github.com/PHPMailer/PHPMailer.git +``` + +Please *don't* use the SourceForge or Google Code projects any more; they are obsolete and no longer maintained. + +## Sponsorship +Development time and resources for PHPMailer are provided by [Smartmessages.net](https://info.smartmessages.net/), a powerful email marketing system. + +<a href="https://info.smartmessages.net/"><img src="https://www.smartmessages.net/img/smartmessages-logo.svg" width="250" height="28" alt="Smartmessages email marketing"></a> + +Other contributions are gladly received, whether in beer 🍺, T-shirts 👕, Amazon wishlist raids, or cold, hard cash 💰. If you'd like to donate to say "thank you" to maintainers or contributors, please contact them through individual profile pages via [the contributors page](https://github.com/PHPMailer/PHPMailer/graphs/contributors). + +## Changelog +See [changelog](changelog.md). + +## History +- PHPMailer was originally written in 2001 by Brent R. Matzelle as a [SourceForge project](http://sourceforge.net/projects/phpmailer/). +- Marcus Bointon (coolbru on SF) and Andy Prevost (codeworxtech) took over the project in 2004. +- Became an Apache incubator project on Google Code in 2010, managed by Jim Jagielski. +- Marcus created his fork on [GitHub](https://github.com/Synchro/PHPMailer) in 2008. +- Jim and Marcus decide to join forces and use GitHub as the canonical and official repo for PHPMailer in 2013. +- PHPMailer moves to the [PHPMailer organisation](https://github.com/PHPMailer) on GitHub in 2013. + +### What's changed since moving from SourceForge? +- Official successor to the SourceForge and Google Code projects. +- Test suite. +- Continuous integration with Travis-CI. +- Composer support. +- Public development. +- Additional languages and language strings. +- CRAM-MD5 authentication support. +- Preserves full repo history of authors, commits and branches from the original SourceForge project. diff --git a/vendor/phpmailer/phpmailer/SECURITY.md b/vendor/phpmailer/phpmailer/SECURITY.md new file mode 100644 index 0000000000000000000000000000000000000000..fc3e61c2012b08c8802c26a8c64bb5adddfcd3c8 --- /dev/null +++ b/vendor/phpmailer/phpmailer/SECURITY.md @@ -0,0 +1,30 @@ +# Security notices relating to PHPMailer + +Please disclose any vulnerabilities found responsibly - report any security problems found to the maintainers privately. + +PHPMailer versions 6.1.5 and earlier contain an output escaping bug that occurs in `Content-Type` and `Content-Disposition` when filenames passed into `addAttachment` and other methods that accept attachment names contain double quote characters, in contravention of RFC822 3.4.1. No specific vulnerability has been found relating to this, but it could allow file attachments to bypass attachment filters that are based on matching filename extensions. Recorded as [CVE-2020-13625](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2020-13625). Reported by Elar Lang of Clarified Security. + +PHPMailer versions prior to 6.0.6 and 5.2.27 are vulnerable to an object injection attack by passing `phar://` paths into `addAttachment()` and other functions that may receive unfiltered local paths, possibly leading to RCE. Recorded as [CVE-2018-19296](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2018-19296). See [this article](https://knasmueller.net/5-answers-about-php-phar-exploitation) for more info on this type of vulnerability. Mitigated by blocking the use of paths containing URL-protocol style prefixes such as `phar://`. Reported by Sehun Oh of cyberone.kr. + +PHPMailer versions prior to 5.2.24 (released July 26th 2017) have an XSS vulnerability in one of the code examples, [CVE-2017-11503](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-11503). The `code_generator.phps` example did not filter user input prior to output. This file is distributed with a `.phps` extension, so it it not normally executable unless it is explicitly renamed, and the file is not included when PHPMailer is loaded through composer, so it is safe by default. There was also an undisclosed potential XSS vulnerability in the default exception handler (unused by default). Patches for both issues kindly provided by Patrick Monnerat of the Fedora Project. + +PHPMailer versions prior to 5.2.22 (released January 9th 2017) have a local file disclosure vulnerability, [CVE-2017-5223](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-5223). If content passed into `msgHTML()` is sourced from unfiltered user input, relative paths can map to absolute local file paths and added as attachments. Also note that `addAttachment` (just like `file_get_contents`, `passthru`, `unlink`, etc) should not be passed user-sourced params either! Reported by Yongxiang Li of Asiasecurity. + +PHPMailer versions prior to 5.2.20 (released December 28th 2016) are vulnerable to [CVE-2016-10045](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-10045) a remote code execution vulnerability, responsibly reported by [Dawid Golunski](https://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10045-Vuln-Patch-Bypass.html), and patched by Paul Buonopane (@Zenexer). + +PHPMailer versions prior to 5.2.18 (released December 2016) are vulnerable to [CVE-2016-10033](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-10033) a remote code execution vulnerability, responsibly reported by [Dawid Golunski](http://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10033-Vuln.html). + +PHPMailer versions prior to 5.2.14 (released November 2015) are vulnerable to [CVE-2015-8476](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-8476) an SMTP CRLF injection bug permitting arbitrary message sending. + +PHPMailer versions prior to 5.2.10 (released May 2015) are vulnerable to [CVE-2008-5619](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2008-5619), a remote code execution vulnerability in the bundled html2text library. This file was removed in 5.2.10, so if you are using a version prior to that and make use of the html2text function, it's vitally important that you upgrade and remove this file. + +PHPMailer versions prior to 2.0.7 and 2.2.1 are vulnerable to [CVE-2012-0796](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-0796), an email header injection attack. + +Joomla 1.6.0 uses PHPMailer in an unsafe way, allowing it to reveal local file paths, reported in [CVE-2011-3747](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2011-3747). + +PHPMailer didn't sanitise the `$lang_path` parameter in `SetLanguage`. This wasn't a problem in itself, but some apps (PHPClassifieds, ATutor) also failed to sanitise user-provided parameters passed to it, permitting semi-arbitrary local file inclusion, reported in [CVE-2010-4914](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-4914), [CVE-2007-2021](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2007-2021) and [CVE-2006-5734](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2006-5734). + +PHPMailer 1.7.2 and earlier contained a possible DDoS vulnerability reported in [CVE-2005-1807](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2005-1807). + +PHPMailer 1.7 and earlier (June 2003) have a possible vulnerability in the `SendmailSend` method where shell commands may not be sanitised. Reported in [CVE-2007-3215](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2007-3215). + diff --git a/vendor/phpmailer/phpmailer/VERSION b/vendor/phpmailer/phpmailer/VERSION new file mode 100644 index 0000000000000000000000000000000000000000..3af67b5cb574b75ac240019f3f8cee9131c8c9aa --- /dev/null +++ b/vendor/phpmailer/phpmailer/VERSION @@ -0,0 +1 @@ +6.1.6 \ No newline at end of file diff --git a/vendor/phpmailer/phpmailer/composer.json b/vendor/phpmailer/phpmailer/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..90d2576f5648ab4987a0ebbe177b19017e4d9565 --- /dev/null +++ b/vendor/phpmailer/phpmailer/composer.json @@ -0,0 +1,57 @@ +{ + "name": "phpmailer/phpmailer", + "type": "library", + "description": "PHPMailer is a full-featured email creation and transfer class for PHP", + "authors": [ + { + "name": "Marcus Bointon", + "email": "phpmailer@synchromedia.co.uk" + }, + { + "name": "Jim Jagielski", + "email": "jimjag@gmail.com" + }, + { + "name": "Andy Prevost", + "email": "codeworxtech@users.sourceforge.net" + }, + { + "name": "Brent R. Matzelle" + } + ], + "funding": [ + { + "url": "https://github.com/synchro", + "type": "github" + } + ], + "require": { + "php": ">=5.5.0", + "ext-ctype": "*", + "ext-filter": "*" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.2", + "phpunit/phpunit": "^4.8 || ^5.7", + "doctrine/annotations": "^1.2" + }, + "suggest": { + "psr/log": "For optional PSR-3 debug logging", + "league/oauth2-google": "Needed for Google XOAUTH2 authentication", + "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication", + "stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication", + "ext-mbstring": "Needed to send email in multibyte encoding charset", + "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)" + }, + "autoload": { + "psr-4": { + "PHPMailer\\PHPMailer\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "PHPMailer\\Test\\": "test/" + } + }, + "license": "LGPL-2.1-only" +} diff --git a/vendor/phpmailer/phpmailer/get_oauth_token.php b/vendor/phpmailer/phpmailer/get_oauth_token.php new file mode 100644 index 0000000000000000000000000000000000000000..1237b57be87f328716b0a8a09b0e1b5a9c092dcf --- /dev/null +++ b/vendor/phpmailer/phpmailer/get_oauth_token.php @@ -0,0 +1,144 @@ +<?php +/** + * PHPMailer - PHP email creation and transport class. + * PHP Version 5.5 + * @package PHPMailer + * @see https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project + * @author Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk> + * @author Jim Jagielski (jimjag) <jimjag@gmail.com> + * @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net> + * @author Brent R. Matzelle (original founder) + * @copyright 2012 - 2017 Marcus Bointon + * @copyright 2010 - 2012 Jim Jagielski + * @copyright 2004 - 2009 Andy Prevost + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + * @note This program is distributed in the hope that it will be useful - WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + */ +/** + * Get an OAuth2 token from an OAuth2 provider. + * * Install this script on your server so that it's accessible + * as [https/http]://<yourdomain>/<folder>/get_oauth_token.php + * e.g.: http://localhost/phpmailer/get_oauth_token.php + * * Ensure dependencies are installed with 'composer install' + * * Set up an app in your Google/Yahoo/Microsoft account + * * Set the script address as the app's redirect URL + * If no refresh token is obtained when running this file, + * revoke access to your app and run the script again. + */ + +namespace PHPMailer\PHPMailer; + +/** + * Aliases for League Provider Classes + * Make sure you have added these to your composer.json and run `composer install` + * Plenty to choose from here: + * @see http://oauth2-client.thephpleague.com/providers/thirdparty/ + */ +// @see https://github.com/thephpleague/oauth2-google +use League\OAuth2\Client\Provider\Google; +// @see https://packagist.org/packages/hayageek/oauth2-yahoo +use Hayageek\OAuth2\Client\Provider\Yahoo; +// @see https://github.com/stevenmaguire/oauth2-microsoft +use Stevenmaguire\OAuth2\Client\Provider\Microsoft; + +if (!isset($_GET['code']) && !isset($_GET['provider'])) { +?> +<html> +<body>Select Provider:<br/> +<a href='?provider=Google'>Google</a><br/> +<a href='?provider=Yahoo'>Yahoo</a><br/> +<a href='?provider=Microsoft'>Microsoft/Outlook/Hotmail/Live/Office365</a><br/> +</body> +</html> +<?php +exit; +} + +require 'vendor/autoload.php'; + +session_start(); + +$providerName = ''; + +if (array_key_exists('provider', $_GET)) { + $providerName = $_GET['provider']; + $_SESSION['provider'] = $providerName; +} elseif (array_key_exists('provider', $_SESSION)) { + $providerName = $_SESSION['provider']; +} +if (!in_array($providerName, ['Google', 'Microsoft', 'Yahoo'])) { + exit('Only Google, Microsoft and Yahoo OAuth2 providers are currently supported in this script.'); +} + +//These details are obtained by setting up an app in the Google developer console, +//or whichever provider you're using. +$clientId = 'RANDOMCHARS-----duv1n2.apps.googleusercontent.com'; +$clientSecret = 'RANDOMCHARS-----lGyjPcRtvP'; + +//If this automatic URL doesn't work, set it yourself manually to the URL of this script +$redirectUri = (isset($_SERVER['HTTPS']) ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']; +//$redirectUri = 'http://localhost/PHPMailer/redirect'; + +$params = [ + 'clientId' => $clientId, + 'clientSecret' => $clientSecret, + 'redirectUri' => $redirectUri, + 'accessType' => 'offline' +]; + +$options = []; +$provider = null; + +switch ($providerName) { + case 'Google': + $provider = new Google($params); + $options = [ + 'scope' => [ + 'https://mail.google.com/' + ] + ]; + break; + case 'Yahoo': + $provider = new Yahoo($params); + break; + case 'Microsoft': + $provider = new Microsoft($params); + $options = [ + 'scope' => [ + 'wl.imap', + 'wl.offline_access' + ] + ]; + break; +} + +if (null === $provider) { + exit('Provider missing'); +} + +if (!isset($_GET['code'])) { + // If we don't have an authorization code then get one + $authUrl = $provider->getAuthorizationUrl($options); + $_SESSION['oauth2state'] = $provider->getState(); + header('Location: ' . $authUrl); + exit; +// Check given state against previously stored one to mitigate CSRF attack +} elseif (empty($_GET['state']) || ($_GET['state'] !== $_SESSION['oauth2state'])) { + unset($_SESSION['oauth2state']); + unset($_SESSION['provider']); + exit('Invalid state'); +} else { + unset($_SESSION['provider']); + // Try to get an access token (using the authorization code grant) + $token = $provider->getAccessToken( + 'authorization_code', + [ + 'code' => $_GET['code'] + ] + ); + // Use this to interact with an API on the users behalf + // Use this to get a new access token if the old one expires + echo 'Refresh Token: ', $token->getRefreshToken(); +} diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-af.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-af.php new file mode 100644 index 0000000000000000000000000000000000000000..3c42d78e15a2e641c78df947abfd246ae28ad7ad --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-af.php @@ -0,0 +1,25 @@ +<?php +/** + * Afrikaans PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP-fout: kon nie geverifieer word nie.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP-fout: kon nie aan SMTP-verbind nie.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP-fout: data nie aanvaar nie.'; +$PHPMAILER_LANG['empty_message'] = 'Boodskapliggaam leeg.'; +$PHPMAILER_LANG['encoding'] = 'Onbekende kodering: '; +$PHPMAILER_LANG['execute'] = 'Kon nie uitvoer nie: '; +$PHPMAILER_LANG['file_access'] = 'Kon nie lêer oopmaak nie: '; +$PHPMAILER_LANG['file_open'] = 'Lêerfout: Kon nie lêer oopmaak nie: '; +$PHPMAILER_LANG['from_failed'] = 'Die volgende Van adres misluk: '; +$PHPMAILER_LANG['instantiate'] = 'Kon nie posfunksie instansieer nie.'; +$PHPMAILER_LANG['invalid_address'] = 'Ongeldige adres: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer word nie ondersteun nie.'; +$PHPMAILER_LANG['provide_address'] = 'U moet ten minste een ontvanger e-pos adres verskaf.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP-fout: Die volgende ontvangers het misluk: '; +$PHPMAILER_LANG['signing'] = 'Ondertekening Fout: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP-verbinding () misluk.'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP-bediener fout: '; +$PHPMAILER_LANG['variable_set'] = 'Kan nie veranderlike instel of herstel nie: '; +$PHPMAILER_LANG['extension_missing'] = 'Uitbreiding ontbreek: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-ar.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-ar.php new file mode 100644 index 0000000000000000000000000000000000000000..865d0b7329ef9da1d6abf15151f744d20c642dde --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-ar.php @@ -0,0 +1,27 @@ +<?php +/** + * Arabic PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author bahjat al mostafa <bahjat983@hotmail.com> + */ + +$PHPMAILER_LANG['authenticate'] = 'خطأ SMTP : لا يمكن تأكيد الهوية.'; +$PHPMAILER_LANG['connect_host'] = 'خطأ SMTP: لا يمكن الاتصال بالخادم SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'خطأ SMTP: لم يتم قبول المعلومات .'; +$PHPMAILER_LANG['empty_message'] = 'نص الرسالة فارغ'; +$PHPMAILER_LANG['encoding'] = 'ترميز غير معروف: '; +$PHPMAILER_LANG['execute'] = 'لا يمكن تنفيذ : '; +$PHPMAILER_LANG['file_access'] = 'لا يمكن الوصول للملف: '; +$PHPMAILER_LANG['file_open'] = 'خطأ في الملف: لا يمكن فتحه: '; +$PHPMAILER_LANG['from_failed'] = 'خطأ على مستوى عنوان المرسل : '; +$PHPMAILER_LANG['instantiate'] = 'لا يمكن توفير خدمة البريد.'; +$PHPMAILER_LANG['invalid_address'] = 'الإرسال غير ممكن لأن عنوان البريد الإلكتروني غير صالح: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' برنامج الإرسال غير مدعوم.'; +$PHPMAILER_LANG['provide_address'] = 'يجب توفير عنوان البريد الإلكتروني لمستلم واحد على الأقل.'; +$PHPMAILER_LANG['recipients_failed'] = 'خطأ SMTP: الأخطاء التالية ' . + 'فشل في الارسال لكل من : '; +$PHPMAILER_LANG['signing'] = 'خطأ في التوقيع: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() غير ممكن.'; +$PHPMAILER_LANG['smtp_error'] = 'خطأ على مستوى الخادم SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'لا يمكن تعيين أو إعادة تعيين متغير: '; +$PHPMAILER_LANG['extension_missing'] = 'الإضافة غير موجودة: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-az.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-az.php new file mode 100644 index 0000000000000000000000000000000000000000..3749d83d603cb6c35e09c42428e043de4acb9e9c --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-az.php @@ -0,0 +1,26 @@ +<?php +/** + * Azerbaijani PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author @mirjalal + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP xətası: Giriş uğursuz oldu.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP xətası: SMTP serverinə qoşulma uğursuz oldu.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP xətası: Verilənlər qəbul edilməyib.'; +$PHPMAILER_LANG['empty_message'] = 'Boş mesaj göndərilə bilməz.'; +$PHPMAILER_LANG['encoding'] = 'Qeyri-müəyyən kodlaşdırma: '; +$PHPMAILER_LANG['execute'] = 'Əmr yerinə yetirilmədi: '; +$PHPMAILER_LANG['file_access'] = 'Fayla giriş yoxdur: '; +$PHPMAILER_LANG['file_open'] = 'Fayl xətası: Fayl açıla bilmədi: '; +$PHPMAILER_LANG['from_failed'] = 'Göstərilən poçtlara göndərmə uğursuz oldu: '; +$PHPMAILER_LANG['instantiate'] = 'Mail funksiyası işə salına bilmədi.'; +$PHPMAILER_LANG['invalid_address'] = 'Düzgün olmayan e-mail adresi: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' - e-mail kitabxanası dəstəklənmir.'; +$PHPMAILER_LANG['provide_address'] = 'Ən azı bir e-mail adresi daxil edilməlidir.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP xətası: Aşağıdakı ünvanlar üzrə alıcılara göndərmə uğursuzdur: '; +$PHPMAILER_LANG['signing'] = 'İmzalama xətası: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP serverinə qoşulma uğursuz oldu.'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP serveri xətası: '; +$PHPMAILER_LANG['variable_set'] = 'Dəyişənin quraşdırılması uğursuz oldu: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-ba.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-ba.php new file mode 100644 index 0000000000000000000000000000000000000000..576c4bb53439c6b0086608885fc9d403790eb895 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-ba.php @@ -0,0 +1,26 @@ +<?php +/** + * Bosnian PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Ermin Islamagić <ermin@islamagic.com> + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP Greška: Neuspjela prijava.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Greška: Nije moguće spojiti se sa SMTP serverom.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Greška: Podatci nisu prihvaćeni.'; +$PHPMAILER_LANG['empty_message'] = 'Sadržaj poruke je prazan.'; +$PHPMAILER_LANG['encoding'] = 'Nepoznata kriptografija: '; +$PHPMAILER_LANG['execute'] = 'Nije moguće izvršiti naredbu: '; +$PHPMAILER_LANG['file_access'] = 'Nije moguće pristupiti datoteci: '; +$PHPMAILER_LANG['file_open'] = 'Nije moguće otvoriti datoteku: '; +$PHPMAILER_LANG['from_failed'] = 'SMTP Greška: Slanje sa navedenih e-mail adresa nije uspjelo: '; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Greška: Slanje na navedene e-mail adrese nije uspjelo: '; +$PHPMAILER_LANG['instantiate'] = 'Ne mogu pokrenuti mail funkcionalnost.'; +$PHPMAILER_LANG['invalid_address'] = 'E-mail nije poslan. Neispravna e-mail adresa: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer nije podržan.'; +$PHPMAILER_LANG['provide_address'] = 'Definišite barem jednu adresu primaoca.'; +$PHPMAILER_LANG['signing'] = 'Greška prilikom prijave: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Spajanje na SMTP server nije uspjelo.'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP greška: '; +$PHPMAILER_LANG['variable_set'] = 'Nije moguće postaviti varijablu ili je vratiti nazad: '; +$PHPMAILER_LANG['extension_missing'] = 'Nedostaje ekstenzija: '; \ No newline at end of file diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-be.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-be.php new file mode 100644 index 0000000000000000000000000000000000000000..e2f98f0f6d9d924986266b5ff2d543429f79fb31 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-be.php @@ -0,0 +1,26 @@ +<?php +/** + * Belarusian PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Aleksander Maksymiuk <info@setpro.pl> + */ + +$PHPMAILER_LANG['authenticate'] = 'Памылка SMTP: памылка ідэнтыфікацыі.'; +$PHPMAILER_LANG['connect_host'] = 'Памылка SMTP: нельга ўстанавіць сувязь з SMTP-серверам.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Памылка SMTP: звесткі непрынятыя.'; +$PHPMAILER_LANG['empty_message'] = 'Пустое паведамленне.'; +$PHPMAILER_LANG['encoding'] = 'Невядомая кадыроўка тэксту: '; +$PHPMAILER_LANG['execute'] = 'Нельга выканаць каманду: '; +$PHPMAILER_LANG['file_access'] = 'Няма доступу да файла: '; +$PHPMAILER_LANG['file_open'] = 'Нельга адкрыць файл: '; +$PHPMAILER_LANG['from_failed'] = 'Няправільны адрас адпраўніка: '; +$PHPMAILER_LANG['instantiate'] = 'Нельга прымяніць функцыю mail().'; +$PHPMAILER_LANG['invalid_address'] = 'Нельга даслаць паведамленне, няправільны email атрымальніка: '; +$PHPMAILER_LANG['provide_address'] = 'Запоўніце, калі ласка, правільны email атрымальніка.'; +$PHPMAILER_LANG['mailer_not_supported'] = ' - паштовы сервер не падтрымліваецца.'; +$PHPMAILER_LANG['recipients_failed'] = 'Памылка SMTP: няправільныя атрымальнікі: '; +$PHPMAILER_LANG['signing'] = 'Памылка подпісу паведамлення: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Памылка сувязі з SMTP-серверам.'; +$PHPMAILER_LANG['smtp_error'] = 'Памылка SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Нельга ўстанавіць або перамяніць значэнне пераменнай: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-bg.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-bg.php new file mode 100644 index 0000000000000000000000000000000000000000..b22941f6b57f7ca0995f44dde1f3e79ef23d8792 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-bg.php @@ -0,0 +1,26 @@ +<?php +/** + * Bulgarian PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Mikhail Kyosev <mialygk@gmail.com> + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP грешка: Не може да се удостовери пред сървъра.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP грешка: Не може да се свърже с SMTP хоста.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP грешка: данните не са приети.'; +$PHPMAILER_LANG['empty_message'] = 'Съдържанието на съобщението е празно'; +$PHPMAILER_LANG['encoding'] = 'Неизвестно кодиране: '; +$PHPMAILER_LANG['execute'] = 'Не може да се изпълни: '; +$PHPMAILER_LANG['file_access'] = 'Няма достъп до файл: '; +$PHPMAILER_LANG['file_open'] = 'Файлова грешка: Не може да се отвори файл: '; +$PHPMAILER_LANG['from_failed'] = 'Следните адреси за подател са невалидни: '; +$PHPMAILER_LANG['instantiate'] = 'Не може да се инстанцира функцията mail.'; +$PHPMAILER_LANG['invalid_address'] = 'Невалиден адрес: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' - пощенски сървър не се поддържа.'; +$PHPMAILER_LANG['provide_address'] = 'Трябва да предоставите поне един email адрес за получател.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP грешка: Следните адреси за Получател са невалидни: '; +$PHPMAILER_LANG['signing'] = 'Грешка при подписване: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP провален connect().'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP сървърна грешка: '; +$PHPMAILER_LANG['variable_set'] = 'Не може да се установи или възстанови променлива: '; +$PHPMAILER_LANG['extension_missing'] = 'Липсва разширение: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-ca.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-ca.php new file mode 100644 index 0000000000000000000000000000000000000000..4117596c6f1ea30712659094731175417bacb31f --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-ca.php @@ -0,0 +1,26 @@ +<?php +/** + * Catalan PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Ivan <web AT microstudi DOT com> + */ + +$PHPMAILER_LANG['authenticate'] = 'Error SMTP: No s’ha pogut autenticar.'; +$PHPMAILER_LANG['connect_host'] = 'Error SMTP: No es pot connectar al servidor SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Error SMTP: Dades no acceptades.'; +$PHPMAILER_LANG['empty_message'] = 'El cos del missatge està buit.'; +$PHPMAILER_LANG['encoding'] = 'Codificació desconeguda: '; +$PHPMAILER_LANG['execute'] = 'No es pot executar: '; +$PHPMAILER_LANG['file_access'] = 'No es pot accedir a l’arxiu: '; +$PHPMAILER_LANG['file_open'] = 'Error d’Arxiu: No es pot obrir l’arxiu: '; +$PHPMAILER_LANG['from_failed'] = 'La(s) següent(s) adreces de remitent han fallat: '; +$PHPMAILER_LANG['instantiate'] = 'No s’ha pogut crear una instància de la funció Mail.'; +$PHPMAILER_LANG['invalid_address'] = 'Adreça d’email invalida: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer no està suportat'; +$PHPMAILER_LANG['provide_address'] = 'S’ha de proveir almenys una adreça d’email com a destinatari.'; +$PHPMAILER_LANG['recipients_failed'] = 'Error SMTP: Els següents destinataris han fallat: '; +$PHPMAILER_LANG['signing'] = 'Error al signar: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Ha fallat el SMTP Connect().'; +$PHPMAILER_LANG['smtp_error'] = 'Error del servidor SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'No s’ha pogut establir o restablir la variable: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-ch.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-ch.php new file mode 100644 index 0000000000000000000000000000000000000000..4fda6b85d7f3425fe136abecc77c644e6b668410 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-ch.php @@ -0,0 +1,26 @@ +<?php +/** + * Chinese PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author LiuXin <http://www.80x86.cn/blog/> + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP 错误:身份验证失败。'; +$PHPMAILER_LANG['connect_host'] = 'SMTP 错误: 不能连接SMTP主机。'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 错误: 数据不可接受。'; +//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; +$PHPMAILER_LANG['encoding'] = '未知编码:'; +$PHPMAILER_LANG['execute'] = '不能执行: '; +$PHPMAILER_LANG['file_access'] = '不能访问文件:'; +$PHPMAILER_LANG['file_open'] = '文件错误:不能打开文件:'; +$PHPMAILER_LANG['from_failed'] = '下面的发送地址邮件发送失败了: '; +$PHPMAILER_LANG['instantiate'] = '不能实现mail方法。'; +//$PHPMAILER_LANG['invalid_address'] = 'Invalid address: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' 您所选择的发送邮件的方法并不支持。'; +$PHPMAILER_LANG['provide_address'] = '您必须提供至少一个 收信人的email地址。'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP 错误: 下面的 收件人失败了: '; +//$PHPMAILER_LANG['signing'] = 'Signing Error: '; +//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; +//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; +//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-cs.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-cs.php new file mode 100644 index 0000000000000000000000000000000000000000..1160cf0cc4a162eb0fc2c3de9eace53d611d4920 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-cs.php @@ -0,0 +1,25 @@ +<?php +/** + * Czech PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + */ + +$PHPMAILER_LANG['authenticate'] = 'Chyba SMTP: Autentizace selhala.'; +$PHPMAILER_LANG['connect_host'] = 'Chyba SMTP: Nelze navázat spojení se SMTP serverem.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Chyba SMTP: Data nebyla přijata.'; +$PHPMAILER_LANG['empty_message'] = 'Prázdné tělo zprávy'; +$PHPMAILER_LANG['encoding'] = 'Neznámé kódování: '; +$PHPMAILER_LANG['execute'] = 'Nelze provést: '; +$PHPMAILER_LANG['file_access'] = 'Nelze získat přístup k souboru: '; +$PHPMAILER_LANG['file_open'] = 'Chyba souboru: Nelze otevřít soubor pro čtení: '; +$PHPMAILER_LANG['from_failed'] = 'Následující adresa odesílatele je nesprávná: '; +$PHPMAILER_LANG['instantiate'] = 'Nelze vytvořit instanci emailové funkce.'; +$PHPMAILER_LANG['invalid_address'] = 'Neplatná adresa: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer není podporován.'; +$PHPMAILER_LANG['provide_address'] = 'Musíte zadat alespoň jednu emailovou adresu příjemce.'; +$PHPMAILER_LANG['recipients_failed'] = 'Chyba SMTP: Následující adresy příjemců nejsou správně: '; +$PHPMAILER_LANG['signing'] = 'Chyba přihlašování: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() selhal.'; +$PHPMAILER_LANG['smtp_error'] = 'Chyba SMTP serveru: '; +$PHPMAILER_LANG['variable_set'] = 'Nelze nastavit nebo změnit proměnnou: '; +$PHPMAILER_LANG['extension_missing'] = 'Chybí rozšíření: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-da.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-da.php new file mode 100644 index 0000000000000000000000000000000000000000..5febb516e08bd9f1ea2f35e9ff0ce782e0818204 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-da.php @@ -0,0 +1,28 @@ +<?php +/** + * Danish PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author John Sebastian <jms@iwb.dk> + * Rewrite and extension of the work by Mikael Stokkebro <info@stokkebro.dk> + * + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP fejl: Login mislykkedes.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP fejl: Forbindelse til SMTP serveren kunne ikke oprettes.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP fejl: Data blev ikke accepteret.'; +$PHPMAILER_LANG['empty_message'] = 'Meddelelsen er uden indhold'; +$PHPMAILER_LANG['encoding'] = 'Ukendt encode-format: '; +$PHPMAILER_LANG['execute'] = 'Kunne ikke afvikle: '; +$PHPMAILER_LANG['file_access'] = 'Kunne ikke tilgå filen: '; +$PHPMAILER_LANG['file_open'] = 'Fil fejl: Kunne ikke åbne filen: '; +$PHPMAILER_LANG['from_failed'] = 'Følgende afsenderadresse er forkert: '; +$PHPMAILER_LANG['instantiate'] = 'Email funktionen kunne ikke initialiseres.'; +$PHPMAILER_LANG['invalid_address'] = 'Udgyldig adresse: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer understøttes ikke.'; +$PHPMAILER_LANG['provide_address'] = 'Indtast mindst en modtagers email adresse.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP fejl: Følgende modtagere er forkerte: '; +$PHPMAILER_LANG['signing'] = 'Signeringsfejl: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() fejlede.'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP server fejl: '; +$PHPMAILER_LANG['variable_set'] = 'Kunne ikke definere eller nulstille variablen: '; +$PHPMAILER_LANG['extension_missing'] = 'Udvidelse mangler: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-de.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-de.php new file mode 100644 index 0000000000000000000000000000000000000000..aa987a9caffde62fbcc3b5f2391e978772f9c102 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-de.php @@ -0,0 +1,25 @@ +<?php +/** + * German PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP-Fehler: Authentifizierung fehlgeschlagen.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP-Fehler: Konnte keine Verbindung zum SMTP-Host herstellen.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP-Fehler: Daten werden nicht akzeptiert.'; +$PHPMAILER_LANG['empty_message'] = 'E-Mail-Inhalt ist leer.'; +$PHPMAILER_LANG['encoding'] = 'Unbekannte Kodierung: '; +$PHPMAILER_LANG['execute'] = 'Konnte folgenden Befehl nicht ausführen: '; +$PHPMAILER_LANG['file_access'] = 'Zugriff auf folgende Datei fehlgeschlagen: '; +$PHPMAILER_LANG['file_open'] = 'Dateifehler: Konnte folgende Datei nicht öffnen: '; +$PHPMAILER_LANG['from_failed'] = 'Die folgende Absenderadresse ist nicht korrekt: '; +$PHPMAILER_LANG['instantiate'] = 'Mail-Funktion konnte nicht initialisiert werden.'; +$PHPMAILER_LANG['invalid_address'] = 'Die Adresse ist ungültig: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer wird nicht unterstützt.'; +$PHPMAILER_LANG['provide_address'] = 'Bitte geben Sie mindestens eine Empfängeradresse an.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP-Fehler: Die folgenden Empfänger sind nicht korrekt: '; +$PHPMAILER_LANG['signing'] = 'Fehler beim Signieren: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Verbindung zum SMTP-Server fehlgeschlagen.'; +$PHPMAILER_LANG['smtp_error'] = 'Fehler vom SMTP-Server: '; +$PHPMAILER_LANG['variable_set'] = 'Kann Variable nicht setzen oder zurücksetzen: '; +$PHPMAILER_LANG['extension_missing'] = 'Fehlende Erweiterung: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-el.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-el.php new file mode 100644 index 0000000000000000000000000000000000000000..7109641e49741d0151915cbb4d22301b33616229 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-el.php @@ -0,0 +1,25 @@ +<?php +/** + * Greek PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP Σφάλμα: Αδυναμία πιστοποίησης (authentication).'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Σφάλμα: Αδυναμία σύνδεσης στον SMTP-Host.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Σφάλμα: Τα δεδομένα δεν έγιναν αποδεκτά.'; +$PHPMAILER_LANG['empty_message'] = 'Το E-Mail δεν έχει περιεχόμενο .'; +$PHPMAILER_LANG['encoding'] = 'Αγνωστο Encoding-Format: '; +$PHPMAILER_LANG['execute'] = 'Αδυναμία εκτέλεσης ακόλουθης εντολής: '; +$PHPMAILER_LANG['file_access'] = 'Αδυναμία προσπέλασης του αρχείου: '; +$PHPMAILER_LANG['file_open'] = 'Σφάλμα Αρχείου: Δεν είναι δυνατό το άνοιγμα του ακόλουθου αρχείου: '; +$PHPMAILER_LANG['from_failed'] = 'Η παρακάτω διεύθυνση αποστολέα δεν είναι σωστή: '; +$PHPMAILER_LANG['instantiate'] = 'Αδυναμία εκκίνησης Mail function.'; +$PHPMAILER_LANG['invalid_address'] = 'Το μήνυμα δεν εστάλη, η διεύθυνση δεν είναι έγκυρη: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer δεν υποστηρίζεται.'; +$PHPMAILER_LANG['provide_address'] = 'Παρακαλούμε δώστε τουλάχιστον μια e-mail διεύθυνση παραλήπτη.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Σφάλμα: Οι παρακάτω διευθύνσεις παραλήπτη δεν είναι έγκυρες: '; +$PHPMAILER_LANG['signing'] = 'Σφάλμα υπογραφής: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Αποτυχία σύνδεσης στον SMTP Server.'; +$PHPMAILER_LANG['smtp_error'] = 'Σφάλμα από τον SMTP Server: '; +$PHPMAILER_LANG['variable_set'] = 'Αδυναμία ορισμού ή αρχικοποίησης μεταβλητής: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-eo.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-eo.php new file mode 100644 index 0000000000000000000000000000000000000000..5ca6cb709525f511c4c7041b8d49a7c73a10bf39 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-eo.php @@ -0,0 +1,25 @@ +<?php +/** + * Esperanto PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + */ + +$PHPMAILER_LANG['authenticate'] = 'Eraro de servilo SMTP : aŭtentigo malsukcesis.'; +$PHPMAILER_LANG['connect_host'] = 'Eraro de servilo SMTP : konektado al servilo malsukcesis.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Eraro de servilo SMTP : neĝustaj datumoj.'; +$PHPMAILER_LANG['empty_message'] = 'Teksto de mesaĝo mankas.'; +$PHPMAILER_LANG['encoding'] = 'Nekonata kodoprezento: '; +$PHPMAILER_LANG['execute'] = 'Lanĉi rulumadon ne eblis: '; +$PHPMAILER_LANG['file_access'] = 'Aliro al dosiero ne sukcesis: '; +$PHPMAILER_LANG['file_open'] = 'Eraro de dosiero: malfermo neeblas: '; +$PHPMAILER_LANG['from_failed'] = 'Jena adreso de sendinto malsukcesis: '; +$PHPMAILER_LANG['instantiate'] = 'Genero de retmesaĝa funkcio neeblis.'; +$PHPMAILER_LANG['invalid_address'] = 'Retadreso ne validas: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mesaĝilo ne subtenata.'; +$PHPMAILER_LANG['provide_address'] = 'Vi devas tajpi almenaŭ unu recevontan retadreson.'; +$PHPMAILER_LANG['recipients_failed'] = 'Eraro de servilo SMTP : la jenaj poŝtrecivuloj kaŭzis eraron: '; +$PHPMAILER_LANG['signing'] = 'Eraro de subskribo: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP konektado malsukcesis.'; +$PHPMAILER_LANG['smtp_error'] = 'Eraro de servilo SMTP : '; +$PHPMAILER_LANG['variable_set'] = 'Variablo ne pravalorizeblas aŭ ne repravalorizeblas: '; +$PHPMAILER_LANG['extension_missing'] = 'Mankas etendo: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-es.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-es.php new file mode 100644 index 0000000000000000000000000000000000000000..f2c4e8316c0939ce7e8cc5e8589549c463af3353 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-es.php @@ -0,0 +1,26 @@ +<?php +/** + * Spanish PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Matt Sturdy <matt.sturdy@gmail.com> + */ + +$PHPMAILER_LANG['authenticate'] = 'Error SMTP: Imposible autentificar.'; +$PHPMAILER_LANG['connect_host'] = 'Error SMTP: Imposible conectar al servidor SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Error SMTP: Datos no aceptados.'; +$PHPMAILER_LANG['empty_message'] = 'El cuerpo del mensaje está vacío.'; +$PHPMAILER_LANG['encoding'] = 'Codificación desconocida: '; +$PHPMAILER_LANG['execute'] = 'Imposible ejecutar: '; +$PHPMAILER_LANG['file_access'] = 'Imposible acceder al archivo: '; +$PHPMAILER_LANG['file_open'] = 'Error de Archivo: Imposible abrir el archivo: '; +$PHPMAILER_LANG['from_failed'] = 'La(s) siguiente(s) direcciones de remitente fallaron: '; +$PHPMAILER_LANG['instantiate'] = 'Imposible crear una instancia de la función Mail.'; +$PHPMAILER_LANG['invalid_address'] = 'Imposible enviar: dirección de email inválido: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer no está soportado.'; +$PHPMAILER_LANG['provide_address'] = 'Debe proporcionar al menos una dirección de email de destino.'; +$PHPMAILER_LANG['recipients_failed'] = 'Error SMTP: Los siguientes destinos fallaron: '; +$PHPMAILER_LANG['signing'] = 'Error al firmar: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() falló.'; +$PHPMAILER_LANG['smtp_error'] = 'Error del servidor SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'No se pudo configurar la variable: '; +$PHPMAILER_LANG['extension_missing'] = 'Extensión faltante: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-et.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-et.php new file mode 100644 index 0000000000000000000000000000000000000000..7e06da13e615def00230e0f6db96ee1c284c1d70 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-et.php @@ -0,0 +1,27 @@ +<?php +/** + * Estonian PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Indrek Päri + * @author Elan Ruusamäe <glen@delfi.ee> + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP Viga: Autoriseerimise viga.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Viga: Ei õnnestunud luua ühendust SMTP serveriga.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Viga: Vigased andmed.'; +$PHPMAILER_LANG['empty_message'] = 'Tühi kirja sisu'; +$PHPMAILER_LANG["encoding"] = 'Tundmatu kodeering: '; +$PHPMAILER_LANG['execute'] = 'Tegevus ebaõnnestus: '; +$PHPMAILER_LANG['file_access'] = 'Pole piisavalt õiguseid järgneva faili avamiseks: '; +$PHPMAILER_LANG['file_open'] = 'Faili Viga: Faili avamine ebaõnnestus: '; +$PHPMAILER_LANG['from_failed'] = 'Järgnev saatja e-posti aadress on vigane: '; +$PHPMAILER_LANG['instantiate'] = 'mail funktiooni käivitamine ebaõnnestus.'; +$PHPMAILER_LANG['invalid_address'] = 'Saatmine peatatud, e-posti address vigane: '; +$PHPMAILER_LANG['provide_address'] = 'Te peate määrama vähemalt ühe saaja e-posti aadressi.'; +$PHPMAILER_LANG['mailer_not_supported'] = ' maileri tugi puudub.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Viga: Järgnevate saajate e-posti aadressid on vigased: '; +$PHPMAILER_LANG["signing"] = 'Viga allkirjastamisel: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() ebaõnnestus.'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP serveri viga: '; +$PHPMAILER_LANG['variable_set'] = 'Ei õnnestunud määrata või lähtestada muutujat: '; +$PHPMAILER_LANG['extension_missing'] = 'Nõutud laiendus on puudu: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-fa.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-fa.php new file mode 100644 index 0000000000000000000000000000000000000000..8aa0ad2218962766e912e1f03a7d32485fc63133 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-fa.php @@ -0,0 +1,27 @@ +<?php +/** + * Persian/Farsi PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Ali Jazayeri <jaza.ali@gmail.com> + * @author Mohammad Hossein Mojtahedi <mhm5000@gmail.com> + */ + +$PHPMAILER_LANG['authenticate'] = 'خطای SMTP: احراز هویت با شکست مواجه شد.'; +$PHPMAILER_LANG['connect_host'] = 'خطای SMTP: اتصال به سرور SMTP برقرار نشد.'; +$PHPMAILER_LANG['data_not_accepted'] = 'خطای SMTP: دادهها نادرست هستند.'; +$PHPMAILER_LANG['empty_message'] = 'بخش متن پیام خالی است.'; +$PHPMAILER_LANG['encoding'] = 'کدگذاری ناشناخته: '; +$PHPMAILER_LANG['execute'] = 'امکان اجرا وجود ندارد: '; +$PHPMAILER_LANG['file_access'] = 'امکان دسترسی به فایل وجود ندارد: '; +$PHPMAILER_LANG['file_open'] = 'خطای File: امکان بازکردن فایل وجود ندارد: '; +$PHPMAILER_LANG['from_failed'] = 'آدرس فرستنده اشتباه است: '; +$PHPMAILER_LANG['instantiate'] = 'امکان معرفی تابع ایمیل وجود ندارد.'; +$PHPMAILER_LANG['invalid_address'] = 'آدرس ایمیل معتبر نیست: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer پشتیبانی نمیشود.'; +$PHPMAILER_LANG['provide_address'] = 'باید حداقل یک آدرس گیرنده وارد کنید.'; +$PHPMAILER_LANG['recipients_failed'] = 'خطای SMTP: ارسال به آدرس گیرنده با خطا مواجه شد: '; +$PHPMAILER_LANG['signing'] = 'خطا در امضا: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'خطا در اتصال به SMTP.'; +$PHPMAILER_LANG['smtp_error'] = 'خطا در SMTP Server: '; +$PHPMAILER_LANG['variable_set'] = 'امکان ارسال یا ارسال مجدد متغیرها وجود ندارد: '; +$PHPMAILER_LANG['extension_missing'] = 'افزونه موجود نیست: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-fi.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-fi.php new file mode 100644 index 0000000000000000000000000000000000000000..ec4e75234971ef55d16526c18bd06a8495b87d24 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-fi.php @@ -0,0 +1,27 @@ +<?php +/** + * Finnish PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Jyry Kuukanen + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP-virhe: käyttäjätunnistus epäonnistui.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP-virhe: yhteys palvelimeen ei onnistu.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP-virhe: data on virheellinen.'; +//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; +$PHPMAILER_LANG['encoding'] = 'Tuntematon koodaustyyppi: '; +$PHPMAILER_LANG['execute'] = 'Suoritus epäonnistui: '; +$PHPMAILER_LANG['file_access'] = 'Seuraavaan tiedostoon ei ole oikeuksia: '; +$PHPMAILER_LANG['file_open'] = 'Tiedostovirhe: Ei voida avata tiedostoa: '; +$PHPMAILER_LANG['from_failed'] = 'Seuraava lähettäjän osoite on virheellinen: '; +$PHPMAILER_LANG['instantiate'] = 'mail-funktion luonti epäonnistui.'; +//$PHPMAILER_LANG['invalid_address'] = 'Invalid address: '; +$PHPMAILER_LANG['mailer_not_supported'] = 'postivälitintyyppiä ei tueta.'; +$PHPMAILER_LANG['provide_address'] = 'Aseta vähintään yksi vastaanottajan sähköpostiosoite.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP-virhe: seuraava vastaanottaja osoite on virheellinen.'; +$PHPMAILER_LANG['encoding'] = 'Tuntematon koodaustyyppi: '; +//$PHPMAILER_LANG['signing'] = 'Signing Error: '; +//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; +//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; +//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-fo.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-fo.php new file mode 100644 index 0000000000000000000000000000000000000000..68cdef1d090c5e681fbebad7974bee4607821904 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-fo.php @@ -0,0 +1,26 @@ +<?php +/** + * Faroese PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Dávur Sørensen <http://www.profo-webdesign.dk> + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP feilur: Kundi ikki góðkenna.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP feilur: Kundi ikki knýta samband við SMTP vert.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP feilur: Data ikki góðkent.'; +//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; +$PHPMAILER_LANG['encoding'] = 'Ókend encoding: '; +$PHPMAILER_LANG['execute'] = 'Kundi ikki útføra: '; +$PHPMAILER_LANG['file_access'] = 'Kundi ikki tilganga fílu: '; +$PHPMAILER_LANG['file_open'] = 'Fílu feilur: Kundi ikki opna fílu: '; +$PHPMAILER_LANG['from_failed'] = 'fylgjandi Frá/From adressa miseydnaðist: '; +$PHPMAILER_LANG['instantiate'] = 'Kuni ikki instantiera mail funktión.'; +//$PHPMAILER_LANG['invalid_address'] = 'Invalid address: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' er ikki supporterað.'; +$PHPMAILER_LANG['provide_address'] = 'Tú skal uppgeva minst móttakara-emailadressu(r).'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Feilur: Fylgjandi móttakarar miseydnaðust: '; +//$PHPMAILER_LANG['signing'] = 'Signing Error: '; +//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; +//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; +//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-fr.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-fr.php new file mode 100644 index 0000000000000000000000000000000000000000..af68c9236881d1bee0f81ea03651b803902cf7a7 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-fr.php @@ -0,0 +1,29 @@ +<?php +/** + * French PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * Some French punctuation requires a thin non-breaking space (U+202F) character before it, + * for example before a colon or exclamation mark. + * There is one of these characters between these quotes: " " + * @see http://unicode.org/udhr/n/notes_fra.html + */ + +$PHPMAILER_LANG['authenticate'] = 'Erreur SMTP : échec de l\'authentification.'; +$PHPMAILER_LANG['connect_host'] = 'Erreur SMTP : impossible de se connecter au serveur SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Erreur SMTP : données incorrectes.'; +$PHPMAILER_LANG['empty_message'] = 'Corps du message vide.'; +$PHPMAILER_LANG['encoding'] = 'Encodage inconnu : '; +$PHPMAILER_LANG['execute'] = 'Impossible de lancer l\'exécution : '; +$PHPMAILER_LANG['file_access'] = 'Impossible d\'accéder au fichier : '; +$PHPMAILER_LANG['file_open'] = 'Ouverture du fichier impossible : '; +$PHPMAILER_LANG['from_failed'] = 'L\'adresse d\'expéditeur suivante a échoué : '; +$PHPMAILER_LANG['instantiate'] = 'Impossible d\'instancier la fonction mail.'; +$PHPMAILER_LANG['invalid_address'] = 'L\'adresse courriel n\'est pas valide : '; +$PHPMAILER_LANG['mailer_not_supported'] = ' client de messagerie non supporté.'; +$PHPMAILER_LANG['provide_address'] = 'Vous devez fournir au moins une adresse de destinataire.'; +$PHPMAILER_LANG['recipients_failed'] = 'Erreur SMTP : les destinataires suivants sont en erreur : '; +$PHPMAILER_LANG['signing'] = 'Erreur de signature : '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Échec de la connexion SMTP.'; +$PHPMAILER_LANG['smtp_error'] = 'Erreur du serveur SMTP : '; +$PHPMAILER_LANG['variable_set'] = 'Impossible d\'initialiser ou de réinitialiser une variable : '; +$PHPMAILER_LANG['extension_missing'] = 'Extension manquante : '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-gl.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-gl.php new file mode 100644 index 0000000000000000000000000000000000000000..9b4ce4d8de252e3d95adcf17e9c0c37420edec3d --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-gl.php @@ -0,0 +1,26 @@ +<?php +/** + * Galician PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author by Donato Rouco <donatorouco@gmail.com> + */ + +$PHPMAILER_LANG['authenticate'] = 'Erro SMTP: Non puido ser autentificado.'; +$PHPMAILER_LANG['connect_host'] = 'Erro SMTP: Non puido conectar co servidor SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Erro SMTP: Datos non aceptados.'; +$PHPMAILER_LANG['empty_message'] = 'Corpo da mensaxe vacía'; +$PHPMAILER_LANG['encoding'] = 'Codificación descoñecida: '; +$PHPMAILER_LANG['execute'] = 'Non puido ser executado: '; +$PHPMAILER_LANG['file_access'] = 'Nob puido acceder ó arquivo: '; +$PHPMAILER_LANG['file_open'] = 'Erro de Arquivo: No puido abrir o arquivo: '; +$PHPMAILER_LANG['from_failed'] = 'A(s) seguinte(s) dirección(s) de remitente(s) deron erro: '; +$PHPMAILER_LANG['instantiate'] = 'Non puido crear unha instancia da función Mail.'; +$PHPMAILER_LANG['invalid_address'] = 'Non puido envia-lo correo: dirección de email inválida: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer non está soportado.'; +$PHPMAILER_LANG['provide_address'] = 'Debe engadir polo menos unha dirección de email coma destino.'; +$PHPMAILER_LANG['recipients_failed'] = 'Erro SMTP: Os seguintes destinos fallaron: '; +$PHPMAILER_LANG['signing'] = 'Erro ó firmar: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() fallou.'; +$PHPMAILER_LANG['smtp_error'] = 'Erro do servidor SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Non puidemos axustar ou reaxustar a variábel: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-he.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-he.php new file mode 100644 index 0000000000000000000000000000000000000000..70eb717578f1e4e1c0cbcee855e14b8a91f8f7ce --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-he.php @@ -0,0 +1,26 @@ +<?php +/** + * Hebrew PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Ronny Sherer <ronny@hoojima.com> + */ + +$PHPMAILER_LANG['authenticate'] = 'שגיאת SMTP: פעולת האימות נכשלה.'; +$PHPMAILER_LANG['connect_host'] = 'שגיאת SMTP: לא הצלחתי להתחבר לשרת SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'שגיאת SMTP: מידע לא התקבל.'; +$PHPMAILER_LANG['empty_message'] = 'גוף ההודעה ריק'; +$PHPMAILER_LANG['invalid_address'] = 'כתובת שגויה: '; +$PHPMAILER_LANG['encoding'] = 'קידוד לא מוכר: '; +$PHPMAILER_LANG['execute'] = 'לא הצלחתי להפעיל את: '; +$PHPMAILER_LANG['file_access'] = 'לא ניתן לגשת לקובץ: '; +$PHPMAILER_LANG['file_open'] = 'שגיאת קובץ: לא ניתן לגשת לקובץ: '; +$PHPMAILER_LANG['from_failed'] = 'כתובות הנמענים הבאות נכשלו: '; +$PHPMAILER_LANG['instantiate'] = 'לא הצלחתי להפעיל את פונקציית המייל.'; +$PHPMAILER_LANG['mailer_not_supported'] = ' אינה נתמכת.'; +$PHPMAILER_LANG['provide_address'] = 'חובה לספק לפחות כתובת אחת של מקבל המייל.'; +$PHPMAILER_LANG['recipients_failed'] = 'שגיאת SMTP: הנמענים הבאים נכשלו: '; +$PHPMAILER_LANG['signing'] = 'שגיאת חתימה: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; +$PHPMAILER_LANG['smtp_error'] = 'שגיאת שרת SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'לא ניתן לקבוע או לשנות את המשתנה: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-hi.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-hi.php new file mode 100644 index 0000000000000000000000000000000000000000..607a5ee3f9bd3e678f96336cd1837bbf61deeb96 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-hi.php @@ -0,0 +1,26 @@ +<?php +/** + * Hindi PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Yash Karanke <mr.karanke@gmail.com> + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP त्रुटि: प्रामाणिकता की जांच नहीं हो सका। '; +$PHPMAILER_LANG['connect_host'] = 'SMTP त्रुटि: SMTP सर्वर से कनेक्ट नहीं हो सका। '; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP त्रुटि: डेटा स्वीकार नहीं किया जाता है। '; +$PHPMAILER_LANG['empty_message'] = 'संदेश खाली है। '; +$PHPMAILER_LANG['encoding'] = 'अज्ञात एन्कोडिंग प्रकार। '; +$PHPMAILER_LANG['execute'] = 'आदेश को निष्पादित करने में विफल। '; +$PHPMAILER_LANG['file_access'] = 'फ़ाइल उपलब्ध नहीं है। '; +$PHPMAILER_LANG['file_open'] = 'फ़ाइल त्रुटि: फाइल को खोला नहीं जा सका। '; +$PHPMAILER_LANG['from_failed'] = 'प्रेषक का पता गलत है। '; +$PHPMAILER_LANG['instantiate'] = 'मेल फ़ंक्शन कॉल नहीं कर सकता है।'; +$PHPMAILER_LANG['invalid_address'] = 'पता गलत है। '; +$PHPMAILER_LANG['mailer_not_supported'] = 'मेल सर्वर के साथ काम नहीं करता है। '; +$PHPMAILER_LANG['provide_address'] = 'आपको कम से कम एक प्राप्तकर्ता का ई-मेल पता प्रदान करना होगा।'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP त्रुटि: निम्न प्राप्तकर्ताओं को पते भेजने में विफल। '; +$PHPMAILER_LANG['signing'] = 'साइनअप त्रुटि:। '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP का connect () फ़ंक्शन विफल हुआ। '; +$PHPMAILER_LANG['smtp_error'] = 'SMTP सर्वर त्रुटि। '; +$PHPMAILER_LANG['variable_set'] = 'चर को बना या संशोधित नहीं किया जा सकता। '; +$PHPMAILER_LANG['extension_missing'] = 'एक्सटेन्षन गायब है: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-hr.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-hr.php new file mode 100644 index 0000000000000000000000000000000000000000..3822920adda1780df96dd7117f5ed4729aabe2e1 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-hr.php @@ -0,0 +1,26 @@ +<?php +/** + * Croatian PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Hrvoj3e <hrvoj3e@gmail.com> + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP Greška: Neuspjela autentikacija.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Greška: Ne mogu se spojiti na SMTP poslužitelj.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Greška: Podatci nisu prihvaćeni.'; +$PHPMAILER_LANG['empty_message'] = 'Sadržaj poruke je prazan.'; +$PHPMAILER_LANG['encoding'] = 'Nepoznati encoding: '; +$PHPMAILER_LANG['execute'] = 'Nije moguće izvršiti naredbu: '; +$PHPMAILER_LANG['file_access'] = 'Nije moguće pristupiti datoteci: '; +$PHPMAILER_LANG['file_open'] = 'Nije moguće otvoriti datoteku: '; +$PHPMAILER_LANG['from_failed'] = 'SMTP Greška: Slanje s navedenih e-mail adresa nije uspjelo: '; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Greška: Slanje na navedenih e-mail adresa nije uspjelo: '; +$PHPMAILER_LANG['instantiate'] = 'Ne mogu pokrenuti mail funkcionalnost.'; +$PHPMAILER_LANG['invalid_address'] = 'E-mail nije poslan. Neispravna e-mail adresa: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer nije podržan.'; +$PHPMAILER_LANG['provide_address'] = 'Definirajte barem jednu adresu primatelja.'; +$PHPMAILER_LANG['signing'] = 'Greška prilikom prijave: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Spajanje na SMTP poslužitelj nije uspjelo.'; +$PHPMAILER_LANG['smtp_error'] = 'Greška SMTP poslužitelja: '; +$PHPMAILER_LANG['variable_set'] = 'Ne mogu postaviti varijablu niti ju vratiti nazad: '; +$PHPMAILER_LANG['extension_missing'] = 'Nedostaje proširenje: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-hu.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-hu.php new file mode 100644 index 0000000000000000000000000000000000000000..196cddc224f74442a14c7ccbdd5503478ac98c7a --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-hu.php @@ -0,0 +1,26 @@ +<?php +/** + * Hungarian PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author @dominicus-75 + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP hiba: az azonosítás sikertelen.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP hiba: nem lehet kapcsolódni az SMTP-szerverhez.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP hiba: adatok visszautasítva.'; +$PHPMAILER_LANG['empty_message'] = 'Üres az üzenettörzs.'; +$PHPMAILER_LANG['encoding'] = 'Ismeretlen kódolás: '; +$PHPMAILER_LANG['execute'] = 'Nem lehet végrehajtani: '; +$PHPMAILER_LANG['file_access'] = 'A következő fájl nem elérhető: '; +$PHPMAILER_LANG['file_open'] = 'Fájl hiba: a következő fájlt nem lehet megnyitni: '; +$PHPMAILER_LANG['from_failed'] = 'A feladóként megadott következő cím hibás: '; +$PHPMAILER_LANG['instantiate'] = 'A PHP mail() függvényt nem sikerült végrehajtani.'; +$PHPMAILER_LANG['invalid_address'] = 'Érvénytelen cím: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' a mailer-osztály nem támogatott.'; +$PHPMAILER_LANG['provide_address'] = 'Legalább egy címzettet fel kell tüntetni.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP hiba: a címzettként megadott következő címek hibásak: '; +$PHPMAILER_LANG['signing'] = 'Hibás aláírás: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Hiba az SMTP-kapcsolatban.'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP-szerver hiba: '; +$PHPMAILER_LANG['variable_set'] = 'A következő változók beállítása nem sikerült: '; +$PHPMAILER_LANG['extension_missing'] = 'Bővítmény hiányzik: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-hy.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-hy.php new file mode 100644 index 0000000000000000000000000000000000000000..ff2a969501f581d10fd4098cc904809277cf1ad6 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-hy.php @@ -0,0 +1,26 @@ +<?php +/** + * Armenian PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Hrayr Grigoryan <hrayr@bits.am> + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP -ի սխալ: չհաջողվեց ստուգել իսկությունը.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP -ի սխալ: չհաջողվեց կապ հաստատել SMTP սերվերի հետ.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP -ի սխալ: տվյալները ընդունված չեն.'; +$PHPMAILER_LANG['empty_message'] = 'Հաղորդագրությունը դատարկ է'; +$PHPMAILER_LANG['encoding'] = 'Կոդավորման անհայտ տեսակ: '; +$PHPMAILER_LANG['execute'] = 'Չհաջողվեց իրականացնել հրամանը: '; +$PHPMAILER_LANG['file_access'] = 'Ֆայլը հասանելի չէ: '; +$PHPMAILER_LANG['file_open'] = 'Ֆայլի սխալ: ֆայլը չհաջողվեց բացել: '; +$PHPMAILER_LANG['from_failed'] = 'Ուղարկողի հետևյալ հասցեն սխալ է: '; +$PHPMAILER_LANG['instantiate'] = 'Հնարավոր չէ կանչել mail ֆունկցիան.'; +$PHPMAILER_LANG['invalid_address'] = 'Հասցեն սխալ է: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' փոստային սերվերի հետ չի աշխատում.'; +$PHPMAILER_LANG['provide_address'] = 'Անհրաժեշտ է տրամադրել գոնե մեկ ստացողի e-mail հասցե.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP -ի սխալ: չի հաջողվել ուղարկել հետևյալ ստացողների հասցեներին: '; +$PHPMAILER_LANG['signing'] = 'Ստորագրման սխալ: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP -ի connect() ֆունկցիան չի հաջողվել'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP սերվերի սխալ: '; +$PHPMAILER_LANG['variable_set'] = 'Չի հաջողվում ստեղծել կամ վերափոխել փոփոխականը: '; +$PHPMAILER_LANG['extension_missing'] = 'Հավելվածը բացակայում է: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-id.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-id.php new file mode 100644 index 0000000000000000000000000000000000000000..ba6ca5faca95b29f663a3ba4ae18863c732b5123 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-id.php @@ -0,0 +1,27 @@ +<?php +/** + * Indonesian PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Cecep Prawiro <cecep.prawiro@gmail.com> + * @author @januridp + */ + +$PHPMAILER_LANG['authenticate'] = 'Kesalahan SMTP: Tidak dapat mengotentikasi.'; +$PHPMAILER_LANG['connect_host'] = 'Kesalahan SMTP: Tidak dapat terhubung ke host SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Kesalahan SMTP: Data tidak diterima.'; +$PHPMAILER_LANG['empty_message'] = 'Isi pesan kosong'; +$PHPMAILER_LANG['encoding'] = 'Pengkodean karakter tidak dikenali: '; +$PHPMAILER_LANG['execute'] = 'Tidak dapat menjalankan proses : '; +$PHPMAILER_LANG['file_access'] = 'Tidak dapat mengakses berkas : '; +$PHPMAILER_LANG['file_open'] = 'Kesalahan File: Berkas tidak dapat dibuka : '; +$PHPMAILER_LANG['from_failed'] = 'Alamat pengirim berikut mengakibatkan kesalahan : '; +$PHPMAILER_LANG['instantiate'] = 'Tidak dapat menginisialisasi fungsi surel'; +$PHPMAILER_LANG['invalid_address'] = 'Gagal terkirim, alamat surel tidak benar : '; +$PHPMAILER_LANG['provide_address'] = 'Harus disediakan minimal satu alamat tujuan'; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer tidak didukung'; +$PHPMAILER_LANG['recipients_failed'] = 'Kesalahan SMTP: Alamat tujuan berikut menghasilkan kesalahan : '; +$PHPMAILER_LANG['signing'] = 'Kesalahan dalam tanda tangan : '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() gagal.'; +$PHPMAILER_LANG['smtp_error'] = 'Kesalahan pada pelayan SMTP : '; +$PHPMAILER_LANG['variable_set'] = 'Tidak dapat mengatur atau mengatur ulang variable : '; +$PHPMAILER_LANG['extension_missing'] = 'Ekstensi hilang: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-it.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-it.php new file mode 100644 index 0000000000000000000000000000000000000000..e67b6f72c6e8a0676a2d26cc33d750d96c24b0a0 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-it.php @@ -0,0 +1,27 @@ +<?php +/** + * Italian PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Ilias Bartolini <brain79@inwind.it> + * @author Stefano Sabatini <sabas88@gmail.com> + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP Error: Impossibile autenticarsi.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Impossibile connettersi all\'host SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: Dati non accettati dal server.'; +$PHPMAILER_LANG['empty_message'] = 'Il corpo del messaggio è vuoto'; +$PHPMAILER_LANG['encoding'] = 'Codifica dei caratteri sconosciuta: '; +$PHPMAILER_LANG['execute'] = 'Impossibile eseguire l\'operazione: '; +$PHPMAILER_LANG['file_access'] = 'Impossibile accedere al file: '; +$PHPMAILER_LANG['file_open'] = 'File Error: Impossibile aprire il file: '; +$PHPMAILER_LANG['from_failed'] = 'I seguenti indirizzi mittenti hanno generato errore: '; +$PHPMAILER_LANG['instantiate'] = 'Impossibile istanziare la funzione mail'; +$PHPMAILER_LANG['invalid_address'] = 'Impossibile inviare, l\'indirizzo email non è valido: '; +$PHPMAILER_LANG['provide_address'] = 'Deve essere fornito almeno un indirizzo ricevente'; +$PHPMAILER_LANG['mailer_not_supported'] = 'Mailer non supportato'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: I seguenti indirizzi destinatari hanno generato un errore: '; +$PHPMAILER_LANG['signing'] = 'Errore nella firma: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() fallita.'; +$PHPMAILER_LANG['smtp_error'] = 'Errore del server SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Impossibile impostare o resettare la variabile: '; +$PHPMAILER_LANG['extension_missing'] = 'Estensione mancante: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-ja.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-ja.php new file mode 100644 index 0000000000000000000000000000000000000000..2d778728d7762206d01ff924fc6d24ccd4a5d7d4 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-ja.php @@ -0,0 +1,27 @@ +<?php +/** + * Japanese PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Mitsuhiro Yoshida <http://mitstek.com/> + * @author Yoshi Sakai <http://bluemooninc.jp/> + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTPエラー: 認証できませんでした。'; +$PHPMAILER_LANG['connect_host'] = 'SMTPエラー: SMTPホストに接続できませんでした。'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTPエラー: データが受け付けられませんでした。'; +//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; +$PHPMAILER_LANG['encoding'] = '不明なエンコーディング: '; +$PHPMAILER_LANG['execute'] = '実行できませんでした: '; +$PHPMAILER_LANG['file_access'] = 'ファイルにアクセスできません: '; +$PHPMAILER_LANG['file_open'] = 'ファイルエラー: ファイルを開けません: '; +$PHPMAILER_LANG['from_failed'] = 'Fromアドレスを登録する際にエラーが発生しました: '; +$PHPMAILER_LANG['instantiate'] = 'メール関数が正常に動作しませんでした。'; +//$PHPMAILER_LANG['invalid_address'] = 'Invalid address: '; +$PHPMAILER_LANG['provide_address'] = '少なくとも1つメールアドレスを 指定する必要があります。'; +$PHPMAILER_LANG['mailer_not_supported'] = ' メーラーがサポートされていません。'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTPエラー: 次の受信者アドレスに 間違いがあります: '; +//$PHPMAILER_LANG['signing'] = 'Signing Error: '; +//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; +//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; +//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-ka.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-ka.php new file mode 100644 index 0000000000000000000000000000000000000000..dd1af8abec5db96bc8e41a717dda506b14af61f7 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-ka.php @@ -0,0 +1,26 @@ +<?php +/** + * Georgian PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Avtandil Kikabidze aka LONGMAN <akalongman@gmail.com> + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP შეცდომა: ავტორიზაცია შეუძლებელია.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP შეცდომა: SMTP სერვერთან დაკავშირება შეუძლებელია.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP შეცდომა: მონაცემები არ იქნა მიღებული.'; +$PHPMAILER_LANG['encoding'] = 'კოდირების უცნობი ტიპი: '; +$PHPMAILER_LANG['execute'] = 'შეუძლებელია შემდეგი ბრძანების შესრულება: '; +$PHPMAILER_LANG['file_access'] = 'შეუძლებელია წვდომა ფაილთან: '; +$PHPMAILER_LANG['file_open'] = 'ფაილური სისტემის შეცდომა: არ იხსნება ფაილი: '; +$PHPMAILER_LANG['from_failed'] = 'გამგზავნის არასწორი მისამართი: '; +$PHPMAILER_LANG['instantiate'] = 'mail ფუნქციის გაშვება ვერ ხერხდება.'; +$PHPMAILER_LANG['provide_address'] = 'გთხოვთ მიუთითოთ ერთი ადრესატის e-mail მისამართი მაინც.'; +$PHPMAILER_LANG['mailer_not_supported'] = ' - საფოსტო სერვერის მხარდაჭერა არ არის.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP შეცდომა: შემდეგ მისამართებზე გაგზავნა ვერ მოხერხდა: '; +$PHPMAILER_LANG['empty_message'] = 'შეტყობინება ცარიელია'; +$PHPMAILER_LANG['invalid_address'] = 'არ გაიგზავნა, e-mail მისამართის არასწორი ფორმატი: '; +$PHPMAILER_LANG['signing'] = 'ხელმოწერის შეცდომა: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'შეცდომა SMTP სერვერთან დაკავშირებისას'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP სერვერის შეცდომა: '; +$PHPMAILER_LANG['variable_set'] = 'შეუძლებელია შემდეგი ცვლადის შექმნა ან შეცვლა: '; +$PHPMAILER_LANG['extension_missing'] = 'ბიბლიოთეკა არ არსებობს: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-ko.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-ko.php new file mode 100644 index 0000000000000000000000000000000000000000..9599fa6819200c3f0beb73d687259f339597620d --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-ko.php @@ -0,0 +1,26 @@ +<?php +/** + * Korean PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author ChalkPE <amato0617@gmail.com> + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP 오류: 인증할 수 없습니다.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP 오류: SMTP 호스트에 접속할 수 없습니다.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 오류: 데이터가 받아들여지지 않았습니다.'; +$PHPMAILER_LANG['empty_message'] = '메세지 내용이 없습니다'; +$PHPMAILER_LANG['encoding'] = '알 수 없는 인코딩: '; +$PHPMAILER_LANG['execute'] = '실행 불가: '; +$PHPMAILER_LANG['file_access'] = '파일 접근 불가: '; +$PHPMAILER_LANG['file_open'] = '파일 오류: 파일을 열 수 없습니다: '; +$PHPMAILER_LANG['from_failed'] = '다음 From 주소에서 오류가 발생했습니다: '; +$PHPMAILER_LANG['instantiate'] = 'mail 함수를 인스턴스화할 수 없습니다'; +$PHPMAILER_LANG['invalid_address'] = '잘못된 주소: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' 메일러는 지원되지 않습니다.'; +$PHPMAILER_LANG['provide_address'] = '적어도 한 개 이상의 수신자 메일 주소를 제공해야 합니다.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP 오류: 다음 수신자에서 오류가 발생했습니다: '; +$PHPMAILER_LANG['signing'] = '서명 오류: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP 연결을 실패하였습니다.'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP 서버 오류: '; +$PHPMAILER_LANG['variable_set'] = '변수 설정 및 초기화 불가: '; +$PHPMAILER_LANG['extension_missing'] = '확장자 없음: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-lt.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-lt.php new file mode 100644 index 0000000000000000000000000000000000000000..1253a4fdb491710eeb633875a697e8ebf99c5f14 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-lt.php @@ -0,0 +1,26 @@ +<?php +/** + * Lithuanian PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Dainius Kaupaitis <dk@sum.lt> + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP klaida: autentifikacija nepavyko.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP klaida: nepavyksta prisijungti prie SMTP stoties.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP klaida: duomenys nepriimti.'; +$PHPMAILER_LANG['empty_message'] = 'Laiško turinys tuščias'; +$PHPMAILER_LANG['encoding'] = 'Neatpažinta koduotė: '; +$PHPMAILER_LANG['execute'] = 'Nepavyko įvykdyti komandos: '; +$PHPMAILER_LANG['file_access'] = 'Byla nepasiekiama: '; +$PHPMAILER_LANG['file_open'] = 'Bylos klaida: Nepavyksta atidaryti: '; +$PHPMAILER_LANG['from_failed'] = 'Neteisingas siuntėjo adresas: '; +$PHPMAILER_LANG['instantiate'] = 'Nepavyko paleisti mail funkcijos.'; +$PHPMAILER_LANG['invalid_address'] = 'Neteisingas adresas: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' pašto stotis nepalaikoma.'; +$PHPMAILER_LANG['provide_address'] = 'Nurodykite bent vieną gavėjo adresą.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP klaida: nepavyko išsiųsti šiems gavėjams: '; +$PHPMAILER_LANG['signing'] = 'Prisijungimo klaida: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP susijungimo klaida'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP stoties klaida: '; +$PHPMAILER_LANG['variable_set'] = 'Nepavyko priskirti reikšmės kintamajam: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-lv.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-lv.php new file mode 100644 index 0000000000000000000000000000000000000000..39bf9a19e22db30904ec98e8df0909e768799b9a --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-lv.php @@ -0,0 +1,26 @@ +<?php +/** + * Latvian PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Eduards M. <e@npd.lv> + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP kļūda: Autorizācija neizdevās.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Kļūda: Nevar izveidot savienojumu ar SMTP serveri.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Kļūda: Nepieņem informāciju.'; +$PHPMAILER_LANG['empty_message'] = 'Ziņojuma teksts ir tukšs'; +$PHPMAILER_LANG['encoding'] = 'Neatpazīts kodējums: '; +$PHPMAILER_LANG['execute'] = 'Neizdevās izpildīt komandu: '; +$PHPMAILER_LANG['file_access'] = 'Fails nav pieejams: '; +$PHPMAILER_LANG['file_open'] = 'Faila kļūda: Nevar atvērt failu: '; +$PHPMAILER_LANG['from_failed'] = 'Nepareiza sūtītāja adrese: '; +$PHPMAILER_LANG['instantiate'] = 'Nevar palaist sūtīšanas funkciju.'; +$PHPMAILER_LANG['invalid_address'] = 'Nepareiza adrese: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' sūtītājs netiek atbalstīts.'; +$PHPMAILER_LANG['provide_address'] = 'Lūdzu, norādiet vismaz vienu adresātu.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP kļūda: neizdevās nosūtīt šādiem saņēmējiem: '; +$PHPMAILER_LANG['signing'] = 'Autorizācijas kļūda: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP savienojuma kļūda'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP servera kļūda: '; +$PHPMAILER_LANG['variable_set'] = 'Nevar piešķirt mainīgā vērtību: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-mg.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-mg.php new file mode 100644 index 0000000000000000000000000000000000000000..f4c7563030c40dcc56b3f1b19520f28401b8ed06 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-mg.php @@ -0,0 +1,25 @@ +<?php +/** + * Malagasy PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Hackinet <piyushjha8164@gmail.com> + */ +$PHPMAILER_LANG['authenticate'] = 'Hadisoana SMTP: Tsy nahomby ny fanamarinana.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Tsy afaka mampifandray amin\'ny mpampiantrano SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP diso: tsy voarakitra ny angona.'; +$PHPMAILER_LANG['empty_message'] = 'Tsy misy ny votoaty mailaka.'; +$PHPMAILER_LANG['encoding'] = 'Tsy fantatra encoding: '; +$PHPMAILER_LANG['execute'] = 'Tsy afaka manatanteraka ity baiko manaraka ity: '; +$PHPMAILER_LANG['file_access'] = 'Tsy nahomby ny fidirana amin\'ity rakitra ity: '; +$PHPMAILER_LANG['file_open'] = 'Hadisoana diso: Tsy afaka nanokatra ity file manaraka ity: '; +$PHPMAILER_LANG['from_failed'] = 'Ny adiresy iraka manaraka dia diso: '; +$PHPMAILER_LANG['instantiate'] = 'Tsy afaka nanomboka ny hetsika mail.'; +$PHPMAILER_LANG['invalid_address'] = 'Tsy mety ny adiresy: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer tsy manohana.'; +$PHPMAILER_LANG['provide_address'] = 'Alefaso azafady iray adiresy iray farafahakeliny.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: Tsy mety ireo mpanaraka ireto: '; +$PHPMAILER_LANG['signing'] = 'Error nandritra ny sonia:'; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Tsy nahomby ny fifandraisana tamin\'ny server SMTP.'; +$PHPMAILER_LANG['smtp_error'] = 'Fahadisoana tamin\'ny server SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Tsy azo atao ny mametraka na mamerina ny variable: '; +$PHPMAILER_LANG['extension_missing'] = 'Tsy hita ny ampahany: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-ms.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-ms.php new file mode 100644 index 0000000000000000000000000000000000000000..f12a6ad4861155ad9dc83a439317a5e47b4c58d3 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-ms.php @@ -0,0 +1,26 @@ +<?php +/** + * Malaysian PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Nawawi Jamili <nawawi@rutweb.com> + */ + +$PHPMAILER_LANG['authenticate'] = 'Ralat SMTP: Tidak dapat pengesahan.'; +$PHPMAILER_LANG['connect_host'] = 'Ralat SMTP: Tidak dapat menghubungi hos pelayan SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Ralat SMTP: Data tidak diterima oleh pelayan.'; +$PHPMAILER_LANG['empty_message'] = 'Tiada isi untuk mesej'; +$PHPMAILER_LANG['encoding'] = 'Pengekodan tidak diketahui: '; +$PHPMAILER_LANG['execute'] = 'Tidak dapat melaksanakan: '; +$PHPMAILER_LANG['file_access'] = 'Tidak dapat mengakses fail: '; +$PHPMAILER_LANG['file_open'] = 'Ralat Fail: Tidak dapat membuka fail: '; +$PHPMAILER_LANG['from_failed'] = 'Berikut merupakan ralat dari alamat e-mel: '; +$PHPMAILER_LANG['instantiate'] = 'Tidak dapat memberi contoh fungsi e-mel.'; +$PHPMAILER_LANG['invalid_address'] = 'Alamat emel tidak sah: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' jenis penghantar emel tidak disokong.'; +$PHPMAILER_LANG['provide_address'] = 'Anda perlu menyediakan sekurang-kurangnya satu alamat e-mel penerima.'; +$PHPMAILER_LANG['recipients_failed'] = 'Ralat SMTP: Penerima e-mel berikut telah gagal: '; +$PHPMAILER_LANG['signing'] = 'Ralat pada tanda tangan: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() telah gagal.'; +$PHPMAILER_LANG['smtp_error'] = 'Ralat pada pelayan SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Tidak boleh menetapkan atau menetapkan semula pembolehubah: '; +$PHPMAILER_LANG['extension_missing'] = 'Sambungan hilang: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-nb.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-nb.php new file mode 100644 index 0000000000000000000000000000000000000000..97403e73cae9297bdf90c50eccfb2e43d7346930 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-nb.php @@ -0,0 +1,25 @@ +<?php +/** + * Norwegian Bokmål PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP Feil: Kunne ikke autentisere.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Feil: Kunne ikke koble til SMTP tjener.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Feil: Datainnhold ikke akseptert.'; +$PHPMAILER_LANG['empty_message'] = 'Meldingsinnhold mangler'; +$PHPMAILER_LANG['encoding'] = 'Ukjent koding: '; +$PHPMAILER_LANG['execute'] = 'Kunne ikke utføre: '; +$PHPMAILER_LANG['file_access'] = 'Får ikke tilgang til filen: '; +$PHPMAILER_LANG['file_open'] = 'Fil Feil: Kunne ikke åpne filen: '; +$PHPMAILER_LANG['from_failed'] = 'Følgende Frå adresse feilet: '; +$PHPMAILER_LANG['instantiate'] = 'Kunne ikke initialisere post funksjon.'; +$PHPMAILER_LANG['invalid_address'] = 'Ugyldig adresse: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' sender er ikke støttet.'; +$PHPMAILER_LANG['provide_address'] = 'Du må opppgi minst en mottakeradresse.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Feil: Følgende mottakeradresse feilet: '; +$PHPMAILER_LANG['signing'] = 'Signering Feil: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP connect() feilet.'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP server feil: '; +$PHPMAILER_LANG['variable_set'] = 'Kan ikke skrive eller omskrive variabel: '; +$PHPMAILER_LANG['extension_missing'] = 'Utvidelse mangler: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-nl.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-nl.php new file mode 100644 index 0000000000000000000000000000000000000000..f4d0e7cd3bdd424ccfee7060831dd9a37a9a13b1 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-nl.php @@ -0,0 +1,28 @@ +<?php +/** + * Dutch PHPMailer language file: refer to PHPMailer.php for definitive list. + * @package PHPMailer + * @author Tuxion <team@tuxion.nl> + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP-fout: authenticatie mislukt.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP-fout: kon niet verbinden met SMTP-host.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP-fout: data niet geaccepteerd.'; +$PHPMAILER_LANG['empty_message'] = 'Berichttekst is leeg'; +$PHPMAILER_LANG['encoding'] = 'Onbekende codering: '; +$PHPMAILER_LANG['execute'] = 'Kon niet uitvoeren: '; +$PHPMAILER_LANG['file_access'] = 'Kreeg geen toegang tot bestand: '; +$PHPMAILER_LANG['file_open'] = 'Bestandsfout: kon bestand niet openen: '; +$PHPMAILER_LANG['from_failed'] = 'Het volgende afzendersadres is mislukt: '; +$PHPMAILER_LANG['instantiate'] = 'Kon mailfunctie niet initialiseren.'; +$PHPMAILER_LANG['invalid_address'] = 'Ongeldig adres: '; +$PHPMAILER_LANG['invalid_hostentry'] = 'Ongeldige hostentry: '; +$PHPMAILER_LANG['invalid_host'] = 'Ongeldige host: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer wordt niet ondersteund.'; +$PHPMAILER_LANG['provide_address'] = 'Er moet minstens één ontvanger worden opgegeven.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP-fout: de volgende ontvangers zijn mislukt: '; +$PHPMAILER_LANG['signing'] = 'Signeerfout: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Verbinding mislukt.'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP-serverfout: '; +$PHPMAILER_LANG['variable_set'] = 'Kan de volgende variabele niet instellen of resetten: '; +$PHPMAILER_LANG['extension_missing'] = 'Extensie afwezig: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-pl.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-pl.php new file mode 100644 index 0000000000000000000000000000000000000000..3da0dee91f1d0a1f1d0e2972f8d710be67e72208 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-pl.php @@ -0,0 +1,26 @@ +<?php +/** + * Polish PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + */ + +$PHPMAILER_LANG['authenticate'] = 'Błąd SMTP: Nie można przeprowadzić uwierzytelnienia.'; +$PHPMAILER_LANG['connect_host'] = 'Błąd SMTP: Nie można połączyć się z wybranym hostem.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Błąd SMTP: Dane nie zostały przyjęte.'; +$PHPMAILER_LANG['empty_message'] = 'Wiadomość jest pusta.'; +$PHPMAILER_LANG['encoding'] = 'Nieznany sposób kodowania znaków: '; +$PHPMAILER_LANG['execute'] = 'Nie można uruchomić: '; +$PHPMAILER_LANG['file_access'] = 'Brak dostępu do pliku: '; +$PHPMAILER_LANG['file_open'] = 'Nie można otworzyć pliku: '; +$PHPMAILER_LANG['from_failed'] = 'Następujący adres Nadawcy jest nieprawidłowy: '; +$PHPMAILER_LANG['instantiate'] = 'Nie można wywołać funkcji mail(). Sprawdź konfigurację serwera.'; +$PHPMAILER_LANG['invalid_address'] = 'Nie można wysłać wiadomości, '. + 'następujący adres Odbiorcy jest nieprawidłowy: '; +$PHPMAILER_LANG['provide_address'] = 'Należy podać prawidłowy adres email Odbiorcy.'; +$PHPMAILER_LANG['mailer_not_supported'] = 'Wybrana metoda wysyłki wiadomości nie jest obsługiwana.'; +$PHPMAILER_LANG['recipients_failed'] = 'Błąd SMTP: Następujący odbiorcy są nieprawidłowi: '; +$PHPMAILER_LANG['signing'] = 'Błąd podpisywania wiadomości: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() zakończone niepowodzeniem.'; +$PHPMAILER_LANG['smtp_error'] = 'Błąd SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Nie można ustawić lub zmodyfikować zmiennej: '; +$PHPMAILER_LANG['extension_missing'] = 'Brakujące rozszerzenie: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-pt.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-pt.php new file mode 100644 index 0000000000000000000000000000000000000000..f365d5d0b4beb0d465574aabfe580062ccef6781 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-pt.php @@ -0,0 +1,26 @@ +<?php +/** + * Portuguese (European) PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Jonadabe <jonadabe@hotmail.com> + */ + +$PHPMAILER_LANG['authenticate'] = 'Erro do SMTP: Não foi possível realizar a autenticação.'; +$PHPMAILER_LANG['connect_host'] = 'Erro do SMTP: Não foi possível realizar ligação com o servidor SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Erro do SMTP: Os dados foram rejeitados.'; +$PHPMAILER_LANG['empty_message'] = 'A mensagem no e-mail está vazia.'; +$PHPMAILER_LANG['encoding'] = 'Codificação desconhecida: '; +$PHPMAILER_LANG['execute'] = 'Não foi possível executar: '; +$PHPMAILER_LANG['file_access'] = 'Não foi possível aceder o ficheiro: '; +$PHPMAILER_LANG['file_open'] = 'Abertura do ficheiro: Não foi possível abrir o ficheiro: '; +$PHPMAILER_LANG['from_failed'] = 'Ocorreram falhas nos endereços dos seguintes remententes: '; +$PHPMAILER_LANG['instantiate'] = 'Não foi possível iniciar uma instância da função mail.'; +$PHPMAILER_LANG['invalid_address'] = 'Não foi enviado nenhum e-mail para o endereço de e-mail inválido: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer não é suportado.'; +$PHPMAILER_LANG['provide_address'] = 'Tem de fornecer pelo menos um endereço como destinatário do e-mail.'; +$PHPMAILER_LANG['recipients_failed'] = 'Erro do SMTP: O endereço do seguinte destinatário falhou: '; +$PHPMAILER_LANG['signing'] = 'Erro ao assinar: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() falhou.'; +$PHPMAILER_LANG['smtp_error'] = 'Erro de servidor SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Não foi possível definir ou redefinir a variável: '; +$PHPMAILER_LANG['extension_missing'] = 'Extensão em falta: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-pt_br.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-pt_br.php new file mode 100644 index 0000000000000000000000000000000000000000..62d692d426c9f5f5e177853679f0e7b73515ec0a --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-pt_br.php @@ -0,0 +1,29 @@ +<?php +/** + * Brazilian Portuguese PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Paulo Henrique Garcia <paulo@controllerweb.com.br> + * @author Lucas Guimarães <lucas@lucasguimaraes.com> + * @author Phelipe Alves <phelipealvesdesouza@gmail.com> + * @author Fabio Beneditto <fabiobeneditto@gmail.com> + */ + +$PHPMAILER_LANG['authenticate'] = 'Erro de SMTP: Não foi possível autenticar.'; +$PHPMAILER_LANG['connect_host'] = 'Erro de SMTP: Não foi possível conectar ao servidor SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Erro de SMTP: Dados rejeitados.'; +$PHPMAILER_LANG['empty_message'] = 'Mensagem vazia'; +$PHPMAILER_LANG['encoding'] = 'Codificação desconhecida: '; +$PHPMAILER_LANG['execute'] = 'Não foi possível executar: '; +$PHPMAILER_LANG['file_access'] = 'Não foi possível acessar o arquivo: '; +$PHPMAILER_LANG['file_open'] = 'Erro de Arquivo: Não foi possível abrir o arquivo: '; +$PHPMAILER_LANG['from_failed'] = 'Os seguintes remetentes falharam: '; +$PHPMAILER_LANG['instantiate'] = 'Não foi possível instanciar a função mail.'; +$PHPMAILER_LANG['invalid_address'] = 'Endereço de e-mail inválido: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer não é suportado.'; +$PHPMAILER_LANG['provide_address'] = 'Você deve informar pelo menos um destinatário.'; +$PHPMAILER_LANG['recipients_failed'] = 'Erro de SMTP: Os seguintes destinatários falharam: '; +$PHPMAILER_LANG['signing'] = 'Erro de Assinatura: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() falhou.'; +$PHPMAILER_LANG['smtp_error'] = 'Erro de servidor SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Não foi possível definir ou redefinir a variável: '; +$PHPMAILER_LANG['extension_missing'] = 'Extensão não existe: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-ro.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-ro.php new file mode 100644 index 0000000000000000000000000000000000000000..fa100eaa207625bcfe273129663386924b357c64 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-ro.php @@ -0,0 +1,26 @@ +<?php +/** + * Romanian PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Alex Florea <alecz.fia@gmail.com> + */ + +$PHPMAILER_LANG['authenticate'] = 'Eroare SMTP: Autentificarea a eșuat.'; +$PHPMAILER_LANG['connect_host'] = 'Eroare SMTP: Conectarea la serverul SMTP a eșuat.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Eroare SMTP: Datele nu au fost acceptate.'; +$PHPMAILER_LANG['empty_message'] = 'Mesajul este gol.'; +$PHPMAILER_LANG['encoding'] = 'Encodare necunoscută: '; +$PHPMAILER_LANG['execute'] = 'Nu se poate executa următoarea comandă: '; +$PHPMAILER_LANG['file_access'] = 'Nu se poate accesa următorul fișier: '; +$PHPMAILER_LANG['file_open'] = 'Eroare fișier: Nu se poate deschide următorul fișier: '; +$PHPMAILER_LANG['from_failed'] = 'Următoarele adrese From au dat eroare: '; +$PHPMAILER_LANG['instantiate'] = 'Funcția mail nu a putut fi inițializată.'; +$PHPMAILER_LANG['invalid_address'] = 'Adresa de email nu este validă: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer nu este suportat.'; +$PHPMAILER_LANG['provide_address'] = 'Trebuie să adăugați cel puțin o adresă de email.'; +$PHPMAILER_LANG['recipients_failed'] = 'Eroare SMTP: Următoarele adrese de email au eșuat: '; +$PHPMAILER_LANG['signing'] = 'A aparut o problemă la semnarea emailului. '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Conectarea la serverul SMTP a eșuat.'; +$PHPMAILER_LANG['smtp_error'] = 'Eroare server SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Nu se poate seta/reseta variabila. '; +$PHPMAILER_LANG['extension_missing'] = 'Lipsește extensia: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-ru.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-ru.php new file mode 100644 index 0000000000000000000000000000000000000000..720e9a116d8a3754674f48fead1bd623c880810b --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-ru.php @@ -0,0 +1,27 @@ +<?php +/** + * Russian PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Alexey Chumakov <alex@chumakov.ru> + * @author Foster Snowhill <i18n@forstwoof.ru> + */ + +$PHPMAILER_LANG['authenticate'] = 'Ошибка SMTP: ошибка авторизации.'; +$PHPMAILER_LANG['connect_host'] = 'Ошибка SMTP: не удается подключиться к SMTP-серверу.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Ошибка SMTP: данные не приняты.'; +$PHPMAILER_LANG['encoding'] = 'Неизвестная кодировка: '; +$PHPMAILER_LANG['execute'] = 'Невозможно выполнить команду: '; +$PHPMAILER_LANG['file_access'] = 'Нет доступа к файлу: '; +$PHPMAILER_LANG['file_open'] = 'Файловая ошибка: не удаётся открыть файл: '; +$PHPMAILER_LANG['from_failed'] = 'Неверный адрес отправителя: '; +$PHPMAILER_LANG['instantiate'] = 'Невозможно запустить функцию mail().'; +$PHPMAILER_LANG['provide_address'] = 'Пожалуйста, введите хотя бы один email-адрес получателя.'; +$PHPMAILER_LANG['mailer_not_supported'] = ' — почтовый сервер не поддерживается.'; +$PHPMAILER_LANG['recipients_failed'] = 'Ошибка SMTP: не удалась отправка таким адресатам: '; +$PHPMAILER_LANG['empty_message'] = 'Пустое сообщение'; +$PHPMAILER_LANG['invalid_address'] = 'Не отправлено из-за неправильного формата email-адреса: '; +$PHPMAILER_LANG['signing'] = 'Ошибка подписи: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Ошибка соединения с SMTP-сервером'; +$PHPMAILER_LANG['smtp_error'] = 'Ошибка SMTP-сервера: '; +$PHPMAILER_LANG['variable_set'] = 'Невозможно установить или сбросить переменную: '; +$PHPMAILER_LANG['extension_missing'] = 'Расширение отсутствует: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-sk.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-sk.php new file mode 100644 index 0000000000000000000000000000000000000000..69cfb0fc1db21991d042513c3ef463deff2ee884 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-sk.php @@ -0,0 +1,27 @@ +<?php +/** + * Slovak PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Michal Tinka <michaltinka@gmail.com> + * @author Peter Orlický <pcmanik91@gmail.com> + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP Error: Chyba autentifikácie.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Nebolo možné nadviazať spojenie so SMTP serverom.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: Dáta neboli prijaté'; +$PHPMAILER_LANG['empty_message'] = 'Prázdne telo správy.'; +$PHPMAILER_LANG['encoding'] = 'Neznáme kódovanie: '; +$PHPMAILER_LANG['execute'] = 'Nedá sa vykonať: '; +$PHPMAILER_LANG['file_access'] = 'Súbor nebol nájdený: '; +$PHPMAILER_LANG['file_open'] = 'File Error: Súbor sa otvoriť pre čítanie: '; +$PHPMAILER_LANG['from_failed'] = 'Následujúca adresa From je nesprávna: '; +$PHPMAILER_LANG['instantiate'] = 'Nedá sa vytvoriť inštancia emailovej funkcie.'; +$PHPMAILER_LANG['invalid_address'] = 'Neodoslané, emailová adresa je nesprávna: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' emailový klient nieje podporovaný.'; +$PHPMAILER_LANG['provide_address'] = 'Musíte zadať aspoň jednu emailovú adresu príjemcu.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: Adresy príjemcov niesu správne '; +$PHPMAILER_LANG['signing'] = 'Chyba prihlasovania: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() zlyhalo.'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP chyba serveru: '; +$PHPMAILER_LANG['variable_set'] = 'Nemožno nastaviť alebo resetovať premennú: '; +$PHPMAILER_LANG['extension_missing'] = 'Chýba rozšírenie: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-sl.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-sl.php new file mode 100644 index 0000000000000000000000000000000000000000..1e3cb7fa9b95e5fda943a6fdcabfdef845d34f67 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-sl.php @@ -0,0 +1,27 @@ +<?php +/** + * Slovene PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Klemen Tušar <techouse@gmail.com> + * @author Filip Š <projects@filips.si> + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP napaka: Avtentikacija ni uspela.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP napaka: Vzpostavljanje povezave s SMTP gostiteljem ni uspelo.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP napaka: Strežnik zavrača podatke.'; +$PHPMAILER_LANG['empty_message'] = 'E-poštno sporočilo nima vsebine.'; +$PHPMAILER_LANG['encoding'] = 'Nepoznan tip kodiranja: '; +$PHPMAILER_LANG['execute'] = 'Operacija ni uspela: '; +$PHPMAILER_LANG['file_access'] = 'Nimam dostopa do datoteke: '; +$PHPMAILER_LANG['file_open'] = 'Ne morem odpreti datoteke: '; +$PHPMAILER_LANG['from_failed'] = 'Neveljaven e-naslov pošiljatelja: '; +$PHPMAILER_LANG['instantiate'] = 'Ne morem inicializirati mail funkcije.'; +$PHPMAILER_LANG['invalid_address'] = 'E-poštno sporočilo ni bilo poslano. E-naslov je neveljaven: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer ni podprt.'; +$PHPMAILER_LANG['provide_address'] = 'Prosim vnesite vsaj enega naslovnika.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP napaka: Sledeči naslovniki so neveljavni: '; +$PHPMAILER_LANG['signing'] = 'Napaka pri podpisovanju: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Ne morem vzpostaviti povezave s SMTP strežnikom.'; +$PHPMAILER_LANG['smtp_error'] = 'Napaka SMTP strežnika: '; +$PHPMAILER_LANG['variable_set'] = 'Ne morem nastaviti oz. ponastaviti spremenljivke: '; +$PHPMAILER_LANG['extension_missing'] = 'Manjkajoča razširitev: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-sr.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-sr.php new file mode 100644 index 0000000000000000000000000000000000000000..34c1e182a09d827d9840363de2b6a3888388edc1 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-sr.php @@ -0,0 +1,27 @@ +<?php +/** + * Serbian PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Александар Јевремовић <ajevremovic@gmail.com> + * @author Miloš Milanović <mmilanovic016@gmail.com> + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP грешка: аутентификација није успела.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP грешка: повезивање са SMTP сервером није успело.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP грешка: подаци нису прихваћени.'; +$PHPMAILER_LANG['empty_message'] = 'Садржај поруке је празан.'; +$PHPMAILER_LANG['encoding'] = 'Непознато кодирање: '; +$PHPMAILER_LANG['execute'] = 'Није могуће извршити наредбу: '; +$PHPMAILER_LANG['file_access'] = 'Није могуће приступити датотеци: '; +$PHPMAILER_LANG['file_open'] = 'Није могуће отворити датотеку: '; +$PHPMAILER_LANG['from_failed'] = 'SMTP грешка: слање са следећих адреса није успело: '; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP грешка: слање на следеће адресе није успело: '; +$PHPMAILER_LANG['instantiate'] = 'Није могуће покренути mail функцију.'; +$PHPMAILER_LANG['invalid_address'] = 'Порука није послата. Неисправна адреса: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' мејлер није подржан.'; +$PHPMAILER_LANG['provide_address'] = 'Дефинишите бар једну адресу примаоца.'; +$PHPMAILER_LANG['signing'] = 'Грешка приликом пријаве: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Повезивање са SMTP сервером није успело.'; +$PHPMAILER_LANG['smtp_error'] = 'Грешка SMTP сервера: '; +$PHPMAILER_LANG['variable_set'] = 'Није могуће задати нити ресетовати променљиву: '; +$PHPMAILER_LANG['extension_missing'] = 'Недостаје проширење: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-sv.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-sv.php new file mode 100644 index 0000000000000000000000000000000000000000..4408e63eb0e6622b2f22abe20068c3870fa7dbbc --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-sv.php @@ -0,0 +1,26 @@ +<?php +/** + * Swedish PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Johan Linnér <johan@linner.biz> + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP fel: Kunde inte autentisera.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP fel: Kunde inte ansluta till SMTP-server.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP fel: Data accepterades inte.'; +//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; +$PHPMAILER_LANG['encoding'] = 'Okänt encode-format: '; +$PHPMAILER_LANG['execute'] = 'Kunde inte köra: '; +$PHPMAILER_LANG['file_access'] = 'Ingen åtkomst till fil: '; +$PHPMAILER_LANG['file_open'] = 'Fil fel: Kunde inte öppna fil: '; +$PHPMAILER_LANG['from_failed'] = 'Följande avsändaradress är felaktig: '; +$PHPMAILER_LANG['instantiate'] = 'Kunde inte initiera e-postfunktion.'; +$PHPMAILER_LANG['invalid_address'] = 'Felaktig adress: '; +$PHPMAILER_LANG['provide_address'] = 'Du måste ange minst en mottagares e-postadress.'; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer stöds inte.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP fel: Följande mottagare är felaktig: '; +$PHPMAILER_LANG['signing'] = 'Signerings fel: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() misslyckades.'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP server fel: '; +$PHPMAILER_LANG['variable_set'] = 'Kunde inte definiera eller återställa variabel: '; +$PHPMAILER_LANG['extension_missing'] = 'Tillägg ej tillgängligt: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-tl.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-tl.php new file mode 100644 index 0000000000000000000000000000000000000000..ed51d4c601a08bccbbdd56a011fec08478e94af7 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-tl.php @@ -0,0 +1,27 @@ +<?php +/** + * Tagalog PHPMailer language file: refer to English translation for definitive list + * + * @package PHPMailer + * @author Adriane Justine Tan <adrianetan12@gmail.com> + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP Error: Hindi mapatotohanan.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Hindi makakonekta sa SMTP host.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: Ang datos ay hindi maaaring matatanggap.'; +$PHPMAILER_LANG['empty_message'] = 'Walang laman ang mensahe'; +$PHPMAILER_LANG['encoding'] = 'Hindi alam ang encoding: '; +$PHPMAILER_LANG['execute'] = 'Hindi maisasagawa: '; +$PHPMAILER_LANG['file_access'] = 'Hindi ma-access ang file: '; +$PHPMAILER_LANG['file_open'] = 'Hindi mabuksan ang file: '; +$PHPMAILER_LANG['from_failed'] = 'Ang sumusunod na address ay nabigo: '; +$PHPMAILER_LANG['instantiate'] = 'Hindi maaaring magbigay ng institusyon ang mail'; +$PHPMAILER_LANG['invalid_address'] = 'Hindi wasto ang address na naibigay: '; +$PHPMAILER_LANG['mailer_not_supported'] = 'Ang mailer ay hindi suportado'; +$PHPMAILER_LANG['provide_address'] = 'Kailangan mong magbigay ng kahit isang email address na tatanggap'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: Ang mga sumusunod na tatanggap ay nabigo: '; +$PHPMAILER_LANG['signing'] = 'Hindi ma-sign'; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Ang SMTP connect() ay nabigo'; +$PHPMAILER_LANG['smtp_error'] = 'Ang server ng SMTP ay nabigo'; +$PHPMAILER_LANG['variable_set'] = 'Hindi matatakda ang mga variables: '; +$PHPMAILER_LANG['extension_missing'] = 'Nawawala ang extension'; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-tr.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-tr.php new file mode 100644 index 0000000000000000000000000000000000000000..cfe8eaae24c48e78c2710e9b0ae0450a6b3a97ed --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-tr.php @@ -0,0 +1,30 @@ +<?php +/** + * Turkish PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Elçin Özel + * @author Can Yılmaz + * @author Mehmet Benlioğlu + * @author @yasinaydin + * @author Ogün Karakuş + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP Hatası: Oturum açılamadı.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Hatası: SMTP sunucusuna bağlanılamadı.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Hatası: Veri kabul edilmedi.'; +$PHPMAILER_LANG['empty_message'] = 'Mesajın içeriği boş'; +$PHPMAILER_LANG['encoding'] = 'Bilinmeyen karakter kodlama: '; +$PHPMAILER_LANG['execute'] = 'Çalıştırılamadı: '; +$PHPMAILER_LANG['file_access'] = 'Dosyaya erişilemedi: '; +$PHPMAILER_LANG['file_open'] = 'Dosya Hatası: Dosya açılamadı: '; +$PHPMAILER_LANG['from_failed'] = 'Belirtilen adreslere gönderme başarısız: '; +$PHPMAILER_LANG['instantiate'] = 'Örnek e-posta fonksiyonu oluşturulamadı.'; +$PHPMAILER_LANG['invalid_address'] = 'Geçersiz e-posta adresi: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' e-posta kütüphanesi desteklenmiyor.'; +$PHPMAILER_LANG['provide_address'] = 'En az bir alıcı e-posta adresi belirtmelisiniz.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Hatası: Belirtilen alıcılara ulaşılamadı: '; +$PHPMAILER_LANG['signing'] = 'İmzalama hatası: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP connect() fonksiyonu başarısız.'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP sunucu hatası: '; +$PHPMAILER_LANG['variable_set'] = 'Değişken ayarlanamadı ya da sıfırlanamadı: '; +$PHPMAILER_LANG['extension_missing'] = 'Eklenti bulunamadı: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-uk.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-uk.php new file mode 100644 index 0000000000000000000000000000000000000000..fcd77ade9c291bdd3763c283616068e4704640fe --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-uk.php @@ -0,0 +1,27 @@ +<?php +/** + * Ukrainian PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author Yuriy Rudyy <yrudyy@prs.net.ua> + * @fixed by Boris Yurchenko <boris@yurchenko.pp.ua> + */ + +$PHPMAILER_LANG['authenticate'] = 'Помилка SMTP: помилка авторизації.'; +$PHPMAILER_LANG['connect_host'] = 'Помилка SMTP: не вдається під\'єднатися до SMTP-серверу.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Помилка SMTP: дані не прийнято.'; +$PHPMAILER_LANG['encoding'] = 'Невідоме кодування: '; +$PHPMAILER_LANG['execute'] = 'Неможливо виконати команду: '; +$PHPMAILER_LANG['file_access'] = 'Немає доступу до файлу: '; +$PHPMAILER_LANG['file_open'] = 'Помилка файлової системи: не вдається відкрити файл: '; +$PHPMAILER_LANG['from_failed'] = 'Невірна адреса відправника: '; +$PHPMAILER_LANG['instantiate'] = 'Неможливо запустити функцію mail().'; +$PHPMAILER_LANG['provide_address'] = 'Будь-ласка, введіть хоча б одну email-адресу отримувача.'; +$PHPMAILER_LANG['mailer_not_supported'] = ' - поштовий сервер не підтримується.'; +$PHPMAILER_LANG['recipients_failed'] = 'Помилка SMTP: не вдалося відправлення для таких отримувачів: '; +$PHPMAILER_LANG['empty_message'] = 'Пусте повідомлення'; +$PHPMAILER_LANG['invalid_address'] = 'Не відправлено через невірний формат email-адреси: '; +$PHPMAILER_LANG['signing'] = 'Помилка підпису: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Помилка з\'єднання з SMTP-сервером'; +$PHPMAILER_LANG['smtp_error'] = 'Помилка SMTP-сервера: '; +$PHPMAILER_LANG['variable_set'] = 'Неможливо встановити або скинути змінну: '; +$PHPMAILER_LANG['extension_missing'] = 'Розширення відсутнє: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-vi.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-vi.php new file mode 100644 index 0000000000000000000000000000000000000000..c60dadebdb34d0a0e860c8f63704ea9fc12633f2 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-vi.php @@ -0,0 +1,26 @@ +<?php +/** + * Vietnamese (Tiếng Việt) PHPMailer language file: refer to English translation for definitive list. + * @package PHPMailer + * @author VINADES.,JSC <contact@vinades.vn> + */ + +$PHPMAILER_LANG['authenticate'] = 'Lỗi SMTP: Không thể xác thực.'; +$PHPMAILER_LANG['connect_host'] = 'Lỗi SMTP: Không thể kết nối máy chủ SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Lỗi SMTP: Dữ liệu không được chấp nhận.'; +$PHPMAILER_LANG['empty_message'] = 'Không có nội dung'; +$PHPMAILER_LANG['encoding'] = 'Mã hóa không xác định: '; +$PHPMAILER_LANG['execute'] = 'Không thực hiện được: '; +$PHPMAILER_LANG['file_access'] = 'Không thể truy cập tệp tin '; +$PHPMAILER_LANG['file_open'] = 'Lỗi Tập tin: Không thể mở tệp tin: '; +$PHPMAILER_LANG['from_failed'] = 'Lỗi địa chỉ gửi đi: '; +$PHPMAILER_LANG['instantiate'] = 'Không dùng được các hàm gửi thư.'; +$PHPMAILER_LANG['invalid_address'] = 'Đại chỉ emai không đúng: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' trình gửi thư không được hỗ trợ.'; +$PHPMAILER_LANG['provide_address'] = 'Bạn phải cung cấp ít nhất một địa chỉ người nhận.'; +$PHPMAILER_LANG['recipients_failed'] = 'Lỗi SMTP: lỗi địa chỉ người nhận: '; +$PHPMAILER_LANG['signing'] = 'Lỗi đăng nhập: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Lỗi kết nối với SMTP'; +$PHPMAILER_LANG['smtp_error'] = 'Lỗi máy chủ smtp '; +$PHPMAILER_LANG['variable_set'] = 'Không thể thiết lập hoặc thiết lập lại biến: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh.php new file mode 100644 index 0000000000000000000000000000000000000000..3e9e358ceb554cc3151006ef15dcf940b335db89 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh.php @@ -0,0 +1,28 @@ +<?php +/** + * Traditional Chinese PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author liqwei <liqwei@liqwei.com> + * @author Peter Dave Hello <@PeterDaveHello/> + * @author Jason Chiang <xcojad@gmail.com> + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP 錯誤:登入失敗。'; +$PHPMAILER_LANG['connect_host'] = 'SMTP 錯誤:無法連線到 SMTP 主機。'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 錯誤:無法接受的資料。'; +$PHPMAILER_LANG['empty_message'] = '郵件內容為空'; +$PHPMAILER_LANG['encoding'] = '未知編碼: '; +$PHPMAILER_LANG['execute'] = '無法執行:'; +$PHPMAILER_LANG['file_access'] = '無法存取檔案:'; +$PHPMAILER_LANG['file_open'] = '檔案錯誤:無法開啟檔案:'; +$PHPMAILER_LANG['from_failed'] = '發送地址錯誤:'; +$PHPMAILER_LANG['instantiate'] = '未知函數呼叫。'; +$PHPMAILER_LANG['invalid_address'] = '因為電子郵件地址無效,無法傳送: '; +$PHPMAILER_LANG['mailer_not_supported'] = '不支援的發信客戶端。'; +$PHPMAILER_LANG['provide_address'] = '必須提供至少一個收件人地址。'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP 錯誤:以下收件人地址錯誤:'; +$PHPMAILER_LANG['signing'] = '電子簽章錯誤: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP 連線失敗'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP 伺服器錯誤: '; +$PHPMAILER_LANG['variable_set'] = '無法設定或重設變數: '; +$PHPMAILER_LANG['extension_missing'] = '遺失模組 Extension: '; diff --git a/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh_cn.php b/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh_cn.php new file mode 100644 index 0000000000000000000000000000000000000000..37537802aa71c8b7c95bf936a59bdbbfd7cdd689 --- /dev/null +++ b/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh_cn.php @@ -0,0 +1,28 @@ +<?php +/** + * Simplified Chinese PHPMailer language file: refer to English translation for definitive list + * @package PHPMailer + * @author liqwei <liqwei@liqwei.com> + * @author young <masxy@foxmail.com> + * @author Teddysun <i@teddysun.com> + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP 错误:登录失败。'; +$PHPMAILER_LANG['connect_host'] = 'SMTP 错误:无法连接到 SMTP 主机。'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 错误:数据不被接受。'; +$PHPMAILER_LANG['empty_message'] = '邮件正文为空。'; +$PHPMAILER_LANG['encoding'] = '未知编码:'; +$PHPMAILER_LANG['execute'] = '无法执行:'; +$PHPMAILER_LANG['file_access'] = '无法访问文件:'; +$PHPMAILER_LANG['file_open'] = '文件错误:无法打开文件:'; +$PHPMAILER_LANG['from_failed'] = '发送地址错误:'; +$PHPMAILER_LANG['instantiate'] = '未知函数调用。'; +$PHPMAILER_LANG['invalid_address'] = '发送失败,电子邮箱地址是无效的:'; +$PHPMAILER_LANG['mailer_not_supported'] = '发信客户端不被支持。'; +$PHPMAILER_LANG['provide_address'] = '必须提供至少一个收件人地址。'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP 错误:收件人地址错误:'; +$PHPMAILER_LANG['signing'] = '登录失败:'; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP服务器连接失败。'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP服务器出错:'; +$PHPMAILER_LANG['variable_set'] = '无法设置或重置变量:'; +$PHPMAILER_LANG['extension_missing'] = '丢失模块 Extension:'; diff --git a/vendor/phpmailer/phpmailer/src/Exception.php b/vendor/phpmailer/phpmailer/src/Exception.php new file mode 100644 index 0000000000000000000000000000000000000000..b1e552f50b7c917eac1ed00ff511e15b6bd318e6 --- /dev/null +++ b/vendor/phpmailer/phpmailer/src/Exception.php @@ -0,0 +1,39 @@ +<?php +/** + * PHPMailer Exception class. + * PHP Version 5.5. + * + * @see https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project + * + * @author Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk> + * @author Jim Jagielski (jimjag) <jimjag@gmail.com> + * @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net> + * @author Brent R. Matzelle (original founder) + * @copyright 2012 - 2017 Marcus Bointon + * @copyright 2010 - 2012 Jim Jagielski + * @copyright 2004 - 2009 Andy Prevost + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + * @note This program is distributed in the hope that it will be useful - WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + */ + +namespace PHPMailer\PHPMailer; + +/** + * PHPMailer exception handler. + * + * @author Marcus Bointon <phpmailer@synchromedia.co.uk> + */ +class Exception extends \Exception +{ + /** + * Prettify error message output. + * + * @return string + */ + public function errorMessage() + { + return '<strong>' . htmlspecialchars($this->getMessage()) . "</strong><br />\n"; + } +} diff --git a/vendor/phpmailer/phpmailer/src/OAuth.php b/vendor/phpmailer/phpmailer/src/OAuth.php new file mode 100644 index 0000000000000000000000000000000000000000..0271963cee681ea93210d9e1d36000fdd5c52fcf --- /dev/null +++ b/vendor/phpmailer/phpmailer/src/OAuth.php @@ -0,0 +1,138 @@ +<?php +/** + * PHPMailer - PHP email creation and transport class. + * PHP Version 5.5. + * + * @see https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project + * + * @author Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk> + * @author Jim Jagielski (jimjag) <jimjag@gmail.com> + * @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net> + * @author Brent R. Matzelle (original founder) + * @copyright 2012 - 2015 Marcus Bointon + * @copyright 2010 - 2012 Jim Jagielski + * @copyright 2004 - 2009 Andy Prevost + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + * @note This program is distributed in the hope that it will be useful - WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + */ + +namespace PHPMailer\PHPMailer; + +use League\OAuth2\Client\Grant\RefreshToken; +use League\OAuth2\Client\Provider\AbstractProvider; +use League\OAuth2\Client\Token\AccessToken; + +/** + * OAuth - OAuth2 authentication wrapper class. + * Uses the oauth2-client package from the League of Extraordinary Packages. + * + * @see http://oauth2-client.thephpleague.com + * + * @author Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk> + */ +class OAuth +{ + /** + * An instance of the League OAuth Client Provider. + * + * @var AbstractProvider + */ + protected $provider; + + /** + * The current OAuth access token. + * + * @var AccessToken + */ + protected $oauthToken; + + /** + * The user's email address, usually used as the login ID + * and also the from address when sending email. + * + * @var string + */ + protected $oauthUserEmail = ''; + + /** + * The client secret, generated in the app definition of the service you're connecting to. + * + * @var string + */ + protected $oauthClientSecret = ''; + + /** + * The client ID, generated in the app definition of the service you're connecting to. + * + * @var string + */ + protected $oauthClientId = ''; + + /** + * The refresh token, used to obtain new AccessTokens. + * + * @var string + */ + protected $oauthRefreshToken = ''; + + /** + * OAuth constructor. + * + * @param array $options Associative array containing + * `provider`, `userName`, `clientSecret`, `clientId` and `refreshToken` elements + */ + public function __construct($options) + { + $this->provider = $options['provider']; + $this->oauthUserEmail = $options['userName']; + $this->oauthClientSecret = $options['clientSecret']; + $this->oauthClientId = $options['clientId']; + $this->oauthRefreshToken = $options['refreshToken']; + } + + /** + * Get a new RefreshToken. + * + * @return RefreshToken + */ + protected function getGrant() + { + return new RefreshToken(); + } + + /** + * Get a new AccessToken. + * + * @return AccessToken + */ + protected function getToken() + { + return $this->provider->getAccessToken( + $this->getGrant(), + ['refresh_token' => $this->oauthRefreshToken] + ); + } + + /** + * Generate a base64-encoded OAuth token. + * + * @return string + */ + public function getOauth64() + { + // Get a new token if it's not available or has expired + if (null === $this->oauthToken || $this->oauthToken->hasExpired()) { + $this->oauthToken = $this->getToken(); + } + + return base64_encode( + 'user=' . + $this->oauthUserEmail . + "\001auth=Bearer " . + $this->oauthToken . + "\001\001" + ); + } +} diff --git a/vendor/phpmailer/phpmailer/src/PHPMailer.php b/vendor/phpmailer/phpmailer/src/PHPMailer.php new file mode 100644 index 0000000000000000000000000000000000000000..ed14d7c7a28f9a4da061cc0a9b5a931b9f341182 --- /dev/null +++ b/vendor/phpmailer/phpmailer/src/PHPMailer.php @@ -0,0 +1,4834 @@ +<?php +/** + * PHPMailer - PHP email creation and transport class. + * PHP Version 5.5. + * + * @see https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project + * + * @author Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk> + * @author Jim Jagielski (jimjag) <jimjag@gmail.com> + * @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net> + * @author Brent R. Matzelle (original founder) + * @copyright 2012 - 2019 Marcus Bointon + * @copyright 2010 - 2012 Jim Jagielski + * @copyright 2004 - 2009 Andy Prevost + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + * @note This program is distributed in the hope that it will be useful - WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + */ + +namespace PHPMailer\PHPMailer; + +/** + * PHPMailer - PHP email creation and transport class. + * + * @author Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk> + * @author Jim Jagielski (jimjag) <jimjag@gmail.com> + * @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net> + * @author Brent R. Matzelle (original founder) + */ +class PHPMailer +{ + const CHARSET_ASCII = 'us-ascii'; + const CHARSET_ISO88591 = 'iso-8859-1'; + const CHARSET_UTF8 = 'utf-8'; + + const CONTENT_TYPE_PLAINTEXT = 'text/plain'; + const CONTENT_TYPE_TEXT_CALENDAR = 'text/calendar'; + const CONTENT_TYPE_TEXT_HTML = 'text/html'; + const CONTENT_TYPE_MULTIPART_ALTERNATIVE = 'multipart/alternative'; + const CONTENT_TYPE_MULTIPART_MIXED = 'multipart/mixed'; + const CONTENT_TYPE_MULTIPART_RELATED = 'multipart/related'; + + const ENCODING_7BIT = '7bit'; + const ENCODING_8BIT = '8bit'; + const ENCODING_BASE64 = 'base64'; + const ENCODING_BINARY = 'binary'; + const ENCODING_QUOTED_PRINTABLE = 'quoted-printable'; + + const ENCRYPTION_STARTTLS = 'tls'; + const ENCRYPTION_SMTPS = 'ssl'; + + const ICAL_METHOD_REQUEST = 'REQUEST'; + const ICAL_METHOD_PUBLISH = 'PUBLISH'; + const ICAL_METHOD_REPLY = 'REPLY'; + const ICAL_METHOD_ADD = 'ADD'; + const ICAL_METHOD_CANCEL = 'CANCEL'; + const ICAL_METHOD_REFRESH = 'REFRESH'; + const ICAL_METHOD_COUNTER = 'COUNTER'; + const ICAL_METHOD_DECLINECOUNTER = 'DECLINECOUNTER'; + + /** + * Email priority. + * Options: null (default), 1 = High, 3 = Normal, 5 = low. + * When null, the header is not set at all. + * + * @var int|null + */ + public $Priority; + + /** + * The character set of the message. + * + * @var string + */ + public $CharSet = self::CHARSET_ISO88591; + + /** + * The MIME Content-type of the message. + * + * @var string + */ + public $ContentType = self::CONTENT_TYPE_PLAINTEXT; + + /** + * The message encoding. + * Options: "8bit", "7bit", "binary", "base64", and "quoted-printable". + * + * @var string + */ + public $Encoding = self::ENCODING_8BIT; + + /** + * Holds the most recent mailer error message. + * + * @var string + */ + public $ErrorInfo = ''; + + /** + * The From email address for the message. + * + * @var string + */ + public $From = 'root@localhost'; + + /** + * The From name of the message. + * + * @var string + */ + public $FromName = 'Root User'; + + /** + * The envelope sender of the message. + * This will usually be turned into a Return-Path header by the receiver, + * and is the address that bounces will be sent to. + * If not empty, will be passed via `-f` to sendmail or as the 'MAIL FROM' value over SMTP. + * + * @var string + */ + public $Sender = ''; + + /** + * The Subject of the message. + * + * @var string + */ + public $Subject = ''; + + /** + * An HTML or plain text message body. + * If HTML then call isHTML(true). + * + * @var string + */ + public $Body = ''; + + /** + * The plain-text message body. + * This body can be read by mail clients that do not have HTML email + * capability such as mutt & Eudora. + * Clients that can read HTML will view the normal Body. + * + * @var string + */ + public $AltBody = ''; + + /** + * An iCal message part body. + * Only supported in simple alt or alt_inline message types + * To generate iCal event structures, use classes like EasyPeasyICS or iCalcreator. + * + * @see http://sprain.ch/blog/downloads/php-class-easypeasyics-create-ical-files-with-php/ + * @see http://kigkonsult.se/iCalcreator/ + * + * @var string + */ + public $Ical = ''; + + /** + * Value-array of "method" in Contenttype header "text/calendar" + * + * @var string[] + */ + protected static $IcalMethods = [ + self::ICAL_METHOD_REQUEST, + self::ICAL_METHOD_PUBLISH, + self::ICAL_METHOD_REPLY, + self::ICAL_METHOD_ADD, + self::ICAL_METHOD_CANCEL, + self::ICAL_METHOD_REFRESH, + self::ICAL_METHOD_COUNTER, + self::ICAL_METHOD_DECLINECOUNTER, + ]; + + /** + * The complete compiled MIME message body. + * + * @var string + */ + protected $MIMEBody = ''; + + /** + * The complete compiled MIME message headers. + * + * @var string + */ + protected $MIMEHeader = ''; + + /** + * Extra headers that createHeader() doesn't fold in. + * + * @var string + */ + protected $mailHeader = ''; + + /** + * Word-wrap the message body to this number of chars. + * Set to 0 to not wrap. A useful value here is 78, for RFC2822 section 2.1.1 compliance. + * + * @see static::STD_LINE_LENGTH + * + * @var int + */ + public $WordWrap = 0; + + /** + * Which method to use to send mail. + * Options: "mail", "sendmail", or "smtp". + * + * @var string + */ + public $Mailer = 'mail'; + + /** + * The path to the sendmail program. + * + * @var string + */ + public $Sendmail = '/usr/sbin/sendmail'; + + /** + * Whether mail() uses a fully sendmail-compatible MTA. + * One which supports sendmail's "-oi -f" options. + * + * @var bool + */ + public $UseSendmailOptions = true; + + /** + * The email address that a reading confirmation should be sent to, also known as read receipt. + * + * @var string + */ + public $ConfirmReadingTo = ''; + + /** + * The hostname to use in the Message-ID header and as default HELO string. + * If empty, PHPMailer attempts to find one with, in order, + * $_SERVER['SERVER_NAME'], gethostname(), php_uname('n'), or the value + * 'localhost.localdomain'. + * + * @see PHPMailer::$Helo + * + * @var string + */ + public $Hostname = ''; + + /** + * An ID to be used in the Message-ID header. + * If empty, a unique id will be generated. + * You can set your own, but it must be in the format "<id@domain>", + * as defined in RFC5322 section 3.6.4 or it will be ignored. + * + * @see https://tools.ietf.org/html/rfc5322#section-3.6.4 + * + * @var string + */ + public $MessageID = ''; + + /** + * The message Date to be used in the Date header. + * If empty, the current date will be added. + * + * @var string + */ + public $MessageDate = ''; + + /** + * SMTP hosts. + * Either a single hostname or multiple semicolon-delimited hostnames. + * You can also specify a different port + * for each host by using this format: [hostname:port] + * (e.g. "smtp1.example.com:25;smtp2.example.com"). + * You can also specify encryption type, for example: + * (e.g. "tls://smtp1.example.com:587;ssl://smtp2.example.com:465"). + * Hosts will be tried in order. + * + * @var string + */ + public $Host = 'localhost'; + + /** + * The default SMTP server port. + * + * @var int + */ + public $Port = 25; + + /** + * The SMTP HELO/EHLO name used for the SMTP connection. + * Default is $Hostname. If $Hostname is empty, PHPMailer attempts to find + * one with the same method described above for $Hostname. + * + * @see PHPMailer::$Hostname + * + * @var string + */ + public $Helo = ''; + + /** + * What kind of encryption to use on the SMTP connection. + * Options: '', static::ENCRYPTION_STARTTLS, or static::ENCRYPTION_SMTPS. + * + * @var string + */ + public $SMTPSecure = ''; + + /** + * Whether to enable TLS encryption automatically if a server supports it, + * even if `SMTPSecure` is not set to 'tls'. + * Be aware that in PHP >= 5.6 this requires that the server's certificates are valid. + * + * @var bool + */ + public $SMTPAutoTLS = true; + + /** + * Whether to use SMTP authentication. + * Uses the Username and Password properties. + * + * @see PHPMailer::$Username + * @see PHPMailer::$Password + * + * @var bool + */ + public $SMTPAuth = false; + + /** + * Options array passed to stream_context_create when connecting via SMTP. + * + * @var array + */ + public $SMTPOptions = []; + + /** + * SMTP username. + * + * @var string + */ + public $Username = ''; + + /** + * SMTP password. + * + * @var string + */ + public $Password = ''; + + /** + * SMTP auth type. + * Options are CRAM-MD5, LOGIN, PLAIN, XOAUTH2, attempted in that order if not specified. + * + * @var string + */ + public $AuthType = ''; + + /** + * An instance of the PHPMailer OAuth class. + * + * @var OAuth + */ + protected $oauth; + + /** + * The SMTP server timeout in seconds. + * Default of 5 minutes (300sec) is from RFC2821 section 4.5.3.2. + * + * @var int + */ + public $Timeout = 300; + + /** + * Comma separated list of DSN notifications + * 'NEVER' under no circumstances a DSN must be returned to the sender. + * If you use NEVER all other notifications will be ignored. + * 'SUCCESS' will notify you when your mail has arrived at its destination. + * 'FAILURE' will arrive if an error occurred during delivery. + * 'DELAY' will notify you if there is an unusual delay in delivery, but the actual + * delivery's outcome (success or failure) is not yet decided. + * + * @see https://tools.ietf.org/html/rfc3461 See section 4.1 for more information about NOTIFY + */ + public $dsn = ''; + + /** + * SMTP class debug output mode. + * Debug output level. + * Options: + * * SMTP::DEBUG_OFF: No output + * * SMTP::DEBUG_CLIENT: Client messages + * * SMTP::DEBUG_SERVER: Client and server messages + * * SMTP::DEBUG_CONNECTION: As SERVER plus connection status + * * SMTP::DEBUG_LOWLEVEL: Noisy, low-level data output, rarely needed + * + * @see SMTP::$do_debug + * + * @var int + */ + public $SMTPDebug = 0; + + /** + * How to handle debug output. + * Options: + * * `echo` Output plain-text as-is, appropriate for CLI + * * `html` Output escaped, line breaks converted to `<br>`, appropriate for browser output + * * `error_log` Output to error log as configured in php.ini + * By default PHPMailer will use `echo` if run from a `cli` or `cli-server` SAPI, `html` otherwise. + * Alternatively, you can provide a callable expecting two params: a message string and the debug level: + * + * ```php + * $mail->Debugoutput = function($str, $level) {echo "debug level $level; message: $str";}; + * ``` + * + * Alternatively, you can pass in an instance of a PSR-3 compatible logger, though only `debug` + * level output is used: + * + * ```php + * $mail->Debugoutput = new myPsr3Logger; + * ``` + * + * @see SMTP::$Debugoutput + * + * @var string|callable|\Psr\Log\LoggerInterface + */ + public $Debugoutput = 'echo'; + + /** + * Whether to keep SMTP connection open after each message. + * If this is set to true then to close the connection + * requires an explicit call to smtpClose(). + * + * @var bool + */ + public $SMTPKeepAlive = false; + + /** + * Whether to split multiple to addresses into multiple messages + * or send them all in one message. + * Only supported in `mail` and `sendmail` transports, not in SMTP. + * + * @var bool + */ + public $SingleTo = false; + + /** + * Storage for addresses when SingleTo is enabled. + * + * @var array + */ + protected $SingleToArray = []; + + /** + * Whether to generate VERP addresses on send. + * Only applicable when sending via SMTP. + * + * @see https://en.wikipedia.org/wiki/Variable_envelope_return_path + * @see http://www.postfix.org/VERP_README.html Postfix VERP info + * + * @var bool + */ + public $do_verp = false; + + /** + * Whether to allow sending messages with an empty body. + * + * @var bool + */ + public $AllowEmpty = false; + + /** + * DKIM selector. + * + * @var string + */ + public $DKIM_selector = ''; + + /** + * DKIM Identity. + * Usually the email address used as the source of the email. + * + * @var string + */ + public $DKIM_identity = ''; + + /** + * DKIM passphrase. + * Used if your key is encrypted. + * + * @var string + */ + public $DKIM_passphrase = ''; + + /** + * DKIM signing domain name. + * + * @example 'example.com' + * + * @var string + */ + public $DKIM_domain = ''; + + /** + * DKIM Copy header field values for diagnostic use. + * + * @var bool + */ + public $DKIM_copyHeaderFields = true; + + /** + * DKIM Extra signing headers. + * + * @example ['List-Unsubscribe', 'List-Help'] + * + * @var array + */ + public $DKIM_extraHeaders = []; + + /** + * DKIM private key file path. + * + * @var string + */ + public $DKIM_private = ''; + + /** + * DKIM private key string. + * + * If set, takes precedence over `$DKIM_private`. + * + * @var string + */ + public $DKIM_private_string = ''; + + /** + * Callback Action function name. + * + * The function that handles the result of the send email action. + * It is called out by send() for each email sent. + * + * Value can be any php callable: http://www.php.net/is_callable + * + * Parameters: + * bool $result result of the send action + * array $to email addresses of the recipients + * array $cc cc email addresses + * array $bcc bcc email addresses + * string $subject the subject + * string $body the email body + * string $from email address of sender + * string $extra extra information of possible use + * "smtp_transaction_id' => last smtp transaction id + * + * @var string + */ + public $action_function = ''; + + /** + * What to put in the X-Mailer header. + * Options: An empty string for PHPMailer default, whitespace/null for none, or a string to use. + * + * @var string|null + */ + public $XMailer = ''; + + /** + * Which validator to use by default when validating email addresses. + * May be a callable to inject your own validator, but there are several built-in validators. + * The default validator uses PHP's FILTER_VALIDATE_EMAIL filter_var option. + * + * @see PHPMailer::validateAddress() + * + * @var string|callable + */ + public static $validator = 'php'; + + /** + * An instance of the SMTP sender class. + * + * @var SMTP + */ + protected $smtp; + + /** + * The array of 'to' names and addresses. + * + * @var array + */ + protected $to = []; + + /** + * The array of 'cc' names and addresses. + * + * @var array + */ + protected $cc = []; + + /** + * The array of 'bcc' names and addresses. + * + * @var array + */ + protected $bcc = []; + + /** + * The array of reply-to names and addresses. + * + * @var array + */ + protected $ReplyTo = []; + + /** + * An array of all kinds of addresses. + * Includes all of $to, $cc, $bcc. + * + * @see PHPMailer::$to + * @see PHPMailer::$cc + * @see PHPMailer::$bcc + * + * @var array + */ + protected $all_recipients = []; + + /** + * An array of names and addresses queued for validation. + * In send(), valid and non duplicate entries are moved to $all_recipients + * and one of $to, $cc, or $bcc. + * This array is used only for addresses with IDN. + * + * @see PHPMailer::$to + * @see PHPMailer::$cc + * @see PHPMailer::$bcc + * @see PHPMailer::$all_recipients + * + * @var array + */ + protected $RecipientsQueue = []; + + /** + * An array of reply-to names and addresses queued for validation. + * In send(), valid and non duplicate entries are moved to $ReplyTo. + * This array is used only for addresses with IDN. + * + * @see PHPMailer::$ReplyTo + * + * @var array + */ + protected $ReplyToQueue = []; + + /** + * The array of attachments. + * + * @var array + */ + protected $attachment = []; + + /** + * The array of custom headers. + * + * @var array + */ + protected $CustomHeader = []; + + /** + * The most recent Message-ID (including angular brackets). + * + * @var string + */ + protected $lastMessageID = ''; + + /** + * The message's MIME type. + * + * @var string + */ + protected $message_type = ''; + + /** + * The array of MIME boundary strings. + * + * @var array + */ + protected $boundary = []; + + /** + * The array of available languages. + * + * @var array + */ + protected $language = []; + + /** + * The number of errors encountered. + * + * @var int + */ + protected $error_count = 0; + + /** + * The S/MIME certificate file path. + * + * @var string + */ + protected $sign_cert_file = ''; + + /** + * The S/MIME key file path. + * + * @var string + */ + protected $sign_key_file = ''; + + /** + * The optional S/MIME extra certificates ("CA Chain") file path. + * + * @var string + */ + protected $sign_extracerts_file = ''; + + /** + * The S/MIME password for the key. + * Used only if the key is encrypted. + * + * @var string + */ + protected $sign_key_pass = ''; + + /** + * Whether to throw exceptions for errors. + * + * @var bool + */ + protected $exceptions = false; + + /** + * Unique ID used for message ID and boundaries. + * + * @var string + */ + protected $uniqueid = ''; + + /** + * The PHPMailer Version number. + * + * @var string + */ + const VERSION = '6.1.6'; + + /** + * Error severity: message only, continue processing. + * + * @var int + */ + const STOP_MESSAGE = 0; + + /** + * Error severity: message, likely ok to continue processing. + * + * @var int + */ + const STOP_CONTINUE = 1; + + /** + * Error severity: message, plus full stop, critical error reached. + * + * @var int + */ + const STOP_CRITICAL = 2; + + /** + * The SMTP standard CRLF line break. + * If you want to change line break format, change static::$LE, not this. + */ + const CRLF = "\r\n"; + + /** + * "Folding White Space" a white space string used for line folding. + */ + const FWS = ' '; + + /** + * SMTP RFC standard line ending; Carriage Return, Line Feed. + * + * @var string + */ + protected static $LE = self::CRLF; + + /** + * The maximum line length supported by mail(). + * + * Background: mail() will sometimes corrupt messages + * with headers headers longer than 65 chars, see #818. + * + * @var int + */ + const MAIL_MAX_LINE_LENGTH = 63; + + /** + * The maximum line length allowed by RFC 2822 section 2.1.1. + * + * @var int + */ + const MAX_LINE_LENGTH = 998; + + /** + * The lower maximum line length allowed by RFC 2822 section 2.1.1. + * This length does NOT include the line break + * 76 means that lines will be 77 or 78 chars depending on whether + * the line break format is LF or CRLF; both are valid. + * + * @var int + */ + const STD_LINE_LENGTH = 76; + + /** + * Constructor. + * + * @param bool $exceptions Should we throw external exceptions? + */ + public function __construct($exceptions = null) + { + if (null !== $exceptions) { + $this->exceptions = (bool) $exceptions; + } + //Pick an appropriate debug output format automatically + $this->Debugoutput = (strpos(PHP_SAPI, 'cli') !== false ? 'echo' : 'html'); + } + + /** + * Destructor. + */ + public function __destruct() + { + //Close any open SMTP connection nicely + $this->smtpClose(); + } + + /** + * Call mail() in a safe_mode-aware fashion. + * Also, unless sendmail_path points to sendmail (or something that + * claims to be sendmail), don't pass params (not a perfect fix, + * but it will do). + * + * @param string $to To + * @param string $subject Subject + * @param string $body Message Body + * @param string $header Additional Header(s) + * @param string|null $params Params + * + * @return bool + */ + private function mailPassthru($to, $subject, $body, $header, $params) + { + //Check overloading of mail function to avoid double-encoding + if (ini_get('mbstring.func_overload') & 1) { + $subject = $this->secureHeader($subject); + } else { + $subject = $this->encodeHeader($this->secureHeader($subject)); + } + //Calling mail() with null params breaks + if (!$this->UseSendmailOptions || null === $params) { + $result = @mail($to, $subject, $body, $header); + } else { + $result = @mail($to, $subject, $body, $header, $params); + } + + return $result; + } + + /** + * Output debugging info via user-defined method. + * Only generates output if SMTP debug output is enabled (@see SMTP::$do_debug). + * + * @see PHPMailer::$Debugoutput + * @see PHPMailer::$SMTPDebug + * + * @param string $str + */ + protected function edebug($str) + { + if ($this->SMTPDebug <= 0) { + return; + } + //Is this a PSR-3 logger? + if ($this->Debugoutput instanceof \Psr\Log\LoggerInterface) { + $this->Debugoutput->debug($str); + + return; + } + //Avoid clash with built-in function names + if (is_callable($this->Debugoutput) && !in_array($this->Debugoutput, ['error_log', 'html', 'echo'])) { + call_user_func($this->Debugoutput, $str, $this->SMTPDebug); + + return; + } + switch ($this->Debugoutput) { + case 'error_log': + //Don't output, just log + error_log($str); + break; + case 'html': + //Cleans up output a bit for a better looking, HTML-safe output + echo htmlentities( + preg_replace('/[\r\n]+/', '', $str), + ENT_QUOTES, + 'UTF-8' + ), "<br>\n"; + break; + case 'echo': + default: + //Normalize line breaks + $str = preg_replace('/\r\n|\r/m', "\n", $str); + echo gmdate('Y-m-d H:i:s'), + "\t", + //Trim trailing space + trim( + //Indent for readability, except for trailing break + str_replace( + "\n", + "\n \t ", + trim($str) + ) + ), + "\n"; + } + } + + /** + * Sets message type to HTML or plain. + * + * @param bool $isHtml True for HTML mode + */ + public function isHTML($isHtml = true) + { + if ($isHtml) { + $this->ContentType = static::CONTENT_TYPE_TEXT_HTML; + } else { + $this->ContentType = static::CONTENT_TYPE_PLAINTEXT; + } + } + + /** + * Send messages using SMTP. + */ + public function isSMTP() + { + $this->Mailer = 'smtp'; + } + + /** + * Send messages using PHP's mail() function. + */ + public function isMail() + { + $this->Mailer = 'mail'; + } + + /** + * Send messages using $Sendmail. + */ + public function isSendmail() + { + $ini_sendmail_path = ini_get('sendmail_path'); + + if (false === stripos($ini_sendmail_path, 'sendmail')) { + $this->Sendmail = '/usr/sbin/sendmail'; + } else { + $this->Sendmail = $ini_sendmail_path; + } + $this->Mailer = 'sendmail'; + } + + /** + * Send messages using qmail. + */ + public function isQmail() + { + $ini_sendmail_path = ini_get('sendmail_path'); + + if (false === stripos($ini_sendmail_path, 'qmail')) { + $this->Sendmail = '/var/qmail/bin/qmail-inject'; + } else { + $this->Sendmail = $ini_sendmail_path; + } + $this->Mailer = 'qmail'; + } + + /** + * Add a "To" address. + * + * @param string $address The email address to send to + * @param string $name + * + * @throws Exception + * + * @return bool true on success, false if address already used or invalid in some way + */ + public function addAddress($address, $name = '') + { + return $this->addOrEnqueueAnAddress('to', $address, $name); + } + + /** + * Add a "CC" address. + * + * @param string $address The email address to send to + * @param string $name + * + * @throws Exception + * + * @return bool true on success, false if address already used or invalid in some way + */ + public function addCC($address, $name = '') + { + return $this->addOrEnqueueAnAddress('cc', $address, $name); + } + + /** + * Add a "BCC" address. + * + * @param string $address The email address to send to + * @param string $name + * + * @throws Exception + * + * @return bool true on success, false if address already used or invalid in some way + */ + public function addBCC($address, $name = '') + { + return $this->addOrEnqueueAnAddress('bcc', $address, $name); + } + + /** + * Add a "Reply-To" address. + * + * @param string $address The email address to reply to + * @param string $name + * + * @throws Exception + * + * @return bool true on success, false if address already used or invalid in some way + */ + public function addReplyTo($address, $name = '') + { + return $this->addOrEnqueueAnAddress('Reply-To', $address, $name); + } + + /** + * Add an address to one of the recipient arrays or to the ReplyTo array. Because PHPMailer + * can't validate addresses with an IDN without knowing the PHPMailer::$CharSet (that can still + * be modified after calling this function), addition of such addresses is delayed until send(). + * Addresses that have been added already return false, but do not throw exceptions. + * + * @param string $kind One of 'to', 'cc', 'bcc', or 'ReplyTo' + * @param string $address The email address to send, resp. to reply to + * @param string $name + * + * @throws Exception + * + * @return bool true on success, false if address already used or invalid in some way + */ + protected function addOrEnqueueAnAddress($kind, $address, $name) + { + $address = trim($address); + $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim + $pos = strrpos($address, '@'); + if (false === $pos) { + // At-sign is missing. + $error_message = sprintf( + '%s (%s): %s', + $this->lang('invalid_address'), + $kind, + $address + ); + $this->setError($error_message); + $this->edebug($error_message); + if ($this->exceptions) { + throw new Exception($error_message); + } + + return false; + } + $params = [$kind, $address, $name]; + // Enqueue addresses with IDN until we know the PHPMailer::$CharSet. + if (static::idnSupported() && $this->has8bitChars(substr($address, ++$pos))) { + if ('Reply-To' !== $kind) { + if (!array_key_exists($address, $this->RecipientsQueue)) { + $this->RecipientsQueue[$address] = $params; + + return true; + } + } elseif (!array_key_exists($address, $this->ReplyToQueue)) { + $this->ReplyToQueue[$address] = $params; + + return true; + } + + return false; + } + + // Immediately add standard addresses without IDN. + return call_user_func_array([$this, 'addAnAddress'], $params); + } + + /** + * Add an address to one of the recipient arrays or to the ReplyTo array. + * Addresses that have been added already return false, but do not throw exceptions. + * + * @param string $kind One of 'to', 'cc', 'bcc', or 'ReplyTo' + * @param string $address The email address to send, resp. to reply to + * @param string $name + * + * @throws Exception + * + * @return bool true on success, false if address already used or invalid in some way + */ + protected function addAnAddress($kind, $address, $name = '') + { + if (!in_array($kind, ['to', 'cc', 'bcc', 'Reply-To'])) { + $error_message = sprintf( + '%s: %s', + $this->lang('Invalid recipient kind'), + $kind + ); + $this->setError($error_message); + $this->edebug($error_message); + if ($this->exceptions) { + throw new Exception($error_message); + } + + return false; + } + if (!static::validateAddress($address)) { + $error_message = sprintf( + '%s (%s): %s', + $this->lang('invalid_address'), + $kind, + $address + ); + $this->setError($error_message); + $this->edebug($error_message); + if ($this->exceptions) { + throw new Exception($error_message); + } + + return false; + } + if ('Reply-To' !== $kind) { + if (!array_key_exists(strtolower($address), $this->all_recipients)) { + $this->{$kind}[] = [$address, $name]; + $this->all_recipients[strtolower($address)] = true; + + return true; + } + } elseif (!array_key_exists(strtolower($address), $this->ReplyTo)) { + $this->ReplyTo[strtolower($address)] = [$address, $name]; + + return true; + } + + return false; + } + + /** + * Parse and validate a string containing one or more RFC822-style comma-separated email addresses + * of the form "display name <address>" into an array of name/address pairs. + * Uses the imap_rfc822_parse_adrlist function if the IMAP extension is available. + * Note that quotes in the name part are removed. + * + * @see http://www.andrew.cmu.edu/user/agreen1/testing/mrbs/web/Mail/RFC822.php A more careful implementation + * + * @param string $addrstr The address list string + * @param bool $useimap Whether to use the IMAP extension to parse the list + * + * @return array + */ + public static function parseAddresses($addrstr, $useimap = true) + { + $addresses = []; + if ($useimap && function_exists('imap_rfc822_parse_adrlist')) { + //Use this built-in parser if it's available + $list = imap_rfc822_parse_adrlist($addrstr, ''); + foreach ($list as $address) { + if (('.SYNTAX-ERROR.' !== $address->host) && static::validateAddress( + $address->mailbox . '@' . $address->host + )) { + $addresses[] = [ + 'name' => (property_exists($address, 'personal') ? $address->personal : ''), + 'address' => $address->mailbox . '@' . $address->host, + ]; + } + } + } else { + //Use this simpler parser + $list = explode(',', $addrstr); + foreach ($list as $address) { + $address = trim($address); + //Is there a separate name part? + if (strpos($address, '<') === false) { + //No separate name, just use the whole thing + if (static::validateAddress($address)) { + $addresses[] = [ + 'name' => '', + 'address' => $address, + ]; + } + } else { + list($name, $email) = explode('<', $address); + $email = trim(str_replace('>', '', $email)); + if (static::validateAddress($email)) { + $addresses[] = [ + 'name' => trim(str_replace(['"', "'"], '', $name)), + 'address' => $email, + ]; + } + } + } + } + + return $addresses; + } + + /** + * Set the From and FromName properties. + * + * @param string $address + * @param string $name + * @param bool $auto Whether to also set the Sender address, defaults to true + * + * @throws Exception + * + * @return bool + */ + public function setFrom($address, $name = '', $auto = true) + { + $address = trim($address); + $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim + // Don't validate now addresses with IDN. Will be done in send(). + $pos = strrpos($address, '@'); + if ((false === $pos) + || ((!$this->has8bitChars(substr($address, ++$pos)) || !static::idnSupported()) + && !static::validateAddress($address)) + ) { + $error_message = sprintf( + '%s (From): %s', + $this->lang('invalid_address'), + $address + ); + $this->setError($error_message); + $this->edebug($error_message); + if ($this->exceptions) { + throw new Exception($error_message); + } + + return false; + } + $this->From = $address; + $this->FromName = $name; + if ($auto && empty($this->Sender)) { + $this->Sender = $address; + } + + return true; + } + + /** + * Return the Message-ID header of the last email. + * Technically this is the value from the last time the headers were created, + * but it's also the message ID of the last sent message except in + * pathological cases. + * + * @return string + */ + public function getLastMessageID() + { + return $this->lastMessageID; + } + + /** + * Check that a string looks like an email address. + * Validation patterns supported: + * * `auto` Pick best pattern automatically; + * * `pcre8` Use the squiloople.com pattern, requires PCRE > 8.0; + * * `pcre` Use old PCRE implementation; + * * `php` Use PHP built-in FILTER_VALIDATE_EMAIL; + * * `html5` Use the pattern given by the HTML5 spec for 'email' type form input elements. + * * `noregex` Don't use a regex: super fast, really dumb. + * Alternatively you may pass in a callable to inject your own validator, for example: + * + * ```php + * PHPMailer::validateAddress('user@example.com', function($address) { + * return (strpos($address, '@') !== false); + * }); + * ``` + * + * You can also set the PHPMailer::$validator static to a callable, allowing built-in methods to use your validator. + * + * @param string $address The email address to check + * @param string|callable $patternselect Which pattern to use + * + * @return bool + */ + public static function validateAddress($address, $patternselect = null) + { + if (null === $patternselect) { + $patternselect = static::$validator; + } + if (is_callable($patternselect)) { + return $patternselect($address); + } + //Reject line breaks in addresses; it's valid RFC5322, but not RFC5321 + if (strpos($address, "\n") !== false || strpos($address, "\r") !== false) { + return false; + } + switch ($patternselect) { + case 'pcre': //Kept for BC + case 'pcre8': + /* + * A more complex and more permissive version of the RFC5322 regex on which FILTER_VALIDATE_EMAIL + * is based. + * In addition to the addresses allowed by filter_var, also permits: + * * dotless domains: `a@b` + * * comments: `1234 @ local(blah) .machine .example` + * * quoted elements: `'"test blah"@example.org'` + * * numeric TLDs: `a@b.123` + * * unbracketed IPv4 literals: `a@192.168.0.1` + * * IPv6 literals: 'first.last@[IPv6:a1::]' + * Not all of these will necessarily work for sending! + * + * @see http://squiloople.com/2009/12/20/email-address-validation/ + * @copyright 2009-2010 Michael Rushton + * Feel free to use and redistribute this code. But please keep this copyright notice. + */ + return (bool) preg_match( + '/^(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){255,})(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){65,}@)' . + '((?>(?>(?>((?>(?>(?>\x0D\x0A)?[\t ])+|(?>[\t ]*\x0D\x0A)?[\t ]+)?)(\((?>(?2)' . + '(?>[\x01-\x08\x0B\x0C\x0E-\'*-\[\]-\x7F]|\\\[\x00-\x7F]|(?3)))*(?2)\)))+(?2))|(?2))?)' . + '([!#-\'*+\/-9=?^-~-]+|"(?>(?2)(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\\[\x00-\x7F]))*' . + '(?2)")(?>(?1)\.(?1)(?4))*(?1)@(?!(?1)[a-z0-9-]{64,})(?1)(?>([a-z0-9](?>[a-z0-9-]*[a-z0-9])?)' . + '(?>(?1)\.(?!(?1)[a-z0-9-]{64,})(?1)(?5)){0,126}|\[(?:(?>IPv6:(?>([a-f0-9]{1,4})(?>:(?6)){7}' . + '|(?!(?:.*[a-f0-9][:\]]){8,})((?6)(?>:(?6)){0,6})?::(?7)?))|(?>(?>IPv6:(?>(?6)(?>:(?6)){5}:' . + '|(?!(?:.*[a-f0-9]:){6,})(?8)?::(?>((?6)(?>:(?6)){0,4}):)?))?(25[0-5]|2[0-4][0-9]|1[0-9]{2}' . + '|[1-9]?[0-9])(?>\.(?9)){3}))\])(?1)$/isD', + $address + ); + case 'html5': + /* + * This is the pattern used in the HTML5 spec for validation of 'email' type form input elements. + * + * @see http://www.whatwg.org/specs/web-apps/current-work/#e-mail-state-(type=email) + */ + return (bool) preg_match( + '/^[a-zA-Z0-9.!#$%&\'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}' . + '[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/sD', + $address + ); + case 'php': + default: + return filter_var($address, FILTER_VALIDATE_EMAIL) !== false; + } + } + + /** + * Tells whether IDNs (Internationalized Domain Names) are supported or not. This requires the + * `intl` and `mbstring` PHP extensions. + * + * @return bool `true` if required functions for IDN support are present + */ + public static function idnSupported() + { + return function_exists('idn_to_ascii') && function_exists('mb_convert_encoding'); + } + + /** + * Converts IDN in given email address to its ASCII form, also known as punycode, if possible. + * Important: Address must be passed in same encoding as currently set in PHPMailer::$CharSet. + * This function silently returns unmodified address if: + * - No conversion is necessary (i.e. domain name is not an IDN, or is already in ASCII form) + * - Conversion to punycode is impossible (e.g. required PHP functions are not available) + * or fails for any reason (e.g. domain contains characters not allowed in an IDN). + * + * @see PHPMailer::$CharSet + * + * @param string $address The email address to convert + * + * @return string The encoded address in ASCII form + */ + public function punyencodeAddress($address) + { + // Verify we have required functions, CharSet, and at-sign. + $pos = strrpos($address, '@'); + if (!empty($this->CharSet) && + false !== $pos && + static::idnSupported() + ) { + $domain = substr($address, ++$pos); + // Verify CharSet string is a valid one, and domain properly encoded in this CharSet. + if ($this->has8bitChars($domain) && @mb_check_encoding($domain, $this->CharSet)) { + $domain = mb_convert_encoding($domain, 'UTF-8', $this->CharSet); + //Ignore IDE complaints about this line - method signature changed in PHP 5.4 + $errorcode = 0; + if (defined('INTL_IDNA_VARIANT_UTS46')) { + $punycode = idn_to_ascii($domain, $errorcode, INTL_IDNA_VARIANT_UTS46); + } elseif (defined('INTL_IDNA_VARIANT_2003')) { + $punycode = idn_to_ascii($domain, $errorcode, INTL_IDNA_VARIANT_2003); + } else { + $punycode = idn_to_ascii($domain, $errorcode); + } + if (false !== $punycode) { + return substr($address, 0, $pos) . $punycode; + } + } + } + + return $address; + } + + /** + * Create a message and send it. + * Uses the sending method specified by $Mailer. + * + * @throws Exception + * + * @return bool false on error - See the ErrorInfo property for details of the error + */ + public function send() + { + try { + if (!$this->preSend()) { + return false; + } + + return $this->postSend(); + } catch (Exception $exc) { + $this->mailHeader = ''; + $this->setError($exc->getMessage()); + if ($this->exceptions) { + throw $exc; + } + + return false; + } + } + + /** + * Prepare a message for sending. + * + * @throws Exception + * + * @return bool + */ + public function preSend() + { + if ('smtp' === $this->Mailer + || ('mail' === $this->Mailer && stripos(PHP_OS, 'WIN') === 0) + ) { + //SMTP mandates RFC-compliant line endings + //and it's also used with mail() on Windows + static::setLE(self::CRLF); + } else { + //Maintain backward compatibility with legacy Linux command line mailers + static::setLE(PHP_EOL); + } + //Check for buggy PHP versions that add a header with an incorrect line break + if ('mail' === $this->Mailer + && ((PHP_VERSION_ID >= 70000 && PHP_VERSION_ID < 70017) + || (PHP_VERSION_ID >= 70100 && PHP_VERSION_ID < 70103)) + && ini_get('mail.add_x_header') === '1' + && stripos(PHP_OS, 'WIN') === 0 + ) { + trigger_error( + 'Your version of PHP is affected by a bug that may result in corrupted messages.' . + ' To fix it, switch to sending using SMTP, disable the mail.add_x_header option in' . + ' your php.ini, switch to MacOS or Linux, or upgrade your PHP to version 7.0.17+ or 7.1.3+.', + E_USER_WARNING + ); + } + + try { + $this->error_count = 0; // Reset errors + $this->mailHeader = ''; + + // Dequeue recipient and Reply-To addresses with IDN + foreach (array_merge($this->RecipientsQueue, $this->ReplyToQueue) as $params) { + $params[1] = $this->punyencodeAddress($params[1]); + call_user_func_array([$this, 'addAnAddress'], $params); + } + if (count($this->to) + count($this->cc) + count($this->bcc) < 1) { + throw new Exception($this->lang('provide_address'), self::STOP_CRITICAL); + } + + // Validate From, Sender, and ConfirmReadingTo addresses + foreach (['From', 'Sender', 'ConfirmReadingTo'] as $address_kind) { + $this->$address_kind = trim($this->$address_kind); + if (empty($this->$address_kind)) { + continue; + } + $this->$address_kind = $this->punyencodeAddress($this->$address_kind); + if (!static::validateAddress($this->$address_kind)) { + $error_message = sprintf( + '%s (%s): %s', + $this->lang('invalid_address'), + $address_kind, + $this->$address_kind + ); + $this->setError($error_message); + $this->edebug($error_message); + if ($this->exceptions) { + throw new Exception($error_message); + } + + return false; + } + } + + // Set whether the message is multipart/alternative + if ($this->alternativeExists()) { + $this->ContentType = static::CONTENT_TYPE_MULTIPART_ALTERNATIVE; + } + + $this->setMessageType(); + // Refuse to send an empty message unless we are specifically allowing it + if (!$this->AllowEmpty && empty($this->Body)) { + throw new Exception($this->lang('empty_message'), self::STOP_CRITICAL); + } + + //Trim subject consistently + $this->Subject = trim($this->Subject); + // Create body before headers in case body makes changes to headers (e.g. altering transfer encoding) + $this->MIMEHeader = ''; + $this->MIMEBody = $this->createBody(); + // createBody may have added some headers, so retain them + $tempheaders = $this->MIMEHeader; + $this->MIMEHeader = $this->createHeader(); + $this->MIMEHeader .= $tempheaders; + + // To capture the complete message when using mail(), create + // an extra header list which createHeader() doesn't fold in + if ('mail' === $this->Mailer) { + if (count($this->to) > 0) { + $this->mailHeader .= $this->addrAppend('To', $this->to); + } else { + $this->mailHeader .= $this->headerLine('To', 'undisclosed-recipients:;'); + } + $this->mailHeader .= $this->headerLine( + 'Subject', + $this->encodeHeader($this->secureHeader($this->Subject)) + ); + } + + // Sign with DKIM if enabled + if (!empty($this->DKIM_domain) + && !empty($this->DKIM_selector) + && (!empty($this->DKIM_private_string) + || (!empty($this->DKIM_private) + && static::isPermittedPath($this->DKIM_private) + && file_exists($this->DKIM_private) + ) + ) + ) { + $header_dkim = $this->DKIM_Add( + $this->MIMEHeader . $this->mailHeader, + $this->encodeHeader($this->secureHeader($this->Subject)), + $this->MIMEBody + ); + $this->MIMEHeader = static::stripTrailingWSP($this->MIMEHeader) . static::$LE . + static::normalizeBreaks($header_dkim) . static::$LE; + } + + return true; + } catch (Exception $exc) { + $this->setError($exc->getMessage()); + if ($this->exceptions) { + throw $exc; + } + + return false; + } + } + + /** + * Actually send a message via the selected mechanism. + * + * @throws Exception + * + * @return bool + */ + public function postSend() + { + try { + // Choose the mailer and send through it + switch ($this->Mailer) { + case 'sendmail': + case 'qmail': + return $this->sendmailSend($this->MIMEHeader, $this->MIMEBody); + case 'smtp': + return $this->smtpSend($this->MIMEHeader, $this->MIMEBody); + case 'mail': + return $this->mailSend($this->MIMEHeader, $this->MIMEBody); + default: + $sendMethod = $this->Mailer . 'Send'; + if (method_exists($this, $sendMethod)) { + return $this->$sendMethod($this->MIMEHeader, $this->MIMEBody); + } + + return $this->mailSend($this->MIMEHeader, $this->MIMEBody); + } + } catch (Exception $exc) { + $this->setError($exc->getMessage()); + $this->edebug($exc->getMessage()); + if ($this->exceptions) { + throw $exc; + } + } + + return false; + } + + /** + * Send mail using the $Sendmail program. + * + * @see PHPMailer::$Sendmail + * + * @param string $header The message headers + * @param string $body The message body + * + * @throws Exception + * + * @return bool + */ + protected function sendmailSend($header, $body) + { + $header = static::stripTrailingWSP($header) . static::$LE . static::$LE; + + // CVE-2016-10033, CVE-2016-10045: Don't pass -f if characters will be escaped. + if (!empty($this->Sender) && self::isShellSafe($this->Sender)) { + if ('qmail' === $this->Mailer) { + $sendmailFmt = '%s -f%s'; + } else { + $sendmailFmt = '%s -oi -f%s -t'; + } + } elseif ('qmail' === $this->Mailer) { + $sendmailFmt = '%s'; + } else { + $sendmailFmt = '%s -oi -t'; + } + + $sendmail = sprintf($sendmailFmt, escapeshellcmd($this->Sendmail), $this->Sender); + + if ($this->SingleTo) { + foreach ($this->SingleToArray as $toAddr) { + $mail = @popen($sendmail, 'w'); + if (!$mail) { + throw new Exception($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL); + } + fwrite($mail, 'To: ' . $toAddr . "\n"); + fwrite($mail, $header); + fwrite($mail, $body); + $result = pclose($mail); + $this->doCallback( + ($result === 0), + [$toAddr], + $this->cc, + $this->bcc, + $this->Subject, + $body, + $this->From, + [] + ); + if (0 !== $result) { + throw new Exception($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL); + } + } + } else { + $mail = @popen($sendmail, 'w'); + if (!$mail) { + throw new Exception($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL); + } + fwrite($mail, $header); + fwrite($mail, $body); + $result = pclose($mail); + $this->doCallback( + ($result === 0), + $this->to, + $this->cc, + $this->bcc, + $this->Subject, + $body, + $this->From, + [] + ); + if (0 !== $result) { + throw new Exception($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL); + } + } + + return true; + } + + /** + * Fix CVE-2016-10033 and CVE-2016-10045 by disallowing potentially unsafe shell characters. + * Note that escapeshellarg and escapeshellcmd are inadequate for our purposes, especially on Windows. + * + * @see https://github.com/PHPMailer/PHPMailer/issues/924 CVE-2016-10045 bug report + * + * @param string $string The string to be validated + * + * @return bool + */ + protected static function isShellSafe($string) + { + // Future-proof + if (escapeshellcmd($string) !== $string + || !in_array(escapeshellarg($string), ["'$string'", "\"$string\""]) + ) { + return false; + } + + $length = strlen($string); + + for ($i = 0; $i < $length; ++$i) { + $c = $string[$i]; + + // All other characters have a special meaning in at least one common shell, including = and +. + // Full stop (.) has a special meaning in cmd.exe, but its impact should be negligible here. + // Note that this does permit non-Latin alphanumeric characters based on the current locale. + if (!ctype_alnum($c) && strpos('@_-.', $c) === false) { + return false; + } + } + + return true; + } + + /** + * Check whether a file path is of a permitted type. + * Used to reject URLs and phar files from functions that access local file paths, + * such as addAttachment. + * + * @param string $path A relative or absolute path to a file + * + * @return bool + */ + protected static function isPermittedPath($path) + { + return !preg_match('#^[a-z]+://#i', $path); + } + + /** + * Send mail using the PHP mail() function. + * + * @see http://www.php.net/manual/en/book.mail.php + * + * @param string $header The message headers + * @param string $body The message body + * + * @throws Exception + * + * @return bool + */ + protected function mailSend($header, $body) + { + $header = static::stripTrailingWSP($header) . static::$LE . static::$LE; + + $toArr = []; + foreach ($this->to as $toaddr) { + $toArr[] = $this->addrFormat($toaddr); + } + $to = implode(', ', $toArr); + + $params = null; + //This sets the SMTP envelope sender which gets turned into a return-path header by the receiver + //A space after `-f` is optional, but there is a long history of its presence + //causing problems, so we don't use one + //Exim docs: http://www.exim.org/exim-html-current/doc/html/spec_html/ch-the_exim_command_line.html + //Sendmail docs: http://www.sendmail.org/~ca/email/man/sendmail.html + //Qmail docs: http://www.qmail.org/man/man8/qmail-inject.html + //Example problem: https://www.drupal.org/node/1057954 + // CVE-2016-10033, CVE-2016-10045: Don't pass -f if characters will be escaped. + if (!empty($this->Sender) && static::validateAddress($this->Sender) && self::isShellSafe($this->Sender)) { + $params = sprintf('-f%s', $this->Sender); + } + if (!empty($this->Sender) && static::validateAddress($this->Sender)) { + $old_from = ini_get('sendmail_from'); + ini_set('sendmail_from', $this->Sender); + } + $result = false; + if ($this->SingleTo && count($toArr) > 1) { + foreach ($toArr as $toAddr) { + $result = $this->mailPassthru($toAddr, $this->Subject, $body, $header, $params); + $this->doCallback($result, [$toAddr], $this->cc, $this->bcc, $this->Subject, $body, $this->From, []); + } + } else { + $result = $this->mailPassthru($to, $this->Subject, $body, $header, $params); + $this->doCallback($result, $this->to, $this->cc, $this->bcc, $this->Subject, $body, $this->From, []); + } + if (isset($old_from)) { + ini_set('sendmail_from', $old_from); + } + if (!$result) { + throw new Exception($this->lang('instantiate'), self::STOP_CRITICAL); + } + + return true; + } + + /** + * Get an instance to use for SMTP operations. + * Override this function to load your own SMTP implementation, + * or set one with setSMTPInstance. + * + * @return SMTP + */ + public function getSMTPInstance() + { + if (!is_object($this->smtp)) { + $this->smtp = new SMTP(); + } + + return $this->smtp; + } + + /** + * Provide an instance to use for SMTP operations. + * + * @return SMTP + */ + public function setSMTPInstance(SMTP $smtp) + { + $this->smtp = $smtp; + + return $this->smtp; + } + + /** + * Send mail via SMTP. + * Returns false if there is a bad MAIL FROM, RCPT, or DATA input. + * + * @see PHPMailer::setSMTPInstance() to use a different class. + * + * @uses \PHPMailer\PHPMailer\SMTP + * + * @param string $header The message headers + * @param string $body The message body + * + * @throws Exception + * + * @return bool + */ + protected function smtpSend($header, $body) + { + $header = static::stripTrailingWSP($header) . static::$LE . static::$LE; + $bad_rcpt = []; + if (!$this->smtpConnect($this->SMTPOptions)) { + throw new Exception($this->lang('smtp_connect_failed'), self::STOP_CRITICAL); + } + //Sender already validated in preSend() + if ('' === $this->Sender) { + $smtp_from = $this->From; + } else { + $smtp_from = $this->Sender; + } + if (!$this->smtp->mail($smtp_from)) { + $this->setError($this->lang('from_failed') . $smtp_from . ' : ' . implode(',', $this->smtp->getError())); + throw new Exception($this->ErrorInfo, self::STOP_CRITICAL); + } + + $callbacks = []; + // Attempt to send to all recipients + foreach ([$this->to, $this->cc, $this->bcc] as $togroup) { + foreach ($togroup as $to) { + if (!$this->smtp->recipient($to[0], $this->dsn)) { + $error = $this->smtp->getError(); + $bad_rcpt[] = ['to' => $to[0], 'error' => $error['detail']]; + $isSent = false; + } else { + $isSent = true; + } + + $callbacks[] = ['issent'=>$isSent, 'to'=>$to[0]]; + } + } + + // Only send the DATA command if we have viable recipients + if ((count($this->all_recipients) > count($bad_rcpt)) && !$this->smtp->data($header . $body)) { + throw new Exception($this->lang('data_not_accepted'), self::STOP_CRITICAL); + } + + $smtp_transaction_id = $this->smtp->getLastTransactionID(); + + if ($this->SMTPKeepAlive) { + $this->smtp->reset(); + } else { + $this->smtp->quit(); + $this->smtp->close(); + } + + foreach ($callbacks as $cb) { + $this->doCallback( + $cb['issent'], + [$cb['to']], + [], + [], + $this->Subject, + $body, + $this->From, + ['smtp_transaction_id' => $smtp_transaction_id] + ); + } + + //Create error message for any bad addresses + if (count($bad_rcpt) > 0) { + $errstr = ''; + foreach ($bad_rcpt as $bad) { + $errstr .= $bad['to'] . ': ' . $bad['error']; + } + throw new Exception($this->lang('recipients_failed') . $errstr, self::STOP_CONTINUE); + } + + return true; + } + + /** + * Initiate a connection to an SMTP server. + * Returns false if the operation failed. + * + * @param array $options An array of options compatible with stream_context_create() + * + * @throws Exception + * + * @uses \PHPMailer\PHPMailer\SMTP + * + * @return bool + */ + public function smtpConnect($options = null) + { + if (null === $this->smtp) { + $this->smtp = $this->getSMTPInstance(); + } + + //If no options are provided, use whatever is set in the instance + if (null === $options) { + $options = $this->SMTPOptions; + } + + // Already connected? + if ($this->smtp->connected()) { + return true; + } + + $this->smtp->setTimeout($this->Timeout); + $this->smtp->setDebugLevel($this->SMTPDebug); + $this->smtp->setDebugOutput($this->Debugoutput); + $this->smtp->setVerp($this->do_verp); + $hosts = explode(';', $this->Host); + $lastexception = null; + + foreach ($hosts as $hostentry) { + $hostinfo = []; + if (!preg_match( + '/^(?:(ssl|tls):\/\/)?(.+?)(?::(\d+))?$/', + trim($hostentry), + $hostinfo + )) { + $this->edebug($this->lang('invalid_hostentry') . ' ' . trim($hostentry)); + // Not a valid host entry + continue; + } + // $hostinfo[1]: optional ssl or tls prefix + // $hostinfo[2]: the hostname + // $hostinfo[3]: optional port number + // The host string prefix can temporarily override the current setting for SMTPSecure + // If it's not specified, the default value is used + + //Check the host name is a valid name or IP address before trying to use it + if (!static::isValidHost($hostinfo[2])) { + $this->edebug($this->lang('invalid_host') . ' ' . $hostinfo[2]); + continue; + } + $prefix = ''; + $secure = $this->SMTPSecure; + $tls = (static::ENCRYPTION_STARTTLS === $this->SMTPSecure); + if ('ssl' === $hostinfo[1] || ('' === $hostinfo[1] && static::ENCRYPTION_SMTPS === $this->SMTPSecure)) { + $prefix = 'ssl://'; + $tls = false; // Can't have SSL and TLS at the same time + $secure = static::ENCRYPTION_SMTPS; + } elseif ('tls' === $hostinfo[1]) { + $tls = true; + // tls doesn't use a prefix + $secure = static::ENCRYPTION_STARTTLS; + } + //Do we need the OpenSSL extension? + $sslext = defined('OPENSSL_ALGO_SHA256'); + if (static::ENCRYPTION_STARTTLS === $secure || static::ENCRYPTION_SMTPS === $secure) { + //Check for an OpenSSL constant rather than using extension_loaded, which is sometimes disabled + if (!$sslext) { + throw new Exception($this->lang('extension_missing') . 'openssl', self::STOP_CRITICAL); + } + } + $host = $hostinfo[2]; + $port = $this->Port; + if (array_key_exists(3, $hostinfo) && is_numeric($hostinfo[3]) && $hostinfo[3] > 0 && $hostinfo[3] < 65536) { + $port = (int) $hostinfo[3]; + } + if ($this->smtp->connect($prefix . $host, $port, $this->Timeout, $options)) { + try { + if ($this->Helo) { + $hello = $this->Helo; + } else { + $hello = $this->serverHostname(); + } + $this->smtp->hello($hello); + //Automatically enable TLS encryption if: + // * it's not disabled + // * we have openssl extension + // * we are not already using SSL + // * the server offers STARTTLS + if ($this->SMTPAutoTLS && $sslext && 'ssl' !== $secure && $this->smtp->getServerExt('STARTTLS')) { + $tls = true; + } + if ($tls) { + if (!$this->smtp->startTLS()) { + throw new Exception($this->lang('connect_host')); + } + // We must resend EHLO after TLS negotiation + $this->smtp->hello($hello); + } + if ($this->SMTPAuth && !$this->smtp->authenticate( + $this->Username, + $this->Password, + $this->AuthType, + $this->oauth + )) { + throw new Exception($this->lang('authenticate')); + } + + return true; + } catch (Exception $exc) { + $lastexception = $exc; + $this->edebug($exc->getMessage()); + // We must have connected, but then failed TLS or Auth, so close connection nicely + $this->smtp->quit(); + } + } + } + // If we get here, all connection attempts have failed, so close connection hard + $this->smtp->close(); + // As we've caught all exceptions, just report whatever the last one was + if ($this->exceptions && null !== $lastexception) { + throw $lastexception; + } + + return false; + } + + /** + * Close the active SMTP session if one exists. + */ + public function smtpClose() + { + if ((null !== $this->smtp) && $this->smtp->connected()) { + $this->smtp->quit(); + $this->smtp->close(); + } + } + + /** + * Set the language for error messages. + * Returns false if it cannot load the language file. + * The default language is English. + * + * @param string $langcode ISO 639-1 2-character language code (e.g. French is "fr") + * @param string $lang_path Path to the language file directory, with trailing separator (slash) + * + * @return bool + */ + public function setLanguage($langcode = 'en', $lang_path = '') + { + // Backwards compatibility for renamed language codes + $renamed_langcodes = [ + 'br' => 'pt_br', + 'cz' => 'cs', + 'dk' => 'da', + 'no' => 'nb', + 'se' => 'sv', + 'rs' => 'sr', + 'tg' => 'tl', + 'am' => 'hy', + ]; + + if (isset($renamed_langcodes[$langcode])) { + $langcode = $renamed_langcodes[$langcode]; + } + + // Define full set of translatable strings in English + $PHPMAILER_LANG = [ + 'authenticate' => 'SMTP Error: Could not authenticate.', + 'connect_host' => 'SMTP Error: Could not connect to SMTP host.', + 'data_not_accepted' => 'SMTP Error: data not accepted.', + 'empty_message' => 'Message body empty', + 'encoding' => 'Unknown encoding: ', + 'execute' => 'Could not execute: ', + 'file_access' => 'Could not access file: ', + 'file_open' => 'File Error: Could not open file: ', + 'from_failed' => 'The following From address failed: ', + 'instantiate' => 'Could not instantiate mail function.', + 'invalid_address' => 'Invalid address: ', + 'invalid_hostentry' => 'Invalid hostentry: ', + 'invalid_host' => 'Invalid host: ', + 'mailer_not_supported' => ' mailer is not supported.', + 'provide_address' => 'You must provide at least one recipient email address.', + 'recipients_failed' => 'SMTP Error: The following recipients failed: ', + 'signing' => 'Signing Error: ', + 'smtp_connect_failed' => 'SMTP connect() failed.', + 'smtp_error' => 'SMTP server error: ', + 'variable_set' => 'Cannot set or reset variable: ', + 'extension_missing' => 'Extension missing: ', + ]; + if (empty($lang_path)) { + // Calculate an absolute path so it can work if CWD is not here + $lang_path = dirname(__DIR__) . DIRECTORY_SEPARATOR . 'language' . DIRECTORY_SEPARATOR; + } + //Validate $langcode + if (!preg_match('/^[a-z]{2}(?:_[a-zA-Z]{2})?$/', $langcode)) { + $langcode = 'en'; + } + $foundlang = true; + $lang_file = $lang_path . 'phpmailer.lang-' . $langcode . '.php'; + // There is no English translation file + if ('en' !== $langcode) { + // Make sure language file path is readable + if (!static::isPermittedPath($lang_file) || !file_exists($lang_file)) { + $foundlang = false; + } else { + // Overwrite language-specific strings. + // This way we'll never have missing translation keys. + $foundlang = include $lang_file; + } + } + $this->language = $PHPMAILER_LANG; + + return (bool) $foundlang; // Returns false if language not found + } + + /** + * Get the array of strings for the current language. + * + * @return array + */ + public function getTranslations() + { + return $this->language; + } + + /** + * Create recipient headers. + * + * @param string $type + * @param array $addr An array of recipients, + * where each recipient is a 2-element indexed array with element 0 containing an address + * and element 1 containing a name, like: + * [['joe@example.com', 'Joe User'], ['zoe@example.com', 'Zoe User']] + * + * @return string + */ + public function addrAppend($type, $addr) + { + $addresses = []; + foreach ($addr as $address) { + $addresses[] = $this->addrFormat($address); + } + + return $type . ': ' . implode(', ', $addresses) . static::$LE; + } + + /** + * Format an address for use in a message header. + * + * @param array $addr A 2-element indexed array, element 0 containing an address, element 1 containing a name like + * ['joe@example.com', 'Joe User'] + * + * @return string + */ + public function addrFormat($addr) + { + if (empty($addr[1])) { // No name provided + return $this->secureHeader($addr[0]); + } + + return $this->encodeHeader($this->secureHeader($addr[1]), 'phrase') . + ' <' . $this->secureHeader($addr[0]) . '>'; + } + + /** + * Word-wrap message. + * For use with mailers that do not automatically perform wrapping + * and for quoted-printable encoded messages. + * Original written by philippe. + * + * @param string $message The message to wrap + * @param int $length The line length to wrap to + * @param bool $qp_mode Whether to run in Quoted-Printable mode + * + * @return string + */ + public function wrapText($message, $length, $qp_mode = false) + { + if ($qp_mode) { + $soft_break = sprintf(' =%s', static::$LE); + } else { + $soft_break = static::$LE; + } + // If utf-8 encoding is used, we will need to make sure we don't + // split multibyte characters when we wrap + $is_utf8 = static::CHARSET_UTF8 === strtolower($this->CharSet); + $lelen = strlen(static::$LE); + $crlflen = strlen(static::$LE); + + $message = static::normalizeBreaks($message); + //Remove a trailing line break + if (substr($message, -$lelen) === static::$LE) { + $message = substr($message, 0, -$lelen); + } + + //Split message into lines + $lines = explode(static::$LE, $message); + //Message will be rebuilt in here + $message = ''; + foreach ($lines as $line) { + $words = explode(' ', $line); + $buf = ''; + $firstword = true; + foreach ($words as $word) { + if ($qp_mode && (strlen($word) > $length)) { + $space_left = $length - strlen($buf) - $crlflen; + if (!$firstword) { + if ($space_left > 20) { + $len = $space_left; + if ($is_utf8) { + $len = $this->utf8CharBoundary($word, $len); + } elseif ('=' === substr($word, $len - 1, 1)) { + --$len; + } elseif ('=' === substr($word, $len - 2, 1)) { + $len -= 2; + } + $part = substr($word, 0, $len); + $word = substr($word, $len); + $buf .= ' ' . $part; + $message .= $buf . sprintf('=%s', static::$LE); + } else { + $message .= $buf . $soft_break; + } + $buf = ''; + } + while ($word !== '') { + if ($length <= 0) { + break; + } + $len = $length; + if ($is_utf8) { + $len = $this->utf8CharBoundary($word, $len); + } elseif ('=' === substr($word, $len - 1, 1)) { + --$len; + } elseif ('=' === substr($word, $len - 2, 1)) { + $len -= 2; + } + $part = substr($word, 0, $len); + $word = (string) substr($word, $len); + + if ($word !== '') { + $message .= $part . sprintf('=%s', static::$LE); + } else { + $buf = $part; + } + } + } else { + $buf_o = $buf; + if (!$firstword) { + $buf .= ' '; + } + $buf .= $word; + + if ('' !== $buf_o && strlen($buf) > $length) { + $message .= $buf_o . $soft_break; + $buf = $word; + } + } + $firstword = false; + } + $message .= $buf . static::$LE; + } + + return $message; + } + + /** + * Find the last character boundary prior to $maxLength in a utf-8 + * quoted-printable encoded string. + * Original written by Colin Brown. + * + * @param string $encodedText utf-8 QP text + * @param int $maxLength Find the last character boundary prior to this length + * + * @return int + */ + public function utf8CharBoundary($encodedText, $maxLength) + { + $foundSplitPos = false; + $lookBack = 3; + while (!$foundSplitPos) { + $lastChunk = substr($encodedText, $maxLength - $lookBack, $lookBack); + $encodedCharPos = strpos($lastChunk, '='); + if (false !== $encodedCharPos) { + // Found start of encoded character byte within $lookBack block. + // Check the encoded byte value (the 2 chars after the '=') + $hex = substr($encodedText, $maxLength - $lookBack + $encodedCharPos + 1, 2); + $dec = hexdec($hex); + if ($dec < 128) { + // Single byte character. + // If the encoded char was found at pos 0, it will fit + // otherwise reduce maxLength to start of the encoded char + if ($encodedCharPos > 0) { + $maxLength -= $lookBack - $encodedCharPos; + } + $foundSplitPos = true; + } elseif ($dec >= 192) { + // First byte of a multi byte character + // Reduce maxLength to split at start of character + $maxLength -= $lookBack - $encodedCharPos; + $foundSplitPos = true; + } elseif ($dec < 192) { + // Middle byte of a multi byte character, look further back + $lookBack += 3; + } + } else { + // No encoded character found + $foundSplitPos = true; + } + } + + return $maxLength; + } + + /** + * Apply word wrapping to the message body. + * Wraps the message body to the number of chars set in the WordWrap property. + * You should only do this to plain-text bodies as wrapping HTML tags may break them. + * This is called automatically by createBody(), so you don't need to call it yourself. + */ + public function setWordWrap() + { + if ($this->WordWrap < 1) { + return; + } + + switch ($this->message_type) { + case 'alt': + case 'alt_inline': + case 'alt_attach': + case 'alt_inline_attach': + $this->AltBody = $this->wrapText($this->AltBody, $this->WordWrap); + break; + default: + $this->Body = $this->wrapText($this->Body, $this->WordWrap); + break; + } + } + + /** + * Assemble message headers. + * + * @return string The assembled headers + */ + public function createHeader() + { + $result = ''; + + $result .= $this->headerLine('Date', '' === $this->MessageDate ? self::rfcDate() : $this->MessageDate); + + // To be created automatically by mail() + if ($this->SingleTo) { + if ('mail' !== $this->Mailer) { + foreach ($this->to as $toaddr) { + $this->SingleToArray[] = $this->addrFormat($toaddr); + } + } + } elseif (count($this->to) > 0) { + if ('mail' !== $this->Mailer) { + $result .= $this->addrAppend('To', $this->to); + } + } elseif (count($this->cc) === 0) { + $result .= $this->headerLine('To', 'undisclosed-recipients:;'); + } + + $result .= $this->addrAppend('From', [[trim($this->From), $this->FromName]]); + + // sendmail and mail() extract Cc from the header before sending + if (count($this->cc) > 0) { + $result .= $this->addrAppend('Cc', $this->cc); + } + + // sendmail and mail() extract Bcc from the header before sending + if (( + 'sendmail' === $this->Mailer || 'qmail' === $this->Mailer || 'mail' === $this->Mailer + ) + && count($this->bcc) > 0 + ) { + $result .= $this->addrAppend('Bcc', $this->bcc); + } + + if (count($this->ReplyTo) > 0) { + $result .= $this->addrAppend('Reply-To', $this->ReplyTo); + } + + // mail() sets the subject itself + if ('mail' !== $this->Mailer) { + $result .= $this->headerLine('Subject', $this->encodeHeader($this->secureHeader($this->Subject))); + } + + // Only allow a custom message ID if it conforms to RFC 5322 section 3.6.4 + // https://tools.ietf.org/html/rfc5322#section-3.6.4 + if ('' !== $this->MessageID && preg_match('/^<.*@.*>$/', $this->MessageID)) { + $this->lastMessageID = $this->MessageID; + } else { + $this->lastMessageID = sprintf('<%s@%s>', $this->uniqueid, $this->serverHostname()); + } + $result .= $this->headerLine('Message-ID', $this->lastMessageID); + if (null !== $this->Priority) { + $result .= $this->headerLine('X-Priority', $this->Priority); + } + if ('' === $this->XMailer) { + $result .= $this->headerLine( + 'X-Mailer', + 'PHPMailer ' . self::VERSION . ' (https://github.com/PHPMailer/PHPMailer)' + ); + } else { + $myXmailer = trim($this->XMailer); + if ($myXmailer) { + $result .= $this->headerLine('X-Mailer', $myXmailer); + } + } + + if ('' !== $this->ConfirmReadingTo) { + $result .= $this->headerLine('Disposition-Notification-To', '<' . $this->ConfirmReadingTo . '>'); + } + + // Add custom headers + foreach ($this->CustomHeader as $header) { + $result .= $this->headerLine( + trim($header[0]), + $this->encodeHeader(trim($header[1])) + ); + } + if (!$this->sign_key_file) { + $result .= $this->headerLine('MIME-Version', '1.0'); + $result .= $this->getMailMIME(); + } + + return $result; + } + + /** + * Get the message MIME type headers. + * + * @return string + */ + public function getMailMIME() + { + $result = ''; + $ismultipart = true; + switch ($this->message_type) { + case 'inline': + $result .= $this->headerLine('Content-Type', static::CONTENT_TYPE_MULTIPART_RELATED . ';'); + $result .= $this->textLine(' boundary="' . $this->boundary[1] . '"'); + break; + case 'attach': + case 'inline_attach': + case 'alt_attach': + case 'alt_inline_attach': + $result .= $this->headerLine('Content-Type', static::CONTENT_TYPE_MULTIPART_MIXED . ';'); + $result .= $this->textLine(' boundary="' . $this->boundary[1] . '"'); + break; + case 'alt': + case 'alt_inline': + $result .= $this->headerLine('Content-Type', static::CONTENT_TYPE_MULTIPART_ALTERNATIVE . ';'); + $result .= $this->textLine(' boundary="' . $this->boundary[1] . '"'); + break; + default: + // Catches case 'plain': and case '': + $result .= $this->textLine('Content-Type: ' . $this->ContentType . '; charset=' . $this->CharSet); + $ismultipart = false; + break; + } + // RFC1341 part 5 says 7bit is assumed if not specified + if (static::ENCODING_7BIT !== $this->Encoding) { + // RFC 2045 section 6.4 says multipart MIME parts may only use 7bit, 8bit or binary CTE + if ($ismultipart) { + if (static::ENCODING_8BIT === $this->Encoding) { + $result .= $this->headerLine('Content-Transfer-Encoding', static::ENCODING_8BIT); + } + // The only remaining alternatives are quoted-printable and base64, which are both 7bit compatible + } else { + $result .= $this->headerLine('Content-Transfer-Encoding', $this->Encoding); + } + } + + if ('mail' !== $this->Mailer) { +// $result .= static::$LE; + } + + return $result; + } + + /** + * Returns the whole MIME message. + * Includes complete headers and body. + * Only valid post preSend(). + * + * @see PHPMailer::preSend() + * + * @return string + */ + public function getSentMIMEMessage() + { + return static::stripTrailingWSP($this->MIMEHeader . $this->mailHeader) . + static::$LE . static::$LE . $this->MIMEBody; + } + + /** + * Create a unique ID to use for boundaries. + * + * @return string + */ + protected function generateId() + { + $len = 32; //32 bytes = 256 bits + $bytes = ''; + if (function_exists('random_bytes')) { + try { + $bytes = random_bytes($len); + } catch (\Exception $e) { + //Do nothing + } + } elseif (function_exists('openssl_random_pseudo_bytes')) { + /** @noinspection CryptographicallySecureRandomnessInspection */ + $bytes = openssl_random_pseudo_bytes($len); + } + if ($bytes === '') { + //We failed to produce a proper random string, so make do. + //Use a hash to force the length to the same as the other methods + $bytes = hash('sha256', uniqid((string) mt_rand(), true), true); + } + + //We don't care about messing up base64 format here, just want a random string + return str_replace(['=', '+', '/'], '', base64_encode(hash('sha256', $bytes, true))); + } + + /** + * Assemble the message body. + * Returns an empty string on failure. + * + * @throws Exception + * + * @return string The assembled message body + */ + public function createBody() + { + $body = ''; + //Create unique IDs and preset boundaries + $this->uniqueid = $this->generateId(); + $this->boundary[1] = 'b1_' . $this->uniqueid; + $this->boundary[2] = 'b2_' . $this->uniqueid; + $this->boundary[3] = 'b3_' . $this->uniqueid; + + if ($this->sign_key_file) { + $body .= $this->getMailMIME() . static::$LE; + } + + $this->setWordWrap(); + + $bodyEncoding = $this->Encoding; + $bodyCharSet = $this->CharSet; + //Can we do a 7-bit downgrade? + if (static::ENCODING_8BIT === $bodyEncoding && !$this->has8bitChars($this->Body)) { + $bodyEncoding = static::ENCODING_7BIT; + //All ISO 8859, Windows codepage and UTF-8 charsets are ascii compatible up to 7-bit + $bodyCharSet = static::CHARSET_ASCII; + } + //If lines are too long, and we're not already using an encoding that will shorten them, + //change to quoted-printable transfer encoding for the body part only + if (static::ENCODING_BASE64 !== $this->Encoding && static::hasLineLongerThanMax($this->Body)) { + $bodyEncoding = static::ENCODING_QUOTED_PRINTABLE; + } + + $altBodyEncoding = $this->Encoding; + $altBodyCharSet = $this->CharSet; + //Can we do a 7-bit downgrade? + if (static::ENCODING_8BIT === $altBodyEncoding && !$this->has8bitChars($this->AltBody)) { + $altBodyEncoding = static::ENCODING_7BIT; + //All ISO 8859, Windows codepage and UTF-8 charsets are ascii compatible up to 7-bit + $altBodyCharSet = static::CHARSET_ASCII; + } + //If lines are too long, and we're not already using an encoding that will shorten them, + //change to quoted-printable transfer encoding for the alt body part only + if (static::ENCODING_BASE64 !== $altBodyEncoding && static::hasLineLongerThanMax($this->AltBody)) { + $altBodyEncoding = static::ENCODING_QUOTED_PRINTABLE; + } + //Use this as a preamble in all multipart message types + $mimepre = 'This is a multi-part message in MIME format.' . static::$LE . static::$LE; + switch ($this->message_type) { + case 'inline': + $body .= $mimepre; + $body .= $this->getBoundary($this->boundary[1], $bodyCharSet, '', $bodyEncoding); + $body .= $this->encodeString($this->Body, $bodyEncoding); + $body .= static::$LE; + $body .= $this->attachAll('inline', $this->boundary[1]); + break; + case 'attach': + $body .= $mimepre; + $body .= $this->getBoundary($this->boundary[1], $bodyCharSet, '', $bodyEncoding); + $body .= $this->encodeString($this->Body, $bodyEncoding); + $body .= static::$LE; + $body .= $this->attachAll('attachment', $this->boundary[1]); + break; + case 'inline_attach': + $body .= $mimepre; + $body .= $this->textLine('--' . $this->boundary[1]); + $body .= $this->headerLine('Content-Type', static::CONTENT_TYPE_MULTIPART_RELATED . ';'); + $body .= $this->textLine(' boundary="' . $this->boundary[2] . '";'); + $body .= $this->textLine(' type="' . static::CONTENT_TYPE_TEXT_HTML . '"'); + $body .= static::$LE; + $body .= $this->getBoundary($this->boundary[2], $bodyCharSet, '', $bodyEncoding); + $body .= $this->encodeString($this->Body, $bodyEncoding); + $body .= static::$LE; + $body .= $this->attachAll('inline', $this->boundary[2]); + $body .= static::$LE; + $body .= $this->attachAll('attachment', $this->boundary[1]); + break; + case 'alt': + $body .= $mimepre; + $body .= $this->getBoundary( + $this->boundary[1], + $altBodyCharSet, + static::CONTENT_TYPE_PLAINTEXT, + $altBodyEncoding + ); + $body .= $this->encodeString($this->AltBody, $altBodyEncoding); + $body .= static::$LE; + $body .= $this->getBoundary( + $this->boundary[1], + $bodyCharSet, + static::CONTENT_TYPE_TEXT_HTML, + $bodyEncoding + ); + $body .= $this->encodeString($this->Body, $bodyEncoding); + $body .= static::$LE; + if (!empty($this->Ical)) { + $method = static::ICAL_METHOD_REQUEST; + foreach (static::$IcalMethods as $imethod) { + if (stripos($this->Ical, 'METHOD:' . $imethod) !== false) { + $method = $imethod; + break; + } + } + $body .= $this->getBoundary( + $this->boundary[1], + '', + static::CONTENT_TYPE_TEXT_CALENDAR . '; method=' . $method, + '' + ); + $body .= $this->encodeString($this->Ical, $this->Encoding); + $body .= static::$LE; + } + $body .= $this->endBoundary($this->boundary[1]); + break; + case 'alt_inline': + $body .= $mimepre; + $body .= $this->getBoundary( + $this->boundary[1], + $altBodyCharSet, + static::CONTENT_TYPE_PLAINTEXT, + $altBodyEncoding + ); + $body .= $this->encodeString($this->AltBody, $altBodyEncoding); + $body .= static::$LE; + $body .= $this->textLine('--' . $this->boundary[1]); + $body .= $this->headerLine('Content-Type', static::CONTENT_TYPE_MULTIPART_RELATED . ';'); + $body .= $this->textLine(' boundary="' . $this->boundary[2] . '";'); + $body .= $this->textLine(' type="' . static::CONTENT_TYPE_TEXT_HTML . '"'); + $body .= static::$LE; + $body .= $this->getBoundary( + $this->boundary[2], + $bodyCharSet, + static::CONTENT_TYPE_TEXT_HTML, + $bodyEncoding + ); + $body .= $this->encodeString($this->Body, $bodyEncoding); + $body .= static::$LE; + $body .= $this->attachAll('inline', $this->boundary[2]); + $body .= static::$LE; + $body .= $this->endBoundary($this->boundary[1]); + break; + case 'alt_attach': + $body .= $mimepre; + $body .= $this->textLine('--' . $this->boundary[1]); + $body .= $this->headerLine('Content-Type', static::CONTENT_TYPE_MULTIPART_ALTERNATIVE . ';'); + $body .= $this->textLine(' boundary="' . $this->boundary[2] . '"'); + $body .= static::$LE; + $body .= $this->getBoundary( + $this->boundary[2], + $altBodyCharSet, + static::CONTENT_TYPE_PLAINTEXT, + $altBodyEncoding + ); + $body .= $this->encodeString($this->AltBody, $altBodyEncoding); + $body .= static::$LE; + $body .= $this->getBoundary( + $this->boundary[2], + $bodyCharSet, + static::CONTENT_TYPE_TEXT_HTML, + $bodyEncoding + ); + $body .= $this->encodeString($this->Body, $bodyEncoding); + $body .= static::$LE; + if (!empty($this->Ical)) { + $method = static::ICAL_METHOD_REQUEST; + foreach (static::$IcalMethods as $imethod) { + if (stripos($this->Ical, 'METHOD:' . $imethod) !== false) { + $method = $imethod; + break; + } + } + $body .= $this->getBoundary( + $this->boundary[2], + '', + static::CONTENT_TYPE_TEXT_CALENDAR . '; method=' . $method, + '' + ); + $body .= $this->encodeString($this->Ical, $this->Encoding); + } + $body .= $this->endBoundary($this->boundary[2]); + $body .= static::$LE; + $body .= $this->attachAll('attachment', $this->boundary[1]); + break; + case 'alt_inline_attach': + $body .= $mimepre; + $body .= $this->textLine('--' . $this->boundary[1]); + $body .= $this->headerLine('Content-Type', static::CONTENT_TYPE_MULTIPART_ALTERNATIVE . ';'); + $body .= $this->textLine(' boundary="' . $this->boundary[2] . '"'); + $body .= static::$LE; + $body .= $this->getBoundary( + $this->boundary[2], + $altBodyCharSet, + static::CONTENT_TYPE_PLAINTEXT, + $altBodyEncoding + ); + $body .= $this->encodeString($this->AltBody, $altBodyEncoding); + $body .= static::$LE; + $body .= $this->textLine('--' . $this->boundary[2]); + $body .= $this->headerLine('Content-Type', static::CONTENT_TYPE_MULTIPART_RELATED . ';'); + $body .= $this->textLine(' boundary="' . $this->boundary[3] . '";'); + $body .= $this->textLine(' type="' . static::CONTENT_TYPE_TEXT_HTML . '"'); + $body .= static::$LE; + $body .= $this->getBoundary( + $this->boundary[3], + $bodyCharSet, + static::CONTENT_TYPE_TEXT_HTML, + $bodyEncoding + ); + $body .= $this->encodeString($this->Body, $bodyEncoding); + $body .= static::$LE; + $body .= $this->attachAll('inline', $this->boundary[3]); + $body .= static::$LE; + $body .= $this->endBoundary($this->boundary[2]); + $body .= static::$LE; + $body .= $this->attachAll('attachment', $this->boundary[1]); + break; + default: + // Catch case 'plain' and case '', applies to simple `text/plain` and `text/html` body content types + //Reset the `Encoding` property in case we changed it for line length reasons + $this->Encoding = $bodyEncoding; + $body .= $this->encodeString($this->Body, $this->Encoding); + break; + } + + if ($this->isError()) { + $body = ''; + if ($this->exceptions) { + throw new Exception($this->lang('empty_message'), self::STOP_CRITICAL); + } + } elseif ($this->sign_key_file) { + try { + if (!defined('PKCS7_TEXT')) { + throw new Exception($this->lang('extension_missing') . 'openssl'); + } + + $file = tempnam(sys_get_temp_dir(), 'srcsign'); + $signed = tempnam(sys_get_temp_dir(), 'mailsign'); + file_put_contents($file, $body); + + //Workaround for PHP bug https://bugs.php.net/bug.php?id=69197 + if (empty($this->sign_extracerts_file)) { + $sign = @openssl_pkcs7_sign( + $file, + $signed, + 'file://' . realpath($this->sign_cert_file), + ['file://' . realpath($this->sign_key_file), $this->sign_key_pass], + [] + ); + } else { + $sign = @openssl_pkcs7_sign( + $file, + $signed, + 'file://' . realpath($this->sign_cert_file), + ['file://' . realpath($this->sign_key_file), $this->sign_key_pass], + [], + PKCS7_DETACHED, + $this->sign_extracerts_file + ); + } + + @unlink($file); + if ($sign) { + $body = file_get_contents($signed); + @unlink($signed); + //The message returned by openssl contains both headers and body, so need to split them up + $parts = explode("\n\n", $body, 2); + $this->MIMEHeader .= $parts[0] . static::$LE . static::$LE; + $body = $parts[1]; + } else { + @unlink($signed); + throw new Exception($this->lang('signing') . openssl_error_string()); + } + } catch (Exception $exc) { + $body = ''; + if ($this->exceptions) { + throw $exc; + } + } + } + + return $body; + } + + /** + * Return the start of a message boundary. + * + * @param string $boundary + * @param string $charSet + * @param string $contentType + * @param string $encoding + * + * @return string + */ + protected function getBoundary($boundary, $charSet, $contentType, $encoding) + { + $result = ''; + if ('' === $charSet) { + $charSet = $this->CharSet; + } + if ('' === $contentType) { + $contentType = $this->ContentType; + } + if ('' === $encoding) { + $encoding = $this->Encoding; + } + $result .= $this->textLine('--' . $boundary); + $result .= sprintf('Content-Type: %s; charset=%s', $contentType, $charSet); + $result .= static::$LE; + // RFC1341 part 5 says 7bit is assumed if not specified + if (static::ENCODING_7BIT !== $encoding) { + $result .= $this->headerLine('Content-Transfer-Encoding', $encoding); + } + $result .= static::$LE; + + return $result; + } + + /** + * Return the end of a message boundary. + * + * @param string $boundary + * + * @return string + */ + protected function endBoundary($boundary) + { + return static::$LE . '--' . $boundary . '--' . static::$LE; + } + + /** + * Set the message type. + * PHPMailer only supports some preset message types, not arbitrary MIME structures. + */ + protected function setMessageType() + { + $type = []; + if ($this->alternativeExists()) { + $type[] = 'alt'; + } + if ($this->inlineImageExists()) { + $type[] = 'inline'; + } + if ($this->attachmentExists()) { + $type[] = 'attach'; + } + $this->message_type = implode('_', $type); + if ('' === $this->message_type) { + //The 'plain' message_type refers to the message having a single body element, not that it is plain-text + $this->message_type = 'plain'; + } + } + + /** + * Format a header line. + * + * @param string $name + * @param string|int $value + * + * @return string + */ + public function headerLine($name, $value) + { + return $name . ': ' . $value . static::$LE; + } + + /** + * Return a formatted mail line. + * + * @param string $value + * + * @return string + */ + public function textLine($value) + { + return $value . static::$LE; + } + + /** + * Add an attachment from a path on the filesystem. + * Never use a user-supplied path to a file! + * Returns false if the file could not be found or read. + * Explicitly *does not* support passing URLs; PHPMailer is not an HTTP client. + * If you need to do that, fetch the resource yourself and pass it in via a local file or string. + * + * @param string $path Path to the attachment + * @param string $name Overrides the attachment name + * @param string $encoding File encoding (see $Encoding) + * @param string $type File extension (MIME) type + * @param string $disposition Disposition to use + * + * @throws Exception + * + * @return bool + */ + public function addAttachment( + $path, + $name = '', + $encoding = self::ENCODING_BASE64, + $type = '', + $disposition = 'attachment' + ) { + try { + if (!static::isPermittedPath($path) || !@is_file($path) || !is_readable($path)) { + throw new Exception($this->lang('file_access') . $path, self::STOP_CONTINUE); + } + + // If a MIME type is not specified, try to work it out from the file name + if ('' === $type) { + $type = static::filenameToType($path); + } + + $filename = (string) static::mb_pathinfo($path, PATHINFO_BASENAME); + if ('' === $name) { + $name = $filename; + } + + if (!$this->validateEncoding($encoding)) { + throw new Exception($this->lang('encoding') . $encoding); + } + + $this->attachment[] = [ + 0 => $path, + 1 => $filename, + 2 => $name, + 3 => $encoding, + 4 => $type, + 5 => false, // isStringAttachment + 6 => $disposition, + 7 => $name, + ]; + } catch (Exception $exc) { + $this->setError($exc->getMessage()); + $this->edebug($exc->getMessage()); + if ($this->exceptions) { + throw $exc; + } + + return false; + } + + return true; + } + + /** + * Return the array of attachments. + * + * @return array + */ + public function getAttachments() + { + return $this->attachment; + } + + /** + * Attach all file, string, and binary attachments to the message. + * Returns an empty string on failure. + * + * @param string $disposition_type + * @param string $boundary + * + * @throws Exception + * + * @return string + */ + protected function attachAll($disposition_type, $boundary) + { + // Return text of body + $mime = []; + $cidUniq = []; + $incl = []; + + // Add all attachments + foreach ($this->attachment as $attachment) { + // Check if it is a valid disposition_filter + if ($attachment[6] === $disposition_type) { + // Check for string attachment + $string = ''; + $path = ''; + $bString = $attachment[5]; + if ($bString) { + $string = $attachment[0]; + } else { + $path = $attachment[0]; + } + + $inclhash = hash('sha256', serialize($attachment)); + if (in_array($inclhash, $incl, true)) { + continue; + } + $incl[] = $inclhash; + $name = $attachment[2]; + $encoding = $attachment[3]; + $type = $attachment[4]; + $disposition = $attachment[6]; + $cid = $attachment[7]; + if ('inline' === $disposition && array_key_exists($cid, $cidUniq)) { + continue; + } + $cidUniq[$cid] = true; + + $mime[] = sprintf('--%s%s', $boundary, static::$LE); + //Only include a filename property if we have one + if (!empty($name)) { + $mime[] = sprintf( + 'Content-Type: %s; name=%s%s', + $type, + static::quotedString($this->encodeHeader($this->secureHeader($name))), + static::$LE + ); + } else { + $mime[] = sprintf( + 'Content-Type: %s%s', + $type, + static::$LE + ); + } + // RFC1341 part 5 says 7bit is assumed if not specified + if (static::ENCODING_7BIT !== $encoding) { + $mime[] = sprintf('Content-Transfer-Encoding: %s%s', $encoding, static::$LE); + } + + //Only set Content-IDs on inline attachments + if ((string) $cid !== '' && $disposition === 'inline') { + $mime[] = 'Content-ID: <' . $this->encodeHeader($this->secureHeader($cid)) . '>' . static::$LE; + } + + // Allow for bypassing the Content-Disposition header + if (!empty($disposition)) { + $encoded_name = $this->encodeHeader($this->secureHeader($name)); + if (!empty($encoded_name)) { + $mime[] = sprintf( + 'Content-Disposition: %s; filename=%s%s', + $disposition, + static::quotedString($encoded_name), + static::$LE . static::$LE + ); + } else { + $mime[] = sprintf( + 'Content-Disposition: %s%s', + $disposition, + static::$LE . static::$LE + ); + } + } else { + $mime[] = static::$LE; + } + + // Encode as string attachment + if ($bString) { + $mime[] = $this->encodeString($string, $encoding); + } else { + $mime[] = $this->encodeFile($path, $encoding); + } + if ($this->isError()) { + return ''; + } + $mime[] = static::$LE; + } + } + + $mime[] = sprintf('--%s--%s', $boundary, static::$LE); + + return implode('', $mime); + } + + /** + * Encode a file attachment in requested format. + * Returns an empty string on failure. + * + * @param string $path The full path to the file + * @param string $encoding The encoding to use; one of 'base64', '7bit', '8bit', 'binary', 'quoted-printable' + * + * @return string + */ + protected function encodeFile($path, $encoding = self::ENCODING_BASE64) + { + try { + if (!static::isPermittedPath($path) || !file_exists($path) || !is_readable($path)) { + throw new Exception($this->lang('file_open') . $path, self::STOP_CONTINUE); + } + $file_buffer = file_get_contents($path); + if (false === $file_buffer) { + throw new Exception($this->lang('file_open') . $path, self::STOP_CONTINUE); + } + $file_buffer = $this->encodeString($file_buffer, $encoding); + + return $file_buffer; + } catch (Exception $exc) { + $this->setError($exc->getMessage()); + $this->edebug($exc->getMessage()); + if ($this->exceptions) { + throw $exc; + } + + return ''; + } + } + + /** + * Encode a string in requested format. + * Returns an empty string on failure. + * + * @param string $str The text to encode + * @param string $encoding The encoding to use; one of 'base64', '7bit', '8bit', 'binary', 'quoted-printable' + * + * @throws Exception + * + * @return string + */ + public function encodeString($str, $encoding = self::ENCODING_BASE64) + { + $encoded = ''; + switch (strtolower($encoding)) { + case static::ENCODING_BASE64: + $encoded = chunk_split( + base64_encode($str), + static::STD_LINE_LENGTH, + static::$LE + ); + break; + case static::ENCODING_7BIT: + case static::ENCODING_8BIT: + $encoded = static::normalizeBreaks($str); + // Make sure it ends with a line break + if (substr($encoded, -(strlen(static::$LE))) !== static::$LE) { + $encoded .= static::$LE; + } + break; + case static::ENCODING_BINARY: + $encoded = $str; + break; + case static::ENCODING_QUOTED_PRINTABLE: + $encoded = $this->encodeQP($str); + break; + default: + $this->setError($this->lang('encoding') . $encoding); + if ($this->exceptions) { + throw new Exception($this->lang('encoding') . $encoding); + } + break; + } + + return $encoded; + } + + /** + * Encode a header value (not including its label) optimally. + * Picks shortest of Q, B, or none. Result includes folding if needed. + * See RFC822 definitions for phrase, comment and text positions. + * + * @param string $str The header value to encode + * @param string $position What context the string will be used in + * + * @return string + */ + public function encodeHeader($str, $position = 'text') + { + $matchcount = 0; + switch (strtolower($position)) { + case 'phrase': + if (!preg_match('/[\200-\377]/', $str)) { + // Can't use addslashes as we don't know the value of magic_quotes_sybase + $encoded = addcslashes($str, "\0..\37\177\\\""); + if (($str === $encoded) && !preg_match('/[^A-Za-z0-9!#$%&\'*+\/=?^_`{|}~ -]/', $str)) { + return $encoded; + } + + return "\"$encoded\""; + } + $matchcount = preg_match_all('/[^\040\041\043-\133\135-\176]/', $str, $matches); + break; + /* @noinspection PhpMissingBreakStatementInspection */ + case 'comment': + $matchcount = preg_match_all('/[()"]/', $str, $matches); + //fallthrough + case 'text': + default: + $matchcount += preg_match_all('/[\000-\010\013\014\016-\037\177-\377]/', $str, $matches); + break; + } + + if ($this->has8bitChars($str)) { + $charset = $this->CharSet; + } else { + $charset = static::CHARSET_ASCII; + } + + // Q/B encoding adds 8 chars and the charset ("` =?<charset>?[QB]?<content>?=`"). + $overhead = 8 + strlen($charset); + + if ('mail' === $this->Mailer) { + $maxlen = static::MAIL_MAX_LINE_LENGTH - $overhead; + } else { + $maxlen = static::MAX_LINE_LENGTH - $overhead; + } + + // Select the encoding that produces the shortest output and/or prevents corruption. + if ($matchcount > strlen($str) / 3) { + // More than 1/3 of the content needs encoding, use B-encode. + $encoding = 'B'; + } elseif ($matchcount > 0) { + // Less than 1/3 of the content needs encoding, use Q-encode. + $encoding = 'Q'; + } elseif (strlen($str) > $maxlen) { + // No encoding needed, but value exceeds max line length, use Q-encode to prevent corruption. + $encoding = 'Q'; + } else { + // No reformatting needed + $encoding = false; + } + + switch ($encoding) { + case 'B': + if ($this->hasMultiBytes($str)) { + // Use a custom function which correctly encodes and wraps long + // multibyte strings without breaking lines within a character + $encoded = $this->base64EncodeWrapMB($str, "\n"); + } else { + $encoded = base64_encode($str); + $maxlen -= $maxlen % 4; + $encoded = trim(chunk_split($encoded, $maxlen, "\n")); + } + $encoded = preg_replace('/^(.*)$/m', ' =?' . $charset . "?$encoding?\\1?=", $encoded); + break; + case 'Q': + $encoded = $this->encodeQ($str, $position); + $encoded = $this->wrapText($encoded, $maxlen, true); + $encoded = str_replace('=' . static::$LE, "\n", trim($encoded)); + $encoded = preg_replace('/^(.*)$/m', ' =?' . $charset . "?$encoding?\\1?=", $encoded); + break; + default: + return $str; + } + + return trim(static::normalizeBreaks($encoded)); + } + + /** + * Check if a string contains multi-byte characters. + * + * @param string $str multi-byte text to wrap encode + * + * @return bool + */ + public function hasMultiBytes($str) + { + if (function_exists('mb_strlen')) { + return strlen($str) > mb_strlen($str, $this->CharSet); + } + + // Assume no multibytes (we can't handle without mbstring functions anyway) + return false; + } + + /** + * Does a string contain any 8-bit chars (in any charset)? + * + * @param string $text + * + * @return bool + */ + public function has8bitChars($text) + { + return (bool) preg_match('/[\x80-\xFF]/', $text); + } + + /** + * Encode and wrap long multibyte strings for mail headers + * without breaking lines within a character. + * Adapted from a function by paravoid. + * + * @see http://www.php.net/manual/en/function.mb-encode-mimeheader.php#60283 + * + * @param string $str multi-byte text to wrap encode + * @param string $linebreak string to use as linefeed/end-of-line + * + * @return string + */ + public function base64EncodeWrapMB($str, $linebreak = null) + { + $start = '=?' . $this->CharSet . '?B?'; + $end = '?='; + $encoded = ''; + if (null === $linebreak) { + $linebreak = static::$LE; + } + + $mb_length = mb_strlen($str, $this->CharSet); + // Each line must have length <= 75, including $start and $end + $length = 75 - strlen($start) - strlen($end); + // Average multi-byte ratio + $ratio = $mb_length / strlen($str); + // Base64 has a 4:3 ratio + $avgLength = floor($length * $ratio * .75); + + $offset = 0; + for ($i = 0; $i < $mb_length; $i += $offset) { + $lookBack = 0; + do { + $offset = $avgLength - $lookBack; + $chunk = mb_substr($str, $i, $offset, $this->CharSet); + $chunk = base64_encode($chunk); + ++$lookBack; + } while (strlen($chunk) > $length); + $encoded .= $chunk . $linebreak; + } + + // Chomp the last linefeed + return substr($encoded, 0, -strlen($linebreak)); + } + + /** + * Encode a string in quoted-printable format. + * According to RFC2045 section 6.7. + * + * @param string $string The text to encode + * + * @return string + */ + public function encodeQP($string) + { + return static::normalizeBreaks(quoted_printable_encode($string)); + } + + /** + * Encode a string using Q encoding. + * + * @see http://tools.ietf.org/html/rfc2047#section-4.2 + * + * @param string $str the text to encode + * @param string $position Where the text is going to be used, see the RFC for what that means + * + * @return string + */ + public function encodeQ($str, $position = 'text') + { + // There should not be any EOL in the string + $pattern = ''; + $encoded = str_replace(["\r", "\n"], '', $str); + switch (strtolower($position)) { + case 'phrase': + // RFC 2047 section 5.3 + $pattern = '^A-Za-z0-9!*+\/ -'; + break; + /* + * RFC 2047 section 5.2. + * Build $pattern without including delimiters and [] + */ + /* @noinspection PhpMissingBreakStatementInspection */ + case 'comment': + $pattern = '\(\)"'; + /* Intentional fall through */ + case 'text': + default: + // RFC 2047 section 5.1 + // Replace every high ascii, control, =, ? and _ characters + $pattern = '\000-\011\013\014\016-\037\075\077\137\177-\377' . $pattern; + break; + } + $matches = []; + if (preg_match_all("/[{$pattern}]/", $encoded, $matches)) { + // If the string contains an '=', make sure it's the first thing we replace + // so as to avoid double-encoding + $eqkey = array_search('=', $matches[0], true); + if (false !== $eqkey) { + unset($matches[0][$eqkey]); + array_unshift($matches[0], '='); + } + foreach (array_unique($matches[0]) as $char) { + $encoded = str_replace($char, '=' . sprintf('%02X', ord($char)), $encoded); + } + } + // Replace spaces with _ (more readable than =20) + // RFC 2047 section 4.2(2) + return str_replace(' ', '_', $encoded); + } + + /** + * Add a string or binary attachment (non-filesystem). + * This method can be used to attach ascii or binary data, + * such as a BLOB record from a database. + * + * @param string $string String attachment data + * @param string $filename Name of the attachment + * @param string $encoding File encoding (see $Encoding) + * @param string $type File extension (MIME) type + * @param string $disposition Disposition to use + * + * @throws Exception + * + * @return bool True on successfully adding an attachment + */ + public function addStringAttachment( + $string, + $filename, + $encoding = self::ENCODING_BASE64, + $type = '', + $disposition = 'attachment' + ) { + try { + // If a MIME type is not specified, try to work it out from the file name + if ('' === $type) { + $type = static::filenameToType($filename); + } + + if (!$this->validateEncoding($encoding)) { + throw new Exception($this->lang('encoding') . $encoding); + } + + // Append to $attachment array + $this->attachment[] = [ + 0 => $string, + 1 => $filename, + 2 => static::mb_pathinfo($filename, PATHINFO_BASENAME), + 3 => $encoding, + 4 => $type, + 5 => true, // isStringAttachment + 6 => $disposition, + 7 => 0, + ]; + } catch (Exception $exc) { + $this->setError($exc->getMessage()); + $this->edebug($exc->getMessage()); + if ($this->exceptions) { + throw $exc; + } + + return false; + } + + return true; + } + + /** + * Add an embedded (inline) attachment from a file. + * This can include images, sounds, and just about any other document type. + * These differ from 'regular' attachments in that they are intended to be + * displayed inline with the message, not just attached for download. + * This is used in HTML messages that embed the images + * the HTML refers to using the $cid value. + * Never use a user-supplied path to a file! + * + * @param string $path Path to the attachment + * @param string $cid Content ID of the attachment; Use this to reference + * the content when using an embedded image in HTML + * @param string $name Overrides the attachment name + * @param string $encoding File encoding (see $Encoding) + * @param string $type File MIME type + * @param string $disposition Disposition to use + * + * @throws Exception + * + * @return bool True on successfully adding an attachment + */ + public function addEmbeddedImage( + $path, + $cid, + $name = '', + $encoding = self::ENCODING_BASE64, + $type = '', + $disposition = 'inline' + ) { + try { + if (!static::isPermittedPath($path) || !@is_file($path) || !is_readable($path)) { + throw new Exception($this->lang('file_access') . $path, self::STOP_CONTINUE); + } + + // If a MIME type is not specified, try to work it out from the file name + if ('' === $type) { + $type = static::filenameToType($path); + } + + if (!$this->validateEncoding($encoding)) { + throw new Exception($this->lang('encoding') . $encoding); + } + + $filename = (string) static::mb_pathinfo($path, PATHINFO_BASENAME); + if ('' === $name) { + $name = $filename; + } + + // Append to $attachment array + $this->attachment[] = [ + 0 => $path, + 1 => $filename, + 2 => $name, + 3 => $encoding, + 4 => $type, + 5 => false, // isStringAttachment + 6 => $disposition, + 7 => $cid, + ]; + } catch (Exception $exc) { + $this->setError($exc->getMessage()); + $this->edebug($exc->getMessage()); + if ($this->exceptions) { + throw $exc; + } + + return false; + } + + return true; + } + + /** + * Add an embedded stringified attachment. + * This can include images, sounds, and just about any other document type. + * If your filename doesn't contain an extension, be sure to set the $type to an appropriate MIME type. + * + * @param string $string The attachment binary data + * @param string $cid Content ID of the attachment; Use this to reference + * the content when using an embedded image in HTML + * @param string $name A filename for the attachment. If this contains an extension, + * PHPMailer will attempt to set a MIME type for the attachment. + * For example 'file.jpg' would get an 'image/jpeg' MIME type. + * @param string $encoding File encoding (see $Encoding), defaults to 'base64' + * @param string $type MIME type - will be used in preference to any automatically derived type + * @param string $disposition Disposition to use + * + * @throws Exception + * + * @return bool True on successfully adding an attachment + */ + public function addStringEmbeddedImage( + $string, + $cid, + $name = '', + $encoding = self::ENCODING_BASE64, + $type = '', + $disposition = 'inline' + ) { + try { + // If a MIME type is not specified, try to work it out from the name + if ('' === $type && !empty($name)) { + $type = static::filenameToType($name); + } + + if (!$this->validateEncoding($encoding)) { + throw new Exception($this->lang('encoding') . $encoding); + } + + // Append to $attachment array + $this->attachment[] = [ + 0 => $string, + 1 => $name, + 2 => $name, + 3 => $encoding, + 4 => $type, + 5 => true, // isStringAttachment + 6 => $disposition, + 7 => $cid, + ]; + } catch (Exception $exc) { + $this->setError($exc->getMessage()); + $this->edebug($exc->getMessage()); + if ($this->exceptions) { + throw $exc; + } + + return false; + } + + return true; + } + + /** + * Validate encodings. + * + * @param string $encoding + * + * @return bool + */ + protected function validateEncoding($encoding) + { + return in_array( + $encoding, + [ + self::ENCODING_7BIT, + self::ENCODING_QUOTED_PRINTABLE, + self::ENCODING_BASE64, + self::ENCODING_8BIT, + self::ENCODING_BINARY, + ], + true + ); + } + + /** + * Check if an embedded attachment is present with this cid. + * + * @param string $cid + * + * @return bool + */ + protected function cidExists($cid) + { + foreach ($this->attachment as $attachment) { + if ('inline' === $attachment[6] && $cid === $attachment[7]) { + return true; + } + } + + return false; + } + + /** + * Check if an inline attachment is present. + * + * @return bool + */ + public function inlineImageExists() + { + foreach ($this->attachment as $attachment) { + if ('inline' === $attachment[6]) { + return true; + } + } + + return false; + } + + /** + * Check if an attachment (non-inline) is present. + * + * @return bool + */ + public function attachmentExists() + { + foreach ($this->attachment as $attachment) { + if ('attachment' === $attachment[6]) { + return true; + } + } + + return false; + } + + /** + * Check if this message has an alternative body set. + * + * @return bool + */ + public function alternativeExists() + { + return !empty($this->AltBody); + } + + /** + * Clear queued addresses of given kind. + * + * @param string $kind 'to', 'cc', or 'bcc' + */ + public function clearQueuedAddresses($kind) + { + $this->RecipientsQueue = array_filter( + $this->RecipientsQueue, + static function ($params) use ($kind) { + return $params[0] !== $kind; + } + ); + } + + /** + * Clear all To recipients. + */ + public function clearAddresses() + { + foreach ($this->to as $to) { + unset($this->all_recipients[strtolower($to[0])]); + } + $this->to = []; + $this->clearQueuedAddresses('to'); + } + + /** + * Clear all CC recipients. + */ + public function clearCCs() + { + foreach ($this->cc as $cc) { + unset($this->all_recipients[strtolower($cc[0])]); + } + $this->cc = []; + $this->clearQueuedAddresses('cc'); + } + + /** + * Clear all BCC recipients. + */ + public function clearBCCs() + { + foreach ($this->bcc as $bcc) { + unset($this->all_recipients[strtolower($bcc[0])]); + } + $this->bcc = []; + $this->clearQueuedAddresses('bcc'); + } + + /** + * Clear all ReplyTo recipients. + */ + public function clearReplyTos() + { + $this->ReplyTo = []; + $this->ReplyToQueue = []; + } + + /** + * Clear all recipient types. + */ + public function clearAllRecipients() + { + $this->to = []; + $this->cc = []; + $this->bcc = []; + $this->all_recipients = []; + $this->RecipientsQueue = []; + } + + /** + * Clear all filesystem, string, and binary attachments. + */ + public function clearAttachments() + { + $this->attachment = []; + } + + /** + * Clear all custom headers. + */ + public function clearCustomHeaders() + { + $this->CustomHeader = []; + } + + /** + * Add an error message to the error container. + * + * @param string $msg + */ + protected function setError($msg) + { + ++$this->error_count; + if ('smtp' === $this->Mailer && null !== $this->smtp) { + $lasterror = $this->smtp->getError(); + if (!empty($lasterror['error'])) { + $msg .= $this->lang('smtp_error') . $lasterror['error']; + if (!empty($lasterror['detail'])) { + $msg .= ' Detail: ' . $lasterror['detail']; + } + if (!empty($lasterror['smtp_code'])) { + $msg .= ' SMTP code: ' . $lasterror['smtp_code']; + } + if (!empty($lasterror['smtp_code_ex'])) { + $msg .= ' Additional SMTP info: ' . $lasterror['smtp_code_ex']; + } + } + } + $this->ErrorInfo = $msg; + } + + /** + * Return an RFC 822 formatted date. + * + * @return string + */ + public static function rfcDate() + { + // Set the time zone to whatever the default is to avoid 500 errors + // Will default to UTC if it's not set properly in php.ini + date_default_timezone_set(@date_default_timezone_get()); + + return date('D, j M Y H:i:s O'); + } + + /** + * Get the server hostname. + * Returns 'localhost.localdomain' if unknown. + * + * @return string + */ + protected function serverHostname() + { + $result = ''; + if (!empty($this->Hostname)) { + $result = $this->Hostname; + } elseif (isset($_SERVER) && array_key_exists('SERVER_NAME', $_SERVER)) { + $result = $_SERVER['SERVER_NAME']; + } elseif (function_exists('gethostname') && gethostname() !== false) { + $result = gethostname(); + } elseif (php_uname('n') !== false) { + $result = php_uname('n'); + } + if (!static::isValidHost($result)) { + return 'localhost.localdomain'; + } + + return $result; + } + + /** + * Validate whether a string contains a valid value to use as a hostname or IP address. + * IPv6 addresses must include [], e.g. `[::1]`, not just `::1`. + * + * @param string $host The host name or IP address to check + * + * @return bool + */ + public static function isValidHost($host) + { + //Simple syntax limits + if (empty($host) + || !is_string($host) + || strlen($host) > 256 + || !preg_match('/^([a-zA-Z\d.-]*|\[[a-fA-F\d:]+])$/', $host) + ) { + return false; + } + //Looks like a bracketed IPv6 address + if (strlen($host) > 2 && substr($host, 0, 1) === '[' && substr($host, -1, 1) === ']') { + return filter_var(substr($host, 1, -1), FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) !== false; + } + //If removing all the dots results in a numeric string, it must be an IPv4 address. + //Need to check this first because otherwise things like `999.0.0.0` are considered valid host names + if (is_numeric(str_replace('.', '', $host))) { + //Is it a valid IPv4 address? + return filter_var($host, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) !== false; + } + if (filter_var('http://' . $host, FILTER_VALIDATE_URL) !== false) { + //Is it a syntactically valid hostname? + return true; + } + + return false; + } + + /** + * Get an error message in the current language. + * + * @param string $key + * + * @return string + */ + protected function lang($key) + { + if (count($this->language) < 1) { + $this->setLanguage(); // set the default language + } + + if (array_key_exists($key, $this->language)) { + if ('smtp_connect_failed' === $key) { + //Include a link to troubleshooting docs on SMTP connection failure + //this is by far the biggest cause of support questions + //but it's usually not PHPMailer's fault. + return $this->language[$key] . ' https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting'; + } + + return $this->language[$key]; + } + + //Return the key as a fallback + return $key; + } + + /** + * Check if an error occurred. + * + * @return bool True if an error did occur + */ + public function isError() + { + return $this->error_count > 0; + } + + /** + * Add a custom header. + * $name value can be overloaded to contain + * both header name and value (name:value). + * + * @param string $name Custom header name + * @param string|null $value Header value + * + * @throws Exception + */ + public function addCustomHeader($name, $value = null) + { + if (null === $value && strpos($name, ':') !== false) { + // Value passed in as name:value + list($name, $value) = explode(':', $name, 2); + } + $name = trim($name); + $value = trim($value); + //Ensure name is not empty, and that neither name nor value contain line breaks + if (empty($name) || strpbrk($name . $value, "\r\n") !== false) { + if ($this->exceptions) { + throw new Exception('Invalid header name or value'); + } + + return false; + } + $this->CustomHeader[] = [$name, $value]; + + return true; + } + + /** + * Returns all custom headers. + * + * @return array + */ + public function getCustomHeaders() + { + return $this->CustomHeader; + } + + /** + * Create a message body from an HTML string. + * Automatically inlines images and creates a plain-text version by converting the HTML, + * overwriting any existing values in Body and AltBody. + * Do not source $message content from user input! + * $basedir is prepended when handling relative URLs, e.g. <img src="/images/a.png"> and must not be empty + * will look for an image file in $basedir/images/a.png and convert it to inline. + * If you don't provide a $basedir, relative paths will be left untouched (and thus probably break in email) + * Converts data-uri images into embedded attachments. + * If you don't want to apply these transformations to your HTML, just set Body and AltBody directly. + * + * @param string $message HTML message string + * @param string $basedir Absolute path to a base directory to prepend to relative paths to images + * @param bool|callable $advanced Whether to use the internal HTML to text converter + * or your own custom converter @return string $message The transformed message Body + * + * @throws Exception + * + * @see PHPMailer::html2text() + */ + public function msgHTML($message, $basedir = '', $advanced = false) + { + preg_match_all('/(?<!-)(src|background)=["\'](.*)["\']/Ui', $message, $images); + if (array_key_exists(2, $images)) { + if (strlen($basedir) > 1 && '/' !== substr($basedir, -1)) { + // Ensure $basedir has a trailing / + $basedir .= '/'; + } + foreach ($images[2] as $imgindex => $url) { + // Convert data URIs into embedded images + //e.g. "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" + $match = []; + if (preg_match('#^data:(image/(?:jpe?g|gif|png));?(base64)?,(.+)#', $url, $match)) { + if (count($match) === 4 && static::ENCODING_BASE64 === $match[2]) { + $data = base64_decode($match[3]); + } elseif ('' === $match[2]) { + $data = rawurldecode($match[3]); + } else { + //Not recognised so leave it alone + continue; + } + //Hash the decoded data, not the URL, so that the same data-URI image used in multiple places + //will only be embedded once, even if it used a different encoding + $cid = substr(hash('sha256', $data), 0, 32) . '@phpmailer.0'; // RFC2392 S 2 + + if (!$this->cidExists($cid)) { + $this->addStringEmbeddedImage( + $data, + $cid, + 'embed' . $imgindex, + static::ENCODING_BASE64, + $match[1] + ); + } + $message = str_replace( + $images[0][$imgindex], + $images[1][$imgindex] . '="cid:' . $cid . '"', + $message + ); + continue; + } + if (// Only process relative URLs if a basedir is provided (i.e. no absolute local paths) + !empty($basedir) + // Ignore URLs containing parent dir traversal (..) + && (strpos($url, '..') === false) + // Do not change urls that are already inline images + && 0 !== strpos($url, 'cid:') + // Do not change absolute URLs, including anonymous protocol + && !preg_match('#^[a-z][a-z0-9+.-]*:?//#i', $url) + ) { + $filename = static::mb_pathinfo($url, PATHINFO_BASENAME); + $directory = dirname($url); + if ('.' === $directory) { + $directory = ''; + } + // RFC2392 S 2 + $cid = substr(hash('sha256', $url), 0, 32) . '@phpmailer.0'; + if (strlen($basedir) > 1 && '/' !== substr($basedir, -1)) { + $basedir .= '/'; + } + if (strlen($directory) > 1 && '/' !== substr($directory, -1)) { + $directory .= '/'; + } + if ($this->addEmbeddedImage( + $basedir . $directory . $filename, + $cid, + $filename, + static::ENCODING_BASE64, + static::_mime_types((string) static::mb_pathinfo($filename, PATHINFO_EXTENSION)) + ) + ) { + $message = preg_replace( + '/' . $images[1][$imgindex] . '=["\']' . preg_quote($url, '/') . '["\']/Ui', + $images[1][$imgindex] . '="cid:' . $cid . '"', + $message + ); + } + } + } + } + $this->isHTML(); + // Convert all message body line breaks to LE, makes quoted-printable encoding work much better + $this->Body = static::normalizeBreaks($message); + $this->AltBody = static::normalizeBreaks($this->html2text($message, $advanced)); + if (!$this->alternativeExists()) { + $this->AltBody = 'This is an HTML-only message. To view it, activate HTML in your email application.' + . static::$LE; + } + + return $this->Body; + } + + /** + * Convert an HTML string into plain text. + * This is used by msgHTML(). + * Note - older versions of this function used a bundled advanced converter + * which was removed for license reasons in #232. + * Example usage: + * + * ```php + * // Use default conversion + * $plain = $mail->html2text($html); + * // Use your own custom converter + * $plain = $mail->html2text($html, function($html) { + * $converter = new MyHtml2text($html); + * return $converter->get_text(); + * }); + * ``` + * + * @param string $html The HTML text to convert + * @param bool|callable $advanced Any boolean value to use the internal converter, + * or provide your own callable for custom conversion + * + * @return string + */ + public function html2text($html, $advanced = false) + { + if (is_callable($advanced)) { + return $advanced($html); + } + + return html_entity_decode( + trim(strip_tags(preg_replace('/<(head|title|style|script)[^>]*>.*?<\/\\1>/si', '', $html))), + ENT_QUOTES, + $this->CharSet + ); + } + + /** + * Get the MIME type for a file extension. + * + * @param string $ext File extension + * + * @return string MIME type of file + */ + public static function _mime_types($ext = '') + { + $mimes = [ + 'xl' => 'application/excel', + 'js' => 'application/javascript', + 'hqx' => 'application/mac-binhex40', + 'cpt' => 'application/mac-compactpro', + 'bin' => 'application/macbinary', + 'doc' => 'application/msword', + 'word' => 'application/msword', + 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', + 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', + 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template', + 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', + 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', + 'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide', + 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', + 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', + 'xlam' => 'application/vnd.ms-excel.addin.macroEnabled.12', + 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12', + 'class' => 'application/octet-stream', + 'dll' => 'application/octet-stream', + 'dms' => 'application/octet-stream', + 'exe' => 'application/octet-stream', + 'lha' => 'application/octet-stream', + 'lzh' => 'application/octet-stream', + 'psd' => 'application/octet-stream', + 'sea' => 'application/octet-stream', + 'so' => 'application/octet-stream', + 'oda' => 'application/oda', + 'pdf' => 'application/pdf', + 'ai' => 'application/postscript', + 'eps' => 'application/postscript', + 'ps' => 'application/postscript', + 'smi' => 'application/smil', + 'smil' => 'application/smil', + 'mif' => 'application/vnd.mif', + 'xls' => 'application/vnd.ms-excel', + 'ppt' => 'application/vnd.ms-powerpoint', + 'wbxml' => 'application/vnd.wap.wbxml', + 'wmlc' => 'application/vnd.wap.wmlc', + 'dcr' => 'application/x-director', + 'dir' => 'application/x-director', + 'dxr' => 'application/x-director', + 'dvi' => 'application/x-dvi', + 'gtar' => 'application/x-gtar', + 'php3' => 'application/x-httpd-php', + 'php4' => 'application/x-httpd-php', + 'php' => 'application/x-httpd-php', + 'phtml' => 'application/x-httpd-php', + 'phps' => 'application/x-httpd-php-source', + 'swf' => 'application/x-shockwave-flash', + 'sit' => 'application/x-stuffit', + 'tar' => 'application/x-tar', + 'tgz' => 'application/x-tar', + 'xht' => 'application/xhtml+xml', + 'xhtml' => 'application/xhtml+xml', + 'zip' => 'application/zip', + 'mid' => 'audio/midi', + 'midi' => 'audio/midi', + 'mp2' => 'audio/mpeg', + 'mp3' => 'audio/mpeg', + 'm4a' => 'audio/mp4', + 'mpga' => 'audio/mpeg', + 'aif' => 'audio/x-aiff', + 'aifc' => 'audio/x-aiff', + 'aiff' => 'audio/x-aiff', + 'ram' => 'audio/x-pn-realaudio', + 'rm' => 'audio/x-pn-realaudio', + 'rpm' => 'audio/x-pn-realaudio-plugin', + 'ra' => 'audio/x-realaudio', + 'wav' => 'audio/x-wav', + 'mka' => 'audio/x-matroska', + 'bmp' => 'image/bmp', + 'gif' => 'image/gif', + 'jpeg' => 'image/jpeg', + 'jpe' => 'image/jpeg', + 'jpg' => 'image/jpeg', + 'png' => 'image/png', + 'tiff' => 'image/tiff', + 'tif' => 'image/tiff', + 'webp' => 'image/webp', + 'heif' => 'image/heif', + 'heifs' => 'image/heif-sequence', + 'heic' => 'image/heic', + 'heics' => 'image/heic-sequence', + 'eml' => 'message/rfc822', + 'css' => 'text/css', + 'html' => 'text/html', + 'htm' => 'text/html', + 'shtml' => 'text/html', + 'log' => 'text/plain', + 'text' => 'text/plain', + 'txt' => 'text/plain', + 'rtx' => 'text/richtext', + 'rtf' => 'text/rtf', + 'vcf' => 'text/vcard', + 'vcard' => 'text/vcard', + 'ics' => 'text/calendar', + 'xml' => 'text/xml', + 'xsl' => 'text/xml', + 'wmv' => 'video/x-ms-wmv', + 'mpeg' => 'video/mpeg', + 'mpe' => 'video/mpeg', + 'mpg' => 'video/mpeg', + 'mp4' => 'video/mp4', + 'm4v' => 'video/mp4', + 'mov' => 'video/quicktime', + 'qt' => 'video/quicktime', + 'rv' => 'video/vnd.rn-realvideo', + 'avi' => 'video/x-msvideo', + 'movie' => 'video/x-sgi-movie', + 'webm' => 'video/webm', + 'mkv' => 'video/x-matroska', + ]; + $ext = strtolower($ext); + if (array_key_exists($ext, $mimes)) { + return $mimes[$ext]; + } + + return 'application/octet-stream'; + } + + /** + * Map a file name to a MIME type. + * Defaults to 'application/octet-stream', i.e.. arbitrary binary data. + * + * @param string $filename A file name or full path, does not need to exist as a file + * + * @return string + */ + public static function filenameToType($filename) + { + // In case the path is a URL, strip any query string before getting extension + $qpos = strpos($filename, '?'); + if (false !== $qpos) { + $filename = substr($filename, 0, $qpos); + } + $ext = static::mb_pathinfo($filename, PATHINFO_EXTENSION); + + return static::_mime_types($ext); + } + + /** + * Multi-byte-safe pathinfo replacement. + * Drop-in replacement for pathinfo(), but multibyte- and cross-platform-safe. + * + * @see http://www.php.net/manual/en/function.pathinfo.php#107461 + * + * @param string $path A filename or path, does not need to exist as a file + * @param int|string $options Either a PATHINFO_* constant, + * or a string name to return only the specified piece + * + * @return string|array + */ + public static function mb_pathinfo($path, $options = null) + { + $ret = ['dirname' => '', 'basename' => '', 'extension' => '', 'filename' => '']; + $pathinfo = []; + if (preg_match('#^(.*?)[\\\\/]*(([^/\\\\]*?)(\.([^.\\\\/]+?)|))[\\\\/.]*$#m', $path, $pathinfo)) { + if (array_key_exists(1, $pathinfo)) { + $ret['dirname'] = $pathinfo[1]; + } + if (array_key_exists(2, $pathinfo)) { + $ret['basename'] = $pathinfo[2]; + } + if (array_key_exists(5, $pathinfo)) { + $ret['extension'] = $pathinfo[5]; + } + if (array_key_exists(3, $pathinfo)) { + $ret['filename'] = $pathinfo[3]; + } + } + switch ($options) { + case PATHINFO_DIRNAME: + case 'dirname': + return $ret['dirname']; + case PATHINFO_BASENAME: + case 'basename': + return $ret['basename']; + case PATHINFO_EXTENSION: + case 'extension': + return $ret['extension']; + case PATHINFO_FILENAME: + case 'filename': + return $ret['filename']; + default: + return $ret; + } + } + + /** + * Set or reset instance properties. + * You should avoid this function - it's more verbose, less efficient, more error-prone and + * harder to debug than setting properties directly. + * Usage Example: + * `$mail->set('SMTPSecure', static::ENCRYPTION_STARTTLS);` + * is the same as: + * `$mail->SMTPSecure = static::ENCRYPTION_STARTTLS;`. + * + * @param string $name The property name to set + * @param mixed $value The value to set the property to + * + * @return bool + */ + public function set($name, $value = '') + { + if (property_exists($this, $name)) { + $this->$name = $value; + + return true; + } + $this->setError($this->lang('variable_set') . $name); + + return false; + } + + /** + * Strip newlines to prevent header injection. + * + * @param string $str + * + * @return string + */ + public function secureHeader($str) + { + return trim(str_replace(["\r", "\n"], '', $str)); + } + + /** + * Normalize line breaks in a string. + * Converts UNIX LF, Mac CR and Windows CRLF line breaks into a single line break format. + * Defaults to CRLF (for message bodies) and preserves consecutive breaks. + * + * @param string $text + * @param string $breaktype What kind of line break to use; defaults to static::$LE + * + * @return string + */ + public static function normalizeBreaks($text, $breaktype = null) + { + if (null === $breaktype) { + $breaktype = static::$LE; + } + // Normalise to \n + $text = str_replace([self::CRLF, "\r"], "\n", $text); + // Now convert LE as needed + if ("\n" !== $breaktype) { + $text = str_replace("\n", $breaktype, $text); + } + + return $text; + } + + /** + * Remove trailing breaks from a string. + * + * @param string $text + * + * @return string The text to remove breaks from + */ + public static function stripTrailingWSP($text) + { + return rtrim($text, " \r\n\t"); + } + + /** + * Return the current line break format string. + * + * @return string + */ + public static function getLE() + { + return static::$LE; + } + + /** + * Set the line break format string, e.g. "\r\n". + * + * @param string $le + */ + protected static function setLE($le) + { + static::$LE = $le; + } + + /** + * Set the public and private key files and password for S/MIME signing. + * + * @param string $cert_filename + * @param string $key_filename + * @param string $key_pass Password for private key + * @param string $extracerts_filename Optional path to chain certificate + */ + public function sign($cert_filename, $key_filename, $key_pass, $extracerts_filename = '') + { + $this->sign_cert_file = $cert_filename; + $this->sign_key_file = $key_filename; + $this->sign_key_pass = $key_pass; + $this->sign_extracerts_file = $extracerts_filename; + } + + /** + * Quoted-Printable-encode a DKIM header. + * + * @param string $txt + * + * @return string + */ + public function DKIM_QP($txt) + { + $line = ''; + $len = strlen($txt); + for ($i = 0; $i < $len; ++$i) { + $ord = ord($txt[$i]); + if (((0x21 <= $ord) && ($ord <= 0x3A)) || $ord === 0x3C || ((0x3E <= $ord) && ($ord <= 0x7E))) { + $line .= $txt[$i]; + } else { + $line .= '=' . sprintf('%02X', $ord); + } + } + + return $line; + } + + /** + * Generate a DKIM signature. + * + * @param string $signHeader + * + * @throws Exception + * + * @return string The DKIM signature value + */ + public function DKIM_Sign($signHeader) + { + if (!defined('PKCS7_TEXT')) { + if ($this->exceptions) { + throw new Exception($this->lang('extension_missing') . 'openssl'); + } + + return ''; + } + $privKeyStr = !empty($this->DKIM_private_string) ? + $this->DKIM_private_string : + file_get_contents($this->DKIM_private); + if ('' !== $this->DKIM_passphrase) { + $privKey = openssl_pkey_get_private($privKeyStr, $this->DKIM_passphrase); + } else { + $privKey = openssl_pkey_get_private($privKeyStr); + } + if (openssl_sign($signHeader, $signature, $privKey, 'sha256WithRSAEncryption')) { + openssl_pkey_free($privKey); + + return base64_encode($signature); + } + openssl_pkey_free($privKey); + + return ''; + } + + /** + * Generate a DKIM canonicalization header. + * Uses the 'relaxed' algorithm from RFC6376 section 3.4.2. + * Canonicalized headers should *always* use CRLF, regardless of mailer setting. + * + * @see https://tools.ietf.org/html/rfc6376#section-3.4.2 + * + * @param string $signHeader Header + * + * @return string + */ + public function DKIM_HeaderC($signHeader) + { + //Normalize breaks to CRLF (regardless of the mailer) + $signHeader = static::normalizeBreaks($signHeader, self::CRLF); + //Unfold header lines + //Note PCRE \s is too broad a definition of whitespace; RFC5322 defines it as `[ \t]` + //@see https://tools.ietf.org/html/rfc5322#section-2.2 + //That means this may break if you do something daft like put vertical tabs in your headers. + $signHeader = preg_replace('/\r\n[ \t]+/', ' ', $signHeader); + //Break headers out into an array + $lines = explode(self::CRLF, $signHeader); + foreach ($lines as $key => $line) { + //If the header is missing a :, skip it as it's invalid + //This is likely to happen because the explode() above will also split + //on the trailing LE, leaving an empty line + if (strpos($line, ':') === false) { + continue; + } + list($heading, $value) = explode(':', $line, 2); + //Lower-case header name + $heading = strtolower($heading); + //Collapse white space within the value, also convert WSP to space + $value = preg_replace('/[ \t]+/', ' ', $value); + //RFC6376 is slightly unclear here - it says to delete space at the *end* of each value + //But then says to delete space before and after the colon. + //Net result is the same as trimming both ends of the value. + //By elimination, the same applies to the field name + $lines[$key] = trim($heading, " \t") . ':' . trim($value, " \t"); + } + + return implode(self::CRLF, $lines); + } + + /** + * Generate a DKIM canonicalization body. + * Uses the 'simple' algorithm from RFC6376 section 3.4.3. + * Canonicalized bodies should *always* use CRLF, regardless of mailer setting. + * + * @see https://tools.ietf.org/html/rfc6376#section-3.4.3 + * + * @param string $body Message Body + * + * @return string + */ + public function DKIM_BodyC($body) + { + if (empty($body)) { + return self::CRLF; + } + // Normalize line endings to CRLF + $body = static::normalizeBreaks($body, self::CRLF); + + //Reduce multiple trailing line breaks to a single one + return static::stripTrailingWSP($body) . self::CRLF; + } + + /** + * Create the DKIM header and body in a new message header. + * + * @param string $headers_line Header lines + * @param string $subject Subject + * @param string $body Body + * + * @throws Exception + * + * @return string + */ + public function DKIM_Add($headers_line, $subject, $body) + { + $DKIMsignatureType = 'rsa-sha256'; // Signature & hash algorithms + $DKIMcanonicalization = 'relaxed/simple'; // Canonicalization methods of header & body + $DKIMquery = 'dns/txt'; // Query method + $DKIMtime = time(); + //Always sign these headers without being asked + //Recommended list from https://tools.ietf.org/html/rfc6376#section-5.4.1 + $autoSignHeaders = [ + 'from', + 'to', + 'cc', + 'date', + 'subject', + 'reply-to', + 'message-id', + 'content-type', + 'mime-version', + 'x-mailer', + ]; + if (stripos($headers_line, 'Subject') === false) { + $headers_line .= 'Subject: ' . $subject . static::$LE; + } + $headerLines = explode(static::$LE, $headers_line); + $currentHeaderLabel = ''; + $currentHeaderValue = ''; + $parsedHeaders = []; + $headerLineIndex = 0; + $headerLineCount = count($headerLines); + foreach ($headerLines as $headerLine) { + $matches = []; + if (preg_match('/^([^ \t]*?)(?::[ \t]*)(.*)$/', $headerLine, $matches)) { + if ($currentHeaderLabel !== '') { + //We were previously in another header; This is the start of a new header, so save the previous one + $parsedHeaders[] = ['label' => $currentHeaderLabel, 'value' => $currentHeaderValue]; + } + $currentHeaderLabel = $matches[1]; + $currentHeaderValue = $matches[2]; + } elseif (preg_match('/^[ \t]+(.*)$/', $headerLine, $matches)) { + //This is a folded continuation of the current header, so unfold it + $currentHeaderValue .= ' ' . $matches[1]; + } + ++$headerLineIndex; + if ($headerLineIndex >= $headerLineCount) { + //This was the last line, so finish off this header + $parsedHeaders[] = ['label' => $currentHeaderLabel, 'value' => $currentHeaderValue]; + } + } + $copiedHeaders = []; + $headersToSignKeys = []; + $headersToSign = []; + foreach ($parsedHeaders as $header) { + //Is this header one that must be included in the DKIM signature? + if (in_array(strtolower($header['label']), $autoSignHeaders, true)) { + $headersToSignKeys[] = $header['label']; + $headersToSign[] = $header['label'] . ': ' . $header['value']; + if ($this->DKIM_copyHeaderFields) { + $copiedHeaders[] = $header['label'] . ':' . //Note no space after this, as per RFC + str_replace('|', '=7C', $this->DKIM_QP($header['value'])); + } + continue; + } + //Is this an extra custom header we've been asked to sign? + if (in_array($header['label'], $this->DKIM_extraHeaders, true)) { + //Find its value in custom headers + foreach ($this->CustomHeader as $customHeader) { + if ($customHeader[0] === $header['label']) { + $headersToSignKeys[] = $header['label']; + $headersToSign[] = $header['label'] . ': ' . $header['value']; + if ($this->DKIM_copyHeaderFields) { + $copiedHeaders[] = $header['label'] . ':' . //Note no space after this, as per RFC + str_replace('|', '=7C', $this->DKIM_QP($header['value'])); + } + //Skip straight to the next header + continue 2; + } + } + } + } + $copiedHeaderFields = ''; + if ($this->DKIM_copyHeaderFields && count($copiedHeaders) > 0) { + //Assemble a DKIM 'z' tag + $copiedHeaderFields = ' z='; + $first = true; + foreach ($copiedHeaders as $copiedHeader) { + if (!$first) { + $copiedHeaderFields .= static::$LE . ' |'; + } + //Fold long values + if (strlen($copiedHeader) > self::STD_LINE_LENGTH - 3) { + $copiedHeaderFields .= substr( + chunk_split($copiedHeader, self::STD_LINE_LENGTH - 3, static::$LE . self::FWS), + 0, + -strlen(static::$LE . self::FWS) + ); + } else { + $copiedHeaderFields .= $copiedHeader; + } + $first = false; + } + $copiedHeaderFields .= ';' . static::$LE; + } + $headerKeys = ' h=' . implode(':', $headersToSignKeys) . ';' . static::$LE; + $headerValues = implode(static::$LE, $headersToSign); + $body = $this->DKIM_BodyC($body); + $DKIMb64 = base64_encode(pack('H*', hash('sha256', $body))); // Base64 of packed binary SHA-256 hash of body + $ident = ''; + if ('' !== $this->DKIM_identity) { + $ident = ' i=' . $this->DKIM_identity . ';' . static::$LE; + } + //The DKIM-Signature header is included in the signature *except for* the value of the `b` tag + //which is appended after calculating the signature + //https://tools.ietf.org/html/rfc6376#section-3.5 + $dkimSignatureHeader = 'DKIM-Signature: v=1;' . + ' d=' . $this->DKIM_domain . ';' . + ' s=' . $this->DKIM_selector . ';' . static::$LE . + ' a=' . $DKIMsignatureType . ';' . + ' q=' . $DKIMquery . ';' . + ' t=' . $DKIMtime . ';' . + ' c=' . $DKIMcanonicalization . ';' . static::$LE . + $headerKeys . + $ident . + $copiedHeaderFields . + ' bh=' . $DKIMb64 . ';' . static::$LE . + ' b='; + //Canonicalize the set of headers + $canonicalizedHeaders = $this->DKIM_HeaderC( + $headerValues . static::$LE . $dkimSignatureHeader + ); + $signature = $this->DKIM_Sign($canonicalizedHeaders); + $signature = trim(chunk_split($signature, self::STD_LINE_LENGTH - 3, static::$LE . self::FWS)); + + return static::normalizeBreaks($dkimSignatureHeader . $signature); + } + + /** + * Detect if a string contains a line longer than the maximum line length + * allowed by RFC 2822 section 2.1.1. + * + * @param string $str + * + * @return bool + */ + public static function hasLineLongerThanMax($str) + { + return (bool) preg_match('/^(.{' . (self::MAX_LINE_LENGTH + strlen(static::$LE)) . ',})/m', $str); + } + + /** + * If a string contains any "special" characters, double-quote the name, + * and escape any double quotes with a backslash. + * + * @param string $str + * + * @return string + * + * @see RFC822 3.4.1 + */ + public static function quotedString($str) + { + if (preg_match('/[ ()<>@,;:"\/\[\]?=]/', $str)) { + //If the string contains any of these chars, it must be double-quoted + //and any double quotes must be escaped with a backslash + return '"' . str_replace('"', '\\"', $str) . '"'; + } + + //Return the string untouched, it doesn't need quoting + return $str; + } + + /** + * Allows for public read access to 'to' property. + * Before the send() call, queued addresses (i.e. with IDN) are not yet included. + * + * @return array + */ + public function getToAddresses() + { + return $this->to; + } + + /** + * Allows for public read access to 'cc' property. + * Before the send() call, queued addresses (i.e. with IDN) are not yet included. + * + * @return array + */ + public function getCcAddresses() + { + return $this->cc; + } + + /** + * Allows for public read access to 'bcc' property. + * Before the send() call, queued addresses (i.e. with IDN) are not yet included. + * + * @return array + */ + public function getBccAddresses() + { + return $this->bcc; + } + + /** + * Allows for public read access to 'ReplyTo' property. + * Before the send() call, queued addresses (i.e. with IDN) are not yet included. + * + * @return array + */ + public function getReplyToAddresses() + { + return $this->ReplyTo; + } + + /** + * Allows for public read access to 'all_recipients' property. + * Before the send() call, queued addresses (i.e. with IDN) are not yet included. + * + * @return array + */ + public function getAllRecipientAddresses() + { + return $this->all_recipients; + } + + /** + * Perform a callback. + * + * @param bool $isSent + * @param array $to + * @param array $cc + * @param array $bcc + * @param string $subject + * @param string $body + * @param string $from + * @param array $extra + */ + protected function doCallback($isSent, $to, $cc, $bcc, $subject, $body, $from, $extra) + { + if (!empty($this->action_function) && is_callable($this->action_function)) { + call_user_func($this->action_function, $isSent, $to, $cc, $bcc, $subject, $body, $from, $extra); + } + } + + /** + * Get the OAuth instance. + * + * @return OAuth + */ + public function getOAuth() + { + return $this->oauth; + } + + /** + * Set an OAuth instance. + */ + public function setOAuth(OAuth $oauth) + { + $this->oauth = $oauth; + } +} diff --git a/vendor/phpmailer/phpmailer/src/POP3.php b/vendor/phpmailer/phpmailer/src/POP3.php new file mode 100644 index 0000000000000000000000000000000000000000..7d4c88f6cb38be9b28dbc24307abe4b298e5fc83 --- /dev/null +++ b/vendor/phpmailer/phpmailer/src/POP3.php @@ -0,0 +1,421 @@ +<?php +/** + * PHPMailer POP-Before-SMTP Authentication Class. + * PHP Version 5.5. + * + * @see https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project + * + * @author Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk> + * @author Jim Jagielski (jimjag) <jimjag@gmail.com> + * @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net> + * @author Brent R. Matzelle (original founder) + * @copyright 2012 - 2019 Marcus Bointon + * @copyright 2010 - 2012 Jim Jagielski + * @copyright 2004 - 2009 Andy Prevost + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + * @note This program is distributed in the hope that it will be useful - WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + */ + +namespace PHPMailer\PHPMailer; + +/** + * PHPMailer POP-Before-SMTP Authentication Class. + * Specifically for PHPMailer to use for RFC1939 POP-before-SMTP authentication. + * 1) This class does not support APOP authentication. + * 2) Opening and closing lots of POP3 connections can be quite slow. If you need + * to send a batch of emails then just perform the authentication once at the start, + * and then loop through your mail sending script. Providing this process doesn't + * take longer than the verification period lasts on your POP3 server, you should be fine. + * 3) This is really ancient technology; you should only need to use it to talk to very old systems. + * 4) This POP3 class is deliberately lightweight and incomplete, implementing just + * enough to do authentication. + * If you want a more complete class there are other POP3 classes for PHP available. + * + * @author Richard Davey (original author) <rich@corephp.co.uk> + * @author Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk> + * @author Jim Jagielski (jimjag) <jimjag@gmail.com> + * @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net> + */ +class POP3 +{ + /** + * The POP3 PHPMailer Version number. + * + * @var string + */ + const VERSION = '6.1.6'; + + /** + * Default POP3 port number. + * + * @var int + */ + const DEFAULT_PORT = 110; + + /** + * Default timeout in seconds. + * + * @var int + */ + const DEFAULT_TIMEOUT = 30; + + /** + * Debug display level. + * Options: 0 = no, 1+ = yes. + * + * @var int + */ + public $do_debug = 0; + + /** + * POP3 mail server hostname. + * + * @var string + */ + public $host; + + /** + * POP3 port number. + * + * @var int + */ + public $port; + + /** + * POP3 Timeout Value in seconds. + * + * @var int + */ + public $tval; + + /** + * POP3 username. + * + * @var string + */ + public $username; + + /** + * POP3 password. + * + * @var string + */ + public $password; + + /** + * Resource handle for the POP3 connection socket. + * + * @var resource + */ + protected $pop_conn; + + /** + * Are we connected? + * + * @var bool + */ + protected $connected = false; + + /** + * Error container. + * + * @var array + */ + protected $errors = []; + + /** + * Line break constant. + */ + const LE = "\r\n"; + + /** + * Simple static wrapper for all-in-one POP before SMTP. + * + * @param string $host The hostname to connect to + * @param int|bool $port The port number to connect to + * @param int|bool $timeout The timeout value + * @param string $username + * @param string $password + * @param int $debug_level + * + * @return bool + */ + public static function popBeforeSmtp( + $host, + $port = false, + $timeout = false, + $username = '', + $password = '', + $debug_level = 0 + ) { + $pop = new self(); + + return $pop->authorise($host, $port, $timeout, $username, $password, $debug_level); + } + + /** + * Authenticate with a POP3 server. + * A connect, login, disconnect sequence + * appropriate for POP-before SMTP authorisation. + * + * @param string $host The hostname to connect to + * @param int|bool $port The port number to connect to + * @param int|bool $timeout The timeout value + * @param string $username + * @param string $password + * @param int $debug_level + * + * @return bool + */ + public function authorise($host, $port = false, $timeout = false, $username = '', $password = '', $debug_level = 0) + { + $this->host = $host; + // If no port value provided, use default + if (false === $port) { + $this->port = static::DEFAULT_PORT; + } else { + $this->port = (int) $port; + } + // If no timeout value provided, use default + if (false === $timeout) { + $this->tval = static::DEFAULT_TIMEOUT; + } else { + $this->tval = (int) $timeout; + } + $this->do_debug = $debug_level; + $this->username = $username; + $this->password = $password; + // Reset the error log + $this->errors = []; + // connect + $result = $this->connect($this->host, $this->port, $this->tval); + if ($result) { + $login_result = $this->login($this->username, $this->password); + if ($login_result) { + $this->disconnect(); + + return true; + } + } + // We need to disconnect regardless of whether the login succeeded + $this->disconnect(); + + return false; + } + + /** + * Connect to a POP3 server. + * + * @param string $host + * @param int|bool $port + * @param int $tval + * + * @return bool + */ + public function connect($host, $port = false, $tval = 30) + { + // Are we already connected? + if ($this->connected) { + return true; + } + + //On Windows this will raise a PHP Warning error if the hostname doesn't exist. + //Rather than suppress it with @fsockopen, capture it cleanly instead + set_error_handler([$this, 'catchWarning']); + + if (false === $port) { + $port = static::DEFAULT_PORT; + } + + // connect to the POP3 server + $errno = 0; + $errstr = ''; + $this->pop_conn = fsockopen( + $host, // POP3 Host + $port, // Port # + $errno, // Error Number + $errstr, // Error Message + $tval + ); // Timeout (seconds) + // Restore the error handler + restore_error_handler(); + + // Did we connect? + if (false === $this->pop_conn) { + // It would appear not... + $this->setError( + "Failed to connect to server $host on port $port. errno: $errno; errstr: $errstr" + ); + + return false; + } + + // Increase the stream time-out + stream_set_timeout($this->pop_conn, $tval, 0); + + // Get the POP3 server response + $pop3_response = $this->getResponse(); + // Check for the +OK + if ($this->checkResponse($pop3_response)) { + // The connection is established and the POP3 server is talking + $this->connected = true; + + return true; + } + + return false; + } + + /** + * Log in to the POP3 server. + * Does not support APOP (RFC 2828, 4949). + * + * @param string $username + * @param string $password + * + * @return bool + */ + public function login($username = '', $password = '') + { + if (!$this->connected) { + $this->setError('Not connected to POP3 server'); + } + if (empty($username)) { + $username = $this->username; + } + if (empty($password)) { + $password = $this->password; + } + + // Send the Username + $this->sendString("USER $username" . static::LE); + $pop3_response = $this->getResponse(); + if ($this->checkResponse($pop3_response)) { + // Send the Password + $this->sendString("PASS $password" . static::LE); + $pop3_response = $this->getResponse(); + if ($this->checkResponse($pop3_response)) { + return true; + } + } + + return false; + } + + /** + * Disconnect from the POP3 server. + */ + public function disconnect() + { + $this->sendString('QUIT'); + //The QUIT command may cause the daemon to exit, which will kill our connection + //So ignore errors here + try { + @fclose($this->pop_conn); + } catch (Exception $e) { + //Do nothing + } + } + + /** + * Get a response from the POP3 server. + * + * @param int $size The maximum number of bytes to retrieve + * + * @return string + */ + protected function getResponse($size = 128) + { + $response = fgets($this->pop_conn, $size); + if ($this->do_debug >= 1) { + echo 'Server -> Client: ', $response; + } + + return $response; + } + + /** + * Send raw data to the POP3 server. + * + * @param string $string + * + * @return int + */ + protected function sendString($string) + { + if ($this->pop_conn) { + if ($this->do_debug >= 2) { //Show client messages when debug >= 2 + echo 'Client -> Server: ', $string; + } + + return fwrite($this->pop_conn, $string, strlen($string)); + } + + return 0; + } + + /** + * Checks the POP3 server response. + * Looks for for +OK or -ERR. + * + * @param string $string + * + * @return bool + */ + protected function checkResponse($string) + { + if (strpos($string, '+OK') !== 0) { + $this->setError("Server reported an error: $string"); + + return false; + } + + return true; + } + + /** + * Add an error to the internal error store. + * Also display debug output if it's enabled. + * + * @param string $error + */ + protected function setError($error) + { + $this->errors[] = $error; + if ($this->do_debug >= 1) { + echo '<pre>'; + foreach ($this->errors as $e) { + print_r($e); + } + echo '</pre>'; + } + } + + /** + * Get an array of error messages, if any. + * + * @return array + */ + public function getErrors() + { + return $this->errors; + } + + /** + * POP3 connection error handler. + * + * @param int $errno + * @param string $errstr + * @param string $errfile + * @param int $errline + */ + protected function catchWarning($errno, $errstr, $errfile, $errline) + { + $this->setError( + 'Connecting to the POP3 server raised a PHP warning:' . + "errno: $errno errstr: $errstr; errfile: $errfile; errline: $errline" + ); + } +} diff --git a/vendor/phpmailer/phpmailer/src/SMTP.php b/vendor/phpmailer/phpmailer/src/SMTP.php new file mode 100644 index 0000000000000000000000000000000000000000..aa5555149ade41cfbf0a86ec702a761d34133ac6 --- /dev/null +++ b/vendor/phpmailer/phpmailer/src/SMTP.php @@ -0,0 +1,1371 @@ +<?php +/** + * PHPMailer RFC821 SMTP email transport class. + * PHP Version 5.5. + * + * @see https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project + * + * @author Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk> + * @author Jim Jagielski (jimjag) <jimjag@gmail.com> + * @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net> + * @author Brent R. Matzelle (original founder) + * @copyright 2012 - 2019 Marcus Bointon + * @copyright 2010 - 2012 Jim Jagielski + * @copyright 2004 - 2009 Andy Prevost + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + * @note This program is distributed in the hope that it will be useful - WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + */ + +namespace PHPMailer\PHPMailer; + +/** + * PHPMailer RFC821 SMTP email transport class. + * Implements RFC 821 SMTP commands and provides some utility methods for sending mail to an SMTP server. + * + * @author Chris Ryan + * @author Marcus Bointon <phpmailer@synchromedia.co.uk> + */ +class SMTP +{ + /** + * The PHPMailer SMTP version number. + * + * @var string + */ + const VERSION = '6.1.6'; + + /** + * SMTP line break constant. + * + * @var string + */ + const LE = "\r\n"; + + /** + * The SMTP port to use if one is not specified. + * + * @var int + */ + const DEFAULT_PORT = 25; + + /** + * The maximum line length allowed by RFC 5321 section 4.5.3.1.6, + * *excluding* a trailing CRLF break. + * + * @see https://tools.ietf.org/html/rfc5321#section-4.5.3.1.6 + * + * @var int + */ + const MAX_LINE_LENGTH = 998; + + /** + * The maximum line length allowed for replies in RFC 5321 section 4.5.3.1.5, + * *including* a trailing CRLF line break. + * + * @see https://tools.ietf.org/html/rfc5321#section-4.5.3.1.5 + * + * @var int + */ + const MAX_REPLY_LENGTH = 512; + + /** + * Debug level for no output. + * + * @var int + */ + const DEBUG_OFF = 0; + + /** + * Debug level to show client -> server messages. + * + * @var int + */ + const DEBUG_CLIENT = 1; + + /** + * Debug level to show client -> server and server -> client messages. + * + * @var int + */ + const DEBUG_SERVER = 2; + + /** + * Debug level to show connection status, client -> server and server -> client messages. + * + * @var int + */ + const DEBUG_CONNECTION = 3; + + /** + * Debug level to show all messages. + * + * @var int + */ + const DEBUG_LOWLEVEL = 4; + + /** + * Debug output level. + * Options: + * * self::DEBUG_OFF (`0`) No debug output, default + * * self::DEBUG_CLIENT (`1`) Client commands + * * self::DEBUG_SERVER (`2`) Client commands and server responses + * * self::DEBUG_CONNECTION (`3`) As DEBUG_SERVER plus connection status + * * self::DEBUG_LOWLEVEL (`4`) Low-level data output, all messages. + * + * @var int + */ + public $do_debug = self::DEBUG_OFF; + + /** + * How to handle debug output. + * Options: + * * `echo` Output plain-text as-is, appropriate for CLI + * * `html` Output escaped, line breaks converted to `<br>`, appropriate for browser output + * * `error_log` Output to error log as configured in php.ini + * Alternatively, you can provide a callable expecting two params: a message string and the debug level: + * + * ```php + * $smtp->Debugoutput = function($str, $level) {echo "debug level $level; message: $str";}; + * ``` + * + * Alternatively, you can pass in an instance of a PSR-3 compatible logger, though only `debug` + * level output is used: + * + * ```php + * $mail->Debugoutput = new myPsr3Logger; + * ``` + * + * @var string|callable|\Psr\Log\LoggerInterface + */ + public $Debugoutput = 'echo'; + + /** + * Whether to use VERP. + * + * @see http://en.wikipedia.org/wiki/Variable_envelope_return_path + * @see http://www.postfix.org/VERP_README.html Info on VERP + * + * @var bool + */ + public $do_verp = false; + + /** + * The timeout value for connection, in seconds. + * Default of 5 minutes (300sec) is from RFC2821 section 4.5.3.2. + * This needs to be quite high to function correctly with hosts using greetdelay as an anti-spam measure. + * + * @see http://tools.ietf.org/html/rfc2821#section-4.5.3.2 + * + * @var int + */ + public $Timeout = 300; + + /** + * How long to wait for commands to complete, in seconds. + * Default of 5 minutes (300sec) is from RFC2821 section 4.5.3.2. + * + * @var int + */ + public $Timelimit = 300; + + /** + * Patterns to extract an SMTP transaction id from reply to a DATA command. + * The first capture group in each regex will be used as the ID. + * MS ESMTP returns the message ID, which may not be correct for internal tracking. + * + * @var string[] + */ + protected $smtp_transaction_id_patterns = [ + 'exim' => '/[\d]{3} OK id=(.*)/', + 'sendmail' => '/[\d]{3} 2.0.0 (.*) Message/', + 'postfix' => '/[\d]{3} 2.0.0 Ok: queued as (.*)/', + 'Microsoft_ESMTP' => '/[0-9]{3} 2.[\d].0 (.*)@(?:.*) Queued mail for delivery/', + 'Amazon_SES' => '/[\d]{3} Ok (.*)/', + 'SendGrid' => '/[\d]{3} Ok: queued as (.*)/', + 'CampaignMonitor' => '/[\d]{3} 2.0.0 OK:([a-zA-Z\d]{48})/', + ]; + + /** + * The last transaction ID issued in response to a DATA command, + * if one was detected. + * + * @var string|bool|null + */ + protected $last_smtp_transaction_id; + + /** + * The socket for the server connection. + * + * @var ?resource + */ + protected $smtp_conn; + + /** + * Error information, if any, for the last SMTP command. + * + * @var array + */ + protected $error = [ + 'error' => '', + 'detail' => '', + 'smtp_code' => '', + 'smtp_code_ex' => '', + ]; + + /** + * The reply the server sent to us for HELO. + * If null, no HELO string has yet been received. + * + * @var string|null + */ + protected $helo_rply; + + /** + * The set of SMTP extensions sent in reply to EHLO command. + * Indexes of the array are extension names. + * Value at index 'HELO' or 'EHLO' (according to command that was sent) + * represents the server name. In case of HELO it is the only element of the array. + * Other values can be boolean TRUE or an array containing extension options. + * If null, no HELO/EHLO string has yet been received. + * + * @var array|null + */ + protected $server_caps; + + /** + * The most recent reply received from the server. + * + * @var string + */ + protected $last_reply = ''; + + /** + * Output debugging info via a user-selected method. + * + * @param string $str Debug string to output + * @param int $level The debug level of this message; see DEBUG_* constants + * + * @see SMTP::$Debugoutput + * @see SMTP::$do_debug + */ + protected function edebug($str, $level = 0) + { + if ($level > $this->do_debug) { + return; + } + //Is this a PSR-3 logger? + if ($this->Debugoutput instanceof \Psr\Log\LoggerInterface) { + $this->Debugoutput->debug($str); + + return; + } + //Avoid clash with built-in function names + if (is_callable($this->Debugoutput) && !in_array($this->Debugoutput, ['error_log', 'html', 'echo'])) { + call_user_func($this->Debugoutput, $str, $level); + + return; + } + switch ($this->Debugoutput) { + case 'error_log': + //Don't output, just log + error_log($str); + break; + case 'html': + //Cleans up output a bit for a better looking, HTML-safe output + echo gmdate('Y-m-d H:i:s'), ' ', htmlentities( + preg_replace('/[\r\n]+/', '', $str), + ENT_QUOTES, + 'UTF-8' + ), "<br>\n"; + break; + case 'echo': + default: + //Normalize line breaks + $str = preg_replace('/\r\n|\r/m', "\n", $str); + echo gmdate('Y-m-d H:i:s'), + "\t", + //Trim trailing space + trim( + //Indent for readability, except for trailing break + str_replace( + "\n", + "\n \t ", + trim($str) + ) + ), + "\n"; + } + } + + /** + * Connect to an SMTP server. + * + * @param string $host SMTP server IP or host name + * @param int $port The port number to connect to + * @param int $timeout How long to wait for the connection to open + * @param array $options An array of options for stream_context_create() + * + * @return bool + */ + public function connect($host, $port = null, $timeout = 30, $options = []) + { + static $streamok; + //This is enabled by default since 5.0.0 but some providers disable it + //Check this once and cache the result + if (null === $streamok) { + $streamok = function_exists('stream_socket_client'); + } + // Clear errors to avoid confusion + $this->setError(''); + // Make sure we are __not__ connected + if ($this->connected()) { + // Already connected, generate error + $this->setError('Already connected to a server'); + + return false; + } + if (empty($port)) { + $port = self::DEFAULT_PORT; + } + // Connect to the SMTP server + $this->edebug( + "Connection: opening to $host:$port, timeout=$timeout, options=" . + (count($options) > 0 ? var_export($options, true) : 'array()'), + self::DEBUG_CONNECTION + ); + $errno = 0; + $errstr = ''; + if ($streamok) { + $socket_context = stream_context_create($options); + set_error_handler([$this, 'errorHandler']); + $this->smtp_conn = stream_socket_client( + $host . ':' . $port, + $errno, + $errstr, + $timeout, + STREAM_CLIENT_CONNECT, + $socket_context + ); + restore_error_handler(); + } else { + //Fall back to fsockopen which should work in more places, but is missing some features + $this->edebug( + 'Connection: stream_socket_client not available, falling back to fsockopen', + self::DEBUG_CONNECTION + ); + set_error_handler([$this, 'errorHandler']); + $this->smtp_conn = fsockopen( + $host, + $port, + $errno, + $errstr, + $timeout + ); + restore_error_handler(); + } + // Verify we connected properly + if (!is_resource($this->smtp_conn)) { + $this->setError( + 'Failed to connect to server', + '', + (string) $errno, + $errstr + ); + $this->edebug( + 'SMTP ERROR: ' . $this->error['error'] + . ": $errstr ($errno)", + self::DEBUG_CLIENT + ); + + return false; + } + $this->edebug('Connection: opened', self::DEBUG_CONNECTION); + // SMTP server can take longer to respond, give longer timeout for first read + // Windows does not have support for this timeout function + if (strpos(PHP_OS, 'WIN') !== 0) { + $max = (int) ini_get('max_execution_time'); + // Don't bother if unlimited + if (0 !== $max && $timeout > $max) { + @set_time_limit($timeout); + } + stream_set_timeout($this->smtp_conn, $timeout, 0); + } + // Get any announcement + $announce = $this->get_lines(); + $this->edebug('SERVER -> CLIENT: ' . $announce, self::DEBUG_SERVER); + + return true; + } + + /** + * Initiate a TLS (encrypted) session. + * + * @return bool + */ + public function startTLS() + { + if (!$this->sendCommand('STARTTLS', 'STARTTLS', 220)) { + return false; + } + + //Allow the best TLS version(s) we can + $crypto_method = STREAM_CRYPTO_METHOD_TLS_CLIENT; + + //PHP 5.6.7 dropped inclusion of TLS 1.1 and 1.2 in STREAM_CRYPTO_METHOD_TLS_CLIENT + //so add them back in manually if we can + if (defined('STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT')) { + $crypto_method |= STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT; + $crypto_method |= STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT; + } + + // Begin encrypted connection + set_error_handler([$this, 'errorHandler']); + $crypto_ok = stream_socket_enable_crypto( + $this->smtp_conn, + true, + $crypto_method + ); + restore_error_handler(); + + return (bool) $crypto_ok; + } + + /** + * Perform SMTP authentication. + * Must be run after hello(). + * + * @see hello() + * + * @param string $username The user name + * @param string $password The password + * @param string $authtype The auth type (CRAM-MD5, PLAIN, LOGIN, XOAUTH2) + * @param OAuth $OAuth An optional OAuth instance for XOAUTH2 authentication + * + * @return bool True if successfully authenticated + */ + public function authenticate( + $username, + $password, + $authtype = null, + $OAuth = null + ) { + if (!$this->server_caps) { + $this->setError('Authentication is not allowed before HELO/EHLO'); + + return false; + } + + if (array_key_exists('EHLO', $this->server_caps)) { + // SMTP extensions are available; try to find a proper authentication method + if (!array_key_exists('AUTH', $this->server_caps)) { + $this->setError('Authentication is not allowed at this stage'); + // 'at this stage' means that auth may be allowed after the stage changes + // e.g. after STARTTLS + + return false; + } + + $this->edebug('Auth method requested: ' . ($authtype ?: 'UNSPECIFIED'), self::DEBUG_LOWLEVEL); + $this->edebug( + 'Auth methods available on the server: ' . implode(',', $this->server_caps['AUTH']), + self::DEBUG_LOWLEVEL + ); + + //If we have requested a specific auth type, check the server supports it before trying others + if (null !== $authtype && !in_array($authtype, $this->server_caps['AUTH'], true)) { + $this->edebug('Requested auth method not available: ' . $authtype, self::DEBUG_LOWLEVEL); + $authtype = null; + } + + if (empty($authtype)) { + //If no auth mechanism is specified, attempt to use these, in this order + //Try CRAM-MD5 first as it's more secure than the others + foreach (['CRAM-MD5', 'LOGIN', 'PLAIN', 'XOAUTH2'] as $method) { + if (in_array($method, $this->server_caps['AUTH'], true)) { + $authtype = $method; + break; + } + } + if (empty($authtype)) { + $this->setError('No supported authentication methods found'); + + return false; + } + $this->edebug('Auth method selected: ' . $authtype, self::DEBUG_LOWLEVEL); + } + + if (!in_array($authtype, $this->server_caps['AUTH'], true)) { + $this->setError("The requested authentication method \"$authtype\" is not supported by the server"); + + return false; + } + } elseif (empty($authtype)) { + $authtype = 'LOGIN'; + } + switch ($authtype) { + case 'PLAIN': + // Start authentication + if (!$this->sendCommand('AUTH', 'AUTH PLAIN', 334)) { + return false; + } + // Send encoded username and password + if (!$this->sendCommand( + 'User & Password', + base64_encode("\0" . $username . "\0" . $password), + 235 + ) + ) { + return false; + } + break; + case 'LOGIN': + // Start authentication + if (!$this->sendCommand('AUTH', 'AUTH LOGIN', 334)) { + return false; + } + if (!$this->sendCommand('Username', base64_encode($username), 334)) { + return false; + } + if (!$this->sendCommand('Password', base64_encode($password), 235)) { + return false; + } + break; + case 'CRAM-MD5': + // Start authentication + if (!$this->sendCommand('AUTH CRAM-MD5', 'AUTH CRAM-MD5', 334)) { + return false; + } + // Get the challenge + $challenge = base64_decode(substr($this->last_reply, 4)); + + // Build the response + $response = $username . ' ' . $this->hmac($challenge, $password); + + // send encoded credentials + return $this->sendCommand('Username', base64_encode($response), 235); + case 'XOAUTH2': + //The OAuth instance must be set up prior to requesting auth. + if (null === $OAuth) { + return false; + } + $oauth = $OAuth->getOauth64(); + + // Start authentication + if (!$this->sendCommand('AUTH', 'AUTH XOAUTH2 ' . $oauth, 235)) { + return false; + } + break; + default: + $this->setError("Authentication method \"$authtype\" is not supported"); + + return false; + } + + return true; + } + + /** + * Calculate an MD5 HMAC hash. + * Works like hash_hmac('md5', $data, $key) + * in case that function is not available. + * + * @param string $data The data to hash + * @param string $key The key to hash with + * + * @return string + */ + protected function hmac($data, $key) + { + if (function_exists('hash_hmac')) { + return hash_hmac('md5', $data, $key); + } + + // The following borrowed from + // http://php.net/manual/en/function.mhash.php#27225 + + // RFC 2104 HMAC implementation for php. + // Creates an md5 HMAC. + // Eliminates the need to install mhash to compute a HMAC + // by Lance Rushing + + $bytelen = 64; // byte length for md5 + if (strlen($key) > $bytelen) { + $key = pack('H*', md5($key)); + } + $key = str_pad($key, $bytelen, chr(0x00)); + $ipad = str_pad('', $bytelen, chr(0x36)); + $opad = str_pad('', $bytelen, chr(0x5c)); + $k_ipad = $key ^ $ipad; + $k_opad = $key ^ $opad; + + return md5($k_opad . pack('H*', md5($k_ipad . $data))); + } + + /** + * Check connection state. + * + * @return bool True if connected + */ + public function connected() + { + if (is_resource($this->smtp_conn)) { + $sock_status = stream_get_meta_data($this->smtp_conn); + if ($sock_status['eof']) { + // The socket is valid but we are not connected + $this->edebug( + 'SMTP NOTICE: EOF caught while checking if connected', + self::DEBUG_CLIENT + ); + $this->close(); + + return false; + } + + return true; // everything looks good + } + + return false; + } + + /** + * Close the socket and clean up the state of the class. + * Don't use this function without first trying to use QUIT. + * + * @see quit() + */ + public function close() + { + $this->setError(''); + $this->server_caps = null; + $this->helo_rply = null; + if (is_resource($this->smtp_conn)) { + // close the connection and cleanup + fclose($this->smtp_conn); + $this->smtp_conn = null; //Makes for cleaner serialization + $this->edebug('Connection: closed', self::DEBUG_CONNECTION); + } + } + + /** + * Send an SMTP DATA command. + * Issues a data command and sends the msg_data to the server, + * finializing the mail transaction. $msg_data is the message + * that is to be send with the headers. Each header needs to be + * on a single line followed by a <CRLF> with the message headers + * and the message body being separated by an additional <CRLF>. + * Implements RFC 821: DATA <CRLF>. + * + * @param string $msg_data Message data to send + * + * @return bool + */ + public function data($msg_data) + { + //This will use the standard timelimit + if (!$this->sendCommand('DATA', 'DATA', 354)) { + return false; + } + + /* The server is ready to accept data! + * According to rfc821 we should not send more than 1000 characters on a single line (including the LE) + * so we will break the data up into lines by \r and/or \n then if needed we will break each of those into + * smaller lines to fit within the limit. + * We will also look for lines that start with a '.' and prepend an additional '.'. + * NOTE: this does not count towards line-length limit. + */ + + // Normalize line breaks before exploding + $lines = explode("\n", str_replace(["\r\n", "\r"], "\n", $msg_data)); + + /* To distinguish between a complete RFC822 message and a plain message body, we check if the first field + * of the first line (':' separated) does not contain a space then it _should_ be a header and we will + * process all lines before a blank line as headers. + */ + + $field = substr($lines[0], 0, strpos($lines[0], ':')); + $in_headers = false; + if (!empty($field) && strpos($field, ' ') === false) { + $in_headers = true; + } + + foreach ($lines as $line) { + $lines_out = []; + if ($in_headers && $line === '') { + $in_headers = false; + } + //Break this line up into several smaller lines if it's too long + //Micro-optimisation: isset($str[$len]) is faster than (strlen($str) > $len), + while (isset($line[self::MAX_LINE_LENGTH])) { + //Working backwards, try to find a space within the last MAX_LINE_LENGTH chars of the line to break on + //so as to avoid breaking in the middle of a word + $pos = strrpos(substr($line, 0, self::MAX_LINE_LENGTH), ' '); + //Deliberately matches both false and 0 + if (!$pos) { + //No nice break found, add a hard break + $pos = self::MAX_LINE_LENGTH - 1; + $lines_out[] = substr($line, 0, $pos); + $line = substr($line, $pos); + } else { + //Break at the found point + $lines_out[] = substr($line, 0, $pos); + //Move along by the amount we dealt with + $line = substr($line, $pos + 1); + } + //If processing headers add a LWSP-char to the front of new line RFC822 section 3.1.1 + if ($in_headers) { + $line = "\t" . $line; + } + } + $lines_out[] = $line; + + //Send the lines to the server + foreach ($lines_out as $line_out) { + //RFC2821 section 4.5.2 + if (!empty($line_out) && $line_out[0] === '.') { + $line_out = '.' . $line_out; + } + $this->client_send($line_out . static::LE, 'DATA'); + } + } + + //Message data has been sent, complete the command + //Increase timelimit for end of DATA command + $savetimelimit = $this->Timelimit; + $this->Timelimit *= 2; + $result = $this->sendCommand('DATA END', '.', 250); + $this->recordLastTransactionID(); + //Restore timelimit + $this->Timelimit = $savetimelimit; + + return $result; + } + + /** + * Send an SMTP HELO or EHLO command. + * Used to identify the sending server to the receiving server. + * This makes sure that client and server are in a known state. + * Implements RFC 821: HELO <SP> <domain> <CRLF> + * and RFC 2821 EHLO. + * + * @param string $host The host name or IP to connect to + * + * @return bool + */ + public function hello($host = '') + { + //Try extended hello first (RFC 2821) + return $this->sendHello('EHLO', $host) or $this->sendHello('HELO', $host); + } + + /** + * Send an SMTP HELO or EHLO command. + * Low-level implementation used by hello(). + * + * @param string $hello The HELO string + * @param string $host The hostname to say we are + * + * @return bool + * + * @see hello() + */ + protected function sendHello($hello, $host) + { + $noerror = $this->sendCommand($hello, $hello . ' ' . $host, 250); + $this->helo_rply = $this->last_reply; + if ($noerror) { + $this->parseHelloFields($hello); + } else { + $this->server_caps = null; + } + + return $noerror; + } + + /** + * Parse a reply to HELO/EHLO command to discover server extensions. + * In case of HELO, the only parameter that can be discovered is a server name. + * + * @param string $type `HELO` or `EHLO` + */ + protected function parseHelloFields($type) + { + $this->server_caps = []; + $lines = explode("\n", $this->helo_rply); + + foreach ($lines as $n => $s) { + //First 4 chars contain response code followed by - or space + $s = trim(substr($s, 4)); + if (empty($s)) { + continue; + } + $fields = explode(' ', $s); + if (!empty($fields)) { + if (!$n) { + $name = $type; + $fields = $fields[0]; + } else { + $name = array_shift($fields); + switch ($name) { + case 'SIZE': + $fields = ($fields ? $fields[0] : 0); + break; + case 'AUTH': + if (!is_array($fields)) { + $fields = []; + } + break; + default: + $fields = true; + } + } + $this->server_caps[$name] = $fields; + } + } + } + + /** + * Send an SMTP MAIL command. + * Starts a mail transaction from the email address specified in + * $from. Returns true if successful or false otherwise. If True + * the mail transaction is started and then one or more recipient + * commands may be called followed by a data command. + * Implements RFC 821: MAIL <SP> FROM:<reverse-path> <CRLF>. + * + * @param string $from Source address of this message + * + * @return bool + */ + public function mail($from) + { + $useVerp = ($this->do_verp ? ' XVERP' : ''); + + return $this->sendCommand( + 'MAIL FROM', + 'MAIL FROM:<' . $from . '>' . $useVerp, + 250 + ); + } + + /** + * Send an SMTP QUIT command. + * Closes the socket if there is no error or the $close_on_error argument is true. + * Implements from RFC 821: QUIT <CRLF>. + * + * @param bool $close_on_error Should the connection close if an error occurs? + * + * @return bool + */ + public function quit($close_on_error = true) + { + $noerror = $this->sendCommand('QUIT', 'QUIT', 221); + $err = $this->error; //Save any error + if ($noerror || $close_on_error) { + $this->close(); + $this->error = $err; //Restore any error from the quit command + } + + return $noerror; + } + + /** + * Send an SMTP RCPT command. + * Sets the TO argument to $toaddr. + * Returns true if the recipient was accepted false if it was rejected. + * Implements from RFC 821: RCPT <SP> TO:<forward-path> <CRLF>. + * + * @param string $address The address the message is being sent to + * @param string $dsn Comma separated list of DSN notifications. NEVER, SUCCESS, FAILURE + * or DELAY. If you specify NEVER all other notifications are ignored. + * + * @return bool + */ + public function recipient($address, $dsn = '') + { + if (empty($dsn)) { + $rcpt = 'RCPT TO:<' . $address . '>'; + } else { + $dsn = strtoupper($dsn); + $notify = []; + + if (strpos($dsn, 'NEVER') !== false) { + $notify[] = 'NEVER'; + } else { + foreach (['SUCCESS', 'FAILURE', 'DELAY'] as $value) { + if (strpos($dsn, $value) !== false) { + $notify[] = $value; + } + } + } + + $rcpt = 'RCPT TO:<' . $address . '> NOTIFY=' . implode(',', $notify); + } + + return $this->sendCommand( + 'RCPT TO', + $rcpt, + [250, 251] + ); + } + + /** + * Send an SMTP RSET command. + * Abort any transaction that is currently in progress. + * Implements RFC 821: RSET <CRLF>. + * + * @return bool True on success + */ + public function reset() + { + return $this->sendCommand('RSET', 'RSET', 250); + } + + /** + * Send a command to an SMTP server and check its return code. + * + * @param string $command The command name - not sent to the server + * @param string $commandstring The actual command to send + * @param int|array $expect One or more expected integer success codes + * + * @return bool True on success + */ + protected function sendCommand($command, $commandstring, $expect) + { + if (!$this->connected()) { + $this->setError("Called $command without being connected"); + + return false; + } + //Reject line breaks in all commands + if ((strpos($commandstring, "\n") !== false) || (strpos($commandstring, "\r") !== false)) { + $this->setError("Command '$command' contained line breaks"); + + return false; + } + $this->client_send($commandstring . static::LE, $command); + + $this->last_reply = $this->get_lines(); + // Fetch SMTP code and possible error code explanation + $matches = []; + if (preg_match('/^([\d]{3})[ -](?:([\d]\\.[\d]\\.[\d]{1,2}) )?/', $this->last_reply, $matches)) { + $code = (int) $matches[1]; + $code_ex = (count($matches) > 2 ? $matches[2] : null); + // Cut off error code from each response line + $detail = preg_replace( + "/{$code}[ -]" . + ($code_ex ? str_replace('.', '\\.', $code_ex) . ' ' : '') . '/m', + '', + $this->last_reply + ); + } else { + // Fall back to simple parsing if regex fails + $code = (int) substr($this->last_reply, 0, 3); + $code_ex = null; + $detail = substr($this->last_reply, 4); + } + + $this->edebug('SERVER -> CLIENT: ' . $this->last_reply, self::DEBUG_SERVER); + + if (!in_array($code, (array) $expect, true)) { + $this->setError( + "$command command failed", + $detail, + $code, + $code_ex + ); + $this->edebug( + 'SMTP ERROR: ' . $this->error['error'] . ': ' . $this->last_reply, + self::DEBUG_CLIENT + ); + + return false; + } + + $this->setError(''); + + return true; + } + + /** + * Send an SMTP SAML command. + * Starts a mail transaction from the email address specified in $from. + * Returns true if successful or false otherwise. If True + * the mail transaction is started and then one or more recipient + * commands may be called followed by a data command. This command + * will send the message to the users terminal if they are logged + * in and send them an email. + * Implements RFC 821: SAML <SP> FROM:<reverse-path> <CRLF>. + * + * @param string $from The address the message is from + * + * @return bool + */ + public function sendAndMail($from) + { + return $this->sendCommand('SAML', "SAML FROM:$from", 250); + } + + /** + * Send an SMTP VRFY command. + * + * @param string $name The name to verify + * + * @return bool + */ + public function verify($name) + { + return $this->sendCommand('VRFY', "VRFY $name", [250, 251]); + } + + /** + * Send an SMTP NOOP command. + * Used to keep keep-alives alive, doesn't actually do anything. + * + * @return bool + */ + public function noop() + { + return $this->sendCommand('NOOP', 'NOOP', 250); + } + + /** + * Send an SMTP TURN command. + * This is an optional command for SMTP that this class does not support. + * This method is here to make the RFC821 Definition complete for this class + * and _may_ be implemented in future. + * Implements from RFC 821: TURN <CRLF>. + * + * @return bool + */ + public function turn() + { + $this->setError('The SMTP TURN command is not implemented'); + $this->edebug('SMTP NOTICE: ' . $this->error['error'], self::DEBUG_CLIENT); + + return false; + } + + /** + * Send raw data to the server. + * + * @param string $data The data to send + * @param string $command Optionally, the command this is part of, used only for controlling debug output + * + * @return int|bool The number of bytes sent to the server or false on error + */ + public function client_send($data, $command = '') + { + //If SMTP transcripts are left enabled, or debug output is posted online + //it can leak credentials, so hide credentials in all but lowest level + if (self::DEBUG_LOWLEVEL > $this->do_debug && + in_array($command, ['User & Password', 'Username', 'Password'], true)) { + $this->edebug('CLIENT -> SERVER: [credentials hidden]', self::DEBUG_CLIENT); + } else { + $this->edebug('CLIENT -> SERVER: ' . $data, self::DEBUG_CLIENT); + } + set_error_handler([$this, 'errorHandler']); + $result = fwrite($this->smtp_conn, $data); + restore_error_handler(); + + return $result; + } + + /** + * Get the latest error. + * + * @return array + */ + public function getError() + { + return $this->error; + } + + /** + * Get SMTP extensions available on the server. + * + * @return array|null + */ + public function getServerExtList() + { + return $this->server_caps; + } + + /** + * Get metadata about the SMTP server from its HELO/EHLO response. + * The method works in three ways, dependent on argument value and current state: + * 1. HELO/EHLO has not been sent - returns null and populates $this->error. + * 2. HELO has been sent - + * $name == 'HELO': returns server name + * $name == 'EHLO': returns boolean false + * $name == any other string: returns null and populates $this->error + * 3. EHLO has been sent - + * $name == 'HELO'|'EHLO': returns the server name + * $name == any other string: if extension $name exists, returns True + * or its options (e.g. AUTH mechanisms supported). Otherwise returns False. + * + * @param string $name Name of SMTP extension or 'HELO'|'EHLO' + * + * @return string|bool|null + */ + public function getServerExt($name) + { + if (!$this->server_caps) { + $this->setError('No HELO/EHLO was sent'); + + return; + } + + if (!array_key_exists($name, $this->server_caps)) { + if ('HELO' === $name) { + return $this->server_caps['EHLO']; + } + if ('EHLO' === $name || array_key_exists('EHLO', $this->server_caps)) { + return false; + } + $this->setError('HELO handshake was used; No information about server extensions available'); + + return; + } + + return $this->server_caps[$name]; + } + + /** + * Get the last reply from the server. + * + * @return string + */ + public function getLastReply() + { + return $this->last_reply; + } + + /** + * Read the SMTP server's response. + * Either before eof or socket timeout occurs on the operation. + * With SMTP we can tell if we have more lines to read if the + * 4th character is '-' symbol. If it is a space then we don't + * need to read anything else. + * + * @return string + */ + protected function get_lines() + { + // If the connection is bad, give up straight away + if (!is_resource($this->smtp_conn)) { + return ''; + } + $data = ''; + $endtime = 0; + stream_set_timeout($this->smtp_conn, $this->Timeout); + if ($this->Timelimit > 0) { + $endtime = time() + $this->Timelimit; + } + $selR = [$this->smtp_conn]; + $selW = null; + while (is_resource($this->smtp_conn) && !feof($this->smtp_conn)) { + //Must pass vars in here as params are by reference + if (!stream_select($selR, $selW, $selW, $this->Timelimit)) { + $this->edebug( + 'SMTP -> get_lines(): select timed-out in (' . $this->Timelimit . ' sec)', + self::DEBUG_LOWLEVEL + ); + break; + } + //Deliberate noise suppression - errors are handled afterwards + $str = @fgets($this->smtp_conn, self::MAX_REPLY_LENGTH); + $this->edebug('SMTP INBOUND: "' . trim($str) . '"', self::DEBUG_LOWLEVEL); + $data .= $str; + // If response is only 3 chars (not valid, but RFC5321 S4.2 says it must be handled), + // or 4th character is a space or a line break char, we are done reading, break the loop. + // String array access is a significant micro-optimisation over strlen + if (!isset($str[3]) || $str[3] === ' ' || $str[3] === "\r" || $str[3] === "\n") { + break; + } + // Timed-out? Log and break + $info = stream_get_meta_data($this->smtp_conn); + if ($info['timed_out']) { + $this->edebug( + 'SMTP -> get_lines(): stream timed-out (' . $this->Timeout . ' sec)', + self::DEBUG_LOWLEVEL + ); + break; + } + // Now check if reads took too long + if ($endtime && time() > $endtime) { + $this->edebug( + 'SMTP -> get_lines(): timelimit reached (' . + $this->Timelimit . ' sec)', + self::DEBUG_LOWLEVEL + ); + break; + } + } + + return $data; + } + + /** + * Enable or disable VERP address generation. + * + * @param bool $enabled + */ + public function setVerp($enabled = false) + { + $this->do_verp = $enabled; + } + + /** + * Get VERP address generation mode. + * + * @return bool + */ + public function getVerp() + { + return $this->do_verp; + } + + /** + * Set error messages and codes. + * + * @param string $message The error message + * @param string $detail Further detail on the error + * @param string $smtp_code An associated SMTP error code + * @param string $smtp_code_ex Extended SMTP code + */ + protected function setError($message, $detail = '', $smtp_code = '', $smtp_code_ex = '') + { + $this->error = [ + 'error' => $message, + 'detail' => $detail, + 'smtp_code' => $smtp_code, + 'smtp_code_ex' => $smtp_code_ex, + ]; + } + + /** + * Set debug output method. + * + * @param string|callable $method The name of the mechanism to use for debugging output, or a callable to handle it + */ + public function setDebugOutput($method = 'echo') + { + $this->Debugoutput = $method; + } + + /** + * Get debug output method. + * + * @return string + */ + public function getDebugOutput() + { + return $this->Debugoutput; + } + + /** + * Set debug output level. + * + * @param int $level + */ + public function setDebugLevel($level = 0) + { + $this->do_debug = $level; + } + + /** + * Get debug output level. + * + * @return int + */ + public function getDebugLevel() + { + return $this->do_debug; + } + + /** + * Set SMTP timeout. + * + * @param int $timeout The timeout duration in seconds + */ + public function setTimeout($timeout = 0) + { + $this->Timeout = $timeout; + } + + /** + * Get SMTP timeout. + * + * @return int + */ + public function getTimeout() + { + return $this->Timeout; + } + + /** + * Reports an error number and string. + * + * @param int $errno The error number returned by PHP + * @param string $errmsg The error message returned by PHP + * @param string $errfile The file the error occurred in + * @param int $errline The line number the error occurred on + */ + protected function errorHandler($errno, $errmsg, $errfile = '', $errline = 0) + { + $notice = 'Connection failed.'; + $this->setError( + $notice, + $errmsg, + (string) $errno + ); + $this->edebug( + "$notice Error #$errno: $errmsg [$errfile line $errline]", + self::DEBUG_CONNECTION + ); + } + + /** + * Extract and return the ID of the last SMTP transaction based on + * a list of patterns provided in SMTP::$smtp_transaction_id_patterns. + * Relies on the host providing the ID in response to a DATA command. + * If no reply has been received yet, it will return null. + * If no pattern was matched, it will return false. + * + * @return bool|string|null + */ + protected function recordLastTransactionID() + { + $reply = $this->getLastReply(); + + if (empty($reply)) { + $this->last_smtp_transaction_id = null; + } else { + $this->last_smtp_transaction_id = false; + foreach ($this->smtp_transaction_id_patterns as $smtp_transaction_id_pattern) { + $matches = []; + if (preg_match($smtp_transaction_id_pattern, $reply, $matches)) { + $this->last_smtp_transaction_id = trim($matches[1]); + break; + } + } + } + + return $this->last_smtp_transaction_id; + } + + /** + * Get the queue/transaction ID of the last SMTP transaction + * If no reply has been received yet, it will return null. + * If no pattern was matched, it will return false. + * + * @return bool|string|null + * + * @see recordLastTransactionID() + */ + public function getLastTransactionID() + { + return $this->last_smtp_transaction_id; + } +} diff --git a/vendor/robrichards/xmlseclibs/CHANGELOG.txt b/vendor/robrichards/xmlseclibs/CHANGELOG.txt index faaf61cf42262ceddc63faa0d91dee2a92aed716..2c9355891b9d5ec9e524968244c37c35e24a0db3 100644 --- a/vendor/robrichards/xmlseclibs/CHANGELOG.txt +++ b/vendor/robrichards/xmlseclibs/CHANGELOG.txt @@ -1,5 +1,16 @@ xmlseclibs.php ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| +22, Apr 2020, 3.1.0 +Features: +- Support AES-GCM. Requires PHP 7.1. (François Kooman) + +Improvements: +- Fix Travis tests for older PHP versions. +- Use DOMElement interface to fix some IDEs reporting documentation errors + +Bug Fixes: +- FIX missing InclusiveNamespaces PrefixList from Java + Apache WSS4J. (njake) + 06, Nov 2019, 3.0.4 Security Improvements: - Insure only a single SignedInfo element exists within a signature during diff --git a/vendor/robrichards/xmlseclibs/src/XMLSecEnc.php b/vendor/robrichards/xmlseclibs/src/XMLSecEnc.php index f2b26796dd3b2c228be772b66a08b6c7729fb937..b9df7611fdecc7057436fcc2f8ccc534d5fcb9fd 100644 --- a/vendor/robrichards/xmlseclibs/src/XMLSecEnc.php +++ b/vendor/robrichards/xmlseclibs/src/XMLSecEnc.php @@ -2,6 +2,7 @@ namespace RobRichards\XMLSecLibs; use DOMDocument; +use DOMElement; use DOMNode; use DOMXPath; use Exception; @@ -10,7 +11,7 @@ /** * xmlseclibs.php * - * Copyright (c) 2007-2019, Robert Richards <rrichards@cdatazone.org>. + * Copyright (c) 2007-2020, Robert Richards <rrichards@cdatazone.org>. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -43,7 +44,7 @@ * POSSIBILITY OF SUCH DAMAGE. * * @author Robert Richards <rrichards@cdatazone.org> - * @copyright 2007-2019 Robert Richards <rrichards@cdatazone.org> + * @copyright 2007-2020 Robert Richards <rrichards@cdatazone.org> * @license http://www.opensource.org/licenses/bsd-license.php BSD License */ diff --git a/vendor/robrichards/xmlseclibs/src/XMLSecurityDSig.php b/vendor/robrichards/xmlseclibs/src/XMLSecurityDSig.php index c9063d0f590a252af7249afcd4240884062b426c..9986123e3a7e72af55afb77d7e6805f78ad5e3a3 100644 --- a/vendor/robrichards/xmlseclibs/src/XMLSecurityDSig.php +++ b/vendor/robrichards/xmlseclibs/src/XMLSecurityDSig.php @@ -11,7 +11,7 @@ /** * xmlseclibs.php * - * Copyright (c) 2007-2019, Robert Richards <rrichards@cdatazone.org>. + * Copyright (c) 2007-2020, Robert Richards <rrichards@cdatazone.org>. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -44,7 +44,7 @@ * POSSIBILITY OF SUCH DAMAGE. * * @author Robert Richards <rrichards@cdatazone.org> - * @copyright 2007-2019 Robert Richards <rrichards@cdatazone.org> + * @copyright 2007-2020 Robert Richards <rrichards@cdatazone.org> * @license http://www.opensource.org/licenses/bsd-license.php BSD License */ @@ -314,10 +314,22 @@ public function canonicalizeSignedInfo() if ($signInfoNode = $nodeset->item(0)) { $query = "./secdsig:CanonicalizationMethod"; $nodeset = $xpath->query($query, $signInfoNode); + $prefixList = null; if ($canonNode = $nodeset->item(0)) { $canonicalmethod = $canonNode->getAttribute('Algorithm'); + foreach ($canonNode->childNodes as $node) + { + if ($node->localName == 'InclusiveNamespaces') { + if ($pfx = $node->getAttribute('PrefixList')) { + $arpfx = array_filter(explode(' ', $pfx)); + if (count($arpfx) > 0) { + $prefixList = array_merge($prefixList ? $prefixList : array(), $arpfx); + } + } + } + } } - $this->signedInfo = $this->canonicalizeData($signInfoNode, $canonicalmethod); + $this->signedInfo = $this->canonicalizeData($signInfoNode, $canonicalmethod, null, $prefixList); return $this->signedInfo; } } diff --git a/vendor/robrichards/xmlseclibs/src/XMLSecurityKey.php b/vendor/robrichards/xmlseclibs/src/XMLSecurityKey.php index 6c01f0cc7a77596ca9d00d90bb8fa16b7385e2fe..90665c959c0481887ba8e26f73cdeb2df1c15207 100644 --- a/vendor/robrichards/xmlseclibs/src/XMLSecurityKey.php +++ b/vendor/robrichards/xmlseclibs/src/XMLSecurityKey.php @@ -7,7 +7,7 @@ /** * xmlseclibs.php * - * Copyright (c) 2007-2019, Robert Richards <rrichards@cdatazone.org>. + * Copyright (c) 2007-2020, Robert Richards <rrichards@cdatazone.org>. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -40,7 +40,7 @@ * POSSIBILITY OF SUCH DAMAGE. * * @author Robert Richards <rrichards@cdatazone.org> - * @copyright 2007-2019 Robert Richards <rrichards@cdatazone.org> + * @copyright 2007-2020 Robert Richards <rrichards@cdatazone.org> * @license http://www.opensource.org/licenses/bsd-license.php BSD License */ @@ -50,6 +50,9 @@ class XMLSecurityKey const AES128_CBC = 'http://www.w3.org/2001/04/xmlenc#aes128-cbc'; const AES192_CBC = 'http://www.w3.org/2001/04/xmlenc#aes192-cbc'; const AES256_CBC = 'http://www.w3.org/2001/04/xmlenc#aes256-cbc'; + const AES128_GCM = 'http://www.w3.org/2009/xmlenc11#aes128-gcm'; + const AES192_GCM = 'http://www.w3.org/2009/xmlenc11#aes192-gcm'; + const AES256_GCM = 'http://www.w3.org/2009/xmlenc11#aes256-gcm'; const RSA_1_5 = 'http://www.w3.org/2001/04/xmlenc#rsa-1_5'; const RSA_OAEP_MGF1P = 'http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p'; const DSA_SHA1 = 'http://www.w3.org/2000/09/xmldsig#dsa-sha1'; @@ -58,6 +61,7 @@ class XMLSecurityKey const RSA_SHA384 = 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha384'; const RSA_SHA512 = 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha512'; const HMAC_SHA1 = 'http://www.w3.org/2000/09/xmldsig#hmac-sha1'; + const AUTHTAG_LENGTH = 16; /** @var array */ private $cryptParams = array(); @@ -142,6 +146,30 @@ public function __construct($type, $params=null) $this->cryptParams['keysize'] = 32; $this->cryptParams['blocksize'] = 16; break; + case (self::AES128_GCM): + $this->cryptParams['library'] = 'openssl'; + $this->cryptParams['cipher'] = 'aes-128-gcm'; + $this->cryptParams['type'] = 'symmetric'; + $this->cryptParams['method'] = 'http://www.w3.org/2009/xmlenc11#aes128-gcm'; + $this->cryptParams['keysize'] = 32; + $this->cryptParams['blocksize'] = 16; + break; + case (self::AES192_GCM): + $this->cryptParams['library'] = 'openssl'; + $this->cryptParams['cipher'] = 'aes-192-gcm'; + $this->cryptParams['type'] = 'symmetric'; + $this->cryptParams['method'] = 'http://www.w3.org/2009/xmlenc11#aes192-gcm'; + $this->cryptParams['keysize'] = 32; + $this->cryptParams['blocksize'] = 16; + break; + case (self::AES256_GCM): + $this->cryptParams['library'] = 'openssl'; + $this->cryptParams['cipher'] = 'aes-256-gcm'; + $this->cryptParams['type'] = 'symmetric'; + $this->cryptParams['method'] = 'http://www.w3.org/2009/xmlenc11#aes256-gcm'; + $this->cryptParams['keysize'] = 32; + $this->cryptParams['blocksize'] = 16; + break; case (self::RSA_1_5): $this->cryptParams['library'] = 'openssl'; $this->cryptParams['padding'] = OPENSSL_PKCS1_PADDING; @@ -397,12 +425,22 @@ private function unpadISO10126($data) private function encryptSymmetric($data) { $this->iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length($this->cryptParams['cipher'])); - $data = $this->padISO10126($data, $this->cryptParams['blocksize']); - $encrypted = openssl_encrypt($data, $this->cryptParams['cipher'], $this->key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING, $this->iv); + $authTag = null; + if(in_array($this->cryptParams['cipher'], ['aes-128-gcm', 'aes-192-gcm', 'aes-256-gcm'])) { + if (version_compare(PHP_VERSION, '7.1.0') < 0) { + throw new Exception('PHP 7.1.0 is required to use AES GCM algorithms'); + } + $authTag = openssl_random_pseudo_bytes(self::AUTHTAG_LENGTH); + $encrypted = openssl_encrypt($data, $this->cryptParams['cipher'], $this->key, OPENSSL_RAW_DATA, $this->iv, $authTag); + } else { + $data = $this->padISO10126($data, $this->cryptParams['blocksize']); + $encrypted = openssl_encrypt($data, $this->cryptParams['cipher'], $this->key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING, $this->iv); + } + if (false === $encrypted) { throw new Exception('Failure encrypting Data (openssl symmetric) - ' . openssl_error_string()); } - return $this->iv . $encrypted; + return $this->iv . $encrypted . $authTag; } /** @@ -416,11 +454,24 @@ private function decryptSymmetric($data) $iv_length = openssl_cipher_iv_length($this->cryptParams['cipher']); $this->iv = substr($data, 0, $iv_length); $data = substr($data, $iv_length); - $decrypted = openssl_decrypt($data, $this->cryptParams['cipher'], $this->key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING, $this->iv); + $authTag = null; + if(in_array($this->cryptParams['cipher'], ['aes-128-gcm', 'aes-192-gcm', 'aes-256-gcm'])) { + if (version_compare(PHP_VERSION, '7.1.0') < 0) { + throw new Exception('PHP 7.1.0 is required to use AES GCM algorithms'); + } + // obtain and remove the authentication tag + $offset = 0 - self::AUTHTAG_LENGTH; + $authTag = substr($data, $offset); + $data = substr($data, 0, $offset); + $decrypted = openssl_decrypt($data, $this->cryptParams['cipher'], $this->key, OPENSSL_RAW_DATA, $this->iv, $authTag); + } else { + $decrypted = openssl_decrypt($data, $this->cryptParams['cipher'], $this->key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING, $this->iv); + } + if (false === $decrypted) { throw new Exception('Failure decrypting Data (openssl symmetric) - ' . openssl_error_string()); } - return $this->unpadISO10126($decrypted); + return null !== $authTag ? $decrypted : $this->unpadISO10126($decrypted); } /** diff --git a/vendor/robrichards/xmlseclibs/xmlseclibs.php b/vendor/robrichards/xmlseclibs/xmlseclibs.php index 4470dab2693265f6eb441b780677074a6c3a0d59..1859bc23ee75a90854524889f91d81a41bb09533 100644 --- a/vendor/robrichards/xmlseclibs/xmlseclibs.php +++ b/vendor/robrichards/xmlseclibs/xmlseclibs.php @@ -2,7 +2,7 @@ /** * xmlseclibs.php * - * Copyright (c) 2007-2019, Robert Richards <rrichards@cdatazone.org>. + * Copyright (c) 2007-2020, Robert Richards <rrichards@cdatazone.org>. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -35,9 +35,9 @@ * POSSIBILITY OF SUCH DAMAGE. * * @author Robert Richards <rrichards@cdatazone.org> - * @copyright 2007-2019 Robert Richards <rrichards@cdatazone.org> + * @copyright 2007-2020 Robert Richards <rrichards@cdatazone.org> * @license http://www.opensource.org/licenses/bsd-license.php BSD License - * @version 3.0.4 + * @version 3.1.0 */ $xmlseclibs_srcdir = dirname(__FILE__) . '/src/'; diff --git a/vendor/simplesamlphp/composer-module-installer/COPYING b/vendor/simplesamlphp/composer-module-installer/COPYING new file mode 100644 index 0000000000000000000000000000000000000000..8589e3a195a4657b2fbb02e831e1f85106cecfe3 --- /dev/null +++ b/vendor/simplesamlphp/composer-module-installer/COPYING @@ -0,0 +1,18 @@ +Copyright 2014-2015 UNINETT AS, http://www.uninett.no + +This software is licensed under the CC-GNU LGPL version 2.1. +http://creativecommons.org/licenses/LGPL/2.1/ + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/vendor/simplesamlphp/composer-module-installer/LICENSE b/vendor/simplesamlphp/composer-module-installer/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..a345e48d049f9c6756e9364e908b3f26e36c9df1 --- /dev/null +++ b/vendor/simplesamlphp/composer-module-installer/LICENSE @@ -0,0 +1,459 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + \ No newline at end of file diff --git a/vendor/simplesamlphp/composer-module-installer/README.md b/vendor/simplesamlphp/composer-module-installer/README.md new file mode 100644 index 0000000000000000000000000000000000000000..31310613c93b58a511547013570edc59b18b4d77 --- /dev/null +++ b/vendor/simplesamlphp/composer-module-installer/README.md @@ -0,0 +1,124 @@ +SimpleSAMLphp Composer module installer +======================================= + +This package is a Composer plugin that allows a SimpleSAMLphp module to be +installed through Composer. Installation can be as easy as executing: + +``` +composer.phar require vendor/simplesamlphp-module-mymodule 1.* +``` + +That command would install `vendor/simplesamlphp-module-mymodule` matching +version `1.*`. + + +Making a module installable through Composer +-------------------------------------------- + +To make a module installable through Composer, you need to add a +`composer.json`-file to the root of the module. It should look +something like: + +```json +{ + "name": "vendor/simplesamlphp-module-mymodule", + "description": "A description of the module 'mymodule'.", + "type": "simplesamlphp-module", + "require": { + "simplesamlphp/composer-module-installer": "~1.0" + } +} +``` + +The package name must be on the form: + +``` +<vendor>/simplesamlphp-module-<module name> +``` + +`<vendor>` is the vendor name you use, and `<module name>` is the name +of your module. Your module will be installed in the `modules/<module name>` +directory in the SimpleSAMLphp installation directory. + + +Installing your custom module +----------------------------- + +If you publish your module on [Packagist](https://packagist.org/), no special +configuration is required to install your module. However, if your module is +hosted in a private repository, you need to add a repository for the module to +your SimpleSAMLphp `composer.json` file. For example, if your module is located +in a Git repository in `/home/username/mymodule`, you would add something like +the following to `repositories` in `composer.json`: + +```json +{ + "type": "vcs", + "url": "/home/username/mymodule" +} +``` + +The `repositories array may look something like: + +```json +"repositories": [ + { + "type": "package", + "package": { + "name": "robrichards/xmlseclibs", + "version": "1.3.1", + "source": { + "type": "svn", + "url": "http://xmlseclibs.googlecode.com/svn", + "reference": "trunk@50" + }, + "autoload": { + "files": ["xmlseclibs.php"] + } + } + }, + { + "type": "vcs", + "url": "/home/username/mymodule" + } +] +``` + +Once you have added the repository, you should be able to install your module +by executing: + +``` +composer.phar require vendor/simplesamlphp-module-mymodule:dev-master +``` + +(`dev-master` instructs Composer to install the `master`-branch from the Git +repository.) + +See the [Composer Repository documentation](https://getcomposer.org/doc/05-repositories.md) +for more information about adding your own custom repositories to Composer. + + +Module names that contain uppercase letters +------------------------------------------- + +New modules should only have lowercase letters in the module name, however a +lot of existing module names contain uppercase letters. Since Composer package +names should only contain lowercase letters, a mixed-case variant of the module +name can be provided in the `ssp-mixedcase-module-name` extra data option: + +```json +{ + "name": "vendor/simplesamlphp-module-mymodule", + "description": "A description of the module 'MyModule'.", + "type": "simplesamlphp-module", + "extra": { + "ssp-mixedcase-module-name": "myModule" + }, + "require": { + "simplesamlphp/composer-module-installer": "~1.1" + } +} +``` + +Note that this is only meant for migration of existing modules. New modules +should only use lowercase letters in the name. diff --git a/vendor/simplesamlphp/composer-module-installer/composer.json b/vendor/simplesamlphp/composer-module-installer/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..dd85d79acea1b899279ecad5419912f16d5fe327 --- /dev/null +++ b/vendor/simplesamlphp/composer-module-installer/composer.json @@ -0,0 +1,15 @@ +{ + "name": "simplesamlphp/composer-module-installer", + "description": "A Composer plugin that allows installing SimpleSAMLphp modules through Composer.", + "type": "composer-plugin", + "autoload": { + "psr-0": {"SimpleSamlPhp\\Composer": "src/"} + }, + "extra": { + "class": "SimpleSamlPhp\\Composer\\ModuleInstallerPlugin" + }, + "require": { + "composer-plugin-api": "^1.0", + "simplesamlphp/simplesamlphp": "*" + } +} diff --git a/vendor/simplesamlphp/composer-module-installer/src/SimpleSamlPhp/Composer/ModuleInstaller.php b/vendor/simplesamlphp/composer-module-installer/src/SimpleSamlPhp/Composer/ModuleInstaller.php new file mode 100644 index 0000000000000000000000000000000000000000..e122a52c225c9cf4acc3fb2c0d0602db06d1c1d0 --- /dev/null +++ b/vendor/simplesamlphp/composer-module-installer/src/SimpleSamlPhp/Composer/ModuleInstaller.php @@ -0,0 +1,72 @@ +<?php +namespace SimpleSamlPhp\Composer; + +use Composer\Package\PackageInterface; +use Composer\Installer\LibraryInstaller; + +class ModuleInstaller extends LibraryInstaller +{ + + /** + * {@inheritDoc} + */ + public function getInstallPath(PackageInterface $package) + { + return $this->getPackageBasePath($package); + } + + + /** + * {@inheritDoc} + */ + protected function getPackageBasePath(PackageInterface $package) + { + $ssp_path = '.'; + $ssp_pack = $this->composer + ->getRepositoryManager() + ->getLocalRepository() + ->findPackage('simplesamlphp/simplesamlphp', '*'); + if ($ssp_pack !== null) { + $ssp_path = $this->composer->getInstallationManager()->getInstallPath($ssp_pack); + } + + $name = $package->getPrettyName(); + if (!preg_match('@^.*/simplesamlphp-module-(.+)$@', $name, $matches)) { + throw new \InvalidArgumentException('Unable to install module ' . $name .', package name must be on the form "VENDOR/simplesamlphp-module-MODULENAME".'); + } + $moduleDir = $matches[1]; + + if (!preg_match('@^[a-z0-9_.-]*$@', $moduleDir)) { + throw new \InvalidArgumentException('Unable to install module ' . $name .', module name must only contain characters from a-z, 0-9, "_", "." and "-".'); + } + if ($moduleDir[0] === '.') { + throw new \InvalidArgumentException('Unable to install module ' . $name .', module name cannot start with ".".'); + } + + /* Composer packages are supposed to only contain lowercase letters, but historically many modules have had names in mixed case. + * We must provide a way to handle those. Here we allow the module directory to be overridden with a mixed case name. + */ + $extraData = $package->getExtra(); + if (isset($extraData['ssp-mixedcase-module-name'])) { + $mixedCaseModuleName = $extraData['ssp-mixedcase-module-name']; + if (!is_string($mixedCaseModuleName)) { + throw new \InvalidArgumentException('Unable to install module ' . $name .', "ssp-mixedcase-module-name" must be a string.'); + } + if (mb_strtolower($mixedCaseModuleName, 'utf-8') !== $moduleDir) { + throw new \InvalidArgumentException('Unable to install module ' . $name .', "ssp-mixedcase-module-name" must match the package name except that it can contain uppercase letters.'); + } + $moduleDir = $mixedCaseModuleName; + } + + return $ssp_path.'/modules/'.$moduleDir; + } + + + /** + * {@inheritDoc} + */ + public function supports($packageType) + { + return 'simplesamlphp-module' === $packageType; + } +} diff --git a/vendor/simplesamlphp/composer-module-installer/src/SimpleSamlPhp/Composer/ModuleInstallerPlugin.php b/vendor/simplesamlphp/composer-module-installer/src/SimpleSamlPhp/Composer/ModuleInstallerPlugin.php new file mode 100644 index 0000000000000000000000000000000000000000..25ec691fbce90e6b8473b0cb9a05d8d314c9fb45 --- /dev/null +++ b/vendor/simplesamlphp/composer-module-installer/src/SimpleSamlPhp/Composer/ModuleInstallerPlugin.php @@ -0,0 +1,15 @@ +<?php +namespace SimpleSamlPhp\Composer; + +use Composer\Composer; +use Composer\IO\IOInterface; +use Composer\Plugin\PluginInterface; + +class ModuleInstallerPlugin implements PluginInterface +{ + public function activate(Composer $composer, IOInterface $io) + { + $installer = new ModuleInstaller($io, $composer); + $composer->getInstallationManager()->addInstaller($installer); + } +} diff --git a/vendor/simplesamlphp/saml2/README.md b/vendor/simplesamlphp/saml2/README.md index 8c09dba172d04850cc6f0919538dda89a0e32bc6..0815cd7edf4e2faab86fed3f4c8ee962a2fdd530 100644 --- a/vendor/simplesamlphp/saml2/README.md +++ b/vendor/simplesamlphp/saml2/README.md @@ -24,6 +24,9 @@ The latest released version (`3.x` range) is the _only supported version_. All other branches (`2.x` and earlier) are no longer supported and will not receive any maintenance or (security) fixes. Do not use these versions. +Also be sure to check the [UPGRADING.md](UPGRADING.md) file if you are upgrading from an older version to `>= 4.x`. Here +you will find instructions on how to deal with BC breaking changes between versions. + Usage ----- diff --git a/vendor/simplesamlphp/saml2/UPGRADING.md b/vendor/simplesamlphp/saml2/UPGRADING.md new file mode 100644 index 0000000000000000000000000000000000000000..7b8ee6d7b96fdcf161213397a93a3d44a671c71f --- /dev/null +++ b/vendor/simplesamlphp/saml2/UPGRADING.md @@ -0,0 +1,48 @@ +# UPGRADE NOTES + +## 4.0 to 4.1 + +**Assertion processor BC breaking change** + +The assertion processor in 4.0 assumed all assertions are encrypted and would try and decrypt twice, causing a fatal error. +This problem was introduced in [#120](https://github.com/simplesamlphp/saml2/pull/120). + +If you are using the assertion processor as a stand-alone component, then you will have to update your code to reflect this +change, see: [97a7bd0](https://github.com/simplesamlphp/saml2/commit/97a7bd0be4865617048e1ea92aa0b55df488fe4a). + +## 3.4 to 4.0 + +**Assertion processor BC breaking change** + +The response processor in pre 4.0 releases assumed all assertions are decrypted, and caused a fatal error when the response was unsigned. +This problem was fixed in [#120](https://github.com/simplesamlphp/saml2/pull/120). + +If you are using the assertion processor as a stand-alone component, then you will have to update your code to reflect this +change, see: [e6c01fa](https://github.com/simplesamlphp/saml2/commit/e6c01fa9b0e815682e24916f03a84d245480c4a0). + +**NameID's and Issuers** + +In pre 4.0 releases we allowed both objects and arrays to be used for Issuers and nameID's. We know only support objects. +If in your code you use something like this: + +`` +$assertion = new \SAML2\Assertion(); +$assertion->setIssuer('someissuer'); +`` + +You would now replace that with: + +`` +$issuer = new \SAML2\XML\saml\Issuer(); +$issuer->setValue('someissuer'); + +$assertion = new \SAML2\Assertion(); +$assertion->setIssuer($issuer); +`` + +**Class properties** +All public properies have been replaced by either protected or private properties. +Public getter/setter methods are available to set/get values. + +**Autoloading classes** +The PSR-0 autoloader has been removed. If your code isn't prepared to use PSR-4 namespaces yet, then you would have to change that before using this version. diff --git a/vendor/simplesamlphp/saml2/composer.json b/vendor/simplesamlphp/saml2/composer.json index 5c3800b50c1f524f516f27d70a7c758b51b08a39..2370a4bfd38d09847a3f23ba0940f45f96011ec7 100644 --- a/vendor/simplesamlphp/saml2/composer.json +++ b/vendor/simplesamlphp/saml2/composer.json @@ -9,38 +9,36 @@ } ], "require": { - "php": ">=5.4", + "php": ">=7.2", "ext-openssl": "*", "ext-dom": "*", "ext-zlib": "*", - "psr/log": "~1.0", + "psr/log": "~1.1", "robrichards/xmlseclibs": "^3.0.4", - "webmozart/assert": "^1.4" + "webmozart/assert": "^1.5" }, "require-dev": { - "simplesamlphp/simplesamlphp-test-framework": "0.0.11", - "squizlabs/php_codesniffer": "~3.2", - "phpunit/phpunit": "~5.7", - "phpmd/phpmd": "~2.6", - "sensiolabs/security-checker": "~4.1", - "sebastian/phpcpd": "~2.0", - "mockery/mockery": "~0.9" + "mockery/mockery": "~1.2", + "phpunit/phpunit": "^8.3", + "simplesamlphp/simplesamlphp-test-framework": "~0.1.0", + "sensiolabs/security-checker": "~6.0", + "sebastian/phpcpd": "~4.1", + "squizlabs/php_codesniffer": "~3.5" }, "autoload": { - "psr-0": { - "SAML2\\": "src/" - }, - "files": ["src/_autoload.php"] + "psr-4": { + "SAML2\\": "src/SAML2" + } }, "autoload-dev": { - "psr-0": { - "SAML2\\": "tests/" + "psr-4": { + "SAML2\\": "tests/SAML2/" } }, "extra": { "branch-alias": { - "dev-master": "v3.1.x-dev" + "dev-master": "v4.0.x-dev" } } } diff --git a/vendor/simplesamlphp/saml2/phpcs.xml b/vendor/simplesamlphp/saml2/phpcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..18734849910810203e4feada6a91013b5f32db20 --- /dev/null +++ b/vendor/simplesamlphp/saml2/phpcs.xml @@ -0,0 +1,28 @@ +<?xml version="1.0"?> +<ruleset name="SimpleSAMLphp SAML2 ruleset"> + <description> + By default it is less stringent about long lines than other coding standards + </description> + + <!-- Use this to exclude paths. You can have multiple patterns --> + <!--<exclude-pattern>*/tests/*</exclude-pattern>--> + <!--<exclude-pattern>*/other/*</exclude-pattern>--> + + <!-- This is the rule we inherit from. If you want to exlude some specific rules, see the docs on how to do that --> + <rule ref="PSR12"/> + + <rule ref="Generic.NamingConventions.UpperCaseConstantName.ConstantNotUpperCase"> + <exclude-pattern>**/Assertion.php</exclude-pattern> + <exclude-pattern>**/LogoutRequest.php</exclude-pattern> + <exclude-pattern>**/EncryptedAssertion.php</exclude-pattern> + </rule> + + <!-- Lines can be a little bit longer before they break the build --> + <rule ref="Generic.Files.LineLength"> + <properties> + <property name="lineLimit" value="80"/> + <property name="absoluteLineLimit" value="120"/> + </properties> + <exclude-pattern>**/EntityDescriptor.php</exclude-pattern> + </rule> +</ruleset> diff --git a/vendor/simplesamlphp/saml2/phpunit.xml b/vendor/simplesamlphp/saml2/phpunit.xml index 729cdaed2782b4c5b1a58ad13aa713579989ac2f..c25fd4629c74be25eb36377b0ef21cb7793484da 100644 --- a/vendor/simplesamlphp/saml2/phpunit.xml +++ b/vendor/simplesamlphp/saml2/phpunit.xml @@ -8,7 +8,6 @@ convertWarningsToExceptions="true" processIsolation="false" stopOnFailure="false" - syntaxCheck="false" bootstrap="./tests/autoload.php"> <testsuites> <testsuite name="Test Suite"> diff --git a/vendor/simplesamlphp/saml2/src/SAML2/ArtifactResolve.php b/vendor/simplesamlphp/saml2/src/SAML2/ArtifactResolve.php index 2e50b3635700f7af2274e3fe0ddbcafdb24bedc9..651864e927c479e382a5445e1e43bac7302b0dee 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/ArtifactResolve.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/ArtifactResolve.php @@ -1,8 +1,10 @@ <?php +declare(strict_types=1); + namespace SAML2; -use Webmozart\Assert\Assert; +use DOMElement; /** * The Artifact is part of the SAML 2.0 IdP code, and it builds an artifact object. @@ -14,6 +16,7 @@ */ class ArtifactResolve extends Request { + /** @var string */ private $artifact; @@ -22,7 +25,7 @@ class ArtifactResolve extends Request * * @param \DOMElement|null $xml The input assertion. */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { parent::__construct('ArtifactResolve', $xml); @@ -37,7 +40,7 @@ public function __construct(\DOMElement $xml = null) * * @return string artifact. */ - public function getArtifact() + public function getArtifact() : string { return $this->artifact; } @@ -49,9 +52,8 @@ public function getArtifact() * @param string $artifact * @return void */ - public function setArtifact($artifact) + public function setArtifact(string $artifact) : void { - Assert::string($artifact); $this->artifact = $artifact; } @@ -61,7 +63,7 @@ public function setArtifact($artifact) * * @return \DOMElement This response. */ - public function toUnsignedXML() + public function toUnsignedXML() : DOMElement { $root = parent::toUnsignedXML(); $artifactelement = $this->document->createElementNS(Constants::NS_SAMLP, 'Artifact', $this->artifact); diff --git a/vendor/simplesamlphp/saml2/src/SAML2/ArtifactResponse.php b/vendor/simplesamlphp/saml2/src/SAML2/ArtifactResponse.php index 7d6a42ee58b0699c61fa855d1bcd02119908bba6..f398c3d4982e626a3c5a17f7b89368d8e09f55c2 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/ArtifactResponse.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/ArtifactResponse.php @@ -1,8 +1,11 @@ <?php +declare(strict_types=1); + namespace SAML2; -use Webmozart\Assert\Assert; +use DOMElement; +use DOMNode; /** * The \SAML2\ArtifactResponse, is the response to the \SAML2\ArtifactResolve. @@ -18,7 +21,7 @@ class ArtifactResponse extends StatusResponse * * @var \DOMElement|null */ - private $any; + private $any = null; /** @@ -27,18 +30,17 @@ class ArtifactResponse extends StatusResponse * @param \DOMElement|null $xml The input assertion. * @throws \Exception */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { parent::__construct('ArtifactResponse', $xml); if (!is_null($xml)) { $status = Utils::xpQuery($xml, './saml_protocol:Status'); - Assert::notEmpty($status); /* Will have failed during StatusResponse parsing. */ - $status = $status[0]; - for ($any = $status->nextSibling; $any !== null; $any = $any->nextSibling) { - if ($any instanceof \DOMElement) { + /** @psalm-suppress RedundantCondition */ + for ($any = $status->nextSibling; $any instanceof DOMNode; $any = $any->nextSibling) { + if ($any instanceof DOMElement) { $this->any = $any; break; } @@ -52,7 +54,7 @@ public function __construct(\DOMElement $xml = null) * @param \DOMElement|null $any * @return void */ - public function setAny(\DOMElement $any = null) + public function setAny(DOMElement $any = null) : void { $this->any = $any; } @@ -60,8 +62,8 @@ public function setAny(\DOMElement $any = null) /** * @return \DOMElement|null - */ - public function getAny() + */ + public function getAny() : ?DOMElement { return $this->any; } @@ -72,7 +74,7 @@ public function getAny() * * @return \DOMElement This response. */ - public function toUnsignedXML() + public function toUnsignedXML() : DOMElement { $root = parent::toUnsignedXML(); if (isset($this->any)) { diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion.php index 6ec45d51247b3e54a6e32751c232ed50d413431e..48f1b4cbc957448bcdaa7ea6bf7242ac0148a32a 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion.php @@ -1,23 +1,29 @@ <?php +declare(strict_types=1); + namespace SAML2; +use DOMElement; +use DOMNode; +use DOMNodeList; use RobRichards\XMLSecLibs\XMLSecEnc; use RobRichards\XMLSecLibs\XMLSecurityKey; +use Webmozart\Assert\Assert; + use SAML2\Exception\RuntimeException; use SAML2\Utilities\Temporal; use SAML2\XML\Chunk; -use SAML2\XML\saml\Issuer as Issuer; +use SAML2\XML\saml\Issuer; use SAML2\XML\saml\NameID; use SAML2\XML\saml\SubjectConfirmation; -use Webmozart\Assert\Assert; /** * Class representing a SAML 2 assertion. * * @package SimpleSAMLphp */ -class Assertion implements SignedElement +class Assertion extends SignedElement { /** * The identifier of this assertion. @@ -39,7 +45,7 @@ class Assertion implements SignedElement * If the issuer's format is \SAML2\Constants::NAMEID_ENTITY, this property will just take the issuer's string * value. * - * @var string|\SAML2\XML\saml\Issuer + * @var \SAML2\XML\saml\Issuer */ private $issuer; @@ -77,17 +83,17 @@ class Assertion implements SignedElement */ private $encryptionKey; - /** + /** * The earliest time this assertion is valid, as an UNIX timestamp. * - * @var int + * @var int|null */ private $notBefore; /** * The time this assertion expires, as an UNIX timestamp. * - * @var int + * @var int|null */ private $notOnOrAfter; @@ -107,7 +113,7 @@ class Assertion implements SignedElement * * @var int|null */ - private $sessionNotOnOrAfter; + private $sessionNotOnOrAfter = null; /** * The session index for this user on the IdP. @@ -116,21 +122,21 @@ class Assertion implements SignedElement * * @var string|null */ - private $sessionIndex; + private $sessionIndex = null; /** * The timestamp the user was authenticated, as an UNIX timestamp. * - * @var int + * @var int|null */ - private $authnInstant; + private $authnInstant = null; /** * The authentication context reference for this assertion. * * @var string|null */ - private $authnContextClassRef; + private $authnContextClassRef = null; /** * Authentication context declaration provided by value. @@ -138,25 +144,25 @@ class Assertion implements SignedElement * See: * @url http://docs.oasis-open.org/security/saml/v2.0/saml-authn-context-2.0-os.pdf * - * @var \SAML2\XML\Chunk + * @var \SAML2\XML\Chunk|null */ - private $authnContextDecl; + private $authnContextDecl = null; /** * URI reference that identifies an authentication context declaration. * * The URI reference MAY directly resolve into an XML document containing the referenced declaration. * - * @var \SAML2\XML\Chunk + * @var string|null */ - private $authnContextDeclRef; + private $authnContextDeclRef = null; /** * The list of AuthenticatingAuthorities for this assertion. * * @var array */ - private $AuthenticatingAuthority; + private $AuthenticatingAuthority = []; /** * The attributes, as an associative array, indexed by attribute name @@ -174,7 +180,7 @@ class Assertion implements SignedElement * * @var array multi-dimensional array of \DOMNodeList|\SAML2\XML\saml\NameID|string|int|array */ - private $attributes; + private $attributes = []; /** * The attributes values types as per http://www.w3.org/2001/XMLSchema definitions @@ -187,59 +193,42 @@ class Assertion implements SignedElement * when generating assertion, the varuable can be: * - null : backward compatibility * - <attribute name> => <xs type> : all values for the given attribute will have the same xs type - * - <attribute name> => [<Value1's xs type>|null, <xs type Value2>|null, ...] : Nth value will have type of the Nth in the array + * - <attribute name> => [<Value1's xs type>|null, <xs type Value2>|null, ...] : Nth value will have type of the + * Nth in the array * * @var array multi-dimensional array of array */ - private $attributesValueTypes; + private $attributesValueTypes = []; /** * The NameFormat used on all attributes. * - * If more than one NameFormat is used, this will contain - * the unspecified nameformat. + * If more than one NameFormat is used, this will contain the unspecified nameformat. * * @var string */ - private $nameFormat; - - /** - * The private key we should use to sign the assertion. - * - * The private key can be null, in which case the assertion is sent unsigned. - * - * @var XMLSecurityKey|null - */ - private $signatureKey; - - /** - * List of certificates that should be included in the assertion. - * - * @var array - */ - private $certificates; + private $nameFormat = Constants::NAMEFORMAT_UNSPECIFIED; /** * The data needed to verify the signature. * * @var array|null */ - private $signatureData; + private $signatureData = null; /** - * Boolean that indicates if attributes are encrypted in the - * assertion or not. + * Boolean that indicates if attributes are encrypted in the assertion or not. * * @var boolean */ - private $requiredEncAttributes; + private $requiredEncAttributes = false; /** * The SubjectConfirmation elements of the Subject in the assertion. * - * @var \SAML2\XML\saml\SubjectConfirmation[]. + * @var \SAML2\XML\saml\SubjectConfirmation[] */ - private $SubjectConfirmation; + private $SubjectConfirmation = []; /** * @var bool @@ -258,18 +247,16 @@ class Assertion implements SignedElement * @param \DOMElement|null $xml The input assertion. * @throws \Exception */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { - $this->setId(Utils::getContainer()->generateId()); - $this->setIssueInstant(Temporal::getTime()); - $this->setIssuer(''); - $this->setAuthnInstant(Temporal::getTime()); - $this->setAttributes([]); - $this->setAttributeNameFormat(Constants::NAMEFORMAT_UNSPECIFIED); - $this->setCertificates([]); - $this->setAuthenticatingAuthority([]); - $this->setSubjectConfirmation([]); - $this->setRequiredEncAttributes(false); + // Create an Issuer + $issuer = new Issuer(); + $issuer->setValue(''); + + $this->id = Utils::getContainer()->generateId(); + $this->issueInstant = Temporal::getTime(); + $this->issuer = $issuer; + $this->authnInstant = Temporal::getTime(); if ($xml === null) { return; @@ -287,14 +274,13 @@ public function __construct(\DOMElement $xml = null) $this->issueInstant = Utils::xsDateTimeToTimestamp($xml->getAttribute('IssueInstant')); + /** @var \DOMElement[] $issuer */ $issuer = Utils::xpQuery($xml, './saml_assertion:Issuer'); if (empty($issuer)) { throw new \Exception('Missing <saml:Issuer> in assertion.'); } + $this->issuer = new Issuer($issuer[0]); - if ($this->issuer->Format === Constants::NAMEID_ENTITY) { - $this->issuer = $this->issuer->value; - } $this->parseSubject($xml); $this->parseConditions($xml); @@ -312,8 +298,9 @@ public function __construct(\DOMElement $xml = null) * @throws \Exception * @return void */ - private function parseSubject(\DOMElement $xml) + private function parseSubject(DOMElement $xml) : void { + /** @var \DOMElement[] $subject */ $subject = Utils::xpQuery($xml, './saml_assertion:Subject'); if (empty($subject)) { /* No Subject node. */ @@ -324,6 +311,7 @@ private function parseSubject(\DOMElement $xml) } $subject = $subject[0]; + /** @var \DOMElement[] $nameId */ $nameId = Utils::xpQuery( $subject, './saml_assertion:NameID | ./saml_assertion:EncryptedID/xenc:EncryptedData' @@ -340,6 +328,7 @@ private function parseSubject(\DOMElement $xml) } } + /** @var \DOMElement[] $subjectConfirmation */ $subjectConfirmation = Utils::xpQuery($subject, './saml_assertion:SubjectConfirmation'); if (empty($subjectConfirmation) && empty($nameId)) { throw new \Exception('Missing <saml:SubjectConfirmation> in <saml:Subject>.'); @@ -358,8 +347,9 @@ private function parseSubject(\DOMElement $xml) * @throws \Exception * @return void */ - private function parseConditions(\DOMElement $xml) + private function parseConditions(DOMElement $xml) : void { + /** @var \DOMElement[] $conditions */ $conditions = Utils::xpQuery($xml, './saml_assertion:Conditions'); if (empty($conditions)) { /* No <saml:Conditions> node. */ @@ -383,8 +373,8 @@ private function parseConditions(\DOMElement $xml) } } - for ($node = $conditions->firstChild; $node !== null; $node = $node->nextSibling) { - if ($node instanceof \DOMText) { + foreach ($conditions->childNodes as $node) { + if (!$node instanceof DOMElement) { continue; } if ($node->namespaceURI !== Constants::NS_SAML) { @@ -424,8 +414,9 @@ private function parseConditions(\DOMElement $xml) * @throws \Exception * @return void */ - private function parseAuthnStatement(\DOMElement $xml) + private function parseAuthnStatement(DOMElement $xml) : void { + /** @var \DOMElement[] $authnStatements */ $authnStatements = Utils::xpQuery($xml, './saml_assertion:AuthnStatement'); if (empty($authnStatements)) { $this->authnInstant = null; @@ -442,7 +433,9 @@ private function parseAuthnStatement(\DOMElement $xml) $this->authnInstant = Utils::xsDateTimeToTimestamp($authnStatement->getAttribute('AuthnInstant')); if ($authnStatement->hasAttribute('SessionNotOnOrAfter')) { - $this->sessionNotOnOrAfter = Utils::xsDateTimeToTimestamp($authnStatement->getAttribute('SessionNotOnOrAfter')); + $this->sessionNotOnOrAfter = Utils::xsDateTimeToTimestamp( + $authnStatement->getAttribute('SessionNotOnOrAfter') + ); } if ($authnStatement->hasAttribute('SessionIndex')) { @@ -460,9 +453,10 @@ private function parseAuthnStatement(\DOMElement $xml) * @throws \Exception * @return void */ - private function parseAuthnContext(\DOMElement $authnStatementEl) + private function parseAuthnContext(DOMElement $authnStatementEl) : void { // Get the AuthnContext element + /** @var \DOMElement[] $authnContexts */ $authnContexts = Utils::xpQuery($authnStatementEl, './saml_assertion:AuthnContext'); if (count($authnContexts) > 1) { throw new \Exception('More than one <saml:AuthnContext> in <saml:AuthnStatement>.'); @@ -472,6 +466,7 @@ private function parseAuthnContext(\DOMElement $authnStatementEl) $authnContextEl = $authnContexts[0]; // Get the AuthnContextDeclRef (if available) + /** @var \DOMElement[] $authnContextDeclRefs */ $authnContextDeclRefs = Utils::xpQuery($authnContextEl, './saml_assertion:AuthnContextDeclRef'); if (count($authnContextDeclRefs) > 1) { throw new \Exception( @@ -482,6 +477,7 @@ private function parseAuthnContext(\DOMElement $authnStatementEl) } // Get the AuthnContextDecl (if available) + /** @var \DOMElement[] $authnContextDecls */ $authnContextDecls = Utils::xpQuery($authnContextEl, './saml_assertion:AuthnContextDecl'); if (count($authnContextDecls) > 1) { throw new \Exception( @@ -492,6 +488,7 @@ private function parseAuthnContext(\DOMElement $authnStatementEl) } // Get the AuthnContextClassRef (if available) + /** @var \DOMElement[] $authnContextClassRefs */ $authnContextClassRefs = Utils::xpQuery($authnContextEl, './saml_assertion:AuthnContextClassRef'); if (count($authnContextClassRefs) > 1) { throw new \Exception('More than one <saml:AuthnContextClassRef> in <saml:AuthnContext>.'); @@ -521,9 +518,10 @@ private function parseAuthnContext(\DOMElement $authnStatementEl) * @throws \Exception * @return void */ - private function parseAttributes(\DOMElement $xml) + private function parseAttributes(DOMElement $xml) : void { $firstAttribute = true; + /** @var \DOMElement[] $attributes */ $attributes = Utils::xpQuery($xml, './saml_assertion:AttributeStatement/saml_assertion:Attribute'); foreach ($attributes as $attribute) { if (!$attribute->hasAttribute('Name')) { @@ -561,20 +559,23 @@ private function parseAttributes(\DOMElement $xml) * @param string $attributeName * @return void */ - private function parseAttributeValue($attribute, $attributeName) + private function parseAttributeValue(DOMNode $attribute, string $attributeName) : void { /** @var \DOMElement[] $values */ $values = Utils::xpQuery($attribute, './saml_assertion:AttributeValue'); if ($attributeName === Constants::EPTI_URN_MACE || $attributeName === Constants::EPTI_URN_OID) { foreach ($values as $index => $eptiAttributeValue) { + /** @var \DOMElement[] $eptiNameId */ $eptiNameId = Utils::xpQuery($eptiAttributeValue, './saml_assertion:NameID'); if (count($eptiNameId) === 1) { $this->attributes[$attributeName][] = new NameID($eptiNameId[0]); } else { /* Fall back for legacy IdPs sending string value (e.g. SSP < 1.15) */ - Utils::getContainer()->getLogger()->warning(sprintf("Attribute %s (EPTI) value %d is not an XML NameId", $attributeName, $index)); + Utils::getContainer()->getLogger()->warning( + sprintf("Attribute %s (EPTI) value %d is not an XML NameId", $attributeName, $index) + ); $nameId = new NameID(); $nameId->setValue($eptiAttributeValue->textContent); $this->attributes[$attributeName][] = $nameId; @@ -620,12 +621,13 @@ private function parseAttributeValue($attribute, $attributeName) * @param \DOMElement $xml The XML element with the assertion. * @return void */ - private function parseEncryptedAttributes(\DOMElement $xml) + private function parseEncryptedAttributes(DOMElement $xml) : void { - $this->setEncryptedAttributes(Utils::xpQuery( + /** @var \DOMElement[] encryptedAttributes */ + $this->encryptedAttributes = Utils::xpQuery( $xml, './saml_assertion:AttributeStatement/saml_assertion:EncryptedAttribute' - )); + ); } @@ -635,15 +637,15 @@ private function parseEncryptedAttributes(\DOMElement $xml) * @param \DOMElement $xml The assertion XML element. * @return void */ - private function parseSignature(\DOMElement $xml) + private function parseSignature(DOMElement $xml) : void { - /** @var null|\DOMAttr $signatureMethod */ + /** @var \DOMAttr[] $signatureMethod */ $signatureMethod = Utils::xpQuery($xml, './ds:Signature/ds:SignedInfo/ds:SignatureMethod/@Algorithm'); /* Validate the signature element of the message. */ $sig = Utils::validateElement($xml); if ($sig !== false) { - $this->setWasSignedAtConstruction(true); + $this->wasSignedAtConstruction = true; $this->setCertificates($sig['Certificates']); $this->setSignatureData($sig); $this->setSignatureMethod($signatureMethod[0]->value); @@ -661,15 +663,15 @@ private function parseSignature(\DOMElement $xml) * @param XMLSecurityKey $key The key we should check against. * @return boolean true if successful, false if it is unsigned. */ - public function validate(XMLSecurityKey $key) + public function validate(XMLSecurityKey $key) : bool { Assert::same($key->type, XMLSecurityKey::RSA_SHA256); - if ($this->getSignatureData() === null) { + if ($this->signatureData === null) { return false; } - Utils::validateSignature($this->getSignatureData(), $key); + Utils::validateSignature($this->signatureData, $key); return true; } @@ -680,7 +682,7 @@ public function validate(XMLSecurityKey $key) * * @return string The identifier of this assertion. */ - public function getId() + public function getId() : string { return $this->id; } @@ -692,10 +694,8 @@ public function getId() * @param string $id The new identifier of this assertion. * @return void */ - public function setId($id) + public function setId(string $id) : void { - Assert::string($id); - $this->id = $id; } @@ -705,7 +705,7 @@ public function setId($id) * * @return int The issue timestamp of this assertion, as an UNIX timestamp. */ - public function getIssueInstant() + public function getIssueInstant() : int { return $this->issueInstant; } @@ -717,10 +717,8 @@ public function getIssueInstant() * @param int $issueInstant The new issue timestamp of this assertion, as an UNIX timestamp. * @return void */ - public function setIssueInstant($issueInstant) + public function setIssueInstant(int $issueInstant) : void { - Assert::integer($issueInstant); - $this->issueInstant = $issueInstant; } @@ -728,9 +726,9 @@ public function setIssueInstant($issueInstant) /** * Retrieve the issuer if this assertion. * - * @return string|\SAML2\XML\saml\Issuer The issuer of this assertion. + * @return \SAML2\XML\saml\Issuer The issuer of this assertion. */ - public function getIssuer() + public function getIssuer() : Issuer { return $this->issuer; } @@ -739,13 +737,11 @@ public function getIssuer() /** * Set the issuer of this message. * - * @param string|\SAML2\XML\saml\Issuer $issuer The new issuer of this assertion. + * @param \SAML2\XML\saml\Issuer $issuer The new issuer of this assertion. * @return void */ - public function setIssuer($issuer) + public function setIssuer(Issuer $issuer) : void { - Assert::true(is_string($issuer) || $issuer instanceof Issuer); - $this->issuer = $issuer; } @@ -756,7 +752,7 @@ public function setIssuer($issuer) * @throws \Exception * @return \SAML2\XML\saml\NameID|null The name identifier of the assertion. */ - public function getNameId() + public function getNameId() : ?NameID { if ($this->encryptedNameId !== null) { throw new \Exception('Attempted to retrieve encrypted NameID without decrypting it first.'); @@ -769,21 +765,14 @@ public function getNameId() /** * Set the NameId of the subject in the assertion. * - * The NameId must be a \SAML2\XML\saml\NameID object or an array in the format accepted by - * \SAML2\Utils::addNameId() (an array, deprecated). + * The NameId must be a \SAML2\XML\saml\NameID object. * * @see \SAML2\Utils::addNameId() - * @param \SAML2\XML\saml\NameID|array|null $nameId The name identifier of the assertion. + * @param \SAML2\XML\saml\NameID|null $nameId The name identifier of the assertion. * @return void */ - public function setNameId($nameId) + public function setNameId(NameID $nameId = null) : void { - Assert::true(is_array($nameId) || is_null($nameId) || $nameId instanceof NameID); - - if (is_array($nameId)) { - // @deprecated behaviour - $nameId = NameID::fromArray($nameId); - } $this->nameId = $nameId; } @@ -793,7 +782,7 @@ public function setNameId($nameId) * * @return bool True if the NameId is encrypted, false if not. */ - public function isNameIdEncrypted() + public function isNameIdEncrypted() : bool { return $this->encryptedNameId !== null; } @@ -805,13 +794,17 @@ public function isNameIdEncrypted() * @param XMLSecurityKey $key The encryption key. * @return void */ - public function encryptNameId(XMLSecurityKey $key) + public function encryptNameId(XMLSecurityKey $key) : void { - /* First create a XML representation of the NameID. */ + if ($this->nameId === null) { + throw new \Exception('Cannot encrypt NameID, no NameID set.'); + } + /* First create an XML representation of the NameID. */ $doc = DOMDocumentFactory::create(); $root = $doc->createElement('root'); $doc->appendChild($root); $this->nameId->toXML($root); + /** @var \DOMElement $nameId */ $nameId = $root->firstChild; Utils::getContainer()->debugMessage($nameId, 'encrypt'); @@ -827,6 +820,10 @@ public function encryptNameId(XMLSecurityKey $key) $symmetricKey->generateSessionKey(); $enc->encryptKey($key, $symmetricKey); + /** + * @var \DOMElement encryptedNameId + * @psalm-suppress UndefinedClass + */ $this->encryptedNameId = $enc->encryptNode($symmetricKey); $this->nameId = null; } @@ -839,7 +836,7 @@ public function encryptNameId(XMLSecurityKey $key) * @param array $blacklist Blacklisted decryption algorithms. * @return void */ - public function decryptNameId(XMLSecurityKey $key, array $blacklist = []) + public function decryptNameId(XMLSecurityKey $key, array $blacklist = []) : void { if ($this->encryptedNameId === null) { /* No NameID to decrypt. */ @@ -860,7 +857,7 @@ public function decryptNameId(XMLSecurityKey $key, array $blacklist = []) * * @return bool */ - public function hasEncryptedAttributes() + public function hasEncryptedAttributes() : bool { return $this->encryptedAttributes !== []; } @@ -874,7 +871,7 @@ public function hasEncryptedAttributes() * @throws \Exception * @return void */ - public function decryptAttributes(XMLSecurityKey $key, array $blacklist = []) + public function decryptAttributes(XMLSecurityKey $key, array $blacklist = []) : void { if (!$this->hasEncryptedAttributes()) { return; @@ -882,7 +879,7 @@ public function decryptAttributes(XMLSecurityKey $key, array $blacklist = []) $firstAttribute = true; $attributes = $this->getEncryptedAttributes(); foreach ($attributes as $attributeEnc) { - /*Decrypt node <EncryptedAttribute>*/ + /* Decrypt node <EncryptedAttribute> */ $attribute = Utils::decryptElement( $attributeEnc->getElementsByTagName('EncryptedData')->item(0), $key, @@ -926,7 +923,7 @@ public function decryptAttributes(XMLSecurityKey $key, array $blacklist = []) * * @return int|null The earliest timestamp this assertion is valid. */ - public function getNotBefore() + public function getNotBefore() : ?int { return $this->notBefore; } @@ -940,10 +937,8 @@ public function getNotBefore() * @param int|null $notBefore The earliest timestamp this assertion is valid. * @return void */ - public function setNotBefore($notBefore) + public function setNotBefore(int $notBefore = null) : void { - Assert::nullOrInteger($notBefore); - $this->notBefore = $notBefore; } @@ -956,7 +951,7 @@ public function setNotBefore($notBefore) * * @return int|null The latest timestamp this assertion is valid. */ - public function getNotOnOrAfter() + public function getNotOnOrAfter() : ?int { return $this->notOnOrAfter; } @@ -970,10 +965,8 @@ public function getNotOnOrAfter() * @param int|null $notOnOrAfter The latest timestamp this assertion is valid. * @return void */ - public function setNotOnOrAfter($notOnOrAfter) + public function setNotOnOrAfter(int $notOnOrAfter = null) : void { - Assert::nullOrInteger($notOnOrAfter); - $this->notOnOrAfter = $notOnOrAfter; } @@ -981,9 +974,9 @@ public function setNotOnOrAfter($notOnOrAfter) /** * Retrieve $requiredEncAttributes if attributes will be send encrypted * - * @return boolean Rrue to encrypt attributes in the assertion. + * @return bool True to encrypt attributes in the assertion. */ - public function getRequiredEncAttributes() + public function getRequiredEncAttributes() : bool { return $this->requiredEncAttributes; } @@ -992,12 +985,11 @@ public function getRequiredEncAttributes() /** * Set $requiredEncAttributes if attributes will be send encrypted * - * @param boolean $ea true to encrypt attributes in the assertion. + * @param bool $ea true to encrypt attributes in the assertion. * @return void */ - public function setRequiredEncAttributes($ea) + public function setRequiredEncAttributes(bool $ea) : void { - Assert::boolean($ea); $this->requiredEncAttributes = $ea; } @@ -1009,7 +1001,7 @@ public function setRequiredEncAttributes($ea) * * @return array|null The allowed audiences. */ - public function getValidAudiences() + public function getValidAudiences() : ?array { return $this->validAudiences; } @@ -1023,7 +1015,7 @@ public function getValidAudiences() * @param array|null $validAudiences The allowed audiences. * @return void */ - public function setValidAudiences(array $validAudiences = null) + public function setValidAudiences(array $validAudiences = null) : void { $this->validAudiences = $validAudiences; } @@ -1034,7 +1026,7 @@ public function setValidAudiences(array $validAudiences = null) * * @return int|null The timestamp the user was authenticated, or NULL if the user isn't authenticated. */ - public function getAuthnInstant() + public function getAuthnInstant() : ?int { return $this->authnInstant; } @@ -1046,10 +1038,8 @@ public function getAuthnInstant() * @param int|null $authnInstant Timestamp the user was authenticated, or NULL if we don't want an AuthnStatement. * @return void */ - public function setAuthnInstant($authnInstant) + public function setAuthnInstant(int $authnInstant = null) : void { - Assert::nullOrInteger($authnInstant); - $this->authnInstant = $authnInstant; } @@ -1062,7 +1052,7 @@ public function setAuthnInstant($authnInstant) * * @return int|null The latest timestamp this session is valid. */ - public function getSessionNotOnOrAfter() + public function getSessionNotOnOrAfter() : ?int { return $this->sessionNotOnOrAfter; } @@ -1076,10 +1066,8 @@ public function getSessionNotOnOrAfter() * @param int|null $sessionNotOnOrAfter The latest timestamp this session is valid. * @return void */ - public function setSessionNotOnOrAfter($sessionNotOnOrAfter) + public function setSessionNotOnOrAfter(int $sessionNotOnOrAfter = null) : void { - Assert::nullOrInteger($sessionNotOnOrAfter); - $this->sessionNotOnOrAfter = $sessionNotOnOrAfter; } @@ -1089,7 +1077,7 @@ public function setSessionNotOnOrAfter($sessionNotOnOrAfter) * * @return string|null The session index of the user at the IdP. */ - public function getSessionIndex() + public function getSessionIndex() : ?string { return $this->sessionIndex; } @@ -1104,10 +1092,8 @@ public function getSessionIndex() * @param string|null $sessionIndex The session index of the user at the IdP. * @return void */ - public function setSessionIndex($sessionIndex) + public function setSessionIndex(string $sessionIndex = null) : void { - Assert::nullOrString($sessionIndex); - $this->sessionIndex = $sessionIndex; } @@ -1118,51 +1104,9 @@ public function setSessionIndex($sessionIndex) * This will return null if no authentication statement was * included in the assertion. * - * Note that this returns either the AuthnContextClassRef or the AuthnConextDeclRef, whose definition overlaps - * but is slightly different (consult the specification for more information). - * This was done to work around an old bug of Shibboleth ( https://bugs.internet2.edu/jira/browse/SIDP-187 ). - * Should no longer be required, please use either getAuthnConextClassRef or getAuthnContextDeclRef. - * - * @deprecated use getAuthnContextClassRef * @return string|null The authentication method. */ - public function getAuthnContext() - { - if (!empty($this->authnContextClassRef)) { - return $this->authnContextClassRef; - } - if (!empty($this->authnContextDeclRef)) { - return $this->authnContextDeclRef; - } - return null; - } - - - /** - * Set the authentication method used to authenticate the user. - * - * If this is set to null, no authentication statement will be - * included in the assertion. The default is null. - * - * @deprecated use setAuthnContextClassRef - * @param string|null $authnContext The authentication method. - * @return void - */ - public function setAuthnContext($authnContext) - { - $this->setAuthnContextClassRef($authnContext); - } - - - /** - * Retrieve the authentication method used to authenticate the user. - * - * This will return null if no authentication statement was - * included in the assertion. - * - * @return string|null The authentication method. - */ - public function getAuthnContextClassRef() + public function getAuthnContextClassRef() : ?string { return $this->authnContextClassRef; } @@ -1177,10 +1121,8 @@ public function getAuthnContextClassRef() * @param string|null $authnContextClassRef The authentication method. * @return void */ - public function setAuthnContextClassRef($authnContextClassRef) + public function setAuthnContextClassRef(string $authnContextClassRef = null) : void { - Assert::nullOrString($authnContextClassRef); - $this->authnContextClassRef = $authnContextClassRef; } @@ -1190,7 +1132,7 @@ public function setAuthnContextClassRef($authnContextClassRef) * * @return string|null The signature method. */ - public function getSignatureMethod() + public function getSignatureMethod() : ?string { return $this->signatureMethod; } @@ -1202,10 +1144,8 @@ public function getSignatureMethod() * @param string|null $signatureMethod * @return void */ - public function setSignatureMethod($signatureMethod) + public function setSignatureMethod(string $signatureMethod = null) : void { - Assert::nullOrString($signatureMethod); - $this->signatureMethod = $signatureMethod; } @@ -1217,7 +1157,7 @@ public function setSignatureMethod($signatureMethod) * @throws \Exception * @return void */ - public function setAuthnContextDecl(Chunk $authnContextDecl) + public function setAuthnContextDecl(Chunk $authnContextDecl) : void { if (!empty($this->authnContextDeclRef)) { throw new \Exception( @@ -1237,7 +1177,7 @@ public function setAuthnContextDecl(Chunk $authnContextDecl) * * @return \SAML2\XML\Chunk|null */ - public function getAuthnContextDecl() + public function getAuthnContextDecl() : ?Chunk { return $this->authnContextDecl; } @@ -1246,11 +1186,11 @@ public function getAuthnContextDecl() /** * Set the authentication context declaration reference. * - * @param string|\SAML2\XML\Chunk $authnContextDeclRef + * @param string|null $authnContextDeclRef * @throws \Exception * @return void */ - public function setAuthnContextDeclRef($authnContextDeclRef) + public function setAuthnContextDeclRef(string $authnContextDeclRef = null) : void { if (!empty($this->authnContextDecl)) { throw new \Exception( @@ -1268,9 +1208,9 @@ public function setAuthnContextDeclRef($authnContextDeclRef) * * The URI reference MAY directly resolve into an XML document containing the referenced declaration. * - * @return string + * @return string|null */ - public function getAuthnContextDeclRef() + public function getAuthnContextDeclRef() : ?string { return $this->authnContextDeclRef; } @@ -1281,7 +1221,7 @@ public function getAuthnContextDeclRef() * * @return array */ - public function getAuthenticatingAuthority() + public function getAuthenticatingAuthority() : array { return $this->AuthenticatingAuthority; } @@ -1290,10 +1230,10 @@ public function getAuthenticatingAuthority() /** * Set the AuthenticatingAuthority * - * @param array + * @param array $authenticatingAuthority * @return void */ - public function setAuthenticatingAuthority(array $authenticatingAuthority) + public function setAuthenticatingAuthority(array $authenticatingAuthority) : void { $this->AuthenticatingAuthority = $authenticatingAuthority; } @@ -1304,7 +1244,7 @@ public function setAuthenticatingAuthority(array $authenticatingAuthority) * * @return array All attributes, as an associative array. */ - public function getAttributes() + public function getAttributes() : array { return $this->attributes; } @@ -1316,15 +1256,15 @@ public function getAttributes() * @param array $attributes All new attributes, as an associative array. * @return void */ - public function setAttributes(array $attributes) + public function setAttributes(array $attributes) : void { $this->attributes = $attributes; } /** - * @return array + * @return array|null */ - public function getSignatureData() + public function getSignatureData() : ?array { return $this->signatureData; } @@ -1334,7 +1274,7 @@ public function getSignatureData() * @param array|null $signatureData * @return void */ - public function setSignatureData(array $signatureData = null) + public function setSignatureData(array $signatureData = null) : void { $this->signatureData = $signatureData; } @@ -1345,7 +1285,7 @@ public function setSignatureData(array $signatureData = null) * * @return array All attributes value types, as an associative array. */ - public function getAttributesValueTypes() + public function getAttributesValueTypes() : array { return $this->attributesValueTypes; } @@ -1357,7 +1297,7 @@ public function getAttributesValueTypes() * @param array $attributesValueTypes All new attribute value types, as an associative array. * @return void */ - public function setAttributesValueTypes(array $attributesValueTypes) + public function setAttributesValueTypes(array $attributesValueTypes) : void { $this->attributesValueTypes = $attributesValueTypes; } @@ -1371,7 +1311,7 @@ public function setAttributesValueTypes(array $attributesValueTypes) * * @return string The NameFormat used on all attributes. */ - public function getAttributeNameFormat() + public function getAttributeNameFormat() : string { return $this->nameFormat; } @@ -1383,10 +1323,8 @@ public function getAttributeNameFormat() * @param string $nameFormat The NameFormat used on all attributes. * @return void */ - public function setAttributeNameFormat($nameFormat) + public function setAttributeNameFormat(string $nameFormat) : void { - Assert::string($nameFormat); - $this->nameFormat = $nameFormat; } @@ -1396,7 +1334,7 @@ public function setAttributeNameFormat($nameFormat) * * @return array Array of \SAML2\XML\saml\SubjectConfirmation elements. */ - public function getSubjectConfirmation() + public function getSubjectConfirmation() : array { return $this->SubjectConfirmation; } @@ -1408,7 +1346,7 @@ public function getSubjectConfirmation() * @param array $SubjectConfirmation Array of \SAML2\XML\saml\SubjectConfirmation elements. * @return void */ - public function setSubjectConfirmation(array $SubjectConfirmation) + public function setSubjectConfirmation(array $SubjectConfirmation) : void { $this->SubjectConfirmation = $SubjectConfirmation; } @@ -1419,7 +1357,7 @@ public function setSubjectConfirmation(array $SubjectConfirmation) * * @return array Array of \DOMElement elements. */ - public function getEncryptedAttributes() + public function getEncryptedAttributes() : array { return $this->encryptedAttributes; } @@ -1431,7 +1369,7 @@ public function getEncryptedAttributes() * @param array $encAttrs Array of \DOMElement elements. * @return void */ - public function setEncryptedAttributes(array $encAttrs) + public function setEncryptedAttributes(array $encAttrs) : void { $this->encryptedAttributes = $encAttrs; } @@ -1442,7 +1380,7 @@ public function setEncryptedAttributes(array $encAttrs) * * @return XMLSecurityKey|null The key, or NULL if no key is specified. */ - public function getSignatureKey() + public function getSignatureKey() : ?XMLSecurityKey { return $this->signatureKey; } @@ -1456,7 +1394,7 @@ public function getSignatureKey() * @param XMLSecurityKey|null $signatureKey * @return void */ - public function setSignatureKey(XMLSecurityKey $signatureKey = null) + public function setSignatureKey(XMLSecurityKey $signatureKey = null) : void { $this->signatureKey = $signatureKey; } @@ -1468,7 +1406,7 @@ public function setSignatureKey(XMLSecurityKey $signatureKey = null) * @return XMLSecurityKey|null The key, or NULL if no key is specified.. * */ - public function getEncryptionKey() + public function getEncryptionKey() : ?XMLSecurityKey { return $this->encryptionKey; } @@ -1480,7 +1418,7 @@ public function getEncryptionKey() * @param XMLSecurityKey|null $Key * @return void */ - public function setEncryptionKey(XMLSecurityKey $Key = null) + public function setEncryptionKey(XMLSecurityKey $Key = null) : void { $this->encryptionKey = $Key; } @@ -1494,7 +1432,7 @@ public function setEncryptionKey(XMLSecurityKey $Key = null) * @param array $certificates An array of certificates. * @return void */ - public function setCertificates(array $certificates) + public function setCertificates(array $certificates) : void { $this->certificates = $certificates; } @@ -1505,7 +1443,7 @@ public function setCertificates(array $certificates) * * @return array An array of certificates. */ - public function getCertificates() + public function getCertificates() : array { return $this->certificates; } @@ -1514,30 +1452,19 @@ public function getCertificates() /** * @return bool */ - public function getWasSignedAtConstruction() + public function wasSignedAtConstruction() : bool { return $this->wasSignedAtConstruction; } - /** - * @param bool $flag - * @return void - */ - public function setWasSignedAtConstruction($flag) - { - Assert::boolean($flag); - $this->wasSignedAtConstruction = $flag; - } - - /** * Convert this assertion to an XML element. * * @param \DOMNode|null $parentElement The DOM node the assertion should be created in. * @return \DOMElement This assertion. */ - public function toXML(\DOMNode $parentElement = null) + public function toXML(\DOMNode $parentElement = null) : DOMElement { if ($parentElement === null) { $document = DOMDocumentFactory::create(); @@ -1561,11 +1488,7 @@ public function toXML(\DOMNode $parentElement = null) $root->setAttribute('Version', '2.0'); $root->setAttribute('IssueInstant', gmdate('Y-m-d\TH:i:s\Z', $this->issueInstant)); - if (is_string($this->issuer)) { - $issuer = Utils::addString($root, Constants::NS_SAML, 'saml:Issuer', $this->issuer); - } elseif ($this->issuer instanceof Issuer) { - $issuer = $this->issuer->toXML($root); - } + $issuer = $this->issuer->toXML($root); $this->addSubject($root); $this->addConditions($root); @@ -1590,7 +1513,7 @@ public function toXML(\DOMNode $parentElement = null) * @param \DOMElement $root The assertion element we should add the subject to. * @return void */ - private function addSubject(\DOMElement $root) + private function addSubject(DOMElement $root) : void { if ($this->nameId === null && $this->encryptedNameId === null) { /* We don't have anything to create a Subject node for. */ @@ -1621,7 +1544,7 @@ private function addSubject(\DOMElement $root) * @param \DOMElement $root The assertion element we should add the conditions to. * @return void */ - private function addConditions(\DOMElement $root) + private function addConditions(DOMElement $root) : void { $document = $root->ownerDocument; @@ -1650,7 +1573,7 @@ private function addConditions(\DOMElement $root) * @param \DOMElement $root The assertion element we should add the authentication statement to. * @return void */ - private function addAuthnStatement(\DOMElement $root) + private function addAuthnStatement(DOMElement $root) : void { if ($this->authnInstant === null || ( @@ -1672,7 +1595,10 @@ private function addAuthnStatement(\DOMElement $root) $authnStatementEl->setAttribute('AuthnInstant', gmdate('Y-m-d\TH:i:s\Z', $this->authnInstant)); if ($this->sessionNotOnOrAfter !== null) { - $authnStatementEl->setAttribute('SessionNotOnOrAfter', gmdate('Y-m-d\TH:i:s\Z', $this->sessionNotOnOrAfter)); + $authnStatementEl->setAttribute( + 'SessionNotOnOrAfter', + gmdate('Y-m-d\TH:i:s\Z', $this->sessionNotOnOrAfter) + ); } if ($this->sessionIndex !== null) { $authnStatementEl->setAttribute('SessionIndex', $this->sessionIndex); @@ -1717,7 +1643,7 @@ private function addAuthnStatement(\DOMElement $root) * @param \DOMElement $root The assertion element we should add the subject to. * @return void */ - private function addAttributeStatement(\DOMElement $root) + private function addAttributeStatement(DOMElement $root) : void { if (empty($this->attributes)) { return; @@ -1744,8 +1670,10 @@ private function addAttributeStatement(\DOMElement $root) $attribute->appendChild($attributeValue); if ($eptiValue instanceof NameID) { $eptiValue->toXML($attributeValue); - } elseif ($eptiValue instanceof \DOMNodeList) { - $node = $root->ownerDocument->importNode($eptiValue->item(0), true); + } elseif ($eptiValue instanceof DOMNodeList) { + /** @var \DOMElement $value */ + $value = $eptiValue->item(0); + $node = $root->ownerDocument->importNode($value, true); $attributeValue->appendChild($node); } else { $attributeValue->textContent = $eptiValue; @@ -1756,10 +1684,11 @@ private function addAttributeStatement(\DOMElement $root) } // get value type(s) for the current attribute - if (is_array($this->attributesValueTypes) && array_key_exists($name, $this->attributesValueTypes)) { + if (array_key_exists($name, $this->attributesValueTypes)) { $valueTypes = $this->attributesValueTypes[$name]; if (is_array($valueTypes) && count($valueTypes) != count($values)) { - throw new \Exception('Array of value types and array of values have different size for attribute '.var_export($name, true)); + throw new \Exception('Array of value types and array of values have different size for attribute '. + var_export($name, true)); } } else { // if no type(s), default behaviour @@ -1801,11 +1730,12 @@ private function addAttributeStatement(\DOMElement $root) } if ($value instanceof \DOMNodeList) { - for ($i = 0; $i < $value->length; $i++) { - $node = $document->importNode($value->item($i), true); + foreach ($value as $v) { + $node = $document->importNode($v, true); $attributeValue->appendChild($node); } } else { + $value = strval($value); $attributeValue->appendChild($document->createTextNode($value)); } } @@ -1819,11 +1749,12 @@ private function addAttributeStatement(\DOMElement $root) * @param \DOMElement $root The assertion element we should add the Encrypted Attribute Statement to. * @return void */ - private function addEncryptedAttributeStatement(\DOMElement $root) + private function addEncryptedAttributeStatement(DOMElement $root) : void { if ($this->getRequiredEncAttributes() === false) { return; } + Assert::notNull($this->encryptionKey); $document = $root->ownerDocument; @@ -1855,12 +1786,13 @@ private function addEncryptedAttributeStatement(\DOMElement $root) $attributeValue->setAttributeNS(Constants::NS_XSI, 'xsi:type', $type); } - if ($value instanceof \DOMNodeList) { - for ($i = 0; $i < $value->length; $i++) { - $node = $document2->importNode($value->item($i), true); + if ($value instanceof DOMNodeList) { + foreach ($value as $v) { + $node = $document2->importNode($v, true); $attributeValue->appendChild($node); } } else { + $value = strval($value); $attributeValue->appendChild($document2->createTextNode($value)); } } @@ -1874,11 +1806,14 @@ private function addEncryptedAttributeStatement(\DOMElement $root) */ $symmetricKey = new XMLSecurityKey(XMLSecurityKey::AES256_CBC); $symmetricKey->generateSessionKey(); + /** @psalm-suppress PossiblyNullArgument */ $EncAssert->encryptKey($this->encryptionKey, $symmetricKey); + /** @psalm-suppress UndefinedClass */ $EncrNode = $EncAssert->encryptNode($symmetricKey); $EncAttribute = $document->createElementNS(Constants::NS_SAML, 'saml:EncryptedAttribute'); $attributeStatement->appendChild($EncAttribute); + /** @psalm-suppress InvalidArgument */ $n = $document->importNode($EncrNode, true); $EncAttribute->appendChild($n); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Decrypter.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Decrypter.php index a1ec8d5ec54149b375491c1c4c7e6c1e32568b6f..9a97f97676797afe7422fb419f527c45b1177b70 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Decrypter.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Decrypter.php @@ -1,8 +1,12 @@ <?php +declare(strict_types=1); + namespace SAML2\Assertion; use Psr\Log\LoggerInterface; + +use SAML2\Assertion; use SAML2\Assertion\Exception\NotDecryptedException; use SAML2\Certificate\PrivateKeyLoader; use SAML2\Configuration\IdentityProvider; @@ -58,7 +62,7 @@ public function __construct( * * @return bool */ - public function isEncryptionRequired() + public function isEncryptionRequired() : bool { return $this->identityProvider->isAssertionEncryptionRequired() || $this->serviceProvider->isAssertionEncryptionRequired(); @@ -70,7 +74,7 @@ public function isEncryptionRequired() * * @return \SAML2\Assertion */ - public function decrypt(EncryptedAssertion $assertion) + public function decrypt(EncryptedAssertion $assertion) : Assertion { $decryptionKeys = $this->privateKeyLoader->loadDecryptionKeys($this->identityProvider, $this->serviceProvider); $blacklistedKeys = $this->identityProvider->getBlacklistedAlgorithms(); diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Exception/InvalidAssertionException.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Exception/InvalidAssertionException.php index 3a4cea3d4baecfc6a019c2feb8a02e3f005d503c..0ac6bffebe26fd8043e9a8cc37116a79ac7cf3e1 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Exception/InvalidAssertionException.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Exception/InvalidAssertionException.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Assertion\Exception; use SAML2\Exception\RuntimeException; diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Exception/InvalidSubjectConfirmationException.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Exception/InvalidSubjectConfirmationException.php index a6836840a7ac9a8075c884640ebb262d38abcec0..7804ab6b21c341c75361a958cbb8595f8f27c5d4 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Exception/InvalidSubjectConfirmationException.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Exception/InvalidSubjectConfirmationException.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Assertion\Exception; use SAML2\Exception\RuntimeException; diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Exception/NotDecryptedException.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Exception/NotDecryptedException.php index a04874f999b982478dfda4687dfed9bb093f01d0..5c2cbf1a9ae29bc6ce9a518beb24cc96ecb5ec79 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Exception/NotDecryptedException.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Exception/NotDecryptedException.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Assertion\Exception; use SAML2\Exception\RuntimeException; diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Processor.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Processor.php index a2494b052acde0f8d71166629ebeadffa4cbf60e..306567bab98654ad32d0a527f086aa0b143685ad 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Processor.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Processor.php @@ -1,8 +1,11 @@ <?php +declare(strict_types=1); + namespace SAML2\Assertion; use Psr\Log\LoggerInterface; + use SAML2\Assertion; use SAML2\Assertion\Exception\InvalidAssertionException; use SAML2\Assertion\Exception\InvalidSubjectConfirmationException; @@ -10,14 +13,12 @@ use SAML2\Assertion\Validation\AssertionValidator; use SAML2\Assertion\Validation\SubjectConfirmationValidator; use SAML2\Configuration\IdentityProvider; +use SAML2\EncryptedAssertion; use SAML2\Response\Exception\InvalidSignatureException; use SAML2\Response\Exception\UnencryptedAssertionFoundException; use SAML2\Signature\Validator; use SAML2\Utilities\ArrayCollection; -/** - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - due to all the named exceptions - */ class Processor { /** @@ -85,13 +86,29 @@ public function __construct( /** + * Decrypt assertions, or do nothing if assertions are already decrypted. + * * @param \SAML2\Utilities\ArrayCollection $assertions - * @return \SAML2\Assertion[] Collection (\SAML2\Utilities\ArrayCollection) of processed assertions + * @return \SAML2\Utilities\ArrayCollection Collection of processed assertions */ - public function processAssertions($assertions) + public function decryptAssertions(ArrayCollection $assertions) + { + $decrypted = new ArrayCollection(); + foreach ($assertions->getIterator() as $assertion) { + $decrypted->add($this->decryptAssertion($assertion)); + } + + return $decrypted; + } + + /** + * @param \SAML2\Utilities\ArrayCollection $assertions Collection of decrypted assertions + * @return \SAML2\Utilities\ArrayCollection Collection of processed assertions + */ + public function processAssertions(ArrayCollection $assertions) : ArrayCollection { $processed = new ArrayCollection(); - foreach ($assertions as $assertion) { + foreach ($assertions->getIterator() as $assertion) { $processed->add($this->process($assertion)); } @@ -100,14 +117,12 @@ public function processAssertions($assertions) /** - * @param \SAML2\Assertion|\SAML2\EncryptedAssertion $assertion + * @param \SAML2\Assertion $assertion * @return \SAML2\Assertion */ - public function process($assertion) + public function process(Assertion $assertion): Assertion { - $assertion = $this->decryptAssertion($assertion); - - if (!$assertion->getWasSignedAtConstruction()) { + if (!$assertion->wasSignedAtConstruction()) { $this->logger->info(sprintf( 'Assertion with id "%s" was not signed at construction, not verifying the signature', $assertion->getId() @@ -116,7 +131,9 @@ public function process($assertion) $this->logger->info(sprintf('Verifying signature of Assertion with id "%s"', $assertion->getId())); if (!$this->signatureValidator->hasValidSignature($assertion, $this->identityProviderConfiguration)) { - throw new InvalidSignatureException(); + throw new InvalidSignatureException( + sprintf('The assertion with id "%s" does not have a valid signature', $assertion->getId()) + ); } } @@ -129,19 +146,11 @@ public function process($assertion) /** - * @param \SAML2\Assertion|\SAML2\EncryptedAssertion $assertion + * @param \SAML2\EncryptedAssertion $assertion * @return \SAML2\Assertion */ - private function decryptAssertion($assertion) + private function decryptAssertion(EncryptedAssertion $assertion): Assertion { - if ($this->decrypter->isEncryptionRequired() && $assertion instanceof Assertion) { - throw new UnencryptedAssertionFoundException(); - } - - if ($assertion instanceof Assertion) { - return $assertion; - } - return $this->decrypter->decrypt($assertion); } @@ -150,12 +159,12 @@ private function decryptAssertion($assertion) * @param \SAML2\Assertion $assertion * @return void */ - public function validateAssertion(Assertion $assertion) + public function validateAssertion(Assertion $assertion) : void { $assertionValidationResult = $this->assertionValidator->validate($assertion); if (!$assertionValidationResult->isValid()) { throw new InvalidAssertionException(sprintf( - 'Invalid Assertion in SAML Response, erorrs: "%s"', + 'Invalid Assertion in SAML Response, errors: "%s"', implode('", "', $assertionValidationResult->getErrors()) )); } @@ -178,7 +187,7 @@ public function validateAssertion(Assertion $assertion) * @param \SAML2\Assertion $assertion * @return \SAML2\Assertion */ - private function transformAssertion(Assertion $assertion) + private function transformAssertion(Assertion $assertion) : Assertion { return $this->transformer->transform($assertion); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/ProcessorBuilder.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/ProcessorBuilder.php index f04930cf601f496e1cf3d2f5818eef0d8108ffd4..aff5ca709fd30e8f3c3a2157306f68df1ee05572 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/ProcessorBuilder.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/ProcessorBuilder.php @@ -1,8 +1,11 @@ <?php +declare(strict_types=1); + namespace SAML2\Assertion; use Psr\Log\LoggerInterface; + use SAML2\Assertion\Transformer\DecodeBase64Transformer; use SAML2\Assertion\Transformer\NameIdDecryptionTransformer; use SAML2\Assertion\Transformer\TransformerChain; @@ -28,20 +31,17 @@ * Simple Builder that allows to build a new Assertion Processor. * * This is an excellent candidate for refactoring towards dependency injection - * - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class ProcessorBuilder { /** - * Constructor for ProcessorBuilder - * * @param LoggerInterface $logger * @param Validator $signatureValidator * @param Destination $currentDestination * @param IdentityProvider $identityProvider * @param ServiceProvider $serviceProvider * @param Response $response + * @return Processor */ public static function build( LoggerInterface $logger, @@ -50,7 +50,7 @@ public static function build( IdentityProvider $identityProvider, ServiceProvider $serviceProvider, Response $response - ) { + ) : Processor { $keyloader = new PrivateKeyLoader(); $decrypter = new Decrypter($logger, $identityProvider, $serviceProvider, $keyloader); $assertionValidator = self::createAssertionValidator($identityProvider, $serviceProvider); @@ -88,7 +88,7 @@ public static function build( private static function createAssertionValidator( IdentityProvider $identityProvider, ServiceProvider $serviceProvider - ) { + ) : AssertionValidator { $validator = new AssertionValidator($identityProvider, $serviceProvider); $validator->addConstraintValidator(new NotBefore()); $validator->addConstraintValidator(new NotOnOrAfter()); @@ -111,7 +111,7 @@ private static function createSubjectConfirmationValidator( ServiceProvider $serviceProvider, Destination $currentDestination, Response $response - ) { + ) : SubjectConfirmationValidator { $validator = new SubjectConfirmationValidator($identityProvider, $serviceProvider); $validator->addConstraintValidator( new SubjectConfirmationMethod() @@ -148,7 +148,7 @@ private static function createAssertionTransformerChain( PrivateKeyLoader $keyloader, IdentityProvider $identityProvider, ServiceProvider $serviceProvider - ) { + ) : TransformerChain { $chain = new TransformerChain($identityProvider, $serviceProvider); $chain->addTransformerStep(new DecodeBase64Transformer()); $chain->addTransformerStep( diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Transformer/DecodeBase64Transformer.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Transformer/DecodeBase64Transformer.php index e2522d18288c72b517691d2bec7386f4d1258201..c5aa0e383a95cead7cec2cbac762d4a84737bdea 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Transformer/DecodeBase64Transformer.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Transformer/DecodeBase64Transformer.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Assertion\Transformer; use SAML2\Assertion; @@ -20,7 +22,7 @@ class DecodeBase64Transformer implements * @param IdentityProvider $identityProvider * @return void */ - public function setIdentityProvider(IdentityProvider $identityProvider) + public function setIdentityProvider(IdentityProvider $identityProvider) : void { $this->identityProvider = $identityProvider; } @@ -30,7 +32,7 @@ public function setIdentityProvider(IdentityProvider $identityProvider) * @param Assertion $assertion * @return Assertion */ - public function transform(Assertion $assertion) + public function transform(Assertion $assertion) : Assertion { if (!$this->identityProvider->hasBase64EncodedAttributes()) { return $assertion; @@ -48,12 +50,10 @@ public function transform(Assertion $assertion) /** - * @param $value - * + * @param string $value * @return array - * @SuppressWarnings(PHPMD.UnusedPrivateMethod) */ - private function decodeValue($value) + private function decodeValue(string $value) : array { $elements = explode('_', $value); return array_map('base64_decode', $elements); diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Transformer/NameIdDecryptionTransformer.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Transformer/NameIdDecryptionTransformer.php index 0f4411523f891e4814717ad44a9c7603606f3968..cdd0a9ccab1c6d8cb8e0174aee9de600f5281cca 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Transformer/NameIdDecryptionTransformer.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Transformer/NameIdDecryptionTransformer.php @@ -1,8 +1,11 @@ <?php +declare(strict_types=1); + namespace SAML2\Assertion\Transformer; use Psr\Log\LoggerInterface; + use SAML2\Assertion; use SAML2\Assertion\Exception\NotDecryptedException; use SAML2\Certificate\PrivateKeyLoader; @@ -11,7 +14,7 @@ use SAML2\Configuration\ServiceProvider; use SAML2\Configuration\ServiceProviderAware; -class NameIdDecryptionTransformer implements +final class NameIdDecryptionTransformer implements Transformer, IdentityProviderAware, ServiceProviderAware @@ -54,9 +57,10 @@ public function __construct( /** * @param Assertion $assertion + * @throws \Exception * @return Assertion */ - public function transform(Assertion $assertion) + public function transform(Assertion $assertion) : Assertion { if (!$assertion->isNameIdEncrypted()) { return $assertion; @@ -96,7 +100,7 @@ public function transform(Assertion $assertion) * @param IdentityProvider $identityProvider * @return void */ - public function setIdentityProvider(IdentityProvider $identityProvider) + public function setIdentityProvider(IdentityProvider $identityProvider) : void { $this->identityProvider = $identityProvider; } @@ -106,7 +110,7 @@ public function setIdentityProvider(IdentityProvider $identityProvider) * @param ServiceProvider $serviceProvider * @return void */ - public function setServiceProvider(ServiceProvider $serviceProvider) + public function setServiceProvider(ServiceProvider $serviceProvider) : void { $this->serviceProvider = $serviceProvider; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Transformer/Transformer.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Transformer/Transformer.php index ad3afab941aa754c894d2d9a6d9fe52a8b237b27..4aac469411a743525f18e256f7fb7a7d53fb12b5 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Transformer/Transformer.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Transformer/Transformer.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Assertion\Transformer; use SAML2\Assertion; @@ -11,5 +13,5 @@ interface Transformer * * @return \SAML2\Assertion */ - public function transform(Assertion $assertion); + public function transform(Assertion $assertion) : Assertion; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Transformer/TransformerChain.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Transformer/TransformerChain.php index 8b34d462ed54540ed4186bee51e6255be39a5fab..fb5e2bd543e1138980713ca662a58db257bccf1b 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Transformer/TransformerChain.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Transformer/TransformerChain.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Assertion\Transformer; use SAML2\Assertion; @@ -45,7 +47,7 @@ public function __construct( * @param Transformer $transformer * @return void */ - public function addTransformerStep(Transformer $transformer) + public function addTransformerStep(Transformer $transformer) : void { if ($transformer instanceof IdentityProviderAware) { $transformer->setIdentityProvider($this->identityProvider); @@ -64,7 +66,7 @@ public function addTransformerStep(Transformer $transformer) * * @return \SAML2\Assertion */ - public function transform(Assertion $assertion) + public function transform(Assertion $assertion) : Assertion { foreach ($this->transformers as $transformer) { $assertion = $transformer->transform($assertion); diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/AssertionConstraintValidator.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/AssertionConstraintValidator.php index 9205ea03075b4fedbd1bcaa49504e4c96ab28659..279cf63a453c8ef1e0585258532a1a3e33fb2b0e 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/AssertionConstraintValidator.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/AssertionConstraintValidator.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Assertion\Validation; use SAML2\Assertion; @@ -11,5 +13,5 @@ interface AssertionConstraintValidator * @param Result $result * @return void */ - public function validate(Assertion $assertion, Result $result); + public function validate(Assertion $assertion, Result $result) : void; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/AssertionValidator.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/AssertionValidator.php index 11da8a261eb8cd358e8c7eb7c5acc12683f7566e..d4e61f5059d7aac52e6ee48934e3b0009cb138d9 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/AssertionValidator.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/AssertionValidator.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Assertion\Validation; use SAML2\Assertion; @@ -43,7 +45,7 @@ public function __construct( * @param AssertionConstraintValidator $constraint * @return void */ - public function addConstraintValidator(AssertionConstraintValidator $constraint) + public function addConstraintValidator(AssertionConstraintValidator $constraint) : void { if ($constraint instanceof IdentityProviderAware) { $constraint->setIdentityProvider($this->identityProvider); @@ -61,7 +63,7 @@ public function addConstraintValidator(AssertionConstraintValidator $constraint) * @param Assertion $assertion * @return Result */ - public function validate(Assertion $assertion) + public function validate(Assertion $assertion) : Result { $result = new Result(); foreach ($this->constraints as $validator) { diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/NotBefore.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/NotBefore.php index 5b9ea6dc759faa25cf6e965cee538181706f84ea..d0046138b868c6ed24cb5444154b2d6293c34f0e 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/NotBefore.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/NotBefore.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Assertion\Validation\ConstraintValidator; use SAML2\Assertion; @@ -15,7 +17,7 @@ class NotBefore implements * @param Result $result * @return void */ - public function validate(Assertion $assertion, Result $result) + public function validate(Assertion $assertion, Result $result) : void { $notBeforeTimestamp = $assertion->getNotBefore(); if (($notBeforeTimestamp !== null) && ($notBeforeTimestamp > (Temporal::getTime() + 60))) { diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/NotOnOrAfter.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/NotOnOrAfter.php index 83b634ea7d91fd947980b449e3af8c297cc8abc9..06baf9d093ec00fc89a7a6254924bd12188f3d80 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/NotOnOrAfter.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/NotOnOrAfter.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Assertion\Validation\ConstraintValidator; use SAML2\Assertion; @@ -15,7 +17,7 @@ class NotOnOrAfter implements * @param Result $result * @return void */ - public function validate(Assertion $assertion, Result $result) + public function validate(Assertion $assertion, Result $result) : void { $notValidOnOrAfterTimestamp = $assertion->getNotOnOrAfter(); if (($notValidOnOrAfterTimestamp !== null) && ($notValidOnOrAfterTimestamp <= (Temporal::getTime() - 60))) { diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SessionNotOnOrAfter.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SessionNotOnOrAfter.php index 0c9543a9b3c6dda1b8d5d5094363132602999956..bb570f8a22149c55713a917bd2f034b6f60a56dc 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SessionNotOnOrAfter.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SessionNotOnOrAfter.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Assertion\Validation\ConstraintValidator; use SAML2\Assertion; @@ -15,7 +17,7 @@ class SessionNotOnOrAfter implements * @param Result $result * @return void */ - public function validate(Assertion $assertion, Result $result) + public function validate(Assertion $assertion, Result $result) : void { $sessionNotOnOrAfterTimestamp = $assertion->getSessionNotOnOrAfter(); $currentTime = Temporal::getTime(); diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SpIsValidAudience.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SpIsValidAudience.php index 75fe7e0b2fb1aa0be4399e5f5435b690e715ee26..fd962a75172e149f00c71ba791018102cf545a53 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SpIsValidAudience.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SpIsValidAudience.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Assertion\Validation\ConstraintValidator; use SAML2\Assertion; @@ -22,7 +24,7 @@ class SpIsValidAudience implements * @param ServiceProvider $serviceProvider * @return void */ - public function setServiceProvider(ServiceProvider $serviceProvider) + public function setServiceProvider(ServiceProvider $serviceProvider) : void { $this->serviceProvider = $serviceProvider; } @@ -33,7 +35,7 @@ public function setServiceProvider(ServiceProvider $serviceProvider) * @param Result $result * @return void */ - public function validate(Assertion $assertion, Result $result) + public function validate(Assertion $assertion, Result $result) : void { $intendedAudiences = $assertion->getValidAudiences(); if ($intendedAudiences === null) { diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SubjectConfirmationMethod.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SubjectConfirmationMethod.php index a0ea751e19aa0aea4b37abf06440d9807f38a908..9296114b06ba5385b283c65b281128a3a43190f1 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SubjectConfirmationMethod.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SubjectConfirmationMethod.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Assertion\Validation\ConstraintValidator; use SAML2\Assertion\Validation\Result; @@ -7,8 +9,7 @@ use SAML2\Constants; use SAML2\XML\saml\SubjectConfirmation; -class SubjectConfirmationMethod implements - SubjectConfirmationConstraintValidator +final class SubjectConfirmationMethod implements SubjectConfirmationConstraintValidator { /** * @param SubjectConfirmation $subjectConfirmation @@ -18,8 +19,8 @@ class SubjectConfirmationMethod implements public function validate( SubjectConfirmation $subjectConfirmation, Result $result - ) { - if ($subjectConfirmation->Method !== Constants::CM_BEARER) { + ) : void { + if ($subjectConfirmation->getMethod() !== Constants::CM_BEARER) { $result->addError(sprintf( 'Invalid Method on SubjectConfirmation, current;y only Bearer (%s) is supported', Constants::CM_BEARER diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SubjectConfirmationNotBefore.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SubjectConfirmationNotBefore.php index 3642d7ae9aeca6c541ffab83be61364da61b3b7f..4ccd6e77802fe33b57762e0eef556668793a9350 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SubjectConfirmationNotBefore.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SubjectConfirmationNotBefore.php @@ -1,11 +1,14 @@ <?php +declare(strict_types=1); + namespace SAML2\Assertion\Validation\ConstraintValidator; use SAML2\Assertion\Validation\Result; use SAML2\Assertion\Validation\SubjectConfirmationConstraintValidator; use SAML2\Utilities\Temporal; use SAML2\XML\saml\SubjectConfirmation; +use Webmozart\Assert\Assert; class SubjectConfirmationNotBefore implements SubjectConfirmationConstraintValidator @@ -18,8 +21,12 @@ class SubjectConfirmationNotBefore implements public function validate( SubjectConfirmation $subjectConfirmation, Result $result - ) { - $notBefore = $subjectConfirmation->getSubjectConfirmationData()->getNotBefore(); + ) : void { + $data = $subjectConfirmation->getSubjectConfirmationData(); + Assert::notNull($data); + + /** @psalm-suppress PossiblyNullReference */ + $notBefore = $data->getNotBefore(); if ($notBefore && $notBefore > Temporal::getTime() + 60) { $result->addError('NotBefore in SubjectConfirmationData is in the future'); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SubjectConfirmationNotOnOrAfter.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SubjectConfirmationNotOnOrAfter.php index 4a0fb076aa469e630a76debc802636b451207786..e17e388d0d8f00917a803073bb7f0f77d6fd6167 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SubjectConfirmationNotOnOrAfter.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SubjectConfirmationNotOnOrAfter.php @@ -1,11 +1,14 @@ <?php +declare(strict_types=1); + namespace SAML2\Assertion\Validation\ConstraintValidator; use SAML2\Assertion\Validation\Result; use SAML2\Assertion\Validation\SubjectConfirmationConstraintValidator; use SAML2\Utilities\Temporal; use SAML2\XML\saml\SubjectConfirmation; +use Webmozart\Assert\Assert; class SubjectConfirmationNotOnOrAfter implements SubjectConfirmationConstraintValidator @@ -18,8 +21,12 @@ class SubjectConfirmationNotOnOrAfter implements public function validate( SubjectConfirmation $subjectConfirmation, Result $result - ) { - $notOnOrAfter = $subjectConfirmation->getSubjectConfirmationData()->getNotOnOrAfter(); + ) : void { + $data = $subjectConfirmation->getSubjectConfirmationData(); + Assert::notNull($data); + + /** @psalm-suppress PossiblyNullReference */ + $notOnOrAfter = $data->getNotOnOrAfter(); if ($notOnOrAfter && $notOnOrAfter <= Temporal::getTime() - 60) { $result->addError('NotOnOrAfter in SubjectConfirmationData is in the past'); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SubjectConfirmationRecipientMatches.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SubjectConfirmationRecipientMatches.php index 81b5002205a029d5de950fb091e4031ef988dc68..b9f1399c8fdbfbef6e15cff9f6f057f5b85cea07 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SubjectConfirmationRecipientMatches.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SubjectConfirmationRecipientMatches.php @@ -1,7 +1,11 @@ <?php +declare(strict_types=1); + namespace SAML2\Assertion\Validation\ConstraintValidator; +use Webmozart\Assert\Assert; + use SAML2\Assertion\Validation\Result; use SAML2\Assertion\Validation\SubjectConfirmationConstraintValidator; use SAML2\Configuration\Destination; @@ -27,20 +31,22 @@ public function __construct(Destination $destination) /** - * @param SubjectConfirmation + * @param SubjectConfirmation $subjectConfirmation * @param Result $result * @return void */ - public function validate( - SubjectConfirmation $subjectConfirmation, - Result $result - ) { - $recipient = $subjectConfirmation->getSubjectConfirmationData()->getRecipient(); + public function validate(SubjectConfirmation $subjectConfirmation, Result $result) : void + { + $data = $subjectConfirmation->getSubjectConfirmationData(); + Assert::notNull($data); + + /** @psalm-suppress PossiblyNullReference */ + $recipient = $data->getRecipient(); if ($recipient && !$this->destination->equals(new Destination($recipient))) { $result->addError(sprintf( 'Recipient in SubjectConfirmationData ("%s") does not match the current destination ("%s")', $recipient, - $this->destination + strval($this->destination) )); } } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SubjectConfirmationResponseToMatches.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SubjectConfirmationResponseToMatches.php index 99dd5d9e1ebaf15fde551fe9138a34a9564bea3f..e01fefb59b578baf63eb21e2677279d6d8cadf95 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SubjectConfirmationResponseToMatches.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/ConstraintValidator/SubjectConfirmationResponseToMatches.php @@ -1,7 +1,11 @@ <?php +declare(strict_types=1); + namespace SAML2\Assertion\Validation\ConstraintValidator; +use Webmozart\Assert\Assert; + use SAML2\Assertion\Validation\Result; use SAML2\Assertion\Validation\SubjectConfirmationConstraintValidator; use SAML2\Response; @@ -25,15 +29,17 @@ public function __construct(Response $response) /** - * @param SubjectConfirmation + * @param \SAML2\XML\saml\SubjectConfirmation $subjectConfirmation * @param Result $result * @return void */ - public function validate( - SubjectConfirmation $subjectConfirmation, - Result $result - ) { - $inResponseTo = $subjectConfirmation->getSubjectConfirmationData()->getInResponseTo(); + public function validate(SubjectConfirmation $subjectConfirmation, Result $result) : void + { + $data = $subjectConfirmation->getSubjectConfirmationData(); + Assert::notNull($data); + + /** @psalm-suppress PossiblyNullReference */ + $inResponseTo = $data->getInResponseTo(); if ($inResponseTo && ($this->getInResponseTo() !== false) && ($this->getInResponseTo() !== $inResponseTo)) { $result->addError(sprintf( 'InResponseTo in SubjectConfirmationData ("%s") does not match the Response InResponseTo ("%s")', diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/Result.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/Result.php index 17bb3194667c374128085ded1eef4093fcda509a..44d84f9307947e3abc5733e9fbd82c6a969d7175 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/Result.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/Result.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Assertion\Validation; use SAML2\Exception\InvalidArgumentException; @@ -19,12 +21,8 @@ class Result * @param $message * @return void */ - public function addError($message) + public function addError(string $message) : void { - if (!is_string($message)) { - throw InvalidArgumentException::invalidType('string', $message); - } - $this->errors[] = $message; } @@ -32,7 +30,7 @@ public function addError($message) /** * @return bool */ - public function isValid() + public function isValid() : bool { return empty($this->errors); } @@ -41,7 +39,7 @@ public function isValid() /** * @return array */ - public function getErrors() + public function getErrors() : array { return $this->errors; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/SubjectConfirmationConstraintValidator.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/SubjectConfirmationConstraintValidator.php index 02759290f6b92ab84a2ce8162d7a8440c9240ea8..a6ce33f950b3449377686a9c62b33c18ee2d14b7 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/SubjectConfirmationConstraintValidator.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/SubjectConfirmationConstraintValidator.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Assertion\Validation; use SAML2\XML\saml\SubjectConfirmation; @@ -14,5 +16,5 @@ interface SubjectConfirmationConstraintValidator public function validate( SubjectConfirmation $subjectConfirmation, Result $result - ); + ) : void; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/SubjectConfirmationValidator.php b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/SubjectConfirmationValidator.php index 7e65d4105a7577eac1a93ff53467bd6dc7837ea3..fd7c9331710a8001cc6cc0440de1716b63ea3ff2 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/SubjectConfirmationValidator.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Assertion/Validation/SubjectConfirmationValidator.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Assertion\Validation; use SAML2\Configuration\IdentityProvider; @@ -47,7 +49,7 @@ public function __construct( */ public function addConstraintValidator( SubjectConfirmationConstraintValidator $constraint - ) { + ) : void { if ($constraint instanceof IdentityProviderAware) { $constraint->setIdentityProvider($this->identityProvider); } @@ -64,7 +66,7 @@ public function addConstraintValidator( * @param SubjectConfirmation $subjectConfirmation * @return Result */ - public function validate(SubjectConfirmation $subjectConfirmation) + public function validate(SubjectConfirmation $subjectConfirmation) : Result { $result = new Result(); foreach ($this->constraints as $validator) { diff --git a/vendor/simplesamlphp/saml2/src/SAML2/AttributeQuery.php b/vendor/simplesamlphp/saml2/src/SAML2/AttributeQuery.php index 170f29e7bf39109c118e94302870ed881fc1d9cd..8102aa2363ca63e66d111fcca289247551ceb2c8 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/AttributeQuery.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/AttributeQuery.php @@ -1,8 +1,10 @@ <?php +declare(strict_types=1); + namespace SAML2; -use Webmozart\Assert\Assert; +use DOMElement; /** * Class for SAML 2 attribute query messages. @@ -26,7 +28,7 @@ class AttributeQuery extends SubjectQuery * * @var array */ - private $attributes; + private $attributes = []; /** * The NameFormat used on all attributes. @@ -45,7 +47,7 @@ class AttributeQuery extends SubjectQuery * @param \DOMElement|null $xml The input message. * @throws \Exception */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { parent::__construct('AttributeQuery', $xml); @@ -57,6 +59,7 @@ public function __construct(\DOMElement $xml = null) } $firstAttribute = true; + /** @var \DOMElement[] $attributes */ $attributes = Utils::xpQuery($xml, './saml_assertion:Attribute'); foreach ($attributes as $attribute) { if (!$attribute->hasAttribute('Name')) { @@ -96,7 +99,7 @@ public function __construct(\DOMElement $xml = null) * * @return array All requested attributes, as an associative array. */ - public function getAttributes() + public function getAttributes() : array { return $this->attributes; } @@ -108,7 +111,7 @@ public function getAttributes() * @param array $attributes All requested attributes, as an associative array. * @return void */ - public function setAttributes(array $attributes) + public function setAttributes(array $attributes) : void { $this->attributes = $attributes; } @@ -122,7 +125,7 @@ public function setAttributes(array $attributes) * * @return string The NameFormat used on all attributes. */ - public function getAttributeNameFormat() + public function getAttributeNameFormat() : string { return $this->nameFormat; } @@ -134,10 +137,8 @@ public function getAttributeNameFormat() * @param string $nameFormat The NameFormat used on all attributes. * @return void */ - public function setAttributeNameFormat($nameFormat) + public function setAttributeNameFormat(string $nameFormat) : void { - Assert::string($nameFormat); - $this->nameFormat = $nameFormat; } @@ -147,7 +148,7 @@ public function setAttributeNameFormat($nameFormat) * * @return \DOMElement This attribute query. */ - public function toUnsignedXML() + public function toUnsignedXML() : DOMElement { $root = parent::toUnsignedXML(); @@ -169,7 +170,12 @@ public function toUnsignedXML() $type = null; } - $attributeValue = Utils::addString($attribute, Constants::NS_SAML, 'saml:AttributeValue', strval($value)); + $attributeValue = Utils::addString( + $attribute, + Constants::NS_SAML, + 'saml:AttributeValue', + strval($value) + ); if ($type !== null) { $attributeValue->setAttributeNS(Constants::NS_XSI, 'xsi:type', $type); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/AuthnRequest.php b/vendor/simplesamlphp/saml2/src/SAML2/AuthnRequest.php index 8ce7f69275796b30c55da545d8f8c3f1e8c3f127..a3756a46b1624697603f0b6a51afd1e2b2d71d1f 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/AuthnRequest.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/AuthnRequest.php @@ -1,13 +1,18 @@ <?php +declare(strict_types=1); + namespace SAML2; +use DOMDocument; +use DOMElement; use RobRichards\XMLSecLibs\XMLSecEnc; use RobRichards\XMLSecLibs\XMLSecurityKey; +use Webmozart\Assert\Assert; + use SAML2\XML\saml\NameID; use SAML2\XML\saml\SubjectConfirmation; use SAML2\Exception\InvalidArgumentException; -use Webmozart\Assert\Assert; /** * Class for SAML 2 authentication request messages. @@ -21,28 +26,28 @@ class AuthnRequest extends Request * * @var array */ - private $nameIdPolicy; + private $nameIdPolicy = []; /** * Whether the Identity Provider must authenticate the user again. * * @var bool */ - private $forceAuthn; + private $forceAuthn = false; /** * Optional ProviderID attribute * - * @var string + * @var string|null */ - private $ProviderName; + private $ProviderName = null; /** * Set to true if this request is passive. * * @var bool */ - private $isPassive; + private $isPassive = false; /** * The list of providerIDs in this request's scoping element @@ -54,7 +59,7 @@ class AuthnRequest extends Request /** * The ProxyCount in this request's scoping element * - * @var int + * @var int|null */ private $ProxyCount = null; @@ -101,7 +106,7 @@ class AuthnRequest extends Request * - AuthnContextClassRef (required) * - Comparison (optinal) * - * @var array + * @var array|null */ private $requestedAuthnContext; @@ -118,14 +123,14 @@ class AuthnRequest extends Request private $subjectConfirmation = []; /** - * @var string + * @var \DOMElement|null */ - private $encryptedNameId; + private $encryptedNameId = null; /** - * @var \SAML2\XML\saml\NameID + * @var \SAML2\XML\saml\NameID|null */ - private $nameId; + private $nameId = null; /** @@ -134,14 +139,10 @@ class AuthnRequest extends Request * @param \DOMElement|null $xml The input message. * @throws \Exception */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { parent::__construct('AuthnRequest', $xml); - $this->nameIdPolicy = []; - $this->forceAuthn = false; - $this->isPassive = false; - if ($xml === null) { return; } @@ -158,11 +159,11 @@ public function __construct(\DOMElement $xml = null) } if ($xml->hasAttribute('AttributeConsumingServiceIndex')) { - $this->attributeConsumingServiceIndex = (int) $xml->getAttribute('AttributeConsumingServiceIndex'); + $this->attributeConsumingServiceIndex = intval($xml->getAttribute('AttributeConsumingServiceIndex')); } if ($xml->hasAttribute('AssertionConsumerServiceIndex')) { - $this->assertionConsumerServiceIndex = (int) $xml->getAttribute('AssertionConsumerServiceIndex'); + $this->assertionConsumerServiceIndex = intval($xml->getAttribute('AssertionConsumerServiceIndex')); } if ($xml->hasAttribute('ProviderName')) { @@ -182,8 +183,9 @@ public function __construct(\DOMElement $xml = null) * @throws \Exception * @return void */ - private function parseSubject(\DOMElement $xml) + private function parseSubject(DOMElement $xml) : void { + /** @var \DOMElement[] $subject */ $subject = Utils::xpQuery($xml, './saml_assertion:Subject'); if (empty($subject)) { return; @@ -194,6 +196,7 @@ private function parseSubject(\DOMElement $xml) } $subject = $subject[0]; + /** @var \DOMElement[] $nameId */ $nameId = Utils::xpQuery( $subject, './saml_assertion:NameID | ./saml_assertion:EncryptedID/xenc:EncryptedData' @@ -204,13 +207,13 @@ private function parseSubject(\DOMElement $xml) throw new \Exception('More than one <saml:NameID> or <saml:EncryptedID> in <saml:Subject>.'); } $nameId = $nameId[0]; - if ($nameId->localName === 'EncryptedData') { - /* The NameID element is encrypted. */ + if ($nameId->localName === 'EncryptedData') { // the NameID element is encrypted $this->encryptedNameId = $nameId; } else { $this->nameId = new NameID($nameId); } + /** @var \DOMElement[] $subjectConfirmation */ $subjectConfirmation = Utils::xpQuery($subject, './saml_assertion:SubjectConfirmation'); foreach ($subjectConfirmation as $sc) { $this->subjectConfirmation[] = new SubjectConfirmation($sc); @@ -223,8 +226,9 @@ private function parseSubject(\DOMElement $xml) * @throws \Exception * @return void */ - protected function parseNameIdPolicy(\DOMElement $xml) + protected function parseNameIdPolicy(DOMElement $xml) : void { + /** @var \DOMElement[] $nameIdPolicy */ $nameIdPolicy = Utils::xpQuery($xml, './saml_protocol:NameIDPolicy'); if (empty($nameIdPolicy)) { return; @@ -247,8 +251,9 @@ protected function parseNameIdPolicy(\DOMElement $xml) * @param \DOMElement $xml * @return void */ - protected function parseRequestedAuthnContext(\DOMElement $xml) + protected function parseRequestedAuthnContext(DOMElement $xml) : void { + /** @var \DOMElement[] $requestedAuthnContext */ $requestedAuthnContext = Utils::xpQuery($xml, './saml_protocol:RequestedAuthnContext'); if (empty($requestedAuthnContext)) { return; @@ -261,6 +266,7 @@ protected function parseRequestedAuthnContext(\DOMElement $xml) 'Comparison' => Constants::COMPARISON_EXACT, ]; + /** @var \DOMElement[] $accr */ $accr = Utils::xpQuery($requestedAuthnContext, './saml_assertion:AuthnContextClassRef'); foreach ($accr as $i) { $rac['AuthnContextClassRef'][] = trim($i->textContent); @@ -279,8 +285,9 @@ protected function parseRequestedAuthnContext(\DOMElement $xml) * @throws \Exception * @return void */ - protected function parseScoping(\DOMElement $xml) + protected function parseScoping(DOMElement $xml) : void { + /** @var \DOMElement[] $scoping */ $scoping = Utils::xpQuery($xml, './saml_protocol:Scoping'); if (empty($scoping)) { return; @@ -291,6 +298,7 @@ protected function parseScoping(\DOMElement $xml) if ($scoping->hasAttribute('ProxyCount')) { $this->ProxyCount = (int) $scoping->getAttribute('ProxyCount'); } + /** @var \DOMElement[] $idpEntries */ $idpEntries = Utils::xpQuery($scoping, './saml_protocol:IDPList/saml_protocol:IDPEntry'); foreach ($idpEntries as $idpEntry) { @@ -300,6 +308,7 @@ protected function parseScoping(\DOMElement $xml) $this->IDPList[] = $idpEntry->getAttribute('ProviderID'); } + /** @var \DOMElement[] $requesterIDs */ $requesterIDs = Utils::xpQuery($scoping, './saml_protocol:RequesterID'); foreach ($requesterIDs as $requesterID) { $this->RequesterID[] = trim($requesterID->textContent); @@ -311,20 +320,23 @@ protected function parseScoping(\DOMElement $xml) * @param \DOMElement $xml * @return void */ - protected function parseConditions(\DOMElement $xml) + protected function parseConditions(DOMElement $xml) : void { + /** @var \DOMElement[] $conditions */ $conditions = Utils::xpQuery($xml, './saml_assertion:Conditions'); if (empty($conditions)) { return; } $conditions = $conditions[0]; + /** @var \DOMElement[] $ar */ $ar = Utils::xpQuery($conditions, './saml_assertion:AudienceRestriction'); if (empty($ar)) { return; } $ar = $ar[0]; + /** @var \DOMElement[] $audiences */ $audiences = Utils::xpQuery($ar, './saml_assertion:Audience'); $this->audiences = array(); foreach ($audiences as $a) { @@ -339,7 +351,7 @@ protected function parseConditions(\DOMElement $xml) * @see \SAML2\AuthnRequest::setNameIdPolicy() * @return array The NameIdPolicy. */ - public function getNameIdPolicy() + public function getNameIdPolicy() : array { return $this->nameIdPolicy; } @@ -356,7 +368,7 @@ public function getNameIdPolicy() * @param array $nameIdPolicy The NameIDPolicy. * @return void */ - public function setNameIdPolicy(array $nameIdPolicy) + public function setNameIdPolicy(array $nameIdPolicy) : void { if (isset($nameIdPolicy['Format']) && !is_string($nameIdPolicy['Format'])) { throw InvalidArgumentException::invalidType('string', $nameIdPolicy['Format']); @@ -377,7 +389,7 @@ public function setNameIdPolicy(array $nameIdPolicy) * * @return bool The ForceAuthn attribute. */ - public function getForceAuthn() + public function getForceAuthn() : bool { return $this->forceAuthn; } @@ -389,10 +401,8 @@ public function getForceAuthn() * @param bool $forceAuthn The ForceAuthn attribute. * @return void */ - public function setForceAuthn($forceAuthn) + public function setForceAuthn(bool $forceAuthn) : void { - Assert::boolean($forceAuthn); - $this->forceAuthn = $forceAuthn; } @@ -400,9 +410,9 @@ public function setForceAuthn($forceAuthn) /** * Retrieve the value of the ProviderName attribute. * - * @return string The ProviderName attribute. + * @return string|null The ProviderName attribute. */ - public function getProviderName() + public function getProviderName() : ?string { return $this->ProviderName; } @@ -414,10 +424,8 @@ public function getProviderName() * @param string $ProviderName The ProviderName attribute. * @return void */ - public function setProviderName($ProviderName) + public function setProviderName(string $ProviderName) : void { - Assert::string($ProviderName); - $this->ProviderName = $ProviderName; } @@ -427,7 +435,7 @@ public function setProviderName($ProviderName) * * @return bool The IsPassive attribute. */ - public function getIsPassive() + public function getIsPassive() : bool { return $this->isPassive; } @@ -439,21 +447,19 @@ public function getIsPassive() * @param bool $isPassive The IsPassive attribute. * @return void */ - public function setIsPassive($isPassive) + public function setIsPassive(bool $isPassive) : void { - Assert::boolean($isPassive); - $this->isPassive = $isPassive; } /** * Retrieve the audiences from the request. - * This may be null, in which case no audience is included. + * This may be an empty string, in which case no audience is included. * * @return array The audiences. */ - public function getAudiences() + public function getAudiences() : array { return $this->audiences; } @@ -461,12 +467,12 @@ public function getAudiences() /** * Set the audiences to send in the request. - * This may be null, in which case no audience will be sent. + * This may be an empty string, in which case no audience will be sent. * - * @param array|null $audiences The audiences. + * @param array $audiences The audiences. * @return void */ - public function setAudiences(array $audiences) + public function setAudiences(array $audiences) : void { $this->audiences = $audiences; } @@ -488,7 +494,7 @@ public function setAudiences(array $audiences) * @param array $IDPList List of idpEntries to scope the request to. * @return void */ - public function setIDPList(array $IDPList) + public function setIDPList(array $IDPList) : void { $this->IDPList = $IDPList; } @@ -500,7 +506,7 @@ public function setIDPList(array $IDPList) * * @return array List of idp EntityIDs from the request */ - public function getIDPList() + public function getIDPList() : array { return $this->IDPList; } @@ -510,9 +516,8 @@ public function getIDPList() * @param int $ProxyCount * @return void */ - public function setProxyCount($ProxyCount) + public function setProxyCount(int $ProxyCount) : void { - Assert::integer($ProxyCount); $this->ProxyCount = $ProxyCount; } @@ -520,7 +525,7 @@ public function setProxyCount($ProxyCount) /** * @return int|null */ - public function getProxyCount() + public function getProxyCount() : ?int { return $this->ProxyCount; } @@ -530,7 +535,7 @@ public function getProxyCount() * @param array $RequesterID * @return void */ - public function setRequesterID(array $RequesterID) + public function setRequesterID(array $RequesterID) : void { $this->RequesterID = $RequesterID; } @@ -539,7 +544,7 @@ public function setRequesterID(array $RequesterID) /** * @return array */ - public function getRequesterID() + public function getRequesterID() : array { return $this->RequesterID; } @@ -550,7 +555,7 @@ public function getRequesterID() * * @return string|null The AssertionConsumerServiceURL attribute. */ - public function getAssertionConsumerServiceURL() + public function getAssertionConsumerServiceURL() : ?string { return $this->assertionConsumerServiceURL; } @@ -562,10 +567,8 @@ public function getAssertionConsumerServiceURL() * @param string|null $assertionConsumerServiceURL The AssertionConsumerServiceURL attribute. * @return void */ - public function setAssertionConsumerServiceURL($assertionConsumerServiceURL) + public function setAssertionConsumerServiceURL(string $assertionConsumerServiceURL = null) : void { - Assert::nullOrString($assertionConsumerServiceURL); - $this->assertionConsumerServiceURL = $assertionConsumerServiceURL; } @@ -575,7 +578,7 @@ public function setAssertionConsumerServiceURL($assertionConsumerServiceURL) * * @return string|null The ProtocolBinding attribute. */ - public function getProtocolBinding() + public function getProtocolBinding() : ?string { return $this->protocolBinding; } @@ -587,10 +590,8 @@ public function getProtocolBinding() * @param string $protocolBinding The ProtocolBinding attribute. * @return void */ - public function setProtocolBinding($protocolBinding) + public function setProtocolBinding(string $protocolBinding = null) : void { - Assert::nullOrString($protocolBinding); - $this->protocolBinding = $protocolBinding; } @@ -600,7 +601,7 @@ public function setProtocolBinding($protocolBinding) * * @return int|null The AttributeConsumingServiceIndex attribute. */ - public function getAttributeConsumingServiceIndex() + public function getAttributeConsumingServiceIndex() : ?int { return $this->attributeConsumingServiceIndex; } @@ -612,10 +613,8 @@ public function getAttributeConsumingServiceIndex() * @param int|null $attributeConsumingServiceIndex The AttributeConsumingServiceIndex attribute. * @return void */ - public function setAttributeConsumingServiceIndex($attributeConsumingServiceIndex) + public function setAttributeConsumingServiceIndex(int $attributeConsumingServiceIndex = null) : void { - Assert::nullOrInteger($attributeConsumingServiceIndex); - $this->attributeConsumingServiceIndex = $attributeConsumingServiceIndex; } @@ -625,7 +624,7 @@ public function setAttributeConsumingServiceIndex($attributeConsumingServiceInde * * @return int|null The AssertionConsumerServiceIndex attribute. */ - public function getAssertionConsumerServiceIndex() + public function getAssertionConsumerServiceIndex() : ?int { return $this->assertionConsumerServiceIndex; } @@ -637,10 +636,8 @@ public function getAssertionConsumerServiceIndex() * @param int|null $assertionConsumerServiceIndex The AssertionConsumerServiceIndex attribute. * @return void */ - public function setAssertionConsumerServiceIndex($assertionConsumerServiceIndex) + public function setAssertionConsumerServiceIndex(int $assertionConsumerServiceIndex = null) : void { - Assert::nullOrString($assertionConsumerServiceIndex); - $this->assertionConsumerServiceIndex = $assertionConsumerServiceIndex; } @@ -650,7 +647,7 @@ public function setAssertionConsumerServiceIndex($assertionConsumerServiceIndex) * * @return array|null The RequestedAuthnContext. */ - public function getRequestedAuthnContext() + public function getRequestedAuthnContext() : ?array { return $this->requestedAuthnContext; } @@ -659,10 +656,10 @@ public function getRequestedAuthnContext() /** * Set the RequestedAuthnContext. * - * @param array $requestedAuthnContext The RequestedAuthnContext. + * @param array|null $requestedAuthnContext The RequestedAuthnContext. * @return void */ - public function setRequestedAuthnContext(array $requestedAuthnContext) + public function setRequestedAuthnContext(array $requestedAuthnContext = null) : void { $this->requestedAuthnContext = $requestedAuthnContext; } @@ -674,7 +671,7 @@ public function setRequestedAuthnContext(array $requestedAuthnContext) * @throws \Exception * @return \SAML2\XML\saml\NameID|null The name identifier of the assertion. */ - public function getNameId() + public function getNameId() : ?NameID { if ($this->encryptedNameId !== null) { throw new \Exception('Attempted to retrieve encrypted NameID without decrypting it first.'); @@ -690,13 +687,8 @@ public function getNameId() * @param \SAML2\XML\saml\NameID|null $nameId The name identifier of the assertion. * @return void */ - public function setNameId($nameId) + public function setNameId(NameID $nameId = null) : void { - Assert::true(is_array($nameId) || is_null($nameId) || $nameId instanceof NameID); - - if (is_array($nameId)) { - $nameId = NameID::fromArray($nameId); - } $this->nameId = $nameId; } @@ -707,13 +699,17 @@ public function setNameId($nameId) * @param XMLSecurityKey $key The encryption key. * @return void */ - public function encryptNameId(XMLSecurityKey $key) + public function encryptNameId(XMLSecurityKey $key) : void { + Assert::notNull($this->nameId, 'Cannot encrypt NameID if no NameID has been set.'); + /* First create a XML representation of the NameID. */ - $doc = new \DOMDocument(); + $doc = new DOMDocument(); $root = $doc->createElement('root'); $doc->appendChild($root); + /** @psalm-suppress PossiblyNullReference */ $this->nameId->toXML($root); + /** @var \DOMElement $nameId */ $nameId = $root->firstChild; Utils::getContainer()->debugMessage($nameId, 'encrypt'); @@ -729,6 +725,10 @@ public function encryptNameId(XMLSecurityKey $key) $symmetricKey->generateSessionKey(); $enc->encryptKey($key, $symmetricKey); + /** + * @var \DOMElement encryptedNameId + * @psalm-suppress UndefinedClass + */ $this->encryptedNameId = $enc->encryptNode($symmetricKey); $this->nameId = null; } @@ -741,7 +741,7 @@ public function encryptNameId(XMLSecurityKey $key) * @param array $blacklist Blacklisted decryption algorithms. * @return void */ - public function decryptNameId(XMLSecurityKey $key, array $blacklist = []) + public function decryptNameId(XMLSecurityKey $key, array $blacklist = []) : void { if ($this->encryptedNameId === null) { /* No NameID to decrypt. */ @@ -761,7 +761,7 @@ public function decryptNameId(XMLSecurityKey $key, array $blacklist = []) * * @return \SAML2\XML\saml\SubjectConfirmation[] */ - public function getSubjectConfirmation() + public function getSubjectConfirmation() : array { return $this->subjectConfirmation; } @@ -773,7 +773,7 @@ public function getSubjectConfirmation() * @param array \SAML2\XML\saml\SubjectConfirmation[] * @return void */ - public function setSubjectConfirmation(array $subjectConfirmation) + public function setSubjectConfirmation(array $subjectConfirmation) : void { $this->subjectConfirmation = $subjectConfirmation; } @@ -784,7 +784,7 @@ public function setSubjectConfirmation(array $subjectConfirmation) * * @return \DOMElement This authentication request. */ - public function toUnsignedXML() + public function toUnsignedXML() : DOMElement { $root = parent::toUnsignedXML(); @@ -792,7 +792,7 @@ public function toUnsignedXML() $root->setAttribute('ForceAuthn', 'true'); } - if ($this->ProviderName !== null) { + if (!empty($this->ProviderName)) { $root->setAttribute('ProviderName', $this->ProviderName); } @@ -801,7 +801,7 @@ public function toUnsignedXML() } if ($this->assertionConsumerServiceIndex !== null) { - $root->setAttribute('AssertionConsumerServiceIndex', $this->assertionConsumerServiceIndex); + $root->setAttribute('AssertionConsumerServiceIndex', strval($this->assertionConsumerServiceIndex)); } else { if ($this->assertionConsumerServiceURL !== null) { $root->setAttribute('AssertionConsumerServiceURL', $this->assertionConsumerServiceURL); @@ -812,7 +812,7 @@ public function toUnsignedXML() } if ($this->attributeConsumingServiceIndex !== null) { - $root->setAttribute('AttributeConsumingServiceIndex', $this->attributeConsumingServiceIndex); + $root->setAttribute('AttributeConsumingServiceIndex', strval($this->attributeConsumingServiceIndex)); } $this->addSubject($root); @@ -849,7 +849,7 @@ public function toUnsignedXML() $scoping = $this->document->createElementNS(Constants::NS_SAMLP, 'Scoping'); $root->appendChild($scoping); if ($this->ProxyCount !== null) { - $scoping->setAttribute('ProxyCount', $this->ProxyCount); + $scoping->setAttribute('ProxyCount', strval($this->ProxyCount)); } if (count($this->IDPList) > 0) { $idplist = $this->document->createElementNS(Constants::NS_SAMLP, 'IDPList'); @@ -887,7 +887,7 @@ public function toUnsignedXML() * @param \DOMElement $root The assertion element we should add the subject to. * @return void */ - private function addSubject(\DOMElement $root) + private function addSubject(DOMElement $root) : void { // If there is no nameId (encrypted or not) there is nothing to create a subject for if ($this->nameId === null && $this->encryptedNameId === null) { @@ -917,7 +917,7 @@ private function addSubject(\DOMElement $root) * @param \DOMElement $root The request element we should add the conditions to. * @return void */ - private function addConditions(\DOMElement $root) + private function addConditions(DOMElement $root) : void { if ($this->audiences !== []) { $document = $root->ownerDocument; diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Binding.php b/vendor/simplesamlphp/saml2/src/SAML2/Binding.php index a4a38fca28052df1e2ed87226e46c76b364886a3..c3a65414cb2f76da398f451756fccea7650b905f 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Binding.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Binding.php @@ -1,8 +1,8 @@ <?php -namespace SAML2; +declare(strict_types=1); -use Webmozart\Assert\Assert; +namespace SAML2; /** * Base class for SAML 2 bindings. @@ -15,8 +15,9 @@ abstract class Binding * The destination of messages. * * This can be null, in which case the destination in the message is used. + * @var string|null */ - protected $destination; + protected $destination = null; /** @@ -28,10 +29,8 @@ abstract class Binding * @throws \Exception * @return \SAML2\Binding The binding. */ - public static function getBinding($urn) + public static function getBinding(string $urn) : Binding { - Assert::string($urn); - switch ($urn) { case Constants::BINDING_HTTP_POST: return new HTTPPost(); @@ -63,7 +62,7 @@ public static function getBinding($urn) * @throws \Exception * @return \SAML2\Binding The binding. */ - public static function getCurrentBinding() + public static function getCurrentBinding() : Binding { switch ($_SERVER['REQUEST_METHOD']) { case 'GET': @@ -105,16 +104,16 @@ public static function getCurrentBinding() $logger->warning('Content-Type: '.var_export($_SERVER['CONTENT_TYPE'], true)); } - throw new \Exception('Unable to find the current binding.'); + throw new \Exception('Unable to find the SAML 2 binding used for this request.'); } /** * Retrieve the destination of a message. * - * @return string|null $destination The destination the message will be delivered to. + * @return string|null $destination The destination the message will be delivered to. */ - public function getDestination() + public function getDestination() : ?string { return $this->destination; } @@ -128,10 +127,8 @@ public function getDestination() * @param string|null $destination The destination the message should be delivered to. * @return void */ - public function setDestination($destination) + public function setDestination(string $destination = null) : void { - Assert::nullOrString($destination); - $this->destination = $destination; } @@ -145,7 +142,7 @@ public function setDestination($destination) * @param \SAML2\Message $message The message which should be sent. * @return void */ - abstract public function send(Message $message); + abstract public function send(Message $message) : void; /** @@ -156,5 +153,5 @@ abstract public function send(Message $message); * * @return \SAML2\Message The received message. */ - abstract public function receive(); + abstract public function receive(): Message; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Certificate/Exception/InvalidCertificateStructureException.php b/vendor/simplesamlphp/saml2/src/SAML2/Certificate/Exception/InvalidCertificateStructureException.php index 1ac6d5078ed876a5519729d562f28ed81e9176b2..5c6ff17f4d55c1415a0dd9d1f1ee76c1367a4e1f 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Certificate/Exception/InvalidCertificateStructureException.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Certificate/Exception/InvalidCertificateStructureException.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Certificate\Exception; use SAML2\Exception\Throwable; diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Certificate/Exception/InvalidKeyUsageException.php b/vendor/simplesamlphp/saml2/src/SAML2/Certificate/Exception/InvalidKeyUsageException.php index 65aecf864d2abcde57f48193333564c5919be304..57430256687da22485a1070322ec54a516986bf5 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Certificate/Exception/InvalidKeyUsageException.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Certificate/Exception/InvalidKeyUsageException.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Certificate\Exception; use SAML2\Certificate\Key; @@ -14,11 +16,11 @@ class InvalidKeyUsageException extends \InvalidArgumentException implements /** * @param string $usage */ - public function __construct($usage) + public function __construct(string $usage) { $message = sprintf( 'Invalid key usage given: "%s", usages "%s" allowed', - is_string($usage) ? $usage : gettype($usage), + $usage, implode('", "', Key::getValidKeyUsages()) ); diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Certificate/Exception/NoKeysFoundException.php b/vendor/simplesamlphp/saml2/src/SAML2/Certificate/Exception/NoKeysFoundException.php index aa1886e21328fc90e7b0082e1b4040b64b2011d1..e6daceffb09a329549db5776bc2a9d742bcb5ec4 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Certificate/Exception/NoKeysFoundException.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Certificate/Exception/NoKeysFoundException.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Certificate\Exception; use SAML2\Exception\Throwable; diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Certificate/Fingerprint.php b/vendor/simplesamlphp/saml2/src/SAML2/Certificate/Fingerprint.php deleted file mode 100644 index 89a0a916bff3fcccf150443dd5bc0e6b0719b078..0000000000000000000000000000000000000000 --- a/vendor/simplesamlphp/saml2/src/SAML2/Certificate/Fingerprint.php +++ /dev/null @@ -1,63 +0,0 @@ -<?php - -namespace SAML2\Certificate; - -use SAML2\Exception\InvalidArgumentException; - -/** - * Simple representation of the fingerprint of a certificate - * - * @deprecated Please use full certificates instead. - */ -class Fingerprint -{ - /** - * @var string - */ - private $contents; - - - /** - * @param string $fingerPrint - * - * @deprecated Please use full certificates instead. - */ - public function __construct($fingerPrint) - { - if (!is_string($fingerPrint)) { - throw InvalidArgumentException::invalidType('string', $fingerPrint); - } - - $this->contents = $fingerPrint; - } - - - /** - * Get the raw, unmodified fingerprint value. - * - * @return string - */ - public function getRaw() - { - return $this->contents; - } - - - /** - * @return string - */ - public function getNormalized() - { - return strtolower(str_replace(':', '', $this->contents)); - } - - - /** - * @param \SAML2\Certificate\Fingerprint $fingerprint - * @return bool - */ - public function equals(Fingerprint $fingerprint) - { - return $this->getNormalized() === $fingerprint->getNormalized(); - } -} diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Certificate/FingerprintCollection.php b/vendor/simplesamlphp/saml2/src/SAML2/Certificate/FingerprintCollection.php deleted file mode 100644 index 1926663ce8ff54a378edd6fbde143811246fae05..0000000000000000000000000000000000000000 --- a/vendor/simplesamlphp/saml2/src/SAML2/Certificate/FingerprintCollection.php +++ /dev/null @@ -1,52 +0,0 @@ -<?php - -namespace SAML2\Certificate; - -use SAML2\Exception\InvalidArgumentException; -use SAML2\Utilities\ArrayCollection; - -/** - * Simple collection object for transporting keys - * @deprecated Please load full certificates instead. - */ -class FingerprintCollection extends ArrayCollection -{ - /** - * Add a key to the collection - * - * @param \SAML2\Certificate\Fingerprint $fingerprint - * @return void - * - * @deprecated - */ - public function add($fingerprint) - { - if (!$fingerprint instanceof Fingerprint) { - throw InvalidArgumentException::invalidType( - 'SAML2\Certificate\Fingerprint ', - $fingerprint - ); - } - - parent::add($fingerprint); - } - - - /** - * @param \SAML2\Certificate\Fingerprint $otherFingerprint - * @return bool - * - * @deprecated - */ - public function contains(Fingerprint $otherFingerprint) - { - foreach ($this->elements as $fingerprint) { - /** @var \SAML2\Certificate\Fingerprint $fingerprint */ - if ($fingerprint->equals($otherFingerprint)) { - return true; - } - } - - return false; - } -} diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Certificate/FingerprintLoader.php b/vendor/simplesamlphp/saml2/src/SAML2/Certificate/FingerprintLoader.php deleted file mode 100644 index 98d2b53a2165f6b21d1f963f344bc2a2e634c102..0000000000000000000000000000000000000000 --- a/vendor/simplesamlphp/saml2/src/SAML2/Certificate/FingerprintLoader.php +++ /dev/null @@ -1,61 +0,0 @@ -<?php - -namespace SAML2\Certificate; - -use SAML2\Configuration\CertificateProvider; -use SAML2\Exception\InvalidArgumentException; - -/** - * @deprecated Please load full certificates instead. - */ -class FingerprintLoader -{ - /** - * Static method mainly for BC, should be replaced with DI. - * - * @param \SAML2\Configuration\CertificateProvider $configuration - * @return \SAML2\Certificate\FingerprintCollection - * - * @deprecated - */ - public static function loadFromConfiguration(CertificateProvider $configuration) - { - $loader = new self(); - - return $loader->loadFingerprints($configuration); - } - - - /** - * Loads the fingerprints from a configurationValue - * - * @param \SAML2\Configuration\CertificateProvider $configuration - * @return \SAML2\Certificate\FingerprintCollection - * - * @deprecated - */ - public function loadFingerprints(CertificateProvider $configuration) - { - $fingerprints = $configuration->getCertificateFingerprints(); - if (!is_array($fingerprints) && !$fingerprints instanceof \Traversable) { - throw InvalidArgumentException::invalidType( - 'array or instanceof \Traversable', - $fingerprints - ); - } - - $collection = new FingerprintCollection(); - foreach ($fingerprints as $fingerprint) { - if (!is_string($fingerprint) && !(is_object($fingerprint) && method_exists($fingerprint, '__toString'))) { - throw InvalidArgumentException::invalidType( - 'fingerprint as string or object that can be casted to string', - $fingerprint - ); - } - - $collection->add(new Fingerprint((string) $fingerprint)); - } - - return $collection; - } -} diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Certificate/Key.php b/vendor/simplesamlphp/saml2/src/SAML2/Certificate/Key.php index 51784b797f4d3b622432e68e3aefc497ad1a01e0..442c6707f2b774f528fba076260ce82119e7426d 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Certificate/Key.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Certificate/Key.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Certificate; use SAML2\Certificate\Exception\InvalidKeyUsageException; @@ -36,10 +38,10 @@ public function __construct(array $keyData) /** * Whether or not the key is configured to be used for usage given * - * @param string $usage + * @param string $usage * @return bool */ - public function canBeUsedFor($usage) + public function canBeUsedFor(string $usage) : bool { if (!in_array($usage, static::getValidKeyUsages(), true)) { throw new InvalidKeyUsageException($usage); @@ -53,7 +55,7 @@ public function canBeUsedFor($usage) * Returns the list of valid key usage options * @return array */ - public static function getValidKeyUsages() + public static function getValidKeyUsages() : array { return [ self::USAGE_ENCRYPTION, @@ -66,8 +68,10 @@ public static function getValidKeyUsages() * @param mixed $offset * @throws InvalidArgumentException * @return bool + * + * Type hint not possible due to upstream method signature */ - public function offsetExists($offset) + public function offsetExists($offset) : bool { if (!is_string($offset)) { throw InvalidArgumentException::invalidType('string', $offset); @@ -79,7 +83,9 @@ public function offsetExists($offset) /** * @param mixed $offset * @throws InvalidArgumentException - * @return string + * @return mixed + * + * Type hint not possible due to upstream method signature */ public function offsetGet($offset) { @@ -96,7 +102,7 @@ public function offsetGet($offset) * @throws InvalidArgumentException * @return void */ - public function offsetSet($offset, $value) + public function offsetSet($offset, $value) : void { if (!is_string($offset)) { throw InvalidArgumentException::invalidType('string', $offset); @@ -109,8 +115,10 @@ public function offsetSet($offset, $value) * @param mixed $offset * @throws InvalidArgumentException * @return void + * + * Type hint not possible due to upstream method signature */ - public function offsetUnset($offset) + public function offsetUnset($offset) : void { if (!is_string($offset)) { throw InvalidArgumentException::invalidType('string', $offset); diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Certificate/KeyCollection.php b/vendor/simplesamlphp/saml2/src/SAML2/Certificate/KeyCollection.php index 6df321de16ac50ac75c01753cc76dc15346d5275..3b44cbce74358f3c570b1995b7206edf51a4133e 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Certificate/KeyCollection.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Certificate/KeyCollection.php @@ -1,10 +1,13 @@ <?php +declare(strict_types=1); + namespace SAML2\Certificate; -use SAML2\Exception\InvalidArgumentException; use SAML2\Utilities\ArrayCollection; +use Webmozart\Assert\Assert; + /** * Simple collection object for transporting keys */ @@ -13,18 +16,16 @@ class KeyCollection extends ArrayCollection /** * Add a key to the collection * + * @psalm-suppress MoreSpecificImplementedParamType * @param \SAML2\Certificate\Key $key * @return void + * + * Type hint not possible due to upstream method signature */ - public function add($key) + public function add($key) : void { - if (!($key instanceof Key)) { - throw InvalidArgumentException::invalidType( - 'SAML2\Certificate\Key', - $key - ); - } - + /** @psalm-suppress RedundantConditionGivenDocblockType */ + Assert::isInstanceOf($key, Key::class); parent::add($key); } } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Certificate/KeyLoader.php b/vendor/simplesamlphp/saml2/src/SAML2/Certificate/KeyLoader.php index 742de2c46c6a2662e0e96a7588a17fba9f4d47bc..679c8b4df74ab7166c656cb1c734041bde89e174 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Certificate/KeyLoader.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Certificate/KeyLoader.php @@ -1,9 +1,12 @@ <?php +declare(strict_types=1); + namespace SAML2\Certificate; use SAML2\Certificate\Exception\InvalidCertificateStructureException; use SAML2\Certificate\Exception\NoKeysFoundException; +use SAML2\Certificate\KeyCollection; use SAML2\Configuration\CertificateProvider; use SAML2\Exception\InvalidArgumentException; use SAML2\Utilities\Certificate; @@ -40,9 +43,9 @@ public function __construct() */ public static function extractPublicKeys( CertificateProvider $config, - $usage = null, - $required = false - ) { + string $usage = null, + bool $required = false + ) : KeyCollection { $keyLoader = new self(); return $keyLoader->loadKeysFromConfiguration($config, $usage, $required); @@ -51,15 +54,15 @@ public static function extractPublicKeys( /** * @param \SAML2\Configuration\CertificateProvider $config - * @param null|string $usage - * @param bool $required + * @param null|string $usage + * @param bool $required * @return \SAML2\Certificate\KeyCollection */ public function loadKeysFromConfiguration( CertificateProvider $config, - $usage = null, - $required = false - ) { + string $usage = null, + bool $required = false + ) : KeyCollection { $keys = $config->getKeys(); $certificateData = $config->getCertificateData(); $certificateFile = $config->getCertificateFile(); @@ -87,11 +90,11 @@ public function loadKeysFromConfiguration( * Loads the keys given, optionally excluding keys when a usage is given and they * are not configured to be used with the usage given * - * @param array $configuredKeys - * @param string $usage + * @param array|\Traversable $configuredKeys + * @param string|null $usage * @return void */ - public function loadKeys(array $configuredKeys, $usage) + public function loadKeys($configuredKeys, string $usage = null) : void { foreach ($configuredKeys as $keyData) { if (isset($keyData['X509Certificate'])) { @@ -115,12 +118,8 @@ public function loadKeys(array $configuredKeys, $usage) * @param string $certificateData * @return void */ - public function loadCertificateData($certificateData) + public function loadCertificateData(string $certificateData) : void { - if (!is_string($certificateData)) { - throw InvalidArgumentException::invalidType('string', $certificateData); - } - $this->loadedKeys->add(X509::createFromCertificateData($certificateData)); } @@ -131,7 +130,7 @@ public function loadCertificateData($certificateData) * @param string $certificateFile the full path to the cert file. * @return void */ - public function loadCertificateFile($certificateFile) + public function loadCertificateFile(string $certificateFile) : void { $certificate = File::getFileContents($certificateFile); @@ -151,7 +150,7 @@ public function loadCertificateFile($certificateFile) /** * @return \SAML2\Certificate\KeyCollection */ - public function getKeys() + public function getKeys() : KeyCollection { return $this->loadedKeys; } @@ -160,8 +159,8 @@ public function getKeys() /** * @return bool */ - public function hasKeys() + public function hasKeys() : bool { - return !!count($this->loadedKeys); + return count($this->loadedKeys) && true; } } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Certificate/PrivateKey.php b/vendor/simplesamlphp/saml2/src/SAML2/Certificate/PrivateKey.php index c6c0e9ce8acd73d0d73bba67b97463cdf513811c..3b7f56289cafc265089b7e9ab2b4e049fef891ab 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Certificate/PrivateKey.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Certificate/PrivateKey.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Certificate; use SAML2\Exception\InvalidArgumentException; @@ -12,16 +14,8 @@ class PrivateKey extends Key * @throws InvalidArgumentException * @return PrivateKey */ - public static function create($keyContents, $passphrase = null) + public static function create(string $keyContents, string $passphrase = null) : PrivateKey { - if (!is_string($keyContents)) { - throw InvalidArgumentException::invalidType('string', $keyContents); - } - - if ($passphrase && !is_string($passphrase)) { - throw InvalidArgumentException::invalidType('string', $passphrase); - } - $keyData = ['PEM' => $keyContents, self::USAGE_ENCRYPTION => true]; if ($passphrase) { $keyData['passphrase'] = $passphrase; @@ -34,7 +28,7 @@ public static function create($keyContents, $passphrase = null) /** * @return string */ - public function getKeyAsString() + public function getKeyAsString() : string { return $this->keyData['PEM']; } @@ -43,7 +37,7 @@ public function getKeyAsString() /** * @return string|null */ - public function getPassphrase() + public function getPassphrase() : ?string { return isset($this->keyData['passphrase']) ? $this->keyData['passphrase'] : null; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Certificate/PrivateKeyLoader.php b/vendor/simplesamlphp/saml2/src/SAML2/Certificate/PrivateKeyLoader.php index c86f244facebe3907d9f74a8011119a04554b1a6..5b7dd8ca238df6fe6590ffb858f46f386795644f 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Certificate/PrivateKeyLoader.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Certificate/PrivateKeyLoader.php @@ -1,8 +1,12 @@ <?php +declare(strict_types=1); + namespace SAML2\Certificate; use RobRichards\XMLSecLibs\XMLSecurityKey; + +use SAML2\Certificate\PrivateKey; use SAML2\Configuration\DecryptionProvider; use SAML2\Configuration\PrivateKey as PrivateKeyConfiguration; use SAML2\Utilities\ArrayCollection; @@ -16,7 +20,7 @@ class PrivateKeyLoader * @param \SAML2\Configuration\PrivateKey $key * @return \SAML2\Certificate\PrivateKey */ - public function loadPrivateKey(PrivateKeyConfiguration $key) + public function loadPrivateKey(PrivateKeyConfiguration $key) : PrivateKey { if ($key->isFile()) { $privateKey = File::getFileContents($key->getFilePath()); @@ -37,7 +41,7 @@ public function loadPrivateKey(PrivateKeyConfiguration $key) public function loadDecryptionKeys( DecryptionProvider $identityProvider, DecryptionProvider $serviceProvider - ) { + ) : ArrayCollection { $decryptionKeys = new ArrayCollection(); $senderSharedKey = $identityProvider->getSharedKey(); @@ -66,9 +70,9 @@ public function loadDecryptionKeys( /** * @param \SAML2\Certificate\PrivateKey $privateKey * @throws \Exception - * @return XMLSecurityKey + * @return \RobRichards\XMLSecLibs\XMLSecurityKey */ - private function convertPrivateKeyToRsaKey(PrivateKey $privateKey) + private function convertPrivateKeyToRsaKey(PrivateKey $privateKey) : XMLSecurityKey { $key = new XMLSecurityKey(XMLSecurityKey::RSA_1_5, ['type' => 'private']); $passphrase = $privateKey->getPassphrase(); diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Certificate/X509.php b/vendor/simplesamlphp/saml2/src/SAML2/Certificate/X509.php index 59cf10dea0907c4ec1ee7056ca5a52aee2dc0faa..0a43c294afe22d8c937dc1f0f0f73b74628d5b9b 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Certificate/X509.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Certificate/X509.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Certificate; /** @@ -7,17 +9,7 @@ */ class X509 extends Key { - /** - * @var \SAML2\Certificate\Fingerprint - */ - private $fingerprint; - - - /** - * @param string $certificateContents - * @return X509 - */ - public static function createFromCertificateData($certificateContents) + public static function createFromCertificateData(string $certificateContents) : X509 { $data = [ 'encryption' => true, @@ -32,11 +24,14 @@ public static function createFromCertificateData($certificateContents) /** * {@inheritdoc} Best place to ensure the logic is encapsulated in a single place + * * @param mixed $offset * @param mixed $value * @return void + * + * Type hint not possible due to upstream method signature */ - public function offsetSet($offset, $value) + public function offsetSet($offset, $value) : void { if ($offset === 'X509Certificate') { $value = preg_replace('~\s+~', '', $value); @@ -51,27 +46,10 @@ public function offsetSet($offset, $value) * * @return string */ - public function getCertificate() + public function getCertificate() : string { return "-----BEGIN CERTIFICATE-----\n" . chunk_split($this->keyData['X509Certificate'], 64) . "-----END CERTIFICATE-----\n"; } - - - /** - * @return \SAML2\Certificate\Fingerprint - * - * @deprecated Please use full certificates instead. - */ - public function getFingerprint() - { - if (isset($this->fingerprint)) { - return $this->fingerprint; - } - - $fingerprint = strtolower(sha1(base64_decode($this->keyData['X509Certificate']))); - - return $this->fingerprint = new Fingerprint($fingerprint); - } } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Compat/AbstractContainer.php b/vendor/simplesamlphp/saml2/src/SAML2/Compat/AbstractContainer.php index f77df62cf1bcf003aaa26b4e87856af1f5008407..e6b0ac98b0e7962511aa859c109a1b3bce674dbb 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Compat/AbstractContainer.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Compat/AbstractContainer.php @@ -1,21 +1,25 @@ <?php +declare(strict_types=1); + namespace SAML2\Compat; +use \Psr\Log\LoggerInterface; + abstract class AbstractContainer { /** * Get a PSR-3 compatible logger. * @return \Psr\Log\LoggerInterface */ - abstract public function getLogger(); + abstract public function getLogger() : LoggerInterface; /** * Generate a random identifier for identifying SAML2 documents. * @return string */ - abstract public function generateId(); + abstract public function generateId() : string; /** @@ -27,11 +31,12 @@ abstract public function generateId(); * - **encrypt** XML that is about to be encrypted * - **decrypt** XML that was just decrypted * - * @param string|\DOMNode $message + * @param \DOMElement|string $message * @param string $type * @return void */ - abstract public function debugMessage($message, $type); + abstract public function debugMessage($message, string $type) : void; + /** @@ -41,7 +46,7 @@ abstract public function debugMessage($message, $type); * @param array $data * @return void */ - abstract public function redirect($url, $data = []); + abstract public function redirect(string $url, array $data = []) : void; /** @@ -51,5 +56,29 @@ abstract public function redirect($url, $data = []); * @param array $data * @return void */ - abstract public function postRedirect($url, $data = []); + abstract public function postRedirect(string $url, array $data = []) : void; + + + /** + * This function retrieves the path to a directory where temporary files can be saved. + * + * @throws \Exception If the temporary directory cannot be created or it exists and does not belong + * to the current user. + * @return string Path to a temporary directory, without a trailing directory separator. + */ + abstract public function getTempDir() : string; + + + /** + * Atomically write a file. + * + * This is a helper function for writing data atomically to a file. It does this by writing the file data to a + * temporary file, then renaming it to the required file name. + * + * @param string $filename The path to the file we want to write to. + * @param string $data The data we should write to the file. + * @param int $mode The permissions to apply to the file. Defaults to 0600. + * @return void + */ + abstract public function writeFile(string $filename, string $data, int $mode = null) : void; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Compat/ContainerSingleton.php b/vendor/simplesamlphp/saml2/src/SAML2/Compat/ContainerSingleton.php index 5232d358ae5d5dd21c411cfcd494fad5c99df5e4..c9094aa41a5655a79d7721508c4baaeb31977a89 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Compat/ContainerSingleton.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Compat/ContainerSingleton.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Compat; use SAML2\Compat\Ssp\Container; @@ -15,10 +17,10 @@ class ContainerSingleton /** * @return \SAML2\Compat\AbstractContainer */ - public static function getInstance() + public static function getInstance() : AbstractContainer { - if (!self::$container) { - self::setContainer(self::initSspContainer()); + if (!isset(self::$container)) { + self::$container = self::initSspContainer(); } return self::$container; } @@ -28,19 +30,18 @@ public static function getInstance() * Set a container to use. * * @param \SAML2\Compat\AbstractContainer $container - * @return \SAML2\Compat\AbstractContainer + * @return void */ - public static function setContainer(AbstractContainer $container) + public static function setContainer(AbstractContainer $container) : void { self::$container = $container; - return $container; } /** * @return \SAML2\Compat\Ssp\Container */ - public static function initSspContainer() + public static function initSspContainer() : Container { return new Container(); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Compat/MockContainer.php b/vendor/simplesamlphp/saml2/src/SAML2/Compat/MockContainer.php index 649dcadca85326a7c33a2a878f9f4866cf92f300..bc71076d3c27704d71dd8d923ad1a2a520b4ff79 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Compat/MockContainer.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Compat/MockContainer.php @@ -1,7 +1,12 @@ <?php +declare(strict_types=1); + namespace SAML2\Compat; +use \Psr\Log\LoggerInterface; +use \Psr\Log\NullLogger; + /** * Class \SAML2\Compat\MockContainer */ @@ -25,12 +30,12 @@ class MockContainer extends AbstractContainer /** * @var array */ - private $redirectData; + private $redirectData = []; /** - * @var string + * @var string|null */ - private $postRedirectUrl; + private $postRedirectUrl = null; /** * @var array @@ -42,9 +47,9 @@ class MockContainer extends AbstractContainer * Get a PSR-3 compatible logger. * @return \Psr\Log\LoggerInterface */ - public function getLogger() + public function getLogger() : LoggerInterface { - return new \Psr\Log\NullLogger(); + return new NullLogger(); } @@ -52,7 +57,7 @@ public function getLogger() * Generate a random identifier for identifying SAML2 documents. * @return string */ - public function generateId() + public function generateId() : string { return $this->id; } @@ -67,11 +72,11 @@ public function generateId() * - **encrypt** XML that is about to be encrypted * - **decrypt** XML that was just decrypted * - * @param string $message + * @param \DOMElement|string $message * @param string $type * @return void */ - public function debugMessage($message, $type) + public function debugMessage($message, string $type) : void { $this->debugMessages[$type] = $message; } @@ -84,7 +89,7 @@ public function debugMessage($message, $type) * @param array $data * @return void */ - public function redirect($url, $data = []) + public function redirect(string $url, array $data = []) : void { $this->redirectUrl = $url; $this->redirectData = $data; @@ -94,13 +99,38 @@ public function redirect($url, $data = []) /** * Trigger the user to perform a POST to the given URL with the given data. * - * @param string $url + * @param string|null $url * @param array $data * @return void */ - public function postRedirect($url, $data = []) + public function postRedirect(string $url = null, array $data = []) : void { $this->postRedirectUrl = $url; $this->postRedirectData = $data; } + + + /** + * @return string + */ + public function getTempDir() : string + { + return sys_get_temp_dir(); + } + + + /** + * @param string $filename + * @param string $data + * @param int|null $mode + * @return void + */ + public function writeFile(string $filename, string $data, int $mode = null) : void + { + if ($mode === null) { + $mode = 0600; + } + file_put_contents($filename, $data); + chmod($filename, $mode); + } } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Compat/Ssp/Container.php b/vendor/simplesamlphp/saml2/src/SAML2/Compat/Ssp/Container.php index efc0f4012501ab4af3240516d67ca56635d14a0f..8659b35498f0e462c88887e9798ec9e8bbd2da48 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Compat/Ssp/Container.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Compat/Ssp/Container.php @@ -1,7 +1,15 @@ <?php +declare(strict_types=1); + namespace SAML2\Compat\Ssp; +use Psr\Log\LoggerInterface; +use SimpleSAML\Utils\HTTP; +use SimpleSAML\Utils\Random; +use SimpleSAML\Utils\System; +use SimpleSAML\Utils\XML; + use SAML2\Compat\AbstractContainer; class Container extends AbstractContainer @@ -25,7 +33,7 @@ public function __construct() * {@inheritdoc} * @return \Psr\Log\LoggerInterface */ - public function getLogger() + public function getLogger() : LoggerInterface { return $this->logger; } @@ -35,19 +43,23 @@ public function getLogger() * {@inheritdoc} * @return string */ - public function generateId() + public function generateId() : string { - return \SimpleSAML\Utils\Random::generateID(); + /** @psalm-suppress UndefinedClass */ + return Random::generateID(); } /** * {@inheritdoc} + * @param mixed $message + * @param string $type * @return void */ - public function debugMessage($message, $type) + public function debugMessage($message, string $type) : void { - \SimpleSAML\Utils\XML::debugSAMLMessage($message, $type); + /** @psalm-suppress UndefinedClass */ + XML::debugSAMLMessage($message, $type); } @@ -57,9 +69,10 @@ public function debugMessage($message, $type) * @param array $data * @return void */ - public function redirect($url, $data = []) + public function redirect(string $url, array $data = []) : void { - \SimpleSAML\Utils\HTTP::redirectTrustedURL($url, $data); + /** @psalm-suppress UndefinedClass */ + HTTP::redirectTrustedURL($url, $data); } @@ -69,8 +82,37 @@ public function redirect($url, $data = []) * @param array $data * @return void */ - public function postRedirect($url, $data = []) + public function postRedirect(string $url, array $data = []) : void + { + /** @psalm-suppress UndefinedClass */ + HTTP::submitPOSTData($url, $data); + } + + + /** + * {@inheritdoc} + * @return string + */ + public function getTempDir() : string + { + /** @psalm-suppress UndefinedClass */ + return System::getTempDir(); + } + + + /** + * {@inheritdoc} + * @param string $filename + * @param string $date + * @param int|null $mode + * @return void + */ + public function writeFile(string $filename, string $data, int $mode = null) : void { - \SimpleSAML\Utils\HTTP::submitPOSTData($url, $data); + if ($mode === null) { + $mode = 0600; + } + /** @psalm-suppress UndefinedClass */ + System::writeFile($filename, $data, $mode); } } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Compat/Ssp/Logger.php b/vendor/simplesamlphp/saml2/src/SAML2/Compat/Ssp/Logger.php index 5d112ad0a2f5953bea56a89708611132854cac41..b318d86aadfe6f80041d54245506bcee0c431081 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Compat/Ssp/Logger.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Compat/Ssp/Logger.php @@ -1,9 +1,14 @@ <?php +declare(strict_types=1); + namespace SAML2\Compat\Ssp; +use Psr\Log\InvalidArgumentException; use Psr\Log\LoggerInterface; use Psr\Log\LogLevel; +use SimpleSAML\Logger as SspLogger; +use Webmozart\Assert\Assert; class Logger implements LoggerInterface { @@ -13,10 +18,13 @@ class Logger implements LoggerInterface * @param string $message * @param array $context * @return void + * + * Type hint not possible due to upstream method signature */ - public function emergency($message, array $context = []) + public function emergency($message, array $context = []) : void { - \SimpleSAML\Logger::emergency($message.($context ? " ".var_export($context, true) : "")); + /** @psalm-suppress UndefinedClass */ + SspLogger::emergency($message.($context ? " ".var_export($context, true) : "")); } @@ -29,10 +37,13 @@ public function emergency($message, array $context = []) * @param string $message * @param array $context * @return void + * + * Type hint not possible due to upstream method signature */ - public function alert($message, array $context = []) + public function alert($message, array $context = []) : void { - \SimpleSAML\Logger::alert($message.($context ? " ".var_export($context, true) : "")); + /** @psalm-suppress UndefinedClass */ + SspLogger::alert($message.($context ? " ".var_export($context, true) : "")); } @@ -44,10 +55,13 @@ public function alert($message, array $context = []) * @param string $message * @param array $context * @return void + * + * Type hint not possible due to upstream method signature */ - public function critical($message, array $context = []) + public function critical($message, array $context = []) : void { - \SimpleSAML\Logger::critical($message.($context ? " ".var_export($context, true) : "")); + /** @psalm-suppress UndefinedClass */ + SspLogger::critical($message.($context ? " ".var_export($context, true) : "")); } @@ -58,10 +72,13 @@ public function critical($message, array $context = []) * @param string $message * @param array $context * @return void + * + * Type hint not possible due to upstream method signature */ - public function error($message, array $context = []) + public function error($message, array $context = []) : void { - \SimpleSAML\Logger::error($message.($context ? " ".var_export($context, true) : "")); + /** @psalm-suppress UndefinedClass */ + SspLogger::error($message.($context ? " ".var_export($context, true) : "")); } @@ -74,10 +91,13 @@ public function error($message, array $context = []) * @param string $message * @param array $context * @return void + * + * Type hint not possible due to upstream method signature */ - public function warning($message, array $context = []) + public function warning($message, array $context = []) : void { - \SimpleSAML\Logger::warning($message.($context ? " ".var_export($context, true) : "")); + /** @psalm-suppress UndefinedClass */ + SspLogger::warning($message.($context ? " ".var_export($context, true) : "")); } @@ -87,10 +107,13 @@ public function warning($message, array $context = []) * @param string $message * @param array $context * @return void + * + * Type hint not possible due to upstream method signature */ - public function notice($message, array $context = []) + public function notice($message, array $context = []) : void { - \SimpleSAML\Logger::notice($message.($context ? " ".var_export($context, true) : "")); + /** @psalm-suppress UndefinedClass */ + SspLogger::notice($message.($context ? " ".var_export($context, true) : "")); } @@ -102,10 +125,13 @@ public function notice($message, array $context = []) * @param string $message * @param array $context * @return void + * + * Type hint not possible due to upstream method signature */ - public function info($message, array $context = []) + public function info($message, array $context = []) : void { - \SimpleSAML\Logger::info($message.($context ? " ".var_export($context, true) : "")); + /** @psalm-suppress UndefinedClass */ + SspLogger::info($message.($context ? " ".var_export($context, true) : "")); } @@ -115,10 +141,13 @@ public function info($message, array $context = []) * @param string $message * @param array $context * @return void + * + * Type hint not possible due to upstream method signature */ - public function debug($message, array $context = []) + public function debug($message, array $context = []) : void { - \SimpleSAML\Logger::debug($message.($context ? " ".var_export($context, true) : "")); + /** @psalm-suppress UndefinedClass */ + SspLogger::debug($message.($context ? " ".var_export($context, true) : "")); } @@ -129,13 +158,18 @@ public function debug($message, array $context = []) * @param string $message * @param array $context * @return void + * + * Type hint not possible due to upstream method signature */ - public function log($level, $message, array $context = []) + public function log($level, $message, array $context = []) : void { + /** @psalm-suppress RedundantConditionGivenDocblockType */ + Assert::string($message); + switch ($level) { /* From PSR: Calling this method with one of the log level constants - MUST have the same result as calling the level-specific method - */ + * MUST have the same result as calling the level-specific method + */ case LogLevel::ALERT: $this->alert($message, $context); break; @@ -161,7 +195,7 @@ public function log($level, $message, array $context = []) $this->warning($message, $context); break; default: - throw new \Psr\Log\InvalidArgumentException("Unrecognized log level '$level''"); + throw new InvalidArgumentException("Unrecognized log level '$level''"); } } } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Configuration/ArrayAdapter.php b/vendor/simplesamlphp/saml2/src/SAML2/Configuration/ArrayAdapter.php index ef79306c5a6c23e247388133c006f1f4034a280d..493eb10b341e937f0df2a7e4b7efbafc1d658920 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Configuration/ArrayAdapter.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Configuration/ArrayAdapter.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Configuration; /** @@ -23,11 +25,11 @@ public function __construct(array $configuration) /** - * @param mixed $key + * @param string $key * @param mixed|null $defaultValue * @return mixed */ - public function get($key, $defaultValue = null) + public function get(string $key, $defaultValue = null) { if (!$this->has($key)) { return $defaultValue; @@ -38,9 +40,10 @@ public function get($key, $defaultValue = null) /** - * @param mixed $key + * @param string $key + * @return bool */ - public function has($key) + public function has(string $key) : bool { return array_key_exists($key, $this->configuration); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Configuration/CertificateProvider.php b/vendor/simplesamlphp/saml2/src/SAML2/Configuration/CertificateProvider.php index c436858c23fe4a04760daae951766bc08ff109c8..47d64cec38a27fdf4dde48b6534960f165e085bb 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Configuration/CertificateProvider.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Configuration/CertificateProvider.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Configuration; /** @@ -23,7 +25,7 @@ public function getKeys(); * * @return null|string */ - public function getCertificateData(); + public function getCertificateData() : ?string; /** @@ -31,16 +33,5 @@ public function getCertificateData(); * * @return null|string */ - public function getCertificateFile(); - - - /** - * Returns an array or \Traversable where each element represents a certificate fingerprint. A certificate - * fingerprint is a string containing the certificate fingerprint. - * - * @return null|array|\Traversable - * - * @deprecated Please use getCertifiateFile() or getCertificateData() - */ - public function getCertificateFingerprints(); + public function getCertificateFile() : ?string; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Configuration/DecryptionProvider.php b/vendor/simplesamlphp/saml2/src/SAML2/Configuration/DecryptionProvider.php index 57d4d3a9a12e004bae17d796581e8c716eab0823..408fd01ee8ca4bd5f20b99b7b2119da2946e7305 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Configuration/DecryptionProvider.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Configuration/DecryptionProvider.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Configuration; interface DecryptionProvider @@ -7,26 +9,27 @@ interface DecryptionProvider /** * @return null|bool */ - public function isAssertionEncryptionRequired(); + public function isAssertionEncryptionRequired() : ?bool; /** * @return null|string */ - public function getSharedKey(); + public function getSharedKey() : ?string; /** - * @param string $name the name of the private key - * @param boolean $required whether or not the private key must exist + * @param string $name The name of the private key + * @param bool $required Whether or not the private key must exist * * @return mixed */ - public function getPrivateKey($name, $required = false); + public function getPrivateKey(string $name, bool $required = null); + /** - * @return array + * @return array|null */ - public function getBlacklistedAlgorithms(); + public function getBlacklistedAlgorithms() : ?array; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Configuration/Destination.php b/vendor/simplesamlphp/saml2/src/SAML2/Configuration/Destination.php index 71e6e8aa824422b1a069e183e34dbae1b7f060eb..67ebbe91992f507837d3ac507d1d8722db2dcaf3 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Configuration/Destination.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Configuration/Destination.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Configuration; use SAML2\Exception\InvalidArgumentException; @@ -18,12 +20,8 @@ class Destination /** * @param string $destination */ - public function __construct($destination) + public function __construct(string $destination) { - if (!is_string($destination)) { - throw InvalidArgumentException::invalidType('string', $destination); - } - $this->destination = $destination; } @@ -33,7 +31,7 @@ public function __construct($destination) * * @return bool */ - public function equals(Destination $otherDestination) + public function equals(Destination $otherDestination) : bool { return $this->destination === $otherDestination->destination; } @@ -42,7 +40,7 @@ public function equals(Destination $otherDestination) /** * @return string */ - public function __toString() + public function __toString() : string { return $this->destination; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Configuration/EntityIdProvider.php b/vendor/simplesamlphp/saml2/src/SAML2/Configuration/EntityIdProvider.php index 5457e8b3c581e1a510bb28ada7047d486602df06..9a79890deaba97a1bae8b78b8e1479b22afe2adc 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Configuration/EntityIdProvider.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Configuration/EntityIdProvider.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Configuration; /** @@ -10,5 +12,5 @@ interface EntityIdProvider /** * @return null|string */ - public function getEntityId(); + public function getEntityId() : ?string; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Configuration/IdentityProvider.php b/vendor/simplesamlphp/saml2/src/SAML2/Configuration/IdentityProvider.php index 0f6acb2d46f2b0e0b4867ba9f77b8bb4c4035c35..a418dd8b6b6596f8efeccfbf26ce5f034440d7bd 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Configuration/IdentityProvider.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Configuration/IdentityProvider.php @@ -1,17 +1,16 @@ <?php +declare(strict_types=1); + namespace SAML2\Configuration; /** * Basic configuration wrapper */ -class IdentityProvider extends ArrayAdapter implements - CertificateProvider, - DecryptionProvider, - EntityIdProvider +final class IdentityProvider extends ArrayAdapter implements CertificateProvider, DecryptionProvider, EntityIdProvider { /** - * @return mixed + * @return array|\Traversable|null */ public function getKeys() { @@ -20,26 +19,25 @@ public function getKeys() /** - * @return mixed + * @return string|null */ - public function getCertificateData() + public function getCertificateData() : ?string { return $this->get('certificateData'); } /** - * @return mixed + * @return string|null */ - public function getCertificateFile() + public function getCertificateFile() : ?string { return $this->get('certificateFile'); } /** - * @return mixed - * @deprecated Please use getCertifiateFile() or getCertificateData() + * @return array|mixed|\Traversable|null */ public function getCertificateFingerprints() { @@ -48,25 +46,25 @@ public function getCertificateFingerprints() /** - * @return mixed + * @return bool|null */ - public function isAssertionEncryptionRequired() + public function isAssertionEncryptionRequired() : ?bool { return $this->get('assertionEncryptionEnabled'); } /** - * @return mixed + * @return string|null */ - public function getSharedKey() + public function getSharedKey() : ?string { return $this->get('sharedKey'); } /** - * @return mixed + * @return mixed|null */ public function hasBase64EncodedAttributes() { @@ -79,8 +77,11 @@ public function hasBase64EncodedAttributes() * @param bool $required * @return mixed|null */ - public function getPrivateKey($name, $required = false) + public function getPrivateKey(string $name, bool $required = null) { + if ($required === null) { + $required = false; + } $privateKeys = $this->get('privateKeys'); $key = array_filter($privateKeys, function (PrivateKey $key) use ($name) { return $key->getName() === $name; @@ -105,18 +106,18 @@ public function getPrivateKey($name, $required = false) /** - * @return mixed + * @return array|null */ - public function getBlacklistedAlgorithms() + public function getBlacklistedAlgorithms() : ?array { return $this->get('blacklistedEncryptionAlgorithms'); } /** - * @return mixed + * @return string|null */ - public function getEntityId() + public function getEntityId() : ?string { return $this->get('entityId'); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Configuration/IdentityProviderAware.php b/vendor/simplesamlphp/saml2/src/SAML2/Configuration/IdentityProviderAware.php index b02a5847aca18b9a4d1f60faa375a0b747cfba02..72c74e8961d212be95f6c535f12263cff00921a3 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Configuration/IdentityProviderAware.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Configuration/IdentityProviderAware.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Configuration; /** @@ -9,7 +11,8 @@ interface IdentityProviderAware { /** * @param IdentityProvider $identityProvider + * * @return void */ - public function setIdentityProvider(IdentityProvider $identityProvider); + public function setIdentityProvider(IdentityProvider $identityProvider) : void; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Configuration/PrivateKey.php b/vendor/simplesamlphp/saml2/src/SAML2/Configuration/PrivateKey.php index 605307bbb5c1a1030d64dc580fb3f42489fdb748..5ab00be500b16ab5056b1fba97f79a42029e05e1 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Configuration/PrivateKey.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Configuration/PrivateKey.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Configuration; use SAML2\Exception\InvalidArgumentException; @@ -19,7 +21,7 @@ class PrivateKey extends ArrayAdapter private $filePathOrContents; /** - * @var string + * @var string|null */ private $passphrase; @@ -38,24 +40,11 @@ class PrivateKey extends ArrayAdapter * * @param string $filePathOrContents * @param string $name - * @param string|null $passphrase + * @param string $passphrase * @param bool $isFile - * @throws \Exception */ - public function __construct($filePathOrContents, $name, $passphrase = null, $isFile = true) + public function __construct(string $filePathOrContents, string $name, string $passphrase = '', bool $isFile = true) { - if (!is_string($filePathOrContents)) { - throw InvalidArgumentException::invalidType('string', $filePathOrContents); - } - - if (!is_string($name)) { - throw InvalidArgumentException::invalidType('string', $name); - } - - if ($passphrase && !is_string($passphrase)) { - throw InvalidArgumentException::invalidType('string', $passphrase); - } - $this->filePathOrContents = $filePathOrContents; $this->passphrase = $passphrase; $this->name = $name; @@ -66,7 +55,7 @@ public function __construct($filePathOrContents, $name, $passphrase = null, $isF /** * @return string */ - public function getFilePath() + public function getFilePath() : string { if (!$this->isFile()) { throw new RuntimeException('No path provided.'); @@ -79,16 +68,16 @@ public function getFilePath() /** * @return bool */ - public function hasPassPhrase() + public function hasPassPhrase() : bool { - return (bool) $this->passphrase; + return $this->passphrase !== null; } /** - * @return string + * @return string|null */ - public function getPassPhrase() + public function getPassPhrase() : ?string { return $this->passphrase; } @@ -97,7 +86,7 @@ public function getPassPhrase() /** * @return string */ - public function getName() + public function getName() : string { return $this->name; } @@ -105,7 +94,7 @@ public function getName() /** * @return string */ - public function getContents() + public function getContents() : string { if ($this->isFile()) { throw new RuntimeException('No contents provided'); @@ -117,7 +106,7 @@ public function getContents() /** * @return bool */ - public function isFile() + public function isFile() : bool { return $this->isFile; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Configuration/Queryable.php b/vendor/simplesamlphp/saml2/src/SAML2/Configuration/Queryable.php index 8a162811384bbe561bd0afe8cc5c8ef458a00a7c..26d97fea45cbcdd8b5096e714106dcfb4bae7e37 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Configuration/Queryable.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Configuration/Queryable.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Configuration; /** @@ -13,7 +15,7 @@ interface Queryable * @param string $key * @return bool */ - public function has($key); + public function has(string $key) : bool; /** @@ -25,5 +27,5 @@ public function has($key); * * @return mixed */ - public function get($key, $default = null); + public function get(string $key, $default = null); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Configuration/ServiceProvider.php b/vendor/simplesamlphp/saml2/src/SAML2/Configuration/ServiceProvider.php index c70be74d4707bf3159b613e0429ed75961bd3209..72c40a3cb9527a8ea8d1cb3cb4fb9dc96b65cc7c 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Configuration/ServiceProvider.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Configuration/ServiceProvider.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Configuration; use RobRichards\XMLSecLibs\XMLSecurityKey; @@ -7,13 +9,10 @@ /** * Basic Configuration Wrapper */ -class ServiceProvider extends ArrayAdapter implements - CertificateProvider, - DecryptionProvider, - EntityIdProvider +class ServiceProvider extends ArrayAdapter implements CertificateProvider, DecryptionProvider, EntityIdProvider { /** - * @return mixed + * @return null|array|\Traversable */ public function getKeys() { @@ -22,26 +21,25 @@ public function getKeys() /** - * @return mixed + * @return null|string */ - public function getCertificateData() + public function getCertificateData() : ?string { return $this->get('certificateData'); } /** - * @return mixed + * @return null|string */ - public function getCertificateFile() + public function getCertificateFile() : ?string { return $this->get('certificateFile'); } /** - * @return mixed - * @deprecated Please use getCertificateData() or getCertificateFile(). + * @return array|\Traversable|null */ public function getCertificateFingerprints() { @@ -50,27 +48,27 @@ public function getCertificateFingerprints() /** - * @return mixed + * @return string|null */ - public function getEntityId() + public function getEntityId() : ?string { return $this->get('entityId'); } /** - * @return mixed + * @return null|bool */ - public function isAssertionEncryptionRequired() + public function isAssertionEncryptionRequired() : ?bool { return $this->get('assertionEncryptionEnabled'); } /** - * @return mixed + * @return null|string */ - public function getSharedKey() + public function getSharedKey() : ?string { return $this->get('sharedKey'); } @@ -81,10 +79,13 @@ public function getSharedKey() * @param bool $required * @return mixed|null */ - public function getPrivateKey($name, $required = false) + public function getPrivateKey(string $name, bool $required = null) { + if ($required === null) { + $required = false; + } $privateKeys = $this->get('privateKeys'); - $key = array_filter($privateKeys, function (PrivateKey $key) use ($name) { + $key = array_filter($privateKeys, function (PrivateKey $key) use ($name) { return $key->getName() === $name; }); @@ -107,9 +108,9 @@ public function getPrivateKey($name, $required = false) /** - * @return mixed + * @return array */ - public function getBlacklistedAlgorithms() + public function getBlacklistedAlgorithms() : array { return $this->get('blacklistedEncryptionAlgorithms', [XMLSecurityKey::RSA_1_5]); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Configuration/ServiceProviderAware.php b/vendor/simplesamlphp/saml2/src/SAML2/Configuration/ServiceProviderAware.php index db453fa4f1327ab08f3e27f9941c1dfb19b1b644..f569bd23ee0f13c21be357a80d3e66595a3b169d 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Configuration/ServiceProviderAware.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Configuration/ServiceProviderAware.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Configuration; /** @@ -11,5 +13,5 @@ interface ServiceProviderAware * @param ServiceProvider $serviceProvider * @return void */ - public function setServiceProvider(ServiceProvider $serviceProvider); + public function setServiceProvider(ServiceProvider $serviceProvider) : void; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Configuration/SimpleSAMLConverter.php b/vendor/simplesamlphp/saml2/src/SAML2/Configuration/SimpleSAMLConverter.php index 1c2bfb872f86c92b4b3e72bdbb52a131372f96e7..1470ea9dfbc57f65d40ae31ba1c2b020b86c4f3f 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Configuration/SimpleSAMLConverter.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Configuration/SimpleSAMLConverter.php @@ -1,8 +1,10 @@ <?php +declare(strict_types=1); + namespace SAML2\Configuration; -use \SimpleSAML\Configuration; +use SimpleSAML\Configuration; /** * Backwards compatibility helper for SimpleSAMLphp @@ -14,11 +16,13 @@ class SimpleSAMLConverter * @param string $certificatePrefix * * @return \SAML2\Configuration\IdentityProvider + * + * @psalm-suppress UndefinedClass */ public static function convertToIdentityProvider( Configuration $configuration, - $certificatePrefix = '' - ) { + string $certificatePrefix = '' + ) : IdentityProvider { $pluckedConfiguration = static::pluckConfiguration($configuration, $certificatePrefix); static::enrichForDecryptionProvider($configuration, $pluckedConfiguration); static::enrichForIdentityProvider($configuration, $pluckedConfiguration); @@ -32,11 +36,13 @@ public static function convertToIdentityProvider( * @param string $certificatePrefix * * @return \SAML2\Configuration\ServiceProvider + * + * @psalm-suppress UndefinedClass */ public static function convertToServiceProvider( Configuration $configuration, - $certificatePrefix = '' - ) { + string $certificatePrefix = '' + ) : ServiceProvider { $pluckedConfiguration = static::pluckConfiguration($configuration, $certificatePrefix); static::enrichForServiceProvider($configuration, $pluckedConfiguration); static::enrichForDecryptionProvider($configuration, $pluckedConfiguration); @@ -50,8 +56,10 @@ public static function convertToServiceProvider( * @param string $prefix * * @return array + * + * @psalm-suppress UndefinedClass */ - protected static function pluckConfiguration(Configuration $configuration, $prefix = '') + protected static function pluckConfiguration(Configuration $configuration, string $prefix = '') : array { $extracted = []; @@ -73,15 +81,9 @@ protected static function pluckConfiguration(Configuration $configuration, $pref $extracted['certificateData'] = $configuration->getString($prefix.'certificate'); } - // ported from - // https://github.com/simplesamlphp/simplesamlphp/blob/3d735912342767d391297cc5e13272a76730aca0/modules/saml/lib/Message.php#L161 - if ($configuration->hasValue($prefix.'certFingerprint')) { - $extracted['certificateFingerprint'] = $configuration->getArrayizeString('certFingerprint'); - } - $extracted['assertionEncryptionEnabled'] = $configuration->getBoolean('assertion.encryption', false); - if ($configuration->has('sharedKey')) { + if ($configuration->hasValue('sharedKey')) { $extracted['sharedKey'] = $configuration->getString('sharedKey'); } @@ -94,8 +96,10 @@ protected static function pluckConfiguration(Configuration $configuration, $pref * @param array $baseConfiguration * * @return void + * + * @psalm-suppress UndefinedClass */ - protected static function enrichForIdentityProvider(Configuration $configuration, array &$baseConfiguration) + protected static function enrichForIdentityProvider(Configuration $configuration, array &$baseConfiguration) : void { $baseConfiguration['base64EncodedAttributes'] = $configuration->getBoolean('base64attributes', false); $baseConfiguration['entityId'] = $configuration->getString('entityid'); @@ -107,8 +111,10 @@ protected static function enrichForIdentityProvider(Configuration $configuration * @param array $baseConfiguration * * @return void + * + * @psalm-suppress UndefinedClass */ - protected static function enrichForServiceProvider(Configuration $configuration, array &$baseConfiguration) + protected static function enrichForServiceProvider(Configuration $configuration, array &$baseConfiguration) : void { $baseConfiguration['entityId'] = $configuration->getString('entityid'); } @@ -119,16 +125,18 @@ protected static function enrichForServiceProvider(Configuration $configuration, * @param array $baseConfiguration * * @return void + * + * @psalm-suppress UndefinedClass */ protected static function enrichForDecryptionProvider( Configuration $configuration, array &$baseConfiguration - ) { - if ($configuration->has('sharedKey')) { + ) : void { + if ($configuration->hasValue('sharedKey')) { $baseConfiguration['sharedKey'] = $configuration->getString('sharedKey', null); } - if ($configuration->has('new_privatekey')) { + if ($configuration->hasValue('new_privatekey')) { $baseConfiguration['privateKeys'][] = new PrivateKey( $configuration->getString('new_privatekey'), PrivateKey::NAME_NEW, @@ -143,9 +151,9 @@ protected static function enrichForDecryptionProvider( $configuration->getString('privatekey_pass', null) ); - if ($configuration->has('encryption.blacklisted-algorithms')) { + if ($configuration->hasValue('encryption.blacklisted-algorithms')) { $baseConfiguration['blacklistedEncryptionAlgorithms'] = $configuration - ->get('encryption.blacklisted-algorithms'); + ->getValue('encryption.blacklisted-algorithms'); } } } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Constants.php b/vendor/simplesamlphp/saml2/src/SAML2/Constants.php index 35c5193775ed9a3736a0f8c5e989c407aaa3bf20..a7f66e265583e04435f310ab6b0cb7cd74eed72c 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Constants.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Constants.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2; /** @@ -24,6 +26,16 @@ class Constants */ const AC_UNSPECIFIED = 'urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified'; + /** + * Subject identifier attribute + */ + const ATTR_SUBJECT_ID = 'urn:oasis:names:tc:SAML:attribute:subject-id'; + + /** + * Pairwise identifier attribute + */ + const ATTR_PAIRWISE_ID = 'urn:oasis:names:tc:SAML:attribute:pairwise-id'; + /** * The URN for the HTTP-POST binding. */ @@ -420,9 +432,4 @@ class Constants * Second-level status code. */ const STATUS_UNSUPPORTED_BINDING = 'urn:oasis:names:tc:SAML:2.0:status:UnsupportedBinding'; - - /** - * The name of the EntityAttribute used to indicate the subject-id needs of a Service Provider. - */ - const SUBJECT_ID_REQ = 'urn:oasis:names:tc:SAML:profiles:subject-id:req'; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/DOMDocumentFactory.php b/vendor/simplesamlphp/saml2/src/SAML2/DOMDocumentFactory.php index 2aebcb4dd26a642d04f8ce69726bb50eafae9f5a..9db9c62e1dd551a912703bd4e6430953c7a798f6 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/DOMDocumentFactory.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/DOMDocumentFactory.php @@ -1,7 +1,11 @@ <?php +declare(strict_types=1); + namespace SAML2; +use DOMDocument; + use SAML2\Exception\InvalidArgumentException; use SAML2\Exception\RuntimeException; use SAML2\Exception\UnparseableXmlException; @@ -22,18 +26,18 @@ private function __construct() * * @return \DOMDocument */ - public static function fromString($xml) + public static function fromString(string $xml) : DOMDocument { - if (!is_string($xml) || trim($xml) === '') { + if (trim($xml) === '') { throw InvalidArgumentException::invalidType('non-empty string', $xml); } - $entityLoader = libxml_disable_entity_loader(true); + $entityLoader = libxml_disable_entity_loader(true); $internalErrors = libxml_use_internal_errors(true); libxml_clear_errors(); $domDocument = self::create(); - $options = LIBXML_DTDLOAD | LIBXML_DTDATTR | LIBXML_NONET; + $options = LIBXML_DTDLOAD | LIBXML_DTDATTR | LIBXML_NONET | LIBXML_PARSEHUGE; if (defined('LIBXML_COMPACT')) { $options |= LIBXML_COMPACT; } @@ -65,16 +69,12 @@ public static function fromString($xml) /** - * @param $file + * @param string $file * * @return \DOMDocument */ - public static function fromFile($file) + public static function fromFile(string $file) : DOMDocument { - if (!is_string($file)) { - throw InvalidArgumentException::invalidType('string', $file); - } - if (!is_file($file)) { throw new InvalidArgumentException(sprintf('Path "%s" is not a file', $file)); } @@ -104,8 +104,8 @@ public static function fromFile($file) /** * @return \DOMDocument */ - public static function create() + public static function create() : DOMDocument { - return new \DOMDocument(); + return new DOMDocument(); } } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/EncryptedAssertion.php b/vendor/simplesamlphp/saml2/src/SAML2/EncryptedAssertion.php index 823bf7ee229c830c8930afd29a9515fa92cae5ca..df1426088248010e59e035d91f6dc90b9578dbcc 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/EncryptedAssertion.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/EncryptedAssertion.php @@ -1,7 +1,11 @@ <?php +declare(strict_types=1); + namespace SAML2; +use DOMElement; +use DOMNode; use RobRichards\XMLSecLibs\XMLSecEnc; use RobRichards\XMLSecLibs\XMLSecurityKey; @@ -20,20 +24,26 @@ class EncryptedAssertion private $encryptedData; + /** + * @var bool + */ + protected $wasSignedAtConstruction = false; + /** * Constructor for SAML 2 encrypted assertions. * * @param \DOMElement|null $xml The encrypted assertion XML element. * @throws \Exception */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { if ($xml === null) { return; } + /** @var \DOMElement[] $data */ $data = Utils::xpQuery($xml, './xenc:EncryptedData'); - if (count($data) === 0) { + if (empty($data)) { throw new \Exception('Missing encrypted data in <saml:EncryptedAssertion>.'); } elseif (count($data) > 1) { throw new \Exception('More than one encrypted data element in <saml:EncryptedAssertion>.'); @@ -42,6 +52,14 @@ public function __construct(\DOMElement $xml = null) } + /** + * @return bool + */ + public function wasSignedAtConstruction() : bool + { + return $this->wasSignedAtConstruction; + } + /** * Set the assertion. * @@ -50,7 +68,7 @@ public function __construct(\DOMElement $xml = null) * @throws \Exception * @return void */ - public function setAssertion(Assertion $assertion, XMLSecurityKey $key) + public function setAssertion(Assertion $assertion, XMLSecurityKey $key) : void { $xml = $assertion->toXML(); @@ -81,6 +99,10 @@ public function setAssertion(Assertion $assertion, XMLSecurityKey $key) throw new \Exception('Unknown key type for encryption: '.$key->type); } + /** + * @var \DOMElement encryptedData + * @psalm-suppress UndefinedClass + */ $this->encryptedData = $enc->encryptNode($symmetricKey); } @@ -92,7 +114,7 @@ public function setAssertion(Assertion $assertion, XMLSecurityKey $key) * @param array $blacklist Blacklisted decryption algorithms. * @return \SAML2\Assertion The decrypted assertion. */ - public function getAssertion(XMLSecurityKey $inputKey, array $blacklist = []) + public function getAssertion(XMLSecurityKey $inputKey, array $blacklist = []) : Assertion { $assertionXML = Utils::decryptElement($this->encryptedData, $inputKey, $blacklist); @@ -108,7 +130,7 @@ public function getAssertion(XMLSecurityKey $inputKey, array $blacklist = []) * @param \DOMNode|null $parentElement The DOM node the assertion should be created in. * @return \DOMElement This encrypted assertion. */ - public function toXML(\DOMNode $parentElement = null) + public function toXML(DOMNode $parentElement = null) : DOMElement { if ($parentElement === null) { $document = DOMDocumentFactory::create(); diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Exception/InvalidArgumentException.php b/vendor/simplesamlphp/saml2/src/SAML2/Exception/InvalidArgumentException.php index c3e9f8e1857f1a073f5968eae2d905c8bc073957..9daebe837fcac1b5992e3bc2977ac3f9078cf9ad 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Exception/InvalidArgumentException.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Exception/InvalidArgumentException.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Exception; class InvalidArgumentException extends \InvalidArgumentException implements Throwable @@ -10,7 +12,7 @@ class InvalidArgumentException extends \InvalidArgumentException implements Thro * * @return \SAML2\Exception\InvalidArgumentException */ - public static function invalidType($expected, $parameter) + public static function invalidType(string $expected, $parameter) : InvalidArgumentException { $message = sprintf( 'Invalid Argument type: "%s" expected, "%s" given', diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Exception/RuntimeException.php b/vendor/simplesamlphp/saml2/src/SAML2/Exception/RuntimeException.php index 26c8c4e485b6fa9a8dfecf9ed44ae229f843bc18..6e96d3658fdeaea504bc1207aa7edc500a4a9d49 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Exception/RuntimeException.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Exception/RuntimeException.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Exception; /** diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Exception/Throwable.php b/vendor/simplesamlphp/saml2/src/SAML2/Exception/Throwable.php index 5384fbac79202d4c556a1baf6af94221e8656770..3242b3220393af213981cec37cd83ec6bf43c92d 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Exception/Throwable.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Exception/Throwable.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Exception; /** diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Exception/UnparseableXmlException.php b/vendor/simplesamlphp/saml2/src/SAML2/Exception/UnparseableXmlException.php index dac6d549b179872f5e177c348dfbb6d67f8a2f7b..b41b3bb2c047a80fa8c8f35160ee9682130aa4b7 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Exception/UnparseableXmlException.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Exception/UnparseableXmlException.php @@ -1,9 +1,14 @@ <?php +declare(strict_types=1); + namespace SAML2\Exception; +use \LibXMLError; + final class UnparseableXmlException extends RuntimeException { + /** @var array */ private static $levelMap = [ LIBXML_ERR_WARNING => 'WARNING', LIBXML_ERR_ERROR => 'ERROR', @@ -16,7 +21,7 @@ final class UnparseableXmlException extends RuntimeException * * @param \LibXMLError $error */ - public function __construct(\LibXMLError $error) + public function __construct(LibXMLError $error) { $message = sprintf( 'Unable to parse XML - "%s[%d]": "%s" in "%s" at line %d on column %d"', diff --git a/vendor/simplesamlphp/saml2/src/SAML2/HTTPArtifact.php b/vendor/simplesamlphp/saml2/src/SAML2/HTTPArtifact.php index 44fa4bc4232eaf270f67e8379a1f28d4531a9572..23e26e02e0dce98b1302b95ab323bdb3ed8dfa6d 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/HTTPArtifact.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/HTTPArtifact.php @@ -1,25 +1,29 @@ <?php +declare(strict_types=1); + namespace SAML2; use RobRichards\XMLSecLibs\XMLSecurityKey; -use SAML2\Utilities\Temporal; use SimpleSAML\Configuration; use SimpleSAML\Metadata\MetaDataStorageHandler; +use SimpleSAML\Module\saml\Message as MSG; use SimpleSAML\Store; +use SimpleSAML\Utils\HTTP; + +use SAML2\Utilities\Temporal; +use SAML2\XML\saml\Issuer; /** * Class which implements the HTTP-Artifact binding. * * @author Danny Bollaert, UGent AS. <danny.bollaert@ugent.be> * @package SimpleSAMLphp - * - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class HTTPArtifact extends Binding { /** - * @var \SimpleSAML\Configuration + * @var mixed */ private $spMetadata; @@ -31,15 +35,20 @@ class HTTPArtifact extends Binding * @throws \Exception * @return string The URL the user should be redirected to in order to send a message. */ - public function getRedirectURL(Message $message) + public function getRedirectURL(Message $message) : string { + /** @psalm-suppress UndefinedClass */ $store = Store::getInstance(); if ($store === false) { throw new \Exception('Unable to send artifact without a datastore configured.'); } $generatedId = pack('H*', bin2hex(openssl_random_pseudo_bytes(20))); - $artifact = base64_encode("\x00\x04\x00\x00".sha1($message->getIssuer(), true).$generatedId); + $issuer = $message->getIssuer(); + if ($issuer === null) { + throw new \Exception('Cannot get redirect URL, no Issuer set in the message.'); + } + $artifact = base64_encode("\x00\x04\x00\x00".sha1($issuer->getValue(), true).$generatedId); $artifactData = $message->toUnsignedXML(); $artifactDataString = $artifactData->ownerDocument->saveXML($artifactData); @@ -53,7 +62,12 @@ public function getRedirectURL(Message $message) $params['RelayState'] = $relayState; } - return \SimpleSAML\Utils\HTTP::addURLparameter($message->getDestination(), $params); + $destination = $message->getDestination(); + if ($destination === null) { + throw new \Exception('Cannot get redirect URL, no destination set in the message.'); + } + /** @psalm-suppress UndefinedClass */ + return HTTP::addURLparameters($destination, $params); } @@ -63,9 +77,9 @@ public function getRedirectURL(Message $message) * Note: This function never returns. * * @param \SAML2\Message $message The message we should send. - * @retrun void + * @return void */ - public function send(Message $message) + public function send(Message $message) : void { $destination = $this->getRedirectURL($message); Utils::getContainer()->redirect($destination); @@ -80,7 +94,7 @@ public function send(Message $message) * @throws \Exception * @return \SAML2\Message The received message. */ - public function receive() + public function receive(): Message { if (array_key_exists('SAMLart', $_REQUEST)) { $artifact = base64_decode($_REQUEST['SAMLart']); @@ -90,6 +104,7 @@ public function receive() throw new \Exception('Missing SAMLart parameter.'); } + /** @psalm-suppress UndefinedClass */ $metadataHandler = MetaDataStorageHandler::getMetadataHandler(); $idpMetadata = $metadataHandler->getMetaDataConfigForSha1($sourceId, 'saml20-idp-remote'); @@ -116,13 +131,16 @@ public function receive() $ar = new ArtifactResolve(); /* Set the request attributes */ + $issuer = new Issuer(); + $issuer->setValue($this->spMetadata->getString('entityid')); - $ar->setIssuer($this->spMetadata->getString('entityid')); + $ar->setIssuer($issuer); $ar->setArtifact($_REQUEST['SAMLart']); $ar->setDestination($endpoint['Location']); - /* Sign the request */ - \SimpleSAML\Module\saml\Message::addSign($this->spMetadata, $idpMetadata, $ar); // Shoaib - moved from the SOAPClient. + // sign the request + /** @psalm-suppress UndefinedClass */ + MSG::addSign($this->spMetadata, $idpMetadata, $ar); // Shoaib - moved from the SOAPClient. $soap = new SOAPClient(); @@ -138,7 +156,7 @@ public function receive() if ($xml === null) { /* Empty ArtifactResponse - possibly because of Artifact replay? */ - return null; + throw new \Exception('Empty ArtifactResponse received, maybe a replay?'); } $samlResponse = Message::fromXML($xml); @@ -154,9 +172,12 @@ public function receive() /** * @param \SimpleSAML\Configuration $sp + * * @return void + * + * @psalm-suppress UndefinedClass */ - public function setSPMetadata(Configuration $sp) + public function setSPMetadata(Configuration $sp) : void { $this->spMetadata = $sp; } @@ -169,7 +190,7 @@ public function setSPMetadata(Configuration $sp) * @param XMLSecurityKey $key * @return bool */ - public static function validateSignature(ArtifactResponse $message, XMLSecurityKey $key) + public static function validateSignature(ArtifactResponse $message, XMLSecurityKey $key) : bool { return $message->validate($key); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/HTTPPost.php b/vendor/simplesamlphp/saml2/src/SAML2/HTTPPost.php index 3109f15fbf447995fa0d95296c9809a885d0335e..f775aa8e83da3f24f239619719f59e58834c3a83 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/HTTPPost.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/HTTPPost.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2; /** @@ -15,20 +17,24 @@ class HTTPPost extends Binding * Note: This function never returns. * * @param \SAML2\Message $message The message we should send. + * @return void */ - public function send(Message $message) + public function send(Message $message) : void { if ($this->destination === null) { $destination = $message->getDestination(); + if ($destination === null) { + throw new \Exception('Cannot send message, no destination set.'); + } } else { $destination = $this->destination; } $relayState = $message->getRelayState(); $msgStr = $message->toSignedXML(); - $msgStr = $msgStr->ownerDocument->saveXML($msgStr); Utils::getContainer()->debugMessage($msgStr, 'out'); + $msgStr = $msgStr->ownerDocument->saveXML($msgStr); $msgStr = base64_encode($msgStr); @@ -57,24 +63,29 @@ public function send(Message $message) * @return \SAML2\Message The received message. * @throws \Exception */ - public function receive() + public function receive(): Message { if (array_key_exists('SAMLRequest', $_POST)) { - $msg = $_POST['SAMLRequest']; + $msgStr = $_POST['SAMLRequest']; } elseif (array_key_exists('SAMLResponse', $_POST)) { - $msg = $_POST['SAMLResponse']; + $msgStr = $_POST['SAMLResponse']; } else { throw new \Exception('Missing SAMLRequest or SAMLResponse parameter.'); } - $msg = base64_decode($msg); + $msgStr = base64_decode($msgStr); - Utils::getContainer()->debugMessage($msg, 'in'); + $xml = new \DOMDocument(); + $xml->loadXML($msgStr); + $msgStr = $xml->saveXML(); - $document = DOMDocumentFactory::fromString($msg); - $xml = $document->firstChild; + $document = DOMDocumentFactory::fromString($msgStr); + Utils::getContainer()->debugMessage($document->documentElement, 'in'); + if (!$document->firstChild instanceof \DOMElement) { + throw new \Exception('Malformed SAML message received.'); + } - $msg = Message::fromXML($xml); + $msg = Message::fromXML($document->firstChild); if (array_key_exists('RelayState', $_POST)) { $msg->setRelayState($_POST['RelayState']); diff --git a/vendor/simplesamlphp/saml2/src/SAML2/HTTPRedirect.php b/vendor/simplesamlphp/saml2/src/SAML2/HTTPRedirect.php index 18533dbed12710b1bbad5bab7f9eb9099df15606..adff7293fbda7c488932b32e4c952328757b0e8a 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/HTTPRedirect.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/HTTPRedirect.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2; use RobRichards\XMLSecLibs\XMLSecurityKey; @@ -14,17 +16,19 @@ class HTTPRedirect extends Binding { const DEFLATE = 'urn:oasis:names:tc:SAML:2.0:bindings:URL-Encoding:DEFLATE'; - /** * Create the redirect URL for a message. * - * @param \SAML2\Message $message The message. - * @return string The URL the user should be redirected to in order to send a message. + * @param \SAML2\Message $message The message. + * @return string The URL the user should be redirected to in order to send a message. */ - public function getRedirectURL(Message $message) + public function getRedirectURL(Message $message) : string { if ($this->destination === null) { $destination = $message->getDestination(); + if ($destination === null) { + throw new \Exception('Cannot build a redirect URL, no destination set.'); + } } else { $destination = $this->destination; } @@ -34,9 +38,9 @@ public function getRedirectURL(Message $message) $key = $message->getSignatureKey(); $msgStr = $message->toUnsignedXML(); - $msgStr = $msgStr->ownerDocument->saveXML($msgStr); Utils::getContainer()->debugMessage($msgStr, 'out'); + $msgStr = $msgStr->ownerDocument->saveXML($msgStr); $msgStr = gzdeflate($msgStr); $msgStr = base64_encode($msgStr); @@ -54,8 +58,8 @@ public function getRedirectURL(Message $message) $msg .= '&RelayState='.urlencode($relayState); } - if ($key !== null) { - /* Add the signature. */ + if ($key !== null) { // add the signature + /** @psalm-suppress PossiblyInvalidArgument */ $msg .= '&SigAlg='.urlencode($key->type); $signature = $key->signData($msg); @@ -79,7 +83,7 @@ public function getRedirectURL(Message $message) * @param \SAML2\Message $message The message we should send. * @return void */ - public function send(Message $message) + public function send(Message $message) : void { $destination = $this->getRedirectURL($message); Utils::getContainer()->getLogger()->debug('Redirect to '.strlen($destination).' byte URL: '.$destination); @@ -96,9 +100,8 @@ public function send(Message $message) * @return \SAML2\Message The received message. * * NPath is currently too high but solving that just moves code around. - * @SuppressWarnings(PHPMD.NPathComplexity) */ - public function receive() + public function receive(): Message { $data = self::parseQuery(); if (array_key_exists('SAMLRequest', $data)) { @@ -123,10 +126,12 @@ public function receive() throw new \Exception('Error while inflating SAML message.'); } - Utils::getContainer()->debugMessage($message, 'in'); $document = DOMDocumentFactory::fromString($message); - $xml = $document->firstChild; - $message = Message::fromXML($xml); + Utils::getContainer()->debugMessage($document->documentElement, 'in'); + if (!$document->firstChild instanceof \DOMElement) { + throw new \Exception('Malformed SAML message received.'); + } + $message = Message::fromXML($document->firstChild); if (array_key_exists('RelayState', $data)) { $message->setRelayState($data['RelayState']); @@ -161,7 +166,7 @@ public function receive() * * @return array The query data that is signed. */ - private static function parseQuery() + private static function parseQuery() : array { /* * Parse the query string. We need to do this ourself, so that we get access @@ -214,7 +219,7 @@ private static function parseQuery() * @throws \Exception * @return void */ - public static function validateSignature(array $data, XMLSecurityKey $key) + public static function validateSignature(array $data, XMLSecurityKey $key) : void { Assert::keyExists($data, "Query"); Assert::keyExists($data, "SigAlg"); diff --git a/vendor/simplesamlphp/saml2/src/SAML2/LogoutRequest.php b/vendor/simplesamlphp/saml2/src/SAML2/LogoutRequest.php index 88c13404210c0be714038ad197e00a1182a7015a..4e0694b0d88a052ca09404de4971de2834f9c02a 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/LogoutRequest.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/LogoutRequest.php @@ -1,11 +1,14 @@ <?php +declare(strict_types=1); + namespace SAML2; +use DOMElement; use RobRichards\XMLSecLibs\XMLSecEnc; use RobRichards\XMLSecLibs\XMLSecurityKey; + use SAML2\XML\saml\NameID; -use Webmozart\Assert\Assert; /** * Class for SAML 2 logout request messages. @@ -19,7 +22,7 @@ class LogoutRequest extends Request * * @var int|null */ - private $notOnOrAfter; + private $notOnOrAfter = null; /** * The encrypted NameID in the request. @@ -28,21 +31,21 @@ class LogoutRequest extends Request * * @var \DOMElement|null */ - private $encryptedNameId; + private $encryptedNameId = null; /** * The name identifier of the session that should be terminated. * - * @var \SAML2\XML\saml\NameID + * @var \SAML2\XML\saml\NameID|null */ - private $nameId; + private $nameId = null; /** * The SessionIndexes of the sessions that should be terminated. * * @var array */ - private $sessionIndexes; + private $sessionIndexes = []; /** @@ -51,7 +54,7 @@ class LogoutRequest extends Request * @param \DOMElement|null $xml The input message. * @throws \Exception */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { parent::__construct('LogoutRequest', $xml); @@ -62,23 +65,24 @@ public function __construct(\DOMElement $xml = null) } if ($xml->hasAttribute('NotOnOrAfter')) { - $this->setNotOnOrAfter(Utils::xsDateTimeToTimestamp($xml->getAttribute('NotOnOrAfter'))); + $this->notOnOrAfter = Utils::xsDateTimeToTimestamp($xml->getAttribute('NotOnOrAfter')); } + /** @var \DOMElement[] $nameId */ $nameId = Utils::xpQuery($xml, './saml_assertion:NameID | ./saml_assertion:EncryptedID/xenc:EncryptedData'); if (empty($nameId)) { throw new \Exception('Missing <saml:NameID> or <saml:EncryptedID> in <samlp:LogoutRequest>.'); } elseif (count($nameId) > 1) { throw new \Exception('More than one <saml:NameID> or <saml:EncryptedD> in <samlp:LogoutRequest>.'); } - $nameId = $nameId[0]; - if ($nameId->localName === 'EncryptedData') { + if ($nameId[0]->localName === 'EncryptedData') { /* The NameID element is encrypted. */ - $this->setEncryptedNameId($nameId); + $this->encryptedNameId = $nameId[0]; } else { - $this->setNameId(new NameID($nameId)); + $this->nameId = new NameID($nameId[0]); } + /** @var \DOMElement[] $sessionIndexes */ $sessionIndexes = Utils::xpQuery($xml, './saml_protocol:SessionIndex'); foreach ($sessionIndexes as $sessionIndex) { $this->sessionIndexes[] = trim($sessionIndex->textContent); @@ -91,7 +95,7 @@ public function __construct(\DOMElement $xml = null) * * @return int|null The expiration time of this request. */ - public function getNotOnOrAfter() + public function getNotOnOrAfter() : ?int { return $this->notOnOrAfter; } @@ -103,10 +107,8 @@ public function getNotOnOrAfter() * @param int|null $notOnOrAfter The expiration time of this request. * @return void */ - public function setNotOnOrAfter($notOnOrAfter) + public function setNotOnOrAfter(int $notOnOrAfter = null) : void { - Assert::nullOrInteger($notOnOrAfter); - $this->notOnOrAfter = $notOnOrAfter; } @@ -116,9 +118,9 @@ public function setNotOnOrAfter($notOnOrAfter) * * @return bool True if the NameId is encrypted, false if not. */ - public function isNameIdEncrypted() + public function isNameIdEncrypted() : bool { - if ($this->getEncryptedNameId() !== null) { + if ($this->encryptedNameId !== null) { return true; } @@ -132,13 +134,17 @@ public function isNameIdEncrypted() * @param XMLSecurityKey $key The encryption key. * @return void */ - public function encryptNameId(XMLSecurityKey $key) + public function encryptNameId(XMLSecurityKey $key) : void { + if ($this->nameId === null) { + throw new \Exception('Cannot encrypt NameID without a NameID set.'); + } /* First create a XML representation of the NameID. */ $doc = DOMDocumentFactory::create(); $root = $doc->createElement('root'); $doc->appendChild($root); - $this->getNameId()->toXML($root); + $this->nameId->toXML($root); + /** @var \DOMElement $nameId */ $nameId = $root->firstChild; Utils::getContainer()->debugMessage($nameId, 'encrypt'); @@ -152,30 +158,33 @@ public function encryptNameId(XMLSecurityKey $key) $symmetricKey->generateSessionKey(); $enc->encryptKey($key, $symmetricKey); - $this->setEncryptedNameId($enc->encryptNode($symmetricKey)); - $this->setNameId(null); + /** + * @var \DOMElement encryptedNameId + * @psalm-suppress UndefinedClass + */ + $this->encryptedNameId = $enc->encryptNode($symmetricKey); + $this->nameId = null; } /** * Decrypt the NameID in the LogoutRequest. * - * @param XMLSecurityKey $key The decryption key. - * @param array $blacklist Blacklisted decryption algorithms. + * @param XMLSecurityKey $key The decryption key. + * @param array $blacklist Blacklisted decryption algorithms. * @return void */ - public function decryptNameId(XMLSecurityKey $key, array $blacklist = []) + public function decryptNameId(XMLSecurityKey $key, array $blacklist = []) : void { - if ($this->getEncryptedNameId() === null) { + if ($this->encryptedNameId === null) { /* No NameID to decrypt. */ return; } - $nameId = Utils::decryptElement($this->getEncryptedNameId(), $key, $blacklist); + $nameId = Utils::decryptElement($this->encryptedNameId, $key, $blacklist); Utils::getContainer()->debugMessage($nameId, 'decrypt'); - $this->setNameId(new NameID($nameId)); - - $this->setEncryptedNameId(null); + $this->nameId = new NameID($nameId); + $this->encryptedNameId = null; } @@ -183,11 +192,11 @@ public function decryptNameId(XMLSecurityKey $key, array $blacklist = []) * Retrieve the name identifier of the session that should be terminated. * * @throws \Exception - * @return \SAML2\XML\saml\NameID The name identifier of the session that should be terminated. + * @return \SAML2\XML\saml\NameID|null The name identifier of the session that should be terminated. */ - public function getNameId() + public function getNameId() : ?NameID { - if ($this->getEncryptedNameId() !== null) { + if ($this->encryptedNameId !== null) { throw new \Exception('Attempted to retrieve encrypted NameID without decrypting it first.'); } @@ -198,49 +207,21 @@ public function getNameId() /** * Set the name identifier of the session that should be terminated. * - * @param \SAML2\XML\saml\NameID|array|null $nameId The name identifier of the session that should be terminated. + * @param \SAML2\XML\saml\NameID $nameId The name identifier of the session that should be terminated. * @return void */ - public function setNameId($nameId) + public function setNameId(NameID $nameId) : void { - Assert::true(is_array($nameId) || $nameId instanceof NameID || is_null($nameId)); - - if (is_array($nameId)) { - $nameId = NameID::fromArray($nameId); - } $this->nameId = $nameId; } - /** - * Retrieve the encrypted name identifier. - * - * @return \DOMElement|null - */ - private function getEncryptedNameId() - { - return $this->encryptedNameId; - } - - - /** - * Set the encrypted name identifier. - * - * @param \DOMElement|null $nameId The name identifier of the session that should be terminated. - * @return void - */ - private function setEncryptedNameId(\DOMElement $nameId = null) - { - $this->encryptedNameId = $nameId; - } - - /** * Retrieve the SessionIndexes of the sessions that should be terminated. * * @return array The SessionIndexes, or an empty array if all sessions should be terminated. */ - public function getSessionIndexes() + public function getSessionIndexes() : array { return $this->sessionIndexes; } @@ -252,7 +233,7 @@ public function getSessionIndexes() * @param array $sessionIndexes The SessionIndexes, or an empty array if all sessions should be terminated. * @return void */ - public function setSessionIndexes(array $sessionIndexes) + public function setSessionIndexes(array $sessionIndexes) : void { $this->sessionIndexes = $sessionIndexes; } @@ -263,7 +244,7 @@ public function setSessionIndexes(array $sessionIndexes) * * @return string|null The sesion index of the session that should be terminated. */ - public function getSessionIndex() + public function getSessionIndex() : ?string { if (empty($this->sessionIndexes)) { return null; @@ -279,10 +260,8 @@ public function getSessionIndex() * @param string|null $sessionIndex The sesion index of the session that should be terminated. * @return void */ - public function setSessionIndex($sessionIndex) + public function setSessionIndex(string $sessionIndex = null) : void { - Assert::nullOrString($sessionIndex); - if (is_null($sessionIndex)) { $this->sessionIndexes = []; } else { @@ -296,20 +275,24 @@ public function setSessionIndex($sessionIndex) * * @return \DOMElement This logout request. */ - public function toUnsignedXML() + public function toUnsignedXML() : DOMElement { + if ($this->encryptedNameId === null && $this->nameId === null) { + throw new \Exception('Cannot convert LogoutRequest to XML without a NameID set.'); + } + $root = parent::toUnsignedXML(); if ($this->notOnOrAfter !== null) { - $root->setAttribute('NotOnOrAfter', gmdate('Y-m-d\TH:i:s\Z', $this->getNotOnOrAfter())); + $root->setAttribute('NotOnOrAfter', gmdate('Y-m-d\TH:i:s\Z', $this->notOnOrAfter)); } - if ($this->getEncryptedNameId() === null) { + if ($this->encryptedNameId === null) { $this->nameId->toXML($root); } else { $eid = $root->ownerDocument->createElementNS(Constants::NS_SAML, 'saml:'.'EncryptedID'); $root->appendChild($eid); - $eid->appendChild($root->ownerDocument->importNode($this->getEncryptedNameId(), true)); + $eid->appendChild($root->ownerDocument->importNode($this->encryptedNameId, true)); } foreach ($this->sessionIndexes as $sessionIndex) { diff --git a/vendor/simplesamlphp/saml2/src/SAML2/LogoutResponse.php b/vendor/simplesamlphp/saml2/src/SAML2/LogoutResponse.php index 214e305e056685072cbd6f39ecbd6b8c18d13cbb..c588fad846f65feababa36eca5ac7a5308f02ca7 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/LogoutResponse.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/LogoutResponse.php @@ -1,7 +1,11 @@ <?php +declare(strict_types=1); + namespace SAML2; +use DOMElement; + /** * Class for SAML 2 LogoutResponse messages. * @@ -14,7 +18,7 @@ class LogoutResponse extends StatusResponse * * @param \DOMElement|null $xml The input message. */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { parent::__construct('LogoutResponse', $xml); diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Message.php b/vendor/simplesamlphp/saml2/src/SAML2/Message.php index 1dace0cd27d7740c074e79aa0aac92ec6c757943..76bbbee4f2efd21a447713c458887e3a73efdc5a 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Message.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Message.php @@ -1,24 +1,23 @@ <?php +declare(strict_types=1); + namespace SAML2; +use DOMElement; use RobRichards\XMLSecLibs\XMLSecurityKey; + use SAML2\Utilities\Temporal; use SAML2\XML\saml\Issuer; use SAML2\XML\samlp\Extensions; -use Webmozart\Assert\Assert; /** * Base class for all SAML 2 messages. * * Implements what is common between the samlp:RequestAbstractType and * samlp:StatusResponseType element types. - * - * - * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ -abstract class Message implements SignedElement +abstract class Message extends SignedElement { /** * Request extensions. @@ -55,28 +54,28 @@ abstract class Message implements SignedElement * * @var string|null */ - private $destination; + private $destination = null; /** * The destination URL of this message if it is known. * - * @var string|null + * @var string */ private $consent = Constants::CONSENT_UNSPECIFIED; /** * The entity id of the issuer of this message, or null if unknown. * - * @var string|\SAML2\XML\saml\Issuer|null + * @var \SAML2\XML\saml\Issuer|null */ - private $issuer; + private $issuer = null; /** * The RelayState associated with this message. * * @var string|null */ - private $relayState; + private $relayState = null; /** * The \DOMDocument we are currently building. @@ -95,7 +94,7 @@ abstract class Message implements SignedElement * * @var XMLSecurityKey|null */ - private $signatureKey; + protected $signatureKey; /** * @var bool @@ -107,7 +106,7 @@ abstract class Message implements SignedElement * * @var array */ - private $certificates; + protected $certificates; /** * Available methods for validating this message. @@ -119,7 +118,7 @@ abstract class Message implements SignedElement /** * @var null|string */ - private $signatureMethod; + private $signatureMethod = null; /** @@ -132,14 +131,13 @@ abstract class Message implements SignedElement * If no XML element is given, the message is initialized with suitable * default values. * - * @param string $tagName The tag name of the root element - * @param \DOMElement|null $xml The input message + * @param string $tagName The tag name of the root element + * @param \DOMElement|null $xml The input message * * @throws \Exception */ - protected function __construct($tagName, \DOMElement $xml = null) + protected function __construct(string $tagName, DOMElement $xml = null) { - Assert::string($tagName); $this->tagName = $tagName; $this->id = Utils::getContainer()->generateId(); @@ -171,12 +169,10 @@ protected function __construct($tagName, \DOMElement $xml = null) $this->consent = $xml->getAttribute('Consent'); } + /** @var \DOMElement[] $issuer */ $issuer = Utils::xpQuery($xml, './saml_assertion:Issuer'); if (!empty($issuer)) { $this->issuer = new Issuer($issuer[0]); - if ($this->issuer->Format === Constants::NAMEID_ENTITY) { - $this->issuer = $this->issuer->value; - } } $this->validateSignature($xml); @@ -195,11 +191,14 @@ protected function __construct($tagName, \DOMElement $xml = null) * @param \DOMElement $xml The SAML message whose signature we want to validate. * @return void */ - private function validateSignature(\DOMElement $xml) + private function validateSignature(DOMElement $xml) : void { try { - /** @var null|\DOMAttr $signatureMethod */ + /** @var \DOMAttr[] $signatureMethod */ $signatureMethod = Utils::xpQuery($xml, './ds:Signature/ds:SignedInfo/ds:SignatureMethod/@Algorithm'); + if (empty($signatureMethod)) { + throw new \Exception('No Algorithm specified in signature.'); + } $sig = Utils::validateElement($xml); @@ -224,11 +223,11 @@ private function validateSignature(\DOMElement $xml) * This function is used by the HTTP-Redirect binding, to make it possible to * check the signature against the one included in the query string. * - * @param callback $function The function which should be called - * @param mixed $data The data that should be included as the first parameter to the function + * @param callable $function The function which should be called + * @param mixed $data The data that should be included as the first parameter to the function * @return void */ - public function addValidator(callable $function, $data) + public function addValidator(callable $function, $data) : void { $this->validators[] = [ 'Function' => $function, @@ -248,7 +247,7 @@ public function addValidator(callable $function, $data) * @throws \Exception * @return bool true on success, false when we don't have a signature */ - public function validate(XMLSecurityKey $key) + public function validate(XMLSecurityKey $key) : bool { if (count($this->validators) === 0) { return false; @@ -280,7 +279,7 @@ public function validate(XMLSecurityKey $key) * * @return string The identifier of this message */ - public function getId() + public function getId() : string { return $this->id; } @@ -292,10 +291,8 @@ public function getId() * @param string $id The new identifier of this message * @return void */ - public function setId($id) + public function setId(string $id) : void { - Assert::string($id); - $this->id = $id; } @@ -305,7 +302,7 @@ public function setId($id) * * @return int The issue timestamp of this message, as an UNIX timestamp */ - public function getIssueInstant() + public function getIssueInstant() : int { return $this->issueInstant; } @@ -317,10 +314,8 @@ public function getIssueInstant() * @param int $issueInstant The new issue timestamp of this message, as an UNIX timestamp * @return void */ - public function setIssueInstant($issueInstant) + public function setIssueInstant(int $issueInstant) : void { - Assert::integer($issueInstant); - $this->issueInstant = $issueInstant; } @@ -330,7 +325,7 @@ public function setIssueInstant($issueInstant) * * @return string|null The destination of this message, or NULL if no destination is given */ - public function getDestination() + public function getDestination() : ?string { return $this->destination; } @@ -342,10 +337,8 @@ public function getDestination() * @param string|null $destination The new destination of this message * @return void */ - public function setDestination($destination) + public function setDestination(string $destination = null) : void { - Assert::nullOrString($destination); - $this->destination = $destination; } @@ -358,10 +351,8 @@ public function setDestination($destination) * @param string $consent * @return void */ - public function setConsent($consent) + public function setConsent(string $consent) : void { - Assert::string($consent); - $this->consent = $consent; } @@ -371,9 +362,9 @@ public function setConsent($consent) * Most likely (though not required) a value of urn:oasis:names:tc:SAML:2.0:consent. * * @see \SAML2\Constants - * @return string Consent + * @return string|null Consent */ - public function getConsent() + public function getConsent() : ?string { return $this->consent; } @@ -382,28 +373,22 @@ public function getConsent() /** * Retrieve the issuer if this message. * - * @return string|\SAML2\XML\saml\Issuer|null The issuer of this message, or NULL if no issuer is given + * @return \SAML2\XML\saml\Issuer|null The issuer of this message, or NULL if no issuer is given */ - public function getIssuer() + public function getIssuer() : ?Issuer { - if (is_string($this->issuer) || $this->issuer instanceof Issuer) { - return $this->issuer; - } - - return null; + return $this->issuer; } /** * Set the issuer of this message. * - * @param string|\SAML2\XML\saml\Issuer|null $issuer The new issuer of this message + * @param \SAML2\XML\saml\Issuer|null $issuer The new issuer of this message * @return void */ - public function setIssuer($issuer) + public function setIssuer(Issuer $issuer = null) : void { - Assert::true(is_string($issuer) || $issuer instanceof Issuer || is_null($issuer)); - $this->issuer = $issuer; } @@ -413,7 +398,7 @@ public function setIssuer($issuer) * * @return bool */ - public function isMessageConstructedWithSignature() + public function isMessageConstructedWithSignature() : bool { return $this->messageContainedSignatureUponConstruction; } @@ -424,7 +409,7 @@ public function isMessageConstructedWithSignature() * * @return string|null The RelayState, or NULL if no RelayState is given */ - public function getRelayState() + public function getRelayState() : ?string { return $this->relayState; } @@ -436,10 +421,8 @@ public function getRelayState() * @param string|null $relayState The new RelayState * @return void */ - public function setRelayState($relayState) + public function setRelayState(string $relayState = null) : void { - Assert::nullOrString($relayState); - $this->relayState = $relayState; } @@ -450,7 +433,7 @@ public function setRelayState($relayState) * * @return \DOMElement The root element of the DOM tree */ - public function toUnsignedXML() + public function toUnsignedXML() : DOMElement { $this->document = DOMDocumentFactory::create(); @@ -468,21 +451,15 @@ public function toUnsignedXML() if ($this->destination !== null) { $root->setAttribute('Destination', $this->destination); } - if ($this->consent !== null && $this->consent !== Constants::CONSENT_UNSPECIFIED) { + if ($this->consent !== Constants::CONSENT_UNSPECIFIED) { $root->setAttribute('Consent', $this->consent); } if ($this->issuer !== null) { - if (is_string($this->issuer)) { - Utils::addString($root, Constants::NS_SAML, 'saml:Issuer', $this->issuer); - } elseif ($this->issuer instanceof Issuer) { - $this->issuer->toXML($root); - } + $this->issuer->toXML($root); } - if (!empty($this->extensions)) { - Extensions::addList($root, $this->extensions); - } + Extensions::addList($root, $this->extensions); return $root; } @@ -495,7 +472,7 @@ public function toUnsignedXML() * * @return \DOMElement The root element of the DOM tree */ - public function toSignedXML() + public function toSignedXML() : DOMElement { $root = $this->toUnsignedXML(); @@ -512,6 +489,7 @@ public function toSignedXML() * after the issuer node. */ $issuerNode = $root->firstChild; + /** @psalm-suppress PossiblyNullPropertyFetch */ $insertBefore = $issuerNode->nextSibling; } else { /* No issuer node - the signature element should be the first element. */ @@ -529,7 +507,7 @@ public function toSignedXML() * * @return XMLSecurityKey|null The key, or NULL if no key is specified */ - public function getSignatureKey() + public function getSignatureKey() : ?XMLSecurityKey { return $this->signatureKey; } @@ -542,7 +520,7 @@ public function getSignatureKey() * @param XMLSecurityKey|null $signatureKey * @return void */ - public function setSignatureKey(XMLSecurityKey $signatureKey = null) + public function setSignatureKey(XMLSecurityKey $signatureKey = null) : void { $this->signatureKey = $signatureKey; } @@ -555,7 +533,7 @@ public function setSignatureKey(XMLSecurityKey $signatureKey = null) * @param array $certificates An array of certificates * @return void */ - public function setCertificates(array $certificates) + public function setCertificates(array $certificates) : void { $this->certificates = $certificates; } @@ -566,7 +544,7 @@ public function setCertificates(array $certificates) * * @return array An array of certificates */ - public function getCertificates() + public function getCertificates() : array { return $this->certificates; } @@ -579,7 +557,7 @@ public function getCertificates() * @throws \Exception * @return \SAML2\Message The message */ - public static function fromXML(\DOMElement $xml) + public static function fromXML(\DOMElement $xml) : Message { if ($xml->namespaceURI !== Constants::NS_SAMLP) { throw new \Exception('Unknown namespace of SAML message: '.var_export($xml->namespaceURI, true)); @@ -611,7 +589,7 @@ public static function fromXML(\DOMElement $xml) * * @return \SAML2\XML\samlp\Extensions[] */ - public function getExtensions() + public function getExtensions() : array { return $this->extensions; } @@ -623,7 +601,7 @@ public function getExtensions() * @param array $extensions The Extensions * @return void */ - public function setExtensions(array $extensions) + public function setExtensions(array $extensions) : void { $this->extensions = $extensions; } @@ -635,7 +613,7 @@ public function setExtensions(array $extensions) * @param \SAML2\XML\samlp\Extensions $extensions The Extensions * @return void */ - public function addExtension(Extensions $extension) + public function addExtension(Extensions $extension) : void { $this->extensions[] = $extension; } @@ -644,7 +622,7 @@ public function addExtension(Extensions $extension) /** * @return null|string */ - public function getSignatureMethod() + public function getSignatureMethod() : ?string { return $this->signatureMethod; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Request.php b/vendor/simplesamlphp/saml2/src/SAML2/Request.php index a18a7042652c8150aaccd221d9f483fcaebcb93d..1ba202db1ea1bdb116588a83c8e1bbeb8844b45d 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Request.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Request.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2; /** diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Response.php b/vendor/simplesamlphp/saml2/src/SAML2/Response.php index 76076e66719746d7b26a559ece97210f72bd8836..fc50787506c749e635472150c3370e3c948d0176 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Response.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Response.php @@ -1,7 +1,11 @@ <?php +declare(strict_types=1); + namespace SAML2; +use DOMElement; + /** * Class for SAML 2 Response messages. * @@ -11,6 +15,8 @@ class Response extends StatusResponse { /** * The assertions in this response. + * + * @var (Assertion|EncryptedAssertion)[] */ private $assertions; @@ -20,7 +26,7 @@ class Response extends StatusResponse * * @param \DOMElement|null $xml The input message. */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { parent::__construct('Response', $xml); @@ -30,9 +36,11 @@ public function __construct(\DOMElement $xml = null) return; } - for ($node = $xml->firstChild; $node !== null; $node = $node->nextSibling) { + foreach ($xml->childNodes as $node) { if ($node->namespaceURI !== Constants::NS_SAML) { continue; + } else if (!($node instanceof DOMElement)) { + continue; } if ($node->localName === 'Assertion') { @@ -49,7 +57,7 @@ public function __construct(\DOMElement $xml = null) * * @return \SAML2\Assertion[]|\SAML2\EncryptedAssertion[] */ - public function getAssertions() + public function getAssertions() : array { return $this->assertions; } @@ -61,7 +69,7 @@ public function getAssertions() * @param \SAML2\Assertion[]|\SAML2\EncryptedAssertion[] $assertions The assertions. * @return void */ - public function setAssertions(array $assertions) + public function setAssertions(array $assertions) : void { $this->assertions = $assertions; } @@ -72,7 +80,7 @@ public function setAssertions(array $assertions) * * @return \DOMElement This response. */ - public function toUnsignedXML() + public function toUnsignedXML() : DOMElement { $root = parent::toUnsignedXML(); diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Response/Exception/InvalidResponseException.php b/vendor/simplesamlphp/saml2/src/SAML2/Response/Exception/InvalidResponseException.php index 4bbc2e308816f6656e45ffa9c0095b6cddc33716..56491a1bcf352e11fe678f14da04d96b4aeb8eac 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Response/Exception/InvalidResponseException.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Response/Exception/InvalidResponseException.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Response\Exception; use SAML2\Exception\Throwable; diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Response/Exception/InvalidSignatureException.php b/vendor/simplesamlphp/saml2/src/SAML2/Response/Exception/InvalidSignatureException.php index fdcc6c5027446662fb6c59356bee3f608a8c7f9c..bc0457689baf18fbc70a6f57a8d619bddfb2ee13 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Response/Exception/InvalidSignatureException.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Response/Exception/InvalidSignatureException.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Response\Exception; class InvalidSignatureException extends InvalidResponseException diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Response/Exception/NoAssertionsFoundException.php b/vendor/simplesamlphp/saml2/src/SAML2/Response/Exception/NoAssertionsFoundException.php index c357223ddab16073285a6e2a774e0d9c58446000..9ae6bd4e5cd8a4fbc6f65c81382b68c90c999443 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Response/Exception/NoAssertionsFoundException.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Response/Exception/NoAssertionsFoundException.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Response\Exception; class NoAssertionsFoundException extends InvalidResponseException diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Response/Exception/PreconditionNotMetException.php b/vendor/simplesamlphp/saml2/src/SAML2/Response/Exception/PreconditionNotMetException.php index fe0a14c1e7bb3909648a989d101337b5c39a520f..3b7767059fa5b7ae10a20c8551bc91f607ef0e31 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Response/Exception/PreconditionNotMetException.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Response/Exception/PreconditionNotMetException.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Response\Exception; use SAML2\Response\Validation\Result; @@ -13,7 +15,7 @@ class PreconditionNotMetException extends InvalidResponseException * @param Result $result * @return PreconditionNotMetException */ - public static function createFromValidationResult(Result $result) + public static function createFromValidationResult(Result $result) : PreconditionNotMetException { $message = sprintf( 'Cannot process response, preconditions not met: "%s"', diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Response/Exception/UnencryptedAssertionFoundException.php b/vendor/simplesamlphp/saml2/src/SAML2/Response/Exception/UnencryptedAssertionFoundException.php index c2d42668624c6afbc66b60a943b42c32d1470043..de4d2e8813bfa25ddfdd48b467ec8be6030f57f1 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Response/Exception/UnencryptedAssertionFoundException.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Response/Exception/UnencryptedAssertionFoundException.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Response\Exception; use SAML2\Exception\Throwable; diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Response/Exception/UnsignedResponseException.php b/vendor/simplesamlphp/saml2/src/SAML2/Response/Exception/UnsignedResponseException.php index 09aac9591f651288da2b3ac0037b3c639bb78b2f..90f34890c7d9eebbf2efc757510a25b88dd10abd 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Response/Exception/UnsignedResponseException.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Response/Exception/UnsignedResponseException.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Response\Exception; use SAML2\Exception\Throwable; diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Response/Processor.php b/vendor/simplesamlphp/saml2/src/SAML2/Response/Processor.php index 666de8198b0764eb7e1e7db7e0889410d722990f..68a3e6e1507c90d91f2c1e1eedf9db65d9435e88 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Response/Processor.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Response/Processor.php @@ -1,8 +1,11 @@ <?php +declare(strict_types=1); + namespace SAML2\Response; use Psr\Log\LoggerInterface; + use SAML2\Assertion\ProcessorBuilder; use SAML2\Configuration\Destination; use SAML2\Configuration\IdentityProvider; @@ -14,10 +17,8 @@ use SAML2\Response\Exception\UnsignedResponseException; use SAML2\Response\Validation\PreconditionValidator; use SAML2\Signature\Validator; +use SAML2\Utilities\ArrayCollection; -/** - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - due to specific exceptions - */ class Processor { /** @@ -63,17 +64,17 @@ public function __construct(LoggerInterface $logger) /** * @param \SAML2\Configuration\ServiceProvider $serviceProviderConfiguration * @param \SAML2\Configuration\IdentityProvider $identityProviderConfiguration - * @param \SAML2\Configuration\Destination $currentDestination - * @param \SAML2\Response $response + * @param \SAML2\Configuration\Destination $currentDestination + * @param \SAML2\Response $response * - * @return \SAML2\Assertion[] Collection (\SAML2\Utilities\ArrayCollection) of \SAML2\Assertion objects + * @return \SAML2\Utilities\ArrayCollection Collection of \SAML2\Assertion objects */ public function process( ServiceProvider $serviceProviderConfiguration, IdentityProvider $identityProviderConfiguration, Destination $currentDestination, Response $response - ) { + ) : ArrayCollection { $this->preconditionValidator = new PreconditionValidator($currentDestination); $this->assertionProcessor = ProcessorBuilder::build( $this->logger, @@ -97,7 +98,7 @@ public function process( * @throws PreconditionNotMetException * @return void */ - private function enforcePreconditions(Response $response) + private function enforcePreconditions(Response $response) : void { $result = $this->preconditionValidator->validate($response); @@ -108,15 +109,13 @@ private function enforcePreconditions(Response $response) /** - * @param \SAML2\Response $response + * @param \SAML2\Response $response * @param \SAML2\Configuration\IdentityProvider $identityProviderConfiguration * @throws InvalidResponseException * @return void */ - private function verifySignature( - Response $response, - IdentityProvider $identityProviderConfiguration - ) { + private function verifySignature(Response $response, IdentityProvider $identityProviderConfiguration) : void + { if (!$response->isMessageConstructedWithSignature()) { $this->logger->info(sprintf( 'SAMLResponse with id "%s" was not signed at root level, not attempting to verify the signature of the' @@ -135,7 +134,9 @@ private function verifySignature( $this->responseIsSigned = true; if (!$this->signatureValidator->hasValidSignature($response, $identityProviderConfiguration)) { - throw new InvalidResponseException(); + throw new InvalidResponseException( + sprintf('The SAMLResponse with id "%s", does not have a valid signature', $response->getId()) + ); } } @@ -144,18 +145,22 @@ private function verifySignature( * @param \SAML2\Response $response * @throws UnsignedResponseException * @throws NoAssertionsFoundException - * @return \SAML2\Assertion[] + * @return \SAML2\Utilities\ArrayCollection */ - private function processAssertions(Response $response) + private function processAssertions(Response $response) : ArrayCollection { $assertions = $response->getAssertions(); if (empty($assertions)) { throw new NoAssertionsFoundException('No assertions found in response from IdP.'); } + $decryptedAssertions = $this->assertionProcessor->decryptAssertions( + new ArrayCollection($assertions) + ); + if (!$this->responseIsSigned) { foreach ($assertions as $assertion) { - if (!$assertion->getWasSignedAtConstruction()) { + if (!$assertion->wasSignedAtConstruction()) { throw new UnsignedResponseException( 'Both the response and the assertion it contains are not signed.' ); @@ -163,6 +168,6 @@ private function processAssertions(Response $response) } } - return $this->assertionProcessor->processAssertions($assertions); + return $this->assertionProcessor->processAssertions($decryptedAssertions); } } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Response/Validation/ConstraintValidator.php b/vendor/simplesamlphp/saml2/src/SAML2/Response/Validation/ConstraintValidator.php index 2b761d6731b3b7a8213515b50562f303b1f40d59..c4c20df50c98fff7cd0b7850291d11d6c1b332c3 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Response/Validation/ConstraintValidator.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Response/Validation/ConstraintValidator.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Response\Validation; use SAML2\Response; @@ -11,5 +13,5 @@ interface ConstraintValidator * @param Result $result * @return void */ - public function validate(Response $response, Result $result); + public function validate(Response $response, Result $result) : void; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Response/Validation/ConstraintValidator/DestinationMatches.php b/vendor/simplesamlphp/saml2/src/SAML2/Response/Validation/ConstraintValidator/DestinationMatches.php index 4e208315093ea73b79b95b49d341c6f7f2943cea..cc274455153db831e0840278c11dd7c5f847ac69 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Response/Validation/ConstraintValidator/DestinationMatches.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Response/Validation/ConstraintValidator/DestinationMatches.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Response\Validation\ConstraintValidator; use SAML2\Configuration\Destination; @@ -7,7 +9,7 @@ use SAML2\Response\Validation\ConstraintValidator; use SAML2\Response\Validation\Result; -class DestinationMatches implements +final class DestinationMatches implements ConstraintValidator { /** @@ -16,7 +18,8 @@ class DestinationMatches implements private $expectedDestination; /** - * Constructor for DestinationMatches + * DestinationMatches constructor. + * * @param Destination $destination */ public function __construct(Destination $destination) @@ -30,14 +33,17 @@ public function __construct(Destination $destination) * @param Result $result * @return void */ - public function validate(Response $response, Result $result) + public function validate(Response $response, Result $result) : void { $destination = $response->getDestination(); + if ($destination === null) { + throw new \Exception('No destination set in the response.'); + } if (!$this->expectedDestination->equals(new Destination($destination))) { $result->addError(sprintf( 'Destination in response "%s" does not match the expected destination "%s"', $destination, - $this->expectedDestination + strval($this->expectedDestination) )); } } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Response/Validation/ConstraintValidator/IsSuccessful.php b/vendor/simplesamlphp/saml2/src/SAML2/Response/Validation/ConstraintValidator/IsSuccessful.php index 1f17ae3409a01602f77783e49cc4e483c1f326e0..06440c7b6bb1fe4e8a06db5562d78f482546e139 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Response/Validation/ConstraintValidator/IsSuccessful.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Response/Validation/ConstraintValidator/IsSuccessful.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Response\Validation\ConstraintValidator; use SAML2\Constants; @@ -12,12 +14,12 @@ class IsSuccessful implements ConstraintValidator /** * @param \SAML2\Response $response * @param \SAML2\Response\Validation\Result $result - * + * @return void */ public function validate( Response $response, Result $result - ) { + ) : void { if (!$response->isSuccess()) { $result->addError($this->buildMessage($response->getStatus())); } @@ -29,7 +31,7 @@ public function validate( * * @return string */ - private function buildMessage(array $responseStatus) + private function buildMessage(array $responseStatus) : string { return sprintf( '%s%s%s', @@ -46,7 +48,7 @@ private function buildMessage(array $responseStatus) * * @return string */ - private function truncateStatus($status) + private function truncateStatus(string $status) : string { $prefixLength = strlen(Constants::STATUS_PREFIX); if (strpos($status, Constants::STATUS_PREFIX) !== 0) { diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Response/Validation/PreconditionValidator.php b/vendor/simplesamlphp/saml2/src/SAML2/Response/Validation/PreconditionValidator.php index 54230ea5706864a0734ecb939b4a92c46b0ab1f7..2f61468ddf52929eb15110170a83be1dec62292a 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Response/Validation/PreconditionValidator.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Response/Validation/PreconditionValidator.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Response\Validation; use SAML2\Configuration\Destination; diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Response/Validation/Result.php b/vendor/simplesamlphp/saml2/src/SAML2/Response/Validation/Result.php index 3310a4443c0941ed50a41d7fec486faf7c034ee3..a0d352ec00a56cbcd84264a32353fd378eb5ea67 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Response/Validation/Result.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Response/Validation/Result.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Response\Validation; use SAML2\Exception\InvalidArgumentException; @@ -16,16 +18,12 @@ class Result /** - * @param $message + * @param string $message * @throws InvalidArgumentException * @return void */ - public function addError($message) + public function addError(string $message) : void { - if (!is_string($message)) { - throw InvalidArgumentException::invalidType('string', $message); - } - $this->errors[] = $message; } @@ -33,7 +31,7 @@ public function addError($message) /** * @return bool */ - public function isValid() + public function isValid() : bool { return empty($this->errors); } @@ -42,7 +40,7 @@ public function isValid() /** * @return array */ - public function getErrors() + public function getErrors() : array { return $this->errors; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Response/Validation/Validator.php b/vendor/simplesamlphp/saml2/src/SAML2/Response/Validation/Validator.php index 07ab3f79a9f695aac61ad84d278fbfe134a26609..1f5f4021fe8f83f22afdb3c20abebe1346ec6dad 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Response/Validation/Validator.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Response/Validation/Validator.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Response\Validation; use SAML2\Response; @@ -16,7 +18,7 @@ class Validator * @param ConstraintValidator $constraint * @return void */ - public function addConstraintValidator(ConstraintValidator $constraint) + public function addConstraintValidator(ConstraintValidator $constraint) : void { $this->constraints[] = $constraint; } @@ -26,7 +28,7 @@ public function addConstraintValidator(ConstraintValidator $constraint) * @param Response $response * @return Result */ - public function validate(Response $response) + public function validate(Response $response) : Result { $result = new Result(); foreach ($this->constraints as $validator) { diff --git a/vendor/simplesamlphp/saml2/src/SAML2/SOAP.php b/vendor/simplesamlphp/saml2/src/SAML2/SOAP.php index a7686e151f53f0ee40b5aaa80b49508ecde8da8a..e54b27b419d5d256f5a7cd72467b8f28a49fcd66 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/SOAP.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/SOAP.php @@ -1,8 +1,11 @@ <?php +declare(strict_types=1); + namespace SAML2; use DOMDocument; + use SAML2\XML\ecp\Response as ECPResponse; /** @@ -14,7 +17,8 @@ class SOAP extends Binding { /** * @param Message $message - * @return string|bool The XML or false on error + * @throws \Exception + * @return string|false The XML or false on error */ public function getOutputToSend(Message $message) { @@ -34,10 +38,15 @@ public function getOutputToSend(Message $message) // containing another message (e.g. a Response), however in the ECP // profile, this is the Response itself. if ($message instanceof Response) { + /** @var \DOMElement $header */ $header = $doc->getElementsByTagNameNS(Constants::NS_SOAP, 'Header')->item(0); - $response = new ECPResponse; - $response->setAssertionConsumerServiceURL($this->getDestination() ?: $message->getDestination()); + $response = new ECPResponse(); + $destination = $this->destination ?: $message->getDestination(); + if ($destination === null) { + throw new \Exception('No destination available for SOAP message.'); + } + $response->setAssertionConsumerServiceURL($destination); $response->toXML($header); @@ -50,6 +59,7 @@ public function getOutputToSend(Message $message) // See Section 2.3.6.1 } + /** @var \DOMElement $body */ $body = $doc->getElementsByTagNameNs(Constants::NS_SOAP, 'Body')->item(0); $body->appendChild($doc->importNode($message->toSignedXML(), true)); @@ -65,17 +75,18 @@ public function getOutputToSend(Message $message) * * @param \SAML2\Message $message The message we should send. * @return void - * - * @SuppressWarnings(PHPMD.ExitExpression) */ - public function send(Message $message) + public function send(Message $message) : void { header('Content-Type: text/xml', true); $xml = $this->getOutputToSend($message); - Utils::getContainer()->debugMessage($xml, 'out'); - echo $xml; + if ($xml !== false) { + Utils::getContainer()->debugMessage($xml, 'out'); + echo $xml; + } + // DOMDocument::saveXML() returned false. Something is seriously wrong here. Not much we can do. exit(0); } @@ -86,24 +97,26 @@ public function send(Message $message) * @throws \Exception If unable to receive the message * @return \SAML2\Message The received message. */ - public function receive() + public function receive() : Message { $postText = $this->getInputStream(); - if (empty($postText)) { + if ($postText === false) { throw new \Exception('Invalid message received to AssertionConsumerService endpoint.'); } $document = DOMDocumentFactory::fromString($postText); + /** @var \DOMNode $xml */ $xml = $document->firstChild; - Utils::getContainer()->debugMessage($xml, 'in'); + Utils::getContainer()->debugMessage($document->documentElement, 'in'); + /** @var \DOMElement[] $results */ $results = Utils::xpQuery($xml, '/soap-env:Envelope/soap-env:Body/*[1]'); return Message::fromXML($results[0]); } /** - * @return string|bool + * @return string|false */ protected function getInputStream() { diff --git a/vendor/simplesamlphp/saml2/src/SAML2/SOAPClient.php b/vendor/simplesamlphp/saml2/src/SAML2/SOAPClient.php index 2bd9e8819fad7620f9c9f5f0bf69971600cdb291..99aef2e4ff156516f478d8917e0ff05244e495b2 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/SOAPClient.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/SOAPClient.php @@ -1,11 +1,17 @@ <?php +declare(strict_types=1); + namespace SAML2; +use DOMDocument; use RobRichards\XMLSecLibs\XMLSecurityKey; -use SAML2\Exception\RuntimeException; use SimpleSAML\Configuration; -use Webmozart\Assert\Assert; +use SimpleSAML\Utils\Config; +use SimpleSAML\Utils\Crypto; + +use SAML2\Compat\ContainerSingleton; +use SAML2\Exception\RuntimeException; /** * Implementation of the SAML 2.0 SOAP binding. @@ -15,20 +21,23 @@ */ class SOAPClient { - const START_SOAP_ENVELOPE = '<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header/><soap-env:Body>'; + const START_SOAP_ENVELOPE = '<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">\ + <soap-env:Header/><soap-env:Body>'; const END_SOAP_ENVELOPE = '</soap-env:Body></soap-env:Envelope>'; /** * This function sends the SOAP message to the service location and returns SOAP response * - * @param \SAML2\Message $msg The request that should be sent. - * @param \SimpleSAML\Configuration $srcMetadata The metadata of the issuer of the message. - * @param \SimpleSAML\Configuration $dstMetadata The metadata of the destination of the message. + * @param \SAML2\Message $msg The request that should be sent. + * @param \SimpleSAML\Configuration $srcMetadata The metadata of the issuer of the message. + * @param \SimpleSAML\Configuration $dstMetadata The metadata of the destination of the message. * @throws \Exception - * @return \SAML2\Message The response we received. + * @return \SAML2\Message The response we received. + * + * @psalm-suppress UndefinedClass */ - public function send(Message $msg, Configuration $srcMetadata, Configuration $dstMetadata = null) + public function send(Message $msg, Configuration $srcMetadata, Configuration $dstMetadata = null) : Message { $issuer = $msg->getIssuer(); @@ -39,11 +48,13 @@ public function send(Message $msg, Configuration $srcMetadata, Configuration $ds ], ]; + $container = ContainerSingleton::getInstance(); + // Determine if we are going to do a MutualSSL connection between the IdP and SP - Shoaib if ($srcMetadata->hasValue('saml.SOAPClient.certificate')) { $cert = $srcMetadata->getValue('saml.SOAPClient.certificate'); if ($cert !== false) { - $ctxOpts['ssl']['local_cert'] = \SimpleSAML\Utils\Config::resolveCert( + $ctxOpts['ssl']['local_cert'] = Config::getCertPath( $srcMetadata->getString('saml.SOAPClient.certificate') ); if ($srcMetadata->hasValue('saml.SOAPClient.privatekey_pass')) { @@ -52,13 +63,13 @@ public function send(Message $msg, Configuration $srcMetadata, Configuration $ds } } else { /* Use the SP certificate and privatekey if it is configured. */ - $privateKey = \SimpleSAML\Utils\Crypto::loadPrivateKey($srcMetadata); - $publicKey = \SimpleSAML\Utils\Crypto::loadPublicKey($srcMetadata); + $privateKey = Crypto::loadPrivateKey($srcMetadata); + $publicKey = Crypto::loadPublicKey($srcMetadata); if ($privateKey !== null && $publicKey !== null && isset($publicKey['PEM'])) { $keyCertData = $privateKey['PEM'].$publicKey['PEM']; - $file = \SimpleSAML\Utils\System::getTempDir().'/'.sha1($keyCertData).'.pem'; + $file = $container->getTempDir().'/'.sha1($keyCertData).'.pem'; if (!file_exists($file)) { - \SimpleSAML\Utils\System::writeFile($file, $keyCertData); + $container->writeFile($file, $keyCertData); } $ctxOpts['ssl']['local_cert'] = $file; if (isset($privateKey['password'])) { @@ -79,9 +90,9 @@ public function send(Message $msg, Configuration $srcMetadata, Configuration $ds chunk_split($key['X509Certificate'], 64). "-----END CERTIFICATE-----\n"; } - $peerCertFile = \SimpleSAML\Utils\System::getTempDir().'/'.sha1($certData).'.pem'; + $peerCertFile = $container->getTempDir().'/'.sha1($certData).'.pem'; if (!file_exists($peerCertFile)) { - \SimpleSAML\Utils\System::writeFile($peerCertFile, $certData); + $container->writeFile($peerCertFile, $certData); } // create ssl context $ctxOpts['ssl']['verify_peer'] = true; @@ -94,12 +105,9 @@ public function send(Message $msg, Configuration $srcMetadata, Configuration $ds } $context = stream_context_create($ctxOpts); - if ($context === null) { - throw new \Exception('Unable to create SSL stream context'); - } $options = [ - 'uri' => $issuer, + 'uri' => $issuer->getValue(), 'location' => $msg->getDestination(), 'stream_context' => $context, ]; @@ -118,15 +126,18 @@ public function send(Message $msg, Configuration $srcMetadata, Configuration $ds $request = $msg->toSignedXML(); $request = self::START_SOAP_ENVELOPE.$request->ownerDocument->saveXML($request).self::END_SOAP_ENVELOPE; - Utils::getContainer()->debugMessage($request, 'out'); + $container->debugMessage($request, 'out'); $action = 'http://www.oasis-open.org/committees/security'; $version = SOAP_1_1; $destination = $msg->getDestination(); + if ($destination === null) { + throw new \Exception('Cannot send SOAP message, no destination set.'); + } /* Perform SOAP Request over HTTP */ $soapresponsexml = $x->__doRequest($request, $destination, $action, $version); - if ($soapresponsexml === null || $soapresponsexml === "") { + if (empty($soapresponsexml)) { throw new \Exception('Empty SOAP response, check peer certificate.'); } @@ -138,19 +149,21 @@ public function send(Message $msg, Configuration $srcMetadata, Configuration $ds } catch (RuntimeException $e) { throw new \Exception('Not a SOAP response.', 0, $e); } + $container->debugMessage($dom->documentElement, 'in'); $soapfault = $this->getSOAPFault($dom); if (isset($soapfault)) { throw new \Exception($soapfault); } //Extract the message from the response + /** @var \DOMElement[] $samlresponse */ $samlresponse = Utils::xpQuery($dom->firstChild, '/soap-env:Envelope/soap-env:Body/*[1]'); $samlresponse = Message::fromXML($samlresponse[0]); /* Add validator to message which uses the SSL context. */ self::addSSLValidator($samlresponse, $context); - Utils::getContainer()->getLogger()->debug("Valid ArtifactResponse received from IdP"); + $container->getLogger()->debug("Valid ArtifactResponse received from IdP"); return $samlresponse; } @@ -159,55 +172,54 @@ public function send(Message $msg, Configuration $srcMetadata, Configuration $ds /** * Add a signature validator based on a SSL context. * - * @param \SAML2\Message $msg The message we should add a validator to. - * @param resource $context The stream context. + * @param \SAML2\Message $msg The message we should add a validator to. + * @param resource $context The stream context. * @return void */ - private static function addSSLValidator(Message $msg, $context) + private static function addSSLValidator(Message $msg, $context) : void { $options = stream_context_get_options($context); if (!isset($options['ssl']['peer_certificate'])) { return; } - //$out = ''; - //openssl_x509_export($options['ssl']['peer_certificate'], $out); - + $container = ContainerSingleton::getInstance(); $key = openssl_pkey_get_public($options['ssl']['peer_certificate']); if ($key === false) { - Utils::getContainer()->getLogger()->warning('Unable to get public key from peer certificate.'); + $container->getLogger()->warning('Unable to get public key from peer certificate.'); return; } $keyInfo = openssl_pkey_get_details($key); if ($keyInfo === false) { - Utils::getContainer()->getLogger()->warning('Unable to get key details from public key.'); + $container->getLogger()->warning('Unable to get key details from public key.'); return; } if (!isset($keyInfo['key'])) { - Utils::getContainer()->getLogger()->warning('Missing key in public key details.'); + $container->getLogger()->warning('Missing key in public key details.'); return; } - $msg->addValidator(['\SAML2\SOAPClient', 'validateSSL'], $keyInfo['key']); + $msg->addValidator([SOAPClient::class, 'validateSSL'], $keyInfo['key']); } /** * Validate a SOAP message against the certificate on the SSL connection. * - * @param string $data The public key that was used on the connection. - * @param XMLSecurityKey $key The key we should validate the certificate against. + * @param string $data The public key that was used on the connection. + * @param XMLSecurityKey $key The key we should validate the certificate against. * @throws \Exception + * @return void */ - public static function validateSSL($data, XMLSecurityKey $key) + public static function validateSSL(string $data, XMLSecurityKey $key) : void { - Assert::string($data); - + $container = ContainerSingleton::getInstance(); + /** @psalm-suppress PossiblyNullArgument */ $keyInfo = openssl_pkey_get_details($key->key); if ($keyInfo === false) { throw new \Exception('Unable to get key details from XMLSecurityKey.'); @@ -218,23 +230,24 @@ public static function validateSSL($data, XMLSecurityKey $key) } if ($keyInfo['key'] !== $data) { - Utils::getContainer()->getLogger()->debug('Key on SSL connection did not match key we validated against.'); + $container->getLogger()->debug('Key on SSL connection did not match key we validated against.'); return; } - Utils::getContainer()->getLogger()->debug('Message validated based on SSL certificate.'); + $container->getLogger()->debug('Message validated based on SSL certificate.'); } - /* + /** * Extracts the SOAP Fault from SOAP message * - * @param $soapmessage Soap response needs to be type DOMDocument + * @param \DOMDocument $soapMessage Soap response needs to be type DOMDocument * @return string|null $soapfaultstring */ - private function getSOAPFault($soapMessage) + private function getSOAPFault(DOMDocument $soapMessage) : ?string { + /** @psalm-suppress PossiblyNullArgument */ $soapFault = Utils::xpQuery($soapMessage->firstChild, '/soap-env:Envelope/soap-env:Body/soap-env:Fault'); if (empty($soapFault)) { @@ -242,6 +255,7 @@ private function getSOAPFault($soapMessage) return null; } + /** @var \DOMNode $soapFaultElement */ $soapFaultElement = $soapFault[0]; // There is a fault element but we haven't found out what the fault string is $soapFaultString = "Unknown fault string found"; diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Signature/AbstractChainedValidator.php b/vendor/simplesamlphp/saml2/src/SAML2/Signature/AbstractChainedValidator.php index 1ae888db68095d53402aca635cb2981f31e60f80..0481d77017d522226597fda1b70bf4b72059f934 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Signature/AbstractChainedValidator.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Signature/AbstractChainedValidator.php @@ -1,9 +1,12 @@ <?php +declare(strict_types=1); + namespace SAML2\Signature; use Psr\Log\LoggerInterface; use RobRichards\XMLSecLibs\XMLSecurityKey; + use SAML2\SignedElement; abstract class AbstractChainedValidator implements ChainedValidator @@ -29,14 +32,16 @@ public function __construct(LoggerInterface $logger) * BC compatible version of the signature check * * @param \SAML2\SignedElement $element - * @param \SAML2\Certificate\X509[] $pemCandidates + * @param \SAML2\Utilities\ArrayCollection $pemCandidates * * @throws \Exception * * @return bool */ - protected function validateElementWithKeys(SignedElement $element, $pemCandidates) - { + protected function validateElementWithKeys( + SignedElement $element, + \SAML2\Utilities\ArrayCollection $pemCandidates + ) : bool { $lastException = null; foreach ($pemCandidates as $index => $candidateKey) { $key = new XMLSecurityKey(XMLSecurityKey::RSA_SHA256, ['type' => 'public']); diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Signature/ChainedValidator.php b/vendor/simplesamlphp/saml2/src/SAML2/Signature/ChainedValidator.php index 4058de13ef377131ce1e2e52979c1ede12fb966e..e008483035b55266c5018200ffbe5e73fae8d575 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Signature/ChainedValidator.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Signature/ChainedValidator.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Signature; use SAML2\Configuration\CertificateProvider; @@ -23,5 +25,5 @@ interface ChainedValidator extends ValidatorInterface public function canValidate( SignedElement $signedElement, CertificateProvider $configuration - ); + ) : bool; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Signature/FingerprintValidator.php b/vendor/simplesamlphp/saml2/src/SAML2/Signature/FingerprintValidator.php deleted file mode 100644 index 10d5f1df64f8b9022d7bd853c41a1f5814ae7324..0000000000000000000000000000000000000000 --- a/vendor/simplesamlphp/saml2/src/SAML2/Signature/FingerprintValidator.php +++ /dev/null @@ -1,108 +0,0 @@ -<?php - -namespace SAML2\Signature; - -use Psr\Log\LoggerInterface; -use SAML2\Certificate\FingerprintLoader; -use SAML2\Certificate\X509; -use SAML2\Configuration\CertificateProvider; -use SAML2\SignedElement; - -/** - * Validates the signature based on the fingerprint of the certificate - * - * @deprecated Please use full certificates instead. - */ -class FingerprintValidator extends AbstractChainedValidator -{ - /** - * @var array - */ - private $certificates; - - /** - * @var \SAML2\Certificate\FingerprintLoader - */ - private $fingerprintLoader; - - - /** - * @param LoggerInterface $logger - * @param FingerprintLoader $fingerprintLoader - * @deprecated Please use full certificates instead. - */ - public function __construct( - LoggerInterface $logger, - FingerprintLoader $fingerprintLoader - ) { - $this->fingerprintLoader = $fingerprintLoader; - parent::__construct($logger); - } - - - /** - * @param SignedElement $signedElement - * @param CertificateProvider $configuration - * - * @return bool - */ - public function canValidate( - SignedElement $signedElement, - CertificateProvider $configuration - ) { - if ($configuration->getCertificateFingerprints() === null) { - $this->logger->debug( - 'Configuration does not have "certFingerprint" value, cannot validate signature with fingerprint' - ); - return false; - } - - // use internal cache to prevent doing certificate extraction twice. - $this->certificates = $signedElement->getCertificates(); - if (empty($this->certificates)) { - $this->logger->debug( - 'Signed element does not have certificates, cannot validate signature with fingerprint' - ); - return false; - } - - return true; - } - - - /** - * @param \SAML2\SignedElement $signedElement - * @param \SAML2\Configuration\CertificateProvider $configuration - * - * @return bool - */ - public function hasValidSignature( - SignedElement $signedElement, - CertificateProvider $configuration - ) { - $this->certificates = array_map(function ($certificate) { - return X509::createFromCertificateData($certificate); - }, $this->certificates); - - $fingerprintCollection = $this->fingerprintLoader->loadFromConfiguration($configuration); - - $pemCandidates = []; - foreach ($this->certificates as $certificate) { - /** @var \SAML2\Certificate\X509 $certificate */ - $certificateFingerprint = $certificate->getFingerprint(); - if ($fingerprintCollection->contains($certificateFingerprint)) { - $pemCandidates[] = $certificate; - } - } - - if (empty($pemCandidates)) { - $this->logger->debug( - 'Unable to match a certificate of the SignedElement matching a configured fingerprint' - ); - - return false; - } - - return $this->validateElementWithKeys($signedElement, $pemCandidates); - } -} diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Signature/MissingConfigurationException.php b/vendor/simplesamlphp/saml2/src/SAML2/Signature/MissingConfigurationException.php index 8014b0b32282099dbb27ef7c3e923d66a68f4efe..c9307caa62e95db6d98e24099db94bc0b51f3df3 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Signature/MissingConfigurationException.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Signature/MissingConfigurationException.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Signature; use SAML2\Exception\Throwable; diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Signature/PublicKeyValidator.php b/vendor/simplesamlphp/saml2/src/SAML2/Signature/PublicKeyValidator.php index 0e13feba95743723ca2b55ab57fd7dcc641f8c52..038185b49408c94406fe126b9bb845578d1b2ab1 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Signature/PublicKeyValidator.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Signature/PublicKeyValidator.php @@ -1,8 +1,11 @@ <?php +declare(strict_types=1); + namespace SAML2\Signature; use Psr\Log\LoggerInterface; + use SAML2\Certificate\Key; use SAML2\Certificate\KeyLoader; use SAML2\Certificate\X509; @@ -37,7 +40,7 @@ public function __construct(LoggerInterface $logger, KeyLoader $keyLoader) /** - * @param \SAML2\SignedElement $signedElement + * @param \SAML2\SignedElement $signedElement * @param \SAML2\Configuration\CertificateProvider $configuration * * @return bool @@ -45,7 +48,7 @@ public function __construct(LoggerInterface $logger, KeyLoader $keyLoader) public function canValidate( SignedElement $signedElement, CertificateProvider $configuration - ) { + ) : bool { $this->configuredKeys = $this->keyLoader->extractPublicKeys($configuration); return !!count($this->configuredKeys); @@ -53,7 +56,7 @@ public function canValidate( /** - * @param \SAML2\SignedElement $signedElement + * @param \SAML2\SignedElement $signedElement * @param \SAML2\Configuration\CertificateProvider $configuration * * @return bool @@ -61,7 +64,7 @@ public function canValidate( public function hasValidSignature( SignedElement $signedElement, CertificateProvider $configuration - ) { + ) : bool { $logger = $this->logger; $pemCandidates = $this->configuredKeys->filter(function (Key $key) use ($logger) { if (!$key instanceof X509) { diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Signature/Validator.php b/vendor/simplesamlphp/saml2/src/SAML2/Signature/Validator.php index 361e033d224fa905499490c16a7180b0221f2367..1d416ceed8d9ecda9ecbca6aec9f507f91cea51e 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Signature/Validator.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Signature/Validator.php @@ -1,9 +1,11 @@ <?php +declare(strict_types=1); + namespace SAML2\Signature; use Psr\Log\LoggerInterface; -use SAML2\Certificate\FingerprintLoader; + use SAML2\Certificate\KeyLoader; use SAML2\Configuration\CertificateProvider; use SAML2\SignedElement; @@ -32,19 +34,19 @@ public function __construct(LoggerInterface $logger) /** * @param SignedElement $signedElement - * @oaram CertificateProvider $configuration + * @param CertificateProvider $configuration + * * @return bool */ public function hasValidSignature( SignedElement $signedElement, CertificateProvider $configuration - ) { + ) : bool { // should be DI $validator = new ValidatorChain( $this->logger, [ - new PublicKeyValidator($this->logger, new KeyLoader()), - new FingerprintValidator($this->logger, new FingerprintLoader()) + new PublicKeyValidator($this->logger, new KeyLoader()) ] ); diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Signature/ValidatorChain.php b/vendor/simplesamlphp/saml2/src/SAML2/Signature/ValidatorChain.php index 8cb4ec7f254869c3bfa16f22985911eb5fea490b..4987c52012c5f37bd9afb5d883dc3b9094957a7d 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Signature/ValidatorChain.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Signature/ValidatorChain.php @@ -1,8 +1,11 @@ <?php +declare(strict_types=1); + namespace SAML2\Signature; use Psr\Log\LoggerInterface; + use SAML2\Configuration\CertificateProvider; use SAML2\SignedElement; @@ -26,7 +29,7 @@ class ValidatorChain implements ValidatorInterface /** - * @param \Psr\Log\LoggerInterface $logger + * @param \Psr\Log\LoggerInterface $logger * @param \SAML2\Signature\ChainedValidator[] $validators */ public function __construct(LoggerInterface $logger, array $validators) @@ -44,14 +47,14 @@ public function __construct(LoggerInterface $logger, array $validators) * @param \SAML2\Signature\ChainedValidator $validator * @return void */ - public function appendValidator(ChainedValidator $validator) + public function appendValidator(ChainedValidator $validator) : void { $this->validators[] = $validator; } /** - * @param \SAML2\SignedElement $signedElement + * @param \SAML2\SignedElement $signedElement * @param \SAML2\Configuration\CertificateProvider $configuration * * @return bool @@ -59,7 +62,7 @@ public function appendValidator(ChainedValidator $validator) public function hasValidSignature( SignedElement $signedElement, CertificateProvider $configuration - ) { + ) : bool { foreach ($this->validators as $validator) { if ($validator->canValidate($signedElement, $configuration)) { $this->logger->debug(sprintf( @@ -77,7 +80,7 @@ public function hasValidSignature( } throw new MissingConfigurationException(sprintf( - 'No certificates or fingerprints have been configured%s', + 'No certificates have been configured%s', $configuration->has('entityid') ? ' for "'.$configuration->get('entityid').'"' : '' )); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Signature/ValidatorInterface.php b/vendor/simplesamlphp/saml2/src/SAML2/Signature/ValidatorInterface.php index 47dd4e5a9a8990ec27e721d5c66d1eccafa4524a..6e8552c5491906433e6647d985cd59c97493afb4 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Signature/ValidatorInterface.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Signature/ValidatorInterface.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Signature; use SAML2\Configuration\CertificateProvider; @@ -18,5 +20,5 @@ interface ValidatorInterface public function hasValidSignature( SignedElement $signedElement, CertificateProvider $configuration - ); + ) : bool; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/SignedElement.php b/vendor/simplesamlphp/saml2/src/SAML2/SignedElement.php index 261b7192c8a394605e8b2c59a55376c5025f424d..b7a683584bdc79b25d730ee72017cb62fd94f07b 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/SignedElement.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/SignedElement.php @@ -1,16 +1,35 @@ <?php +declare(strict_types=1); + namespace SAML2; use RobRichards\XMLSecLibs\XMLSecurityKey; /** - * Interface to a SAML 2 element which may be signed. + * Abstract class to a SAML 2 element which may be signed. * * @package SimpleSAMLphp */ -interface SignedElement +abstract class SignedElement { + /** + * The private key we should use to sign the message. + * + * The private key can be null, in which case the message is sent unsigned. + * + * @var XMLSecurityKey|null + */ + protected $signatureKey; + + /** + * List of certificates that should be included in the message. + * + * @var array + */ + protected $certificates = []; + + /** * Validate this element against a public key. * @@ -18,9 +37,9 @@ interface SignedElement * but cannot be verified, an exception will be thrown. * * @param XMLSecurityKey $key The key we should check against. - * @return boolean true if successful, false if we don't have a signature that can be verified. + * @return bool True if successful, false if we don't have a signature that can be verified. */ - public function validate(XMLSecurityKey $key); + abstract public function validate(XMLSecurityKey $key) : bool; /** @@ -30,31 +49,44 @@ public function validate(XMLSecurityKey $key); * @param array $certificates An array of certificates. * @return void */ - public function setCertificates(array $certificates); + public function setCertificates(array $certificates) : void + { + $this->certificates = $certificates; + } /** - * Retrieve the certificates that are included in the element (if any). + * Retrieve the certificates that are included in the message. * - * @return array An array of certificates. + * @return array An array of certificates */ - public function getCertificates(); + public function getCertificates() : array + { + return $this->certificates; + } /** - * Retrieve the private key we should use to sign the element. + * Retrieve the private key we should use to sign the message. * - * @return XMLSecurityKey|null The key, or NULL if no key is specified. + * @return XMLSecurityKey|null The key, or NULL if no key is specified */ - public function getSignatureKey(); + public function getSignatureKey() : ?XMLSecurityKey + { + return $this->signatureKey; + } /** - * Set the private key we should use to sign the element. + * Set the private key we should use to sign the message. + * * If the key is null, the message will be sent unsigned. * * @param XMLSecurityKey|null $signatureKey * @return void */ - public function setSignatureKey(XMLSecurityKey $signatureKey = null); + public function setSignatureKey(XMLSecurityKey $signatureKey = null) : void + { + $this->signatureKey = $signatureKey; + } } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/SignedElementHelper.php b/vendor/simplesamlphp/saml2/src/SAML2/SignedElementHelper.php index d6f8c02a0ef03d4a8f5758bf506d59d0de52182e..47e87d97fa2302df3094ac67c4adf4b8d09c0dba 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/SignedElementHelper.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/SignedElementHelper.php @@ -1,7 +1,11 @@ <?php +declare(strict_types=1); + namespace SAML2; +use DOMElement; +use DOMNode; use RobRichards\XMLSecLibs\XMLSecurityKey; /** @@ -11,30 +15,28 @@ * * @package SimpleSAMLphp */ -class SignedElementHelper implements SignedElement +class SignedElementHelper extends SignedElement { /** - * The private key we should use to sign the message. - * - * The private key can be null, in which case the message is sent unsigned. + * Available methods for validating this message. * - * @var XMLSecurityKey|null + * @var array */ - private $signatureKey; + private $validators; /** - * List of certificates that should be included in the message. + * How long this element is valid, as a unix timestamp. * - * @var array + * @var int|null */ - private $certificates; + public $validUntil; /** - * Available methods for validating this message. + * The length of time this element can be cached, as string. * - * @var array + * @var string|null */ - private $validators; + public $cacheDuration; /** @@ -42,7 +44,7 @@ class SignedElementHelper implements SignedElement * * @param \DOMElement|null $xml The XML element which may be signed. */ - protected function __construct(\DOMElement $xml = null) + protected function __construct(DOMElement $xml = null) { $this->certificates = []; $this->validators = []; @@ -55,10 +57,10 @@ protected function __construct(\DOMElement $xml = null) try { $sig = Utils::validateElement($xml); - if ($sig !== false) { + if ($sig) { $this->certificates = $sig['Certificates']; $this->validators[] = [ - 'Function' => ['\SAML2\Utils', 'validateSignature'], + 'Function' => [Utils::class, 'validateSignature'], 'Data' => $sig, ]; } @@ -73,11 +75,11 @@ protected function __construct(\DOMElement $xml = null) * * This function is used for custom validation extensions * - * @param callback $function The function which should be called. - * @param mixed $data The data that should be included as the first parameter to the function. + * @param callable $function The function which should be called. + * @param mixed $data The data that should be included as the first parameter to the function. * @return void */ - public function addValidator(callable $function, $data) + public function addValidator(callable $function, $data) : void { $this->validators[] = [ 'Function' => $function, @@ -94,10 +96,11 @@ public function addValidator(callable $function, $data) * validation fails. * * @param XMLSecurityKey $key The key we should check against. + * @return bool True on success, false when we don't have a signature. * @throws \Exception - * @return boolean true on success, false when we don't have a signature. + * @return bool true on success, false when we don't have a signature. */ - public function validate(XMLSecurityKey $key) + public function validate(XMLSecurityKey $key) : bool { if (count($this->validators) === 0) { return false; @@ -129,7 +132,7 @@ public function validate(XMLSecurityKey $key) * * @return XMLSecurityKey|null The key, or NULL if no key is specified. */ - public function getSignatureKey() + public function getSignatureKey() : ?XMLSecurityKey { return $this->signatureKey; } @@ -143,7 +146,7 @@ public function getSignatureKey() * @param XMLSecurityKey|null $signatureKey * @return void */ - public function setSignatureKey(XMLSecurityKey $signatureKey = null) + public function setSignatureKey(XMLSecurityKey $signatureKey = null) : void { $this->signatureKey = $signatureKey; } @@ -157,7 +160,7 @@ public function setSignatureKey(XMLSecurityKey $signatureKey = null) * @param array $certificates An array of certificates. * @return void */ - public function setCertificates(array $certificates) + public function setCertificates(array $certificates) : void { $this->certificates = $certificates; } @@ -168,7 +171,7 @@ public function setCertificates(array $certificates) * * @return array An array of certificates. */ - public function getCertificates() + public function getCertificates() : array { return $this->certificates; } @@ -179,7 +182,7 @@ public function getCertificates() * * @return array Array with certificates. */ - public function getValidatingCertificates() + public function getValidatingCertificates() : array { $ret = []; foreach ($this->certificates as $cert) { @@ -206,14 +209,59 @@ public function getValidatingCertificates() } + /** + * Collect the value of the validUntil property. + * + * @return int|null + */ + public function getValidUntil() : ?int + { + return $this->validUntil; + } + + /** + * Set the value of the validUntil property. + * + * @param int|null $validUntil + * @return void + */ + public function setValidUntil(int $validUntil = null) : void + { + $this->validUntil = $validUntil; + } + + + /** + * Collect the value of the cacheDuration property. + * + * @return string|null + */ + public function getCacheDuration() : ?string + { + return $this->cacheDuration; + } + + + /** + * Set the value of the cacheDuration property. + * + * @param string|null $cacheDuration + * @return void + */ + public function setCacheDuration(string $cacheDuration = null) : void + { + $this->cacheDuration = $cacheDuration; + } + + /** * Sign the given XML element. * - * @param \DOMElement $root The element we should sign. - * @param \DOMElement|null $insertBefore The element we should insert the signature node before. + * @param \DOMElement $root The element we should sign. + * @param \DOMNode|null $insertBefore The element we should insert the signature node before. * @return \DOMElement|null */ - protected function signElement(\DOMElement $root, \DOMElement $insertBefore = null) + protected function signElement(DOMElement $root, DOMNode $insertBefore = null) : ?DOMElement { if ($this->signatureKey === null) { /* We cannot sign this element. */ diff --git a/vendor/simplesamlphp/saml2/src/SAML2/StatusResponse.php b/vendor/simplesamlphp/saml2/src/SAML2/StatusResponse.php index 44b6712c3677d2b91429b50e246f2ba687e4aa0e..885bbc4b33d82d7b42d497b616fac90872892bb6 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/StatusResponse.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/StatusResponse.php @@ -1,7 +1,10 @@ <?php +declare(strict_types=1); + namespace SAML2; +use DOMElement; use Webmozart\Assert\Assert; /** @@ -45,11 +48,11 @@ abstract class StatusResponse extends Message /** * Constructor for SAML 2 response messages. * - * @param string $tagName The tag name of the root element. - * @param \DOMElement|null $xml The input message. + * @param string $tagName The tag name of the root element. + * @param \DOMElement|null $xml The input message. * @throws \Exception */ - protected function __construct($tagName, \DOMElement $xml = null) + protected function __construct(string $tagName, DOMElement $xml = null) { parent::__construct($tagName, $xml); @@ -67,26 +70,27 @@ protected function __construct($tagName, \DOMElement $xml = null) $this->inResponseTo = $xml->getAttribute('InResponseTo'); } + /** @var \DOMElement[] $status */ $status = Utils::xpQuery($xml, './saml_protocol:Status'); if (empty($status)) { throw new \Exception('Missing status code on response.'); } - $status = $status[0]; - $statusCode = Utils::xpQuery($status, './saml_protocol:StatusCode'); + /** @var \DOMElement[] $statusCode */ + $statusCode = Utils::xpQuery($status[0], './saml_protocol:StatusCode'); if (empty($statusCode)) { throw new \Exception('Missing status code in status element.'); } - $statusCode = $statusCode[0]; - - $this->status['Code'] = $statusCode->getAttribute('Value'); + $this->status['Code'] = $statusCode[0]->getAttribute('Value'); - $subCode = Utils::xpQuery($statusCode, './saml_protocol:StatusCode'); + /** @var \DOMElement[] $subCode */ + $subCode = Utils::xpQuery($statusCode[0], './saml_protocol:StatusCode'); if (!empty($subCode)) { $this->status['SubCode'] = $subCode[0]->getAttribute('Value'); } - $message = Utils::xpQuery($status, './saml_protocol:StatusMessage'); + /** @var \DOMElement[] $message */ + $message = Utils::xpQuery($status[0], './saml_protocol:StatusMessage'); if (!empty($message)) { $this->status['Message'] = trim($message[0]->textContent); } @@ -96,17 +100,13 @@ protected function __construct($tagName, \DOMElement $xml = null) /** * Determine whether this is a successful response. * - * @return boolean true if the status code is success, false if not. + * @return bool true if the status code is success, false if not. */ - public function isSuccess() + public function isSuccess() : bool { Assert::keyExists($this->status, "Code"); - if ($this->status['Code'] === Constants::STATUS_SUCCESS) { - return true; - } - - return false; + return $this->status['Code'] === Constants::STATUS_SUCCESS; } @@ -115,7 +115,7 @@ public function isSuccess() * * @return string|null The ID of the request. */ - public function getInResponseTo() + public function getInResponseTo() : ?string { return $this->inResponseTo; } @@ -127,10 +127,8 @@ public function getInResponseTo() * @param string|null $inResponseTo The ID of the request. * @return void */ - public function setInResponseTo($inResponseTo) + public function setInResponseTo(string $inResponseTo = null) : void { - Assert::nullOrString($inResponseTo); - $this->inResponseTo = $inResponseTo; } @@ -140,7 +138,7 @@ public function setInResponseTo($inResponseTo) * * @return array The status code. */ - public function getStatus() + public function getStatus() : array { return $this->status; } @@ -152,9 +150,9 @@ public function getStatus() * @param array $status The status code. * @return void */ - public function setStatus(array $status) + public function setStatus(array $status) : void { - Assert::keyExists($status, "Code"); + Assert::keyExists($status, "Code", 'Cannot set status without a Code key in the array.'); $this->status = $status; if (!array_key_exists('SubCode', $status)) { @@ -171,7 +169,7 @@ public function setStatus(array $status) * * @return \DOMElement This status response. */ - public function toUnsignedXML() + public function toUnsignedXML() : DOMElement { $root = parent::toUnsignedXML(); diff --git a/vendor/simplesamlphp/saml2/src/SAML2/SubjectQuery.php b/vendor/simplesamlphp/saml2/src/SAML2/SubjectQuery.php index ff4f50bf14bf99bdcf0f58ee2b1da34440c9fcf1..7d025d94e79cffa76b0a39824b4a8ff4347bed73 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/SubjectQuery.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/SubjectQuery.php @@ -1,9 +1,12 @@ <?php +declare(strict_types=1); + namespace SAML2; +use DOMElement; + use SAML2\XML\saml\NameID; -use Webmozart\Assert\Assert; /** * Base class for SAML 2 subject query messages. @@ -21,18 +24,18 @@ abstract class SubjectQuery extends Request /** * The NameId of the subject in the query. * - * @var \SAML2\XML\saml\NameID + * @var \SAML2\XML\saml\NameID|null */ - private $nameId; + private $nameId = null; /** * Constructor for SAML 2 subject query messages. * - * @param string $tagName The tag name of the root element. - * @param \DOMElement|null $xml The input message. + * @param string $tagName The tag name of the root element. + * @param \DOMElement|null $xml The input message. */ - protected function __construct($tagName, \DOMElement $xml = null) + protected function __construct(string $tagName, DOMElement $xml = null) { parent::__construct($tagName, $xml); @@ -51,25 +54,24 @@ protected function __construct($tagName, \DOMElement $xml = null) * @throws \Exception * @return void */ - private function parseSubject(\DOMElement $xml) + private function parseSubject(\DOMElement $xml) : void { + /** @var \DOMElement[] $subject */ $subject = Utils::xpQuery($xml, './saml_assertion:Subject'); if (empty($subject)) { - /* No Subject node. */ throw new \Exception('Missing subject in subject query.'); } elseif (count($subject) > 1) { throw new \Exception('More than one <saml:Subject> in subject query.'); } - $subject = $subject[0]; - $nameId = Utils::xpQuery($subject, './saml_assertion:NameID'); + /** @var \DOMElement[] $nameId */ + $nameId = Utils::xpQuery($subject[0], './saml_assertion:NameID'); if (empty($nameId)) { throw new \Exception('Missing <saml:NameID> in <saml:Subject>.'); } elseif (count($nameId) > 1) { throw new \Exception('More than one <saml:NameID> in <saml:Subject>.'); } - $nameId = $nameId[0]; - $this->nameId = new NameID($nameId); + $this->nameId = new NameID($nameId[0]); } @@ -78,7 +80,7 @@ private function parseSubject(\DOMElement $xml) * * @return \SAML2\XML\saml\NameID|null The name identifier of the assertion. */ - public function getNameId() + public function getNameId() : ?NameID { return $this->nameId; } @@ -87,16 +89,11 @@ public function getNameId() /** * Set the NameId of the subject in the query. * - * @param \SAML2\XML\saml\NameID|array|null $nameId The name identifier of the assertion. + * @param \SAML2\XML\saml\NameID|null $nameId The name identifier of the assertion. * @return void */ - public function setNameId($nameId) + public function setNameId(NameID $nameId = null) : void { - Assert::true(is_array($nameId) || is_null($nameId) || $nameId instanceof NameID); - - if (is_array($nameId)) { - $nameId = NameID::fromArray($nameId); - } $this->nameId = $nameId; } @@ -106,8 +103,11 @@ public function setNameId($nameId) * * @return \DOMElement This subject query. */ - public function toUnsignedXML() + public function toUnsignedXML() : DOMElement { + if ($this->nameId === null) { + throw new \Exception('Cannot convert SubjectQuery to XML without a NameID set.'); + } $root = parent::toUnsignedXML(); $subject = $root->ownerDocument->createElementNS(Constants::NS_SAML, 'saml:Subject'); diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Utilities/ArrayCollection.php b/vendor/simplesamlphp/saml2/src/SAML2/Utilities/ArrayCollection.php index 68e98b093f515e521ca967ad197710d44e58a37d..a6252f5aec491b769bfa4f6ce93e7e5b51a68d6a 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Utilities/ArrayCollection.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Utilities/ArrayCollection.php @@ -1,13 +1,16 @@ <?php +declare(strict_types=1); + namespace SAML2\Utilities; +use ArrayIterator; +use Closure; + use SAML2\Exception\RuntimeException; /** * Simple Array implementation of Collection. - * - * @SuppressWarnings(PHPMD.TooManyMethods) - it just has a large api. */ class ArrayCollection implements Collection { @@ -18,7 +21,9 @@ class ArrayCollection implements Collection /** - * @return void + * ArrayCollection constructor. + * + * @param array $elements */ public function __construct(array $elements = []) { @@ -27,15 +32,19 @@ public function __construct(array $elements = []) /** + * @param mixed $element + * * @return void */ - public function add($element) + public function add($element) : void { $this->elements[] = $element; } /** + * @param mixed $key + * * @return mixed|null */ public function get($key) @@ -45,44 +54,45 @@ public function get($key) /** + * @param \Closure $f + * * @return ArrayCollection */ - public function filter(\Closure $f) + public function filter(Closure $f) : Collection { return new self(array_filter($this->elements, $f)); } /** + * @param mixed $key + * @param mixed $value * @return void */ - public function set($key, $value) + public function set($key, $value) : void { $this->elements[$key] = $value; } /** - * @return mixed + * @param mixed $element + * + * @return void */ - public function remove($element) + public function remove($element) : void { $key = array_search($element, $this->elements); - if ($key === false) { - return false; + return; } - - $removed = $this->elements[$key]; unset($this->elements[$key]); - - return $removed; } /** * @throws RuntimeException - * @return mixed + * @return bool|mixed */ public function getOnlyElement() { @@ -99,7 +109,7 @@ public function getOnlyElement() /** - * @return mixed + * @return bool|mixed */ public function first() { @@ -108,7 +118,7 @@ public function first() /** - * @return mixed + * @return bool|mixed */ public function last() { @@ -117,9 +127,11 @@ public function last() /** + * @param \Closure $function + * * @return ArrayCollection */ - public function map(\Closure $function) + public function map(Closure $function) : ArrayCollection { return new self(array_map($function, $this->elements)); } @@ -128,7 +140,7 @@ public function map(\Closure $function) /** * @return int */ - public function count() + public function count() : int { return count($this->elements); } @@ -137,17 +149,18 @@ public function count() /** * @return \ArrayIterator */ - public function getIterator() + public function getIterator() : ArrayIterator { - return new \ArrayIterator($this->elements); + return new ArrayIterator($this->elements); } /** * @param mixed $offset + * * @return bool */ - public function offsetExists($offset) + public function offsetExists($offset) : bool { return isset($this->elements[$offset]); } @@ -155,6 +168,7 @@ public function offsetExists($offset) /** * @param mixed $offset + * * @return mixed */ public function offsetGet($offset) @@ -168,17 +182,17 @@ public function offsetGet($offset) * @param mixed $value * @return void */ - public function offsetSet($offset, $value) + public function offsetSet($offset, $value) : void { $this->elements[$offset] = $value; } /** - * @param mixed + * @param $offset * @return void */ - public function offsetUnset($offset) + public function offsetUnset($offset) : void { unset($this->elements[$offset]); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Utilities/Certificate.php b/vendor/simplesamlphp/saml2/src/SAML2/Utilities/Certificate.php index 7c5f4f2ebbc41ed5d42ebae3e9beb09d1917d4f3..9a338fd81eb3821613261d20b897506668946845 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Utilities/Certificate.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Utilities/Certificate.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Utilities; /** @@ -12,13 +14,12 @@ class Certificate */ const CERTIFICATE_PATTERN = '/^-----BEGIN CERTIFICATE-----([^-]*)^-----END CERTIFICATE-----/m'; - /** - * @param $certificate + * @param string $certificate * * @return bool */ - public static function hasValidStructure($certificate) + public static function hasValidStructure(string $certificate) : bool { return !!preg_match(self::CERTIFICATE_PATTERN, $certificate); } @@ -29,7 +30,7 @@ public static function hasValidStructure($certificate) * * @return string */ - public static function convertToCertificate($X509CertificateContents) + public static function convertToCertificate(string $X509CertificateContents) : string { return "-----BEGIN CERTIFICATE-----\n" . chunk_split($X509CertificateContents, 64) diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Utilities/Collection.php b/vendor/simplesamlphp/saml2/src/SAML2/Utilities/Collection.php index 9a4e63339ebfc79ec7a7c27cce4dc0b259543059..7b176503ea7a9a585d4c930d5d583a27e7810ac8 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Utilities/Collection.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Utilities/Collection.php @@ -1,17 +1,21 @@ <?php +declare(strict_types=1); + namespace SAML2\Utilities; +use Closure; + interface Collection extends \ArrayAccess, \Countable, \IteratorAggregate { /** * Add an element to the collection * - * @param $element + * @param mixed $element * - * @return $this|\SAML2\Utilities\Collection + * @return void */ - public function add($element); + public function add($element) : void; /** @@ -41,21 +45,22 @@ public function last(); /** - * Applies the given function to each element in the collection and returns a new collection with the elements returned by the function. + * Applies the given function to each element in the collection and returns a new collection with the elements + * returned by the function. * - * @param callable $function + * @param \Closure $function * * @return mixed */ - public function map(\Closure $function); + public function map(Closure $function); /** - * @param callable $filterFunction + * @param \Closure $filterFunction * * @return \SAML2\Utilities\Collection */ - public function filter(\Closure $filterFunction); + public function filter(Closure $filterFunction): Collection; /** @@ -69,10 +74,10 @@ public function get($key); /** - * @param $element + * @param mixed $element * @return void */ - public function remove($element); + public function remove($element) : void; /** @@ -82,5 +87,5 @@ public function remove($element); * @param mixed $value * @return void */ - public function set($key, $value); + public function set($key, $value) : void; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Utilities/File.php b/vendor/simplesamlphp/saml2/src/SAML2/Utilities/File.php index 6f782081b5519835dc28424126f44dca80a58ecf..cfb4ac3d965d080cd026256497e42392e74742ec 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Utilities/File.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Utilities/File.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Utilities; use SAML2\Exception\InvalidArgumentException; @@ -15,12 +17,8 @@ class File * * @return string */ - public static function getFileContents($file) + public static function getFileContents(string $file) : string { - if (!is_string($file)) { - throw InvalidArgumentException::invalidType('string', $file); - } - if (!is_readable($file)) { throw new RuntimeException(sprintf( 'File "%s" does not exist or is not readable', diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Utilities/Temporal.php b/vendor/simplesamlphp/saml2/src/SAML2/Utilities/Temporal.php index 8449d2eca9e5679ff6962d98950fddaee3896ac5..ab652439d8ccde7e72b841b1762adc6a164d0128 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Utilities/Temporal.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Utilities/Temporal.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\Utilities; class Temporal @@ -10,7 +12,7 @@ class Temporal * * @return int */ - public static function getTime() + public static function getTime() : int { return time(); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/Utils.php b/vendor/simplesamlphp/saml2/src/SAML2/Utils.php index ed710c359aef0c35989a2363101bab1987b28446..e894a3eb58145d6a0bf1bca525aa290149dc488f 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/Utils.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/Utils.php @@ -1,17 +1,26 @@ <?php +declare(strict_types=1); + namespace SAML2; +use DOMDocument; +use DOMElement; +use DOMNode; +use DOMXPath; use RobRichards\XMLSecLibs\XMLSecEnc; use RobRichards\XMLSecLibs\XMLSecurityDSig; use RobRichards\XMLSecLibs\XMLSecurityKey; +use Webmozart\Assert\Assert; + +use SAML2\Compat\AbstractContainer; use SAML2\Compat\ContainerSingleton; +use SAML2\Compat\Ssp\Container; use SAML2\Exception\RuntimeException; use SAML2\XML\ds\KeyInfo; use SAML2\XML\ds\X509Certificate; use SAML2\XML\ds\X509Data; use SAML2\XML\md\KeyDescriptor; -use Webmozart\Assert\Assert; /** * Helper functions for the SAML2 library. @@ -23,7 +32,7 @@ class Utils /** * Check the Signature in a XML element. * - * This function expects the XML element to contain a Signature-element + * This function expects the XML element to contain a Signature element * which contains a reference to the XML-element. This is common for both * messages and assertions. * @@ -35,11 +44,11 @@ class Utils * an array will be returned. This array contains the information required to * check the signature against a public key. * - * @param \DOMElement $root The element which should be validated. + * @param \DOMElement $root The element which should be validated. * @throws \Exception - * @return array|bool An array with information about the Signature-element. + * @return array|false An array with information about the Signature element. */ - public static function validateElement(\DOMElement $root) + public static function validateElement(DOMElement $root) { /* Create an XML security object. */ $objXMLSecDSig = new XMLSecurityDSig(); @@ -48,8 +57,9 @@ public static function validateElement(\DOMElement $root) $objXMLSecDSig->idKeys[] = 'ID'; /* Locate the XMLDSig Signature element to be used. */ + /** @var \DOMElement[] $signatureElement */ $signatureElement = self::xpQuery($root, './ds:Signature'); - if (count($signatureElement) === 0) { + if (empty($signatureElement)) { /* We don't have a signature element ot validate. */ return false; @@ -104,16 +114,15 @@ public static function validateElement(\DOMElement $root) /** * Helper function to convert a XMLSecurityKey to the correct algorithm. * - * @param XMLSecurityKey $key The key. - * @param string $algorithm The desired algorithm. - * @param string $type Public or private key, defaults to public. - * @throws \Exception + * @param XMLSecurityKey $key The key. + * @param string $algorithm The desired algorithm. + * @param string $type Public or private key, defaults to public. * @return XMLSecurityKey The new key. */ - public static function castKey(XMLSecurityKey $key, $algorithm, $type = 'public') + public static function castKey(XMLSecurityKey $key, string $algorithm, string $type = null) : XMLSecurityKey { - Assert::string($algorithm); - Assert::oneOf($type, ["public", "private"]); + $type = $type ?: 'public'; + Assert::oneOf($type, ["private", "public"]); // do nothing if algorithm is already the type of the key if ($key->type === $algorithm) { @@ -130,6 +139,7 @@ public static function castKey(XMLSecurityKey $key, $algorithm, $type = 'public' throw new \Exception('Unsupported signing algorithm.'); } + /** @psalm-suppress PossiblyNullArgument */ $keyInfo = openssl_pkey_get_details($key->key); if ($keyInfo === false) { throw new \Exception('Unable to get key details from XMLSecurityKey.'); @@ -150,18 +160,22 @@ public static function castKey(XMLSecurityKey $key, $algorithm, $type = 'public' * * An exception is thrown if we are unable to validate the signature. * - * @param array $info The information returned by the validateElement()-function. - * @param XMLSecurityKey $key The publickey that should validate the Signature object. + * @param array $info The information returned by the validateElement() function. + * @param XMLSecurityKey $key The publickey that should validate the Signature object. * @throws \Exception * @return void */ - public static function validateSignature(array $info, XMLSecurityKey $key) + public static function validateSignature(array $info, XMLSecurityKey $key) : void { Assert::keyExists($info, "Signature"); /** @var XMLSecurityDSig $objXMLSecDSig */ $objXMLSecDSig = $info['Signature']; - + + /** + * @var \DOMElement[] $sigMethod + * @var \DOMElement $objXMLSecDSig->sigNode + */ $sigMethod = self::xpQuery($objXMLSecDSig->sigNode, './ds:SignedInfo/ds:SignatureMethod'); if (empty($sigMethod)) { throw new \Exception('Missing SignatureMethod element.'); @@ -186,23 +200,22 @@ public static function validateSignature(array $info, XMLSecurityKey $key) /** * Do an XPath query on an XML node. * - * @param \DOMNode $node The XML node. - * @param string $query The query. - * @return \DOMNode[] Array with matching DOM nodes. + * @param \DOMNode $node The XML node. + * @param string $query The query. + * @return \DOMNode[] Array with matching DOM nodes. */ - public static function xpQuery(\DOMNode $node, $query) + public static function xpQuery(DOMNode $node, string $query) : array { - Assert::string($query); static $xpCache = null; - if ($node instanceof \DOMDocument) { + if ($node instanceof DOMDocument) { $doc = $node; } else { $doc = $node->ownerDocument; } if ($xpCache === null || !$xpCache->document->isSameNode($doc)) { - $xpCache = new \DOMXPath($doc); + $xpCache = new DOMXPath($doc); $xpCache->registerNamespace('soap-env', Constants::NS_SOAP); $xpCache->registerNamespace('saml_protocol', Constants::NS_SAMLP); $xpCache->registerNamespace('saml_assertion', Constants::NS_SAML); @@ -224,11 +237,11 @@ public static function xpQuery(\DOMNode $node, $query) /** * Make an exact copy the specific \DOMElement. * - * @param \DOMElement $element The element we should copy. - * @param \DOMElement|null $parent The target parent element. - * @return \DOMElement The copied element. + * @param \DOMElement $element The element we should copy. + * @param \DOMElement|null $parent The target parent element. + * @return \DOMElement The copied element. */ - public static function copyElement(\DOMElement $element, \DOMElement $parent = null) + public static function copyElement(DOMElement $element, DOMElement $parent = null) : DOMElement { if ($parent === null) { $document = DOMDocumentFactory::create(); @@ -237,7 +250,7 @@ public static function copyElement(\DOMElement $element, \DOMElement $parent = n } $namespaces = []; - for ($e = $element; $e !== null; $e = $e->parentNode) { + for ($e = $element; $e instanceof DOMNode; $e = $e->parentNode) { foreach (Utils::xpQuery($e, './namespace::*') as $ns) { $prefix = $ns->localName; if ($prefix === 'xml' || $prefix === 'xmlns') { @@ -269,16 +282,13 @@ public static function copyElement(\DOMElement $element, \DOMElement $parent = n /** * Parse a boolean attribute. * - * @param \DOMElement $node The element we should fetch the attribute from. - * @param string $attributeName The name of the attribute. - * @param mixed $default The value that should be returned if the attribute doesn't exist. - * @throws \Exception + * @param \DOMElement $node The element we should fetch the attribute from. + * @param string $attributeName The name of the attribute. + * @param mixed|null $default The value that should be returned if the attribute doesn't exist. * @return bool|mixed The value of the attribute, or $default if the attribute doesn't exist. */ - public static function parseBoolean(\DOMElement $node, $attributeName, $default = null) + public static function parseBoolean(DOMElement $node, string $attributeName, $default = null) { - Assert::string($attributeName); - if (!$node->hasAttribute($attributeName)) { return $default; } @@ -291,88 +301,27 @@ public static function parseBoolean(\DOMElement $node, $attributeName, $default case 'true': return true; default: - throw new \Exception('Invalid value of boolean attribute '.var_export($attributeName, true).': '.var_export($value, true)); + throw new \Exception('Invalid value of boolean attribute '.var_export($attributeName, true).': '. + var_export($value, true)); } } /** - * Create a NameID element. - * - * The NameId array can have the following elements: 'Value', 'Format', - * 'NameQualifier, 'SPNameQualifier' and 'SPProviderID'. - * - * Only the 'Value'-element is required. + * Insert a Signature node. * - * @param \DOMElement $node The DOM node we should append the NameId to. - * @param array $nameId The name identifier. - * @return void - * - * @deprecated Please use \SAML2\XML\saml\NameID objects instead: - * $nameId = new \SAML2\XML\saml\NameID(); - * $nameId->value = $value; - * ... - * $nameId->toXML($node); - */ - public static function addNameId(\DOMElement $node, array $nameId) - { - Assert::keyExists($nameId, "Value"); - - $nid = new XML\saml\NameID(); - - $nid->value = $nameId['Value']; - - if (array_key_exists('NameQualifier', $nameId) && $nameId['NameQualifier'] !== null) { - $nid->setNameQualifier($nameId['NameQualifier']); - } - if (array_key_exists('SPNameQualifier', $nameId) && $nameId['SPNameQualifier'] !== null) { - $nid->setSPNameQualifier($nameId['SPNameQualifier']); - } - if (array_key_exists('Format', $nameId) && $nameId['Format'] !== null) { - $nid->setFormat($nameId['Format']); - } - - $nid->toXML($node); - } - - - /** - * Parse a NameID element. - * - * @param \DOMElement $xml The DOM element we should parse. - * @return array The parsed name identifier. - * @deprecated Please use \SAML2\XML\saml\NameID objects instead: - * $nameId = new \SAML2\XML\saml\NameID($xml); - */ - public static function parseNameId(\DOMElement $xml) - { - $ret = ['Value' => trim($xml->textContent)]; - - foreach (['NameQualifier', 'SPNameQualifier', 'SPProvidedID', 'Format'] as $attr) { - if ($xml->hasAttribute($attr)) { - $ret[$attr] = $xml->getAttribute($attr); - } - } - - return $ret; - } - - - /** - * Insert a Signature-node. - * - * @param XMLSecurityKey $key The key we should use to sign the message. - * @param array $certificates The certificates we should add to the signature node. - * @param \DOMElement $root The XML node we should sign. - * @param \DOMNode $insertBefore The XML element we should insert the signature element before. + * @param XMLSecurityKey $key The key we should use to sign the message. + * @param array $certificates The certificates we should add to the signature node. + * @param \DOMElement $root The XML node we should sign. + * @param \DOMNode $insertBefore The XML element we should insert the signature element before. * @return void */ public static function insertSignature( XMLSecurityKey $key, array $certificates, - \DOMElement $root, - \DOMNode $insertBefore = null - ) { + DOMElement $root, + DOMNode $insertBefore = null + ) : void { $objXMLSecDSig = new XMLSecurityDSig(); $objXMLSecDSig->setCanonicalMethod(XMLSecurityDSig::EXC_C14N); @@ -412,13 +361,13 @@ public static function insertSignature( * * This is an internal helper function. * - * @param \DOMElement $encryptedData The encrypted data. - * @param XMLSecurityKey $inputKey The decryption key. - * @param array &$blacklist Blacklisted decryption algorithms. + * @param \DOMElement $encryptedData The encrypted data. + * @param XMLSecurityKey $inputKey The decryption key. + * @param array &$blacklist Blacklisted decryption algorithms. * @throws \Exception - * @return \DOMElement The decrypted element. + * @return \DOMElement The decrypted element. */ - private static function doDecryptElement(\DOMElement $encryptedData, XMLSecurityKey $inputKey, array &$blacklist) + private static function doDecryptElement(DOMElement $encryptedData, XMLSecurityKey $inputKey, array &$blacklist) : DOMElement { $enc = new XMLSecEnc(); @@ -472,12 +421,18 @@ private static function doDecryptElement(\DOMElement $encryptedData, XMLSecurity /* To protect against "key oracle" attacks, we need to be able to create a * symmetric key, and for that we need to know the key size. */ - throw new \Exception('Unknown key size for encryption algorithm: '.var_export($symmetricKey->type, true)); + throw new \Exception( + 'Unknown key size for encryption algorithm: '.var_export($symmetricKey->type, true) + ); } try { + /** + * @var string $key + * @psalm-suppress UndefinedClass + */ $key = $encKey->decryptKey($symmetricKeyInfo); - if (strlen($key) != $keySize) { + if (strlen($key) !== $keySize) { throw new \Exception( 'Unexpected key size ('.strval(strlen($key)*8).'bits) for encryption algorithm: '. var_export($symmetricKey->type, true) @@ -486,12 +441,18 @@ private static function doDecryptElement(\DOMElement $encryptedData, XMLSecurity } catch (\Exception $e) { /* We failed to decrypt this key. Log it, and substitute a "random" key. */ Utils::getContainer()->getLogger()->error('Failed to decrypt symmetric key: '.$e->getMessage()); - /* Create a replacement key, so that it looks like we fail in the same way as if the key was correctly padded. */ + /* Create a replacement key, so that it looks like we fail in the same way as if the key was correctly + * padded. */ /* We base the symmetric key on the encrypted key and private key, so that we always behave the * same way for a given input key. */ $encryptedKey = $encKey->getCipherValue(); + if ($encryptedKey === null) { + throw new \Exception('No CipherValue available in the encrypted element.'); + } + + /** @psalm-suppress PossiblyNullArgument */ $pkey = openssl_pkey_get_details($symmetricKeyInfo->key); $pkey = sha1(serialize($pkey), true); $key = sha1($encryptedKey.$pkey, true); @@ -522,7 +483,10 @@ private static function doDecryptElement(\DOMElement $encryptedData, XMLSecurity throw new \Exception('Algorithm disabled: '.var_export($algorithm, true)); } - /** @var string $decrypted */ + /** + * @var string $decrypted + * @psalm-suppress UndefinedClass + */ $decrypted = $enc->decryptNode($symmetricKey, false); /* @@ -541,13 +505,10 @@ private static function doDecryptElement(\DOMElement $encryptedData, XMLSecurity throw new \Exception('Failed to parse decrypted XML. Maybe the wrong sharedkey was used?', 0, $e); } + /** @psalm-suppress PossiblyNullPropertyFetch */ $decryptedElement = $newDoc->firstChild->firstChild; - if ($decryptedElement === null) { - throw new \Exception('Missing encrypted element.'); - } - - if (!($decryptedElement instanceof \DOMElement)) { - throw new \Exception('Decrypted element was not actually a \DOMElement.'); + if (!($decryptedElement instanceof DOMElement)) { + throw new \Exception('Missing decrypted element or it was not actually a DOMElement.'); } return $decryptedElement; @@ -557,13 +518,13 @@ private static function doDecryptElement(\DOMElement $encryptedData, XMLSecurity /** * Decrypt an encrypted element. * - * @param \DOMElement $encryptedData The encrypted data. - * @param XMLSecurityKey $inputKey The decryption key. - * @param array $blacklist Blacklisted decryption algorithms. + * @param \DOMElement $encryptedData The encrypted data. + * @param XMLSecurityKey $inputKey The decryption key. + * @param array $blacklist Blacklisted decryption algorithms. * @throws \Exception - * @return \DOMElement The decrypted element. + * @return \DOMElement The decrypted element. */ - public static function decryptElement(\DOMElement $encryptedData, XMLSecurityKey $inputKey, array $blacklist = []) + public static function decryptElement(DOMElement $encryptedData, XMLSecurityKey $inputKey, array $blacklist = []) : DOMElement { try { return self::doDecryptElement($encryptedData, $inputKey, $blacklist); @@ -581,20 +542,19 @@ public static function decryptElement(\DOMElement $encryptedData, XMLSecurityKey /** * Extract localized strings from a set of nodes. * - * @param \DOMElement $parent The element that contains the localized strings. - * @param string $namespaceURI The namespace URI the localized strings should have. - * @param string $localName The localName of the localized strings. - * @return array Localized strings. + * @param \DOMElement $parent The element that contains the localized strings. + * @param string $namespaceURI The namespace URI the localized strings should have. + * @param string $localName The localName of the localized strings. + * @return array Localized strings. */ - public static function extractLocalizedStrings(\DOMElement $parent, $namespaceURI, $localName) + public static function extractLocalizedStrings(\DOMElement $parent, string $namespaceURI, string $localName) : array { - Assert::string($namespaceURI); - Assert::string($localName); - $ret = []; - for ($node = $parent->firstChild; $node !== null; $node = $node->nextSibling) { + foreach ($parent->childNodes as $node) { if ($node->namespaceURI !== $namespaceURI || $node->localName !== $localName) { continue; + } else if (!($node instanceof DOMElement)) { + continue; } if ($node->hasAttribute('xml:lang')) { @@ -612,18 +572,15 @@ public static function extractLocalizedStrings(\DOMElement $parent, $namespaceUR /** * Extract strings from a set of nodes. * - * @param \DOMElement $parent The element that contains the localized strings. - * @param string $namespaceURI The namespace URI the string elements should have. - * @param string $localName The localName of the string elements. - * @return array The string values of the various nodes. + * @param \DOMElement $parent The element that contains the localized strings. + * @param string $namespaceURI The namespace URI the string elements should have. + * @param string $localName The localName of the string elements. + * @return array The string values of the various nodes. */ - public static function extractStrings(\DOMElement $parent, $namespaceURI, $localName) + public static function extractStrings(DOMElement $parent, string $namespaceURI, string $localName) : array { - Assert::string($namespaceURI); - Assert::string($localName); - $ret = []; - for ($node = $parent->firstChild; $node !== null; $node = $node->nextSibling) { + foreach ($parent->childNodes as $node) { if ($node->namespaceURI !== $namespaceURI || $node->localName !== $localName) { continue; } @@ -637,18 +594,18 @@ public static function extractStrings(\DOMElement $parent, $namespaceURI, $local /** * Append string element. * - * @param \DOMElement $parent The parent element we should append the new nodes to. - * @param string $namespace The namespace of the created element. - * @param string $name The name of the created element. - * @param string $value The value of the element. + * @param \DOMElement $parent The parent element we should append the new nodes to. + * @param string $namespace The namespace of the created element. + * @param string $name The name of the created element. + * @param string $value The value of the element. * @return \DOMElement The generated element. */ - public static function addString(\DOMElement $parent, $namespace, $name, $value) - { - Assert::string($namespace); - Assert::string($name); - Assert::string($value); - + public static function addString( + DOMElement $parent, + string $namespace, + string $name, + string $value + ) : DOMElement { $doc = $parent->ownerDocument; $n = $doc->createElementNS($namespace, $name); @@ -662,19 +619,20 @@ public static function addString(\DOMElement $parent, $namespace, $name, $value) /** * Append string elements. * - * @param \DOMElement $parent The parent element we should append the new nodes to. - * @param string $namespace The namespace of the created elements - * @param string $name The name of the created elements - * @param bool $localized Whether the strings are localized, and should include the xml:lang attribute. - * @param array $values The values we should create the elements from. + * @param \DOMElement $parent The parent element we should append the new nodes to. + * @param string $namespace The namespace of the created elements + * @param string $name The name of the created elements + * @param bool $localized Whether the strings are localized, and should include the xml:lang attribute. + * @param array $values The values we should create the elements from. * @return void */ - public static function addStrings(\DOMElement $parent, $namespace, $name, $localized, array $values) - { - Assert::string($namespace); - Assert::string($name); - Assert::boolean($localized); - + public static function addStrings( + DOMElement $parent, + string $namespace, + string $name, + bool $localized, + array $values + ) : void { $doc = $parent->ownerDocument; foreach ($values as $index => $value) { @@ -691,13 +649,11 @@ public static function addStrings(\DOMElement $parent, $namespace, $name, $local /** * Create a KeyDescriptor with the given certificate. * - * @param string $x509Data The certificate, as a base64-encoded DER data. + * @param string $x509Data The certificate, as a base64-encoded DER data. * @return \SAML2\XML\md\KeyDescriptor The keydescriptor. */ - public static function createKeyDescriptor($x509Data) + public static function createKeyDescriptor(string $x509Data) : KeyDescriptor { - Assert::string($x509Data); - $x509Certificate = new X509Certificate(); $x509Certificate->setCertificate($x509Data); @@ -708,7 +664,7 @@ public static function createKeyDescriptor($x509Data) $keyInfo->addInfo($x509Data); $keyDescriptor = new KeyDescriptor(); - $keyDescriptor->KeyInfo = $keyInfo; + $keyDescriptor->setKeyInfo($keyInfo); return $keyDescriptor; } @@ -733,7 +689,7 @@ public static function createKeyDescriptor($x509Data) * @throws \Exception * @return int Converted to a unix timestamp. */ - public static function xsDateTimeToTimestamp($time) + public static function xsDateTimeToTimestamp(string $time) : int { $matches = []; @@ -763,9 +719,9 @@ public static function xsDateTimeToTimestamp($time) /** - * @return \SAML2\Compat\Ssp\Container + * @return \SAML2\Compat\AbstractContainer */ - public static function getContainer() + public static function getContainer() : AbstractContainer { return ContainerSingleton::getInstance(); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/Chunk.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/Chunk.php index 4b150093a151693ff63574ea0822b433add4d4ed..88b05c2b1e81778898242d4df024f3ca3096526e 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/Chunk.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/Chunk.php @@ -1,11 +1,13 @@ <?php +declare(strict_types=1); + namespace SAML2\XML; use DOMElement; + use SAML2\DOMDocumentFactory; use SAML2\Utils; -use Webmozart\Assert\Assert; /** * Serializable class used to hold an XML element. @@ -19,21 +21,21 @@ class Chunk implements \Serializable * * @var string */ - public $localName; + private $localName; /** * The namespaceURI of this element. * * @var string|null */ - public $namespaceURI; + private $namespaceURI; /** * The \DOMElement we contain. * * @var \DOMElement */ - public $xml; + private $xml; /** @@ -41,12 +43,12 @@ class Chunk implements \Serializable * * @param \DOMElement $xml The element we should copy. */ - public function __construct(\DOMElement $xml) + public function __construct(DOMElement $xml) { - $this->setLocalName($xml->localName); - $this->setNamespaceURI($xml->namespaceURI); + $this->localName = $xml->localName; + $this->namespaceURI = $xml->namespaceURI; - $this->setXml(Utils::copyElement($xml)); + $this->xml = Utils::copyElement($xml); } @@ -54,9 +56,8 @@ public function __construct(\DOMElement $xml) * Get this \DOMElement. * * @return \DOMElement This element. - * @deprecated */ - public function getXML() + public function getXML() : DOMElement { return $this->xml; } @@ -68,7 +69,7 @@ public function getXML() * @param \DOMElement $parent The element we should append this element to. * @return \DOMElement The new element. */ - public function toXML(DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { return Utils::copyElement($this->xml, $parent); } @@ -76,9 +77,10 @@ public function toXML(DOMElement $parent) /** * Collect the value of the localName-property + * * @return string */ - public function getLocalName() + public function getLocalName() : string { return $this->localName; } @@ -86,21 +88,22 @@ public function getLocalName() /** * Set the value of the localName-property + * * @param string $localName * @return void */ - public function setLocalName($localName) + public function setLocalName(string $localName) : void { - Assert::string($localName); $this->localName = $localName; } /** * Collect the value of the namespaceURI-property + * * @return string|null */ - public function getNamespaceURI() + public function getNamespaceURI() : ?string { return $this->namespaceURI; } @@ -108,50 +111,40 @@ public function getNamespaceURI() /** * Set the value of the namespaceURI-property + * * @param string|null $namespaceURI * @return void */ - public function setNamespaceURI($namespaceURI = null) + public function setNamespaceURI(string $namespaceURI = null) : void { - Assert::nullOrString($namespaceURI); $this->namespaceURI = $namespaceURI; } - /** - * Set the value of the xml-property - * @param \DOMelement $xml - * @return void - */ - private function setXml($xml) - { - Assert::isInstanceOf($xml, DOMElement::class); - $this->xml = $xml; - } - - /** * Serialize this XML chunk. * * @return string The serialized chunk. */ - public function serialize() + public function serialize() : string { - return serialize($this->getXml()->ownerDocument->saveXML($this->getXml())); + return serialize($this->xml->ownerDocument->saveXML($this->xml)); } - + /** * Un-serialize this XML chunk. * - * @param string $serialized The serialized chunk. + * @param string $serialized The serialized chunk. * @return void + * + * Type hint not possible due to upstream method signature */ - public function unserialize($serialized) + public function unserialize($serialized) : void { $doc = DOMDocumentFactory::fromString(unserialize($serialized)); - $this->setXml($doc->documentElement); - $this->setLocalName($this->getXml()->localName); - $this->setNamespaceURI($this->getXml()->namespaceURI); + $this->xml = $doc->documentElement; + $this->setLocalName($this->xml->localName); + $this->setNamespaceURI($this->xml->namespaceURI); } } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/alg/Common.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/alg/Common.php index 219d1160b1cd4595a3947159feb9498d359f0034..bd7760a0ec2ac68cb4a47ce8c7cc6beb8064597e 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/alg/Common.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/alg/Common.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\alg; /** diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/alg/DigestMethod.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/alg/DigestMethod.php index 04f0cb3eb1c7af431495ba01ba27b1e7cb88b7fb..196ab9c0182e8954662d5363d29cb097e6f9c086 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/alg/DigestMethod.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/alg/DigestMethod.php @@ -1,7 +1,10 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\alg; +use DOMElement; use Webmozart\Assert\Assert; /** @@ -18,7 +21,7 @@ class DigestMethod * * @var string */ - public $Algorithm; + private $Algorithm = ''; /** @@ -28,7 +31,7 @@ class DigestMethod * * @throws \Exception */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { if ($xml === null) { return; @@ -43,9 +46,10 @@ public function __construct(\DOMElement $xml = null) /** * Collect the value of the algorithm-property + * * @return string */ - public function getAlgorithm() + public function getAlgorithm() : string { return $this->Algorithm; } @@ -53,12 +57,12 @@ public function getAlgorithm() /** * Set the value of the Algorithm-property + * * @param string $algorithm * @return void */ - public function setAlgorithm($algorithm) + public function setAlgorithm(string $algorithm) : void { - Assert::string($algorithm); $this->Algorithm = $algorithm; } @@ -68,15 +72,16 @@ public function setAlgorithm($algorithm) * * @param \DOMElement $parent The element we should append to. * @return \DOMElement + * @throws \Exception */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::string($this->getAlgorithm()); + Assert::notEmpty($this->Algorithm, 'Cannot convert DigestMethod to XML without an Algorithm set.'); $doc = $parent->ownerDocument; $e = $doc->createElementNS(Common::NS, 'alg:DigestMethod'); $parent->appendChild($e); - $e->setAttribute('Algorithm', $this->getAlgorithm()); + $e->setAttribute('Algorithm', $this->Algorithm); return $e; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/alg/SigningMethod.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/alg/SigningMethod.php index d2fe64684bc6e7cb363706a3dbbca28ae95a7777..3719c566ab3df8affd50665259f5a2b235c4bb52 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/alg/SigningMethod.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/alg/SigningMethod.php @@ -1,7 +1,10 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\alg; +use DOMElement; use Webmozart\Assert\Assert; /** @@ -18,8 +21,7 @@ class SigningMethod * * @var string */ - public $Algorithm; - + private $Algorithm = ''; /** * The smallest key size, in bits, that the entity supports in conjunction with the algorithm. If omitted, no @@ -27,8 +29,7 @@ class SigningMethod * * @var int|null */ - public $MinKeySize; - + private $MinKeySize = null; /** * The largest key size, in bits, that the entity supports in conjunction with the algorithm. If omitted, no @@ -36,11 +37,40 @@ class SigningMethod * * @var int|null */ - public $MaxKeySize; + private $MaxKeySize = null; + + + /** + * Create/parse an alg:SigningMethod element. + * + * @param \DOMElement|null $xml The XML element we should load or null to create a new one from scratch. + * + * @throws \Exception + */ + public function __construct(DOMElement $xml = null) + { + if ($xml === null) { + return; + } + + if (!$xml->hasAttribute('Algorithm')) { + throw new \Exception('Missing required attribute "Algorithm" in alg:SigningMethod element.'); + } + $this->Algorithm = $xml->getAttribute('Algorithm'); + + if ($xml->hasAttribute('MinKeySize')) { + $this->MinKeySize = intval($xml->getAttribute('MinKeySize')); + } + + if ($xml->hasAttribute('MaxKeySize')) { + $this->MaxKeySize = intval($xml->getAttribute('MaxKeySize')); + } + } /** * Collect the value of the Algorithm-property + * * @return string */ public function getAlgorithm() @@ -51,21 +81,22 @@ public function getAlgorithm() /** * Set the value of the Algorithm-property + * * @param string $algorithm * @return void */ - public function setAlgorithm($algorithm) + public function setAlgorithm(string $algorithm) : void { - Assert::string($algorithm); $this->Algorithm = $algorithm; } /** * Collect the value of the MinKeySize-property + * * @return int|null */ - public function getMinKeySize() + public function getMinKeySize() : ?int { return $this->MinKeySize; } @@ -73,21 +104,22 @@ public function getMinKeySize() /** * Set the value of the MinKeySize-property + * * @param int|null $minKeySize * @return void */ - public function setMinKeySize($minKeySize = null) + public function setMinKeySize(int $minKeySize = null) : void { - Assert::nullOrInteger($minKeySize); $this->MinKeySize = $minKeySize; } /** * Collect the value of the MaxKeySize-property + * * @return int|null */ - public function getMaxKeySize() + public function getMaxKeySize() : ?int { return $this->MaxKeySize; } @@ -95,67 +127,40 @@ public function getMaxKeySize() /** * Set the value of the MaxKeySize-property + * * @param int|null $maxKeySize * @return void */ - public function setMaxKeySize($maxKeySize = null) + public function setMaxKeySize(int $maxKeySize = null) : void { - Assert::nullOrInteger($maxKeySize); $this->MaxKeySize = $maxKeySize; } - /** - * Create/parse an alg:SigningMethod element. - * - * @param \DOMElement|null $xml The XML element we should load or null to create a new one from scratch. - * @throws \Exception - * @return void - */ - public function __construct(\DOMElement $xml = null) - { - if ($xml === null) { - return; - } - - if (!$xml->hasAttribute('Algorithm')) { - throw new \Exception('Missing required attribute "Algorithm" in alg:SigningMethod element.'); - } - $this->setAlgorithm($xml->getAttribute('Algorithm')); - - if ($xml->hasAttribute('MinKeySize')) { - $this->setMinKeySize(intval($xml->getAttribute('MinKeySize'))); - } - - if ($xml->hasAttribute('MaxKeySize')) { - $this->setMaxKeySize(intval($xml->getAttribute('MaxKeySize'))); - } - } - - /** * Convert this element to XML. * * @param \DOMElement $parent The element we should append to. * @return \DOMElement + * @throws \Exception */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::string($this->getAlgorithm()); - Assert::nullOrInteger($this->getMinKeySize()); - Assert::nullOrInteger($this->getMaxKeySize()); + Assert::notEmpty($this->Algorithm, 'Cannot convert SigningMethod to XML without an Algorithm set.'); + Assert::nullOrInteger($this->MinKeySize); + Assert::nullOrInteger($this->MaxKeySize); $doc = $parent->ownerDocument; $e = $doc->createElementNS(Common::NS, 'alg:SigningMethod'); $parent->appendChild($e); - $e->setAttribute('Algorithm', $this->getAlgorithm()); + $e->setAttribute('Algorithm', $this->Algorithm); - if ($this->getMinKeySize() !== null) { - $e->setAttribute('MinKeySize', $this->getMinKeySize()); + if ($this->MinKeySize !== null) { + $e->setAttribute('MinKeySize', strval($this->MinKeySize)); } - if ($this->getMaxKeySize() !== null) { - $e->setAttribute('MaxKeySize', $this->getMaxKeySize()); + if ($this->MaxKeySize !== null) { + $e->setAttribute('MaxKeySize', strval($this->MaxKeySize)); } return $e; diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/ds/KeyInfo.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/ds/KeyInfo.php index 8ea8ec0e5535953f07d34c514c168e7bc60a83c8..f53c5f4d457a7d0836867afb164f853e920612bf 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/ds/KeyInfo.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/ds/KeyInfo.php @@ -1,11 +1,15 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\ds; +use DOMElement; use RobRichards\XMLSecLibs\XMLSecurityDSig; -use SAML2\XML\Chunk; use Webmozart\Assert\Assert; +use SAML2\XML\Chunk; + /** * Class representing a ds:KeyInfo element. * @@ -18,7 +22,7 @@ class KeyInfo * * @var string|null */ - public $Id = null; + private $Id = null; /** * The various key information elements. @@ -28,7 +32,7 @@ class KeyInfo * * @var (\SAML2\XML\Chunk|\SAML2\XML\ds\KeyName|\SAML2\XML\ds\X509Data)[] */ - public $info = []; + private $info = []; /** @@ -36,34 +40,34 @@ class KeyInfo * * @param \DOMElement|null $xml The XML element we should load. */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { if ($xml === null) { return; } if ($xml->hasAttribute('Id')) { - $this->setId($xml->getAttribute('Id')); + $this->Id = $xml->getAttribute('Id'); } - for ($n = $xml->firstChild; $n !== null; $n = $n->nextSibling) { + foreach ($xml->childNodes as $n) { if (!($n instanceof \DOMElement)) { continue; } if ($n->namespaceURI !== XMLSecurityDSig::XMLDSIGNS) { - $this->addInfo(new Chunk($n)); + $this->info[] = new Chunk($n); continue; } switch ($n->localName) { case 'KeyName': - $this->addInfo(new KeyName($n)); + $this->info[] = new KeyName($n); break; case 'X509Data': - $this->addInfo(new X509Data($n)); + $this->info[] = new X509Data($n); break; default: - $this->addInfo(new Chunk($n)); + $this->info[] = new Chunk($n); break; } } @@ -72,9 +76,10 @@ public function __construct(\DOMElement $xml = null) /** * Collect the value of the Id-property + * * @return string|null */ - public function getId() + public function getId() : ?string { return $this->Id; } @@ -82,21 +87,22 @@ public function getId() /** * Set the value of the Id-property + * * @param string|null $id * @return void */ - public function setId($id = null) + public function setId(string $id = null) : void { - Assert::nullOrString($id); $this->Id = $id; } /** * Collect the value of the info-property + * * @return array */ - public function getInfo() + public function getInfo() : array { return $this->info; } @@ -104,10 +110,11 @@ public function getInfo() /** * Set the value of the info-property + * * @param array $info * @return void */ - public function setInfo(array $info) + public function setInfo(array $info) : void { $this->info = $info; } @@ -115,12 +122,18 @@ public function setInfo(array $info) /** * Add the value to the info-property + * * @param \SAML2\XML\Chunk|\SAML2\XML\ds\KeyName|\SAML2\XML\ds\X509Data $info + * @throws \Exception * @return void */ - public function addInfo($info) + public function addInfo($info) : void { - Assert::isInstanceOfAny($info, [Chunk::class, KeyName::class, X509Data::class]); + Assert::isInstanceOfAny( + $info, + [Chunk::class, KeyName::class, X509Data::class], + 'KeyInfo can only contain instances of KeyName, X509Data or Chunk.' + ); $this->info[] = $info; } @@ -131,22 +144,18 @@ public function addInfo($info) * @param \DOMElement $parent The element we should append this KeyInfo to. * @return \DOMElement */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::nullOrString($this->getId()); - Assert::isArray($this->getInfo()); - $doc = $parent->ownerDocument; $e = $doc->createElementNS(XMLSecurityDSig::XMLDSIGNS, 'ds:KeyInfo'); $parent->appendChild($e); - if ($this->getId() !== null) { - $e->setAttribute('Id', $this->getId()); + if ($this->Id !== null) { + $e->setAttribute('Id', $this->Id); } - /** @var \SAML2\XML\Chunk|\SAML2\XML\ds\KeyName|\SAML2\XML\ds\X509Data $n */ - foreach ($this->getInfo() as $n) { + foreach ($this->info as $n) { $n->toXML($e); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/ds/KeyName.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/ds/KeyName.php index 2bfbce93f3da28cf8195c65337c4eeffcb87158d..b025f1a275914d1cd6203432a86d6a9b0ea6b97c 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/ds/KeyName.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/ds/KeyName.php @@ -1,10 +1,13 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\ds; +use DOMElement; use RobRichards\XMLSecLibs\XMLSecurityDSig; + use SAML2\Utils; -use Webmozart\Assert\Assert; /** * Class representing a ds:KeyName element. @@ -18,7 +21,7 @@ class KeyName * * @var string */ - public $name; + public $name = ''; /** @@ -26,7 +29,7 @@ class KeyName * * @param \DOMElement|null $xml The XML element we should load. */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { if ($xml === null) { return; @@ -38,9 +41,10 @@ public function __construct(\DOMElement $xml = null) /** * Collect the value of the name-property + * * @return string */ - public function getName() + public function getName() : string { return $this->name; } @@ -48,12 +52,12 @@ public function getName() /** * Set the value of the name-property + * * @param string $name * @return void */ - public function setName($name) + public function setName(string $name) : void { - Assert::nullOrString($name); $this->name = $name; } @@ -64,10 +68,8 @@ public function setName($name) * @param \DOMElement $parent The element we should append this KeyName element to. * @return \DOMElement */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::string($this->name); - return Utils::addString($parent, XMLSecurityDSig::XMLDSIGNS, 'ds:KeyName', $this->name); } } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/ds/X509Certificate.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/ds/X509Certificate.php index 8283e78cb59bc9062cb7838da03a946db3e0e91f..dabc1f949c62d1b9bd0b86acd2200991d21d1664 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/ds/X509Certificate.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/ds/X509Certificate.php @@ -1,10 +1,13 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\ds; +use DOMElement; use RobRichards\XMLSecLibs\XMLSecurityDSig; + use SAML2\Utils; -use Webmozart\Assert\Assert; /** * Class representing a ds:X509Certificate element. @@ -18,7 +21,7 @@ class X509Certificate * * @var string */ - public $certificate; + private $certificate; /** @@ -26,7 +29,7 @@ class X509Certificate * * @param \DOMElement|null $xml The XML element we should load. */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { if ($xml === null) { return; @@ -38,9 +41,10 @@ public function __construct(\DOMElement $xml = null) /** * Collect the value of the certificate-property + * * @return string */ - public function getCertificate() + public function getCertificate() : string { return $this->certificate; } @@ -48,12 +52,12 @@ public function getCertificate() /** * Set the value of the certificate-property + * * @param string $certificate * @return void */ - public function setCertificate($certificate) + public function setCertificate(string $certificate) : void { - Assert::string($certificate); $this->certificate = $certificate; } @@ -64,9 +68,8 @@ public function setCertificate($certificate) * @param \DOMElement $parent The element we should append this X509Certificate element to. * @return \DOMElement */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::string($this->certificate); return Utils::addString($parent, XMLSecurityDSig::XMLDSIGNS, 'ds:X509Certificate', $this->getCertificate()); } } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/ds/X509Data.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/ds/X509Data.php index 74be5d8010f043b048c85ffc2fb367d7f559d9c0..f5d1cdec057f37a540ef2c20986fd1ed89c842f6 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/ds/X509Data.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/ds/X509Data.php @@ -1,11 +1,15 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\ds; +use DOMElement; use RobRichards\XMLSecLibs\XMLSecurityDSig; +use Webmozart\Assert\Assert; + use SAML2\XML\Chunk; use SAML2\XML\ds\X509Certificate; -use Webmozart\Assert\Assert; /** * Class representing a ds:X509Data element. @@ -22,7 +26,7 @@ class X509Data * * @var (\SAML2\XML\Chunk|\SAML2\XML\ds\X509Certificate)[] */ - public $data = []; + private $data = []; /** @@ -30,14 +34,14 @@ class X509Data * * @param \DOMElement|null $xml The XML element we should load. */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { if ($xml === null) { return; } for ($n = $xml->firstChild; $n !== null; $n = $n->nextSibling) { - if (!($n instanceof \DOMElement)) { + if (!($n instanceof DOMElement)) { continue; } @@ -59,9 +63,10 @@ public function __construct(\DOMElement $xml = null) /** * Collect the value of the data-property + * * @return array */ - public function getData() + public function getData() : array { return $this->data; } @@ -69,10 +74,11 @@ public function getData() /** * Set the value of the data-property + * * @param array $data * @return void */ - public function setData(array $data) + public function setData(array $data) : void { $this->data = $data; } @@ -80,10 +86,11 @@ public function setData(array $data) /** * Add the value to the data-property + * * @param \SAML2\XML\Chunk|\SAML2\XML\ds\X509Certificate $data * @return void */ - public function addData($data) + public function addData($data) : void { Assert::isInstanceOfAny($data, [Chunk::class, X509Certificate::class]); $this->data[] = $data; @@ -96,10 +103,8 @@ public function addData($data) * @param \DOMElement $parent The element we should append this X509Data element to. * @return \DOMElement */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::isArray($this->getData()); - $doc = $parent->ownerDocument; $e = $doc->createElementNS(XMLSecurityDSig::XMLDSIGNS, 'ds:X509Data'); diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/ecp/Response.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/ecp/Response.php index 2e76d2437dc40822db6f05d012d9339a1d35e622..dd0d32cf593e3e808e76f58e2e36569288629b56 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/ecp/Response.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/ecp/Response.php @@ -1,11 +1,13 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\ecp; use DOMElement; use InvalidArgumentException; + use SAML2\Constants; -use Webmozart\Assert\Assert; /** * Class representing the ECP Response element. @@ -17,7 +19,7 @@ class Response * * @var string */ - public $AssertionConsumerServiceURL; + private $AssertionConsumerServiceURL; /** @@ -55,9 +57,10 @@ public function __construct(DOMElement $xml = null) /** * Collect the value of the AssertionConsumerServiceURL-property + * * @return string */ - public function getAssertionConsumerServiceURL() + public function getAssertionConsumerServiceURL() : string { return $this->AssertionConsumerServiceURL; } @@ -65,13 +68,13 @@ public function getAssertionConsumerServiceURL() /** * Set the value of the AssertionConsumerServiceURL-property + * * @param string $assertionConsumerServiceURL * @throws InvalidArgumentException * @return void */ - public function setAssertionConsumerServiceURL($assertionConsumerServiceURL) + public function setAssertionConsumerServiceURL(string $assertionConsumerServiceURL) : void { - Assert::string($assertionConsumerServiceURL); if (!filter_var($assertionConsumerServiceURL, FILTER_VALIDATE_URL)) { throw new InvalidArgumentException('AssertionConsumerServiceURL is not a valid URL.'); } @@ -86,7 +89,7 @@ public function setAssertionConsumerServiceURL($assertionConsumerServiceURL) * @throws InvalidArgumentException * @return \DOMElement */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { if (!is_string($this->getAssertionConsumerServiceURL())) { throw new InvalidArgumentException("AssertionConsumerServiceURL must be a string"); diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/AdditionalMetadataLocation.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/AdditionalMetadataLocation.php index 23acb0bf9e6529f36ee89e2b11c064ea86fb7518..55fab596628bf8d2ddb74ea6ddab3e49025727d3 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/AdditionalMetadataLocation.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/AdditionalMetadataLocation.php @@ -1,10 +1,13 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\md; +use DOMElement; + use SAML2\Constants; use SAML2\Utils; -use Webmozart\Assert\Assert; /** * Class representing SAML 2 metadata AdditionalMetadataLocation element. @@ -18,14 +21,14 @@ class AdditionalMetadataLocation * * @var string */ - public $namespace; + private $namespace; /** * The URI where the metadata is located. * * @var string */ - public $location; + private $location; /** @@ -34,7 +37,7 @@ class AdditionalMetadataLocation * @param \DOMElement|null $xml The XML element we should load. * @throws \Exception */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { if ($xml === null) { return; @@ -51,9 +54,10 @@ public function __construct(\DOMElement $xml = null) /** * Collect the value of the namespace-property + * * @return string */ - public function getNamespace() + public function getNamespace() : string { return $this->namespace; } @@ -61,21 +65,22 @@ public function getNamespace() /** * Set the value of the namespace-property + * * @param string $namespace * @return void */ - public function setNamespace($namespace) + public function setNamespace(string $namespace) : void { - Assert::string($namespace); $this->namespace = $namespace; } /** * Collect the value of the location-property + * * @return string */ - public function getLocation() + public function getLocation() : string { return $this->location; } @@ -83,12 +88,12 @@ public function getLocation() /** * Set the value of the location-property + * * @param string $location * @return void */ - public function setLocation($location) + public function setLocation(string $location) : void { - Assert::string($location); $this->location = $location; } @@ -99,11 +104,8 @@ public function setLocation($location) * @param \DOMElement $parent The element we should append to. * @return \DOMElement This AdditionalMetadataLocation-element. */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::string($this->getNamespace()); - Assert::string($this->getLocation()); - $e = Utils::addString($parent, Constants::NS_MD, 'md:AdditionalMetadataLocation', $this->getLocation()); $e->setAttribute('namespace', $this->getNamespace()); diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/AffiliationDescriptor.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/AffiliationDescriptor.php index f56d0257759ef33898e73e274df367ecb1655a7a..5cd06822b0f8d412ff2300097c47463948dda4e2 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/AffiliationDescriptor.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/AffiliationDescriptor.php @@ -1,11 +1,15 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\md; +use DOMElement; +use Webmozart\Assert\Assert; + use SAML2\Constants; use SAML2\SignedElementHelper; use SAML2\Utils; -use Webmozart\Assert\Assert; /** * Class representing SAML 2 AffiliationDescriptor element. @@ -19,37 +23,23 @@ class AffiliationDescriptor extends SignedElementHelper * * @var string */ - public $affiliationOwnerID; + public $affiliationOwnerID = ''; /** * The ID of this element. * * @var string|null */ - public $ID; - - /** - * How long this element is valid, as a unix timestamp. - * - * @var int|null - */ - public $validUntil; - - /** - * The length of time this element can be cached, as string. - * - * @var string|null - */ - public $cacheDuration; + private $ID = null; /** * Extensions on this element. * * Array of extension elements. * - * @var \SAML2\XML\Chunk[] + * @var array */ - public $Extensions = []; + private $Extensions = []; /** * The AffiliateMember(s). @@ -58,7 +48,7 @@ class AffiliationDescriptor extends SignedElementHelper * * @var array */ - public $AffiliateMember = []; + private $AffiliateMember = []; /** * KeyDescriptor elements. @@ -67,7 +57,7 @@ class AffiliationDescriptor extends SignedElementHelper * * @var \SAML2\XML\md\KeyDescriptor[] */ - public $KeyDescriptor = []; + private $KeyDescriptor = []; /** @@ -76,7 +66,7 @@ class AffiliationDescriptor extends SignedElementHelper * @param \DOMElement|null $xml The XML element we should load. * @throws \Exception */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { parent::__construct($xml); @@ -108,6 +98,7 @@ public function __construct(\DOMElement $xml = null) throw new \Exception('Missing AffiliateMember in AffiliationDescriptor.'); } + /** @var \DOMElement $kd */ foreach (Utils::xpQuery($xml, './saml_metadata:KeyDescriptor') as $kd) { $this->addKeyDescriptor(new KeyDescriptor($kd)); } @@ -116,9 +107,10 @@ public function __construct(\DOMElement $xml = null) /** * Collect the value of the affiliationOwnerId-property + * * @return string */ - public function getAffiliationOwnerID() + public function getAffiliationOwnerID() : string { return $this->affiliationOwnerID; } @@ -126,21 +118,22 @@ public function getAffiliationOwnerID() /** * Set the value of the affiliationOwnerId-property + * * @param string $affiliationOwnerId * @return void */ - public function setAffiliationOwnerID($affiliationOwnerId) + public function setAffiliationOwnerID(string $affiliationOwnerId) : void { - Assert::string($affiliationOwnerId); $this->affiliationOwnerID = $affiliationOwnerId; } /** * Collect the value of the ID-property + * * @return string|null */ - public function getID() + public function getID() : ?string { return $this->ID; } @@ -148,66 +141,22 @@ public function getID() /** * Set the value of the ID-property + * * @param string|null $Id * @return void */ - public function setID($Id = null) + public function setID(string $Id = null) : void { - Assert::nullOrString($Id); - $this->ID = $Id; } - /** - * Collect the value of the validUntil-property - * @return int|null - */ - public function getValidUntil() - { - return $this->validUntil; - } - - - /** - * Set the value of the validUntil-property - * @param int|null $validUntil - * @return void - */ - public function setValidUntil($validUntil = null) - { - Assert::nullOrInteger($validUntil); - $this->validUntil = $validUntil; - } - - - /** - * Collect the value of the cacheDuration-property - * @return string|null - */ - public function getCacheDuration() - { - return $this->cacheDuration; - } - - - /** - * Set the value of the cacheDuration-property - * @param string|null $cacheDuration - * @return void - */ - public function setCacheDuration($cacheDuration = null) - { - Assert::nullOrString($cacheDuration); - $this->cacheDuration = $cacheDuration; - } - - /** * Collect the value of the Extensions-property + * * @return \SAML2\XML\Chunk[] */ - public function getExtensions() + public function getExtensions() : array { return $this->Extensions; } @@ -215,10 +164,11 @@ public function getExtensions() /** * Set the value of the Extensions-property + * * @param array $extensions * @return void */ - public function setExtensions(array $extensions) + public function setExtensions(array $extensions) : void { $this->Extensions = $extensions; } @@ -227,10 +177,10 @@ public function setExtensions(array $extensions) /** * Add an Extension. * - * @param \SAML2\XML\Chunk $extensions The Extensions + * @param Extensions $extensions The Extensions * @return void */ - public function addExtension(Extensions $extension) + public function addExtension(Extensions $extension) : void { $this->Extensions[] = $extension; } @@ -238,9 +188,10 @@ public function addExtension(Extensions $extension) /** * Collect the value of the AffiliateMember-property + * * @return array */ - public function getAffiliateMember() + public function getAffiliateMember() : array { return $this->AffiliateMember; } @@ -248,10 +199,11 @@ public function getAffiliateMember() /** * Set the value of the AffiliateMember-property + * * @param array $affiliateMember * @return void */ - public function setAffiliateMember(array $affiliateMember) + public function setAffiliateMember(array $affiliateMember) : void { $this->AffiliateMember = $affiliateMember; } @@ -259,9 +211,10 @@ public function setAffiliateMember(array $affiliateMember) /** * Collect the value of the KeyDescriptor-property + * * @return \SAML2\XML\md\KeyDescriptor[] */ - public function getKeyDescriptor() + public function getKeyDescriptor() : array { return $this->KeyDescriptor; } @@ -269,10 +222,11 @@ public function getKeyDescriptor() /** * Set the value of the KeyDescriptor-property + * * @param array $keyDescriptor * @return void */ - public function setKeyDescriptor(array $keyDescriptor) + public function setKeyDescriptor(array $keyDescriptor) : void { $this->KeyDescriptor = $keyDescriptor; } @@ -280,10 +234,11 @@ public function setKeyDescriptor(array $keyDescriptor) /** * Add the value to the KeyDescriptor-property + * * @param \SAML2\XML\md\KeyDescriptor $keyDescriptor * @return void */ - public function addKeyDescriptor(KeyDescriptor $keyDescriptor) + public function addKeyDescriptor(KeyDescriptor $keyDescriptor) : void { $this->KeyDescriptor[] = $keyDescriptor; } @@ -295,39 +250,32 @@ public function addKeyDescriptor(KeyDescriptor $keyDescriptor) * @param \DOMElement $parent The EntityDescriptor we should append this endpoint to. * @return \DOMElement */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::string($this->getAffiliationOwnerID()); - Assert::nullOrString($this->getID()); - Assert::nullOrInteger($this->getValidUntil()); - Assert::nullOrString($this->getCacheDuration()); - Assert::isArray($this->getExtensions()); - Assert::isArray($affiliateMember = $this->getAffiliateMember()); - Assert::notEmpty($affiliateMember); - Assert::isArray($this->getKeyDescriptor()); + Assert::notEmpty($this->affiliationOwnerID); $e = $parent->ownerDocument->createElementNS(Constants::NS_MD, 'md:AffiliationDescriptor'); $parent->appendChild($e); - $e->setAttribute('affiliationOwnerID', $this->getAffiliationOwnerID()); + $e->setAttribute('affiliationOwnerID', $this->affiliationOwnerID); - if ($this->getID() !== null) { - $e->setAttribute('ID', $this->getID()); + if ($this->ID !== null) { + $e->setAttribute('ID', $this->ID); } - if ($this->getValidUntil() !== null) { - $e->setAttribute('validUntil', gmdate('Y-m-d\TH:i:s\Z', $this->getValidUntil())); + if ($this->validUntil !== null) { + $e->setAttribute('validUntil', gmdate('Y-m-d\TH:i:s\Z', $this->validUntil)); } - if ($this->getCacheDuration() !== null) { - $e->setAttribute('cacheDuration', $this->getCacheDuration()); + if ($this->cacheDuration !== null) { + $e->setAttribute('cacheDuration', $this->cacheDuration); } - Extensions::addList($e, $this->getExtensions()); + Extensions::addList($e, $this->Extensions); - Utils::addStrings($e, Constants::NS_MD, 'md:AffiliateMember', false, $this->getAffiliateMember()); + Utils::addStrings($e, Constants::NS_MD, 'md:AffiliateMember', false, $this->AffiliateMember); - foreach ($this->getKeyDescriptor() as $kd) { + foreach ($this->KeyDescriptor as $kd) { $kd->toXML($e); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/AttributeAuthorityDescriptor.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/AttributeAuthorityDescriptor.php index 244adad925188c02f6de5d852c391186133d742e..1d31323567fe9709f435b6f0041df9f09c164132 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/AttributeAuthorityDescriptor.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/AttributeAuthorityDescriptor.php @@ -1,11 +1,15 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\md; +use DOMElement; +use Webmozart\Assert\Assert; + use SAML2\Constants; use SAML2\Utils; use SAML2\XML\saml\Attribute; -use Webmozart\Assert\Assert; /** * Class representing SAML 2 metadata AttributeAuthorityDescriptor. @@ -21,7 +25,7 @@ class AttributeAuthorityDescriptor extends RoleDescriptor * * @var \SAML2\XML\md\EndpointType[] */ - public $AttributeService = []; + private $AttributeService = []; /** * List of AssertionIDRequestService endpoints. @@ -30,7 +34,7 @@ class AttributeAuthorityDescriptor extends RoleDescriptor * * @var \SAML2\XML\md\EndpointType[] */ - public $AssertionIDRequestService = []; + private $AssertionIDRequestService = []; /** * List of supported NameID formats. @@ -39,7 +43,7 @@ class AttributeAuthorityDescriptor extends RoleDescriptor * * @var string[] */ - public $NameIDFormat = []; + private $NameIDFormat = []; /** * List of supported attribute profiles. @@ -48,7 +52,7 @@ class AttributeAuthorityDescriptor extends RoleDescriptor * * @var array */ - public $AttributeProfile = []; + private $AttributeProfile = []; /** * List of supported attributes. @@ -57,7 +61,7 @@ class AttributeAuthorityDescriptor extends RoleDescriptor * * @var \SAML2\XML\saml\Attribute[] */ - public $Attribute = []; + private $Attribute = []; /** @@ -66,7 +70,7 @@ class AttributeAuthorityDescriptor extends RoleDescriptor * @param \DOMElement|null $xml The XML element we should load. * @throws \Exception */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { parent::__construct('md:AttributeAuthorityDescriptor', $xml); @@ -74,6 +78,7 @@ public function __construct(\DOMElement $xml = null) return; } + /** @var \DOMElement $ep */ foreach (Utils::xpQuery($xml, './saml_metadata:AttributeService') as $ep) { $this->addAttributeService(new EndpointType($ep)); } @@ -81,6 +86,7 @@ public function __construct(\DOMElement $xml = null) throw new \Exception('Must have at least one AttributeService in AttributeAuthorityDescriptor.'); } + /** @var \DOMElement $ep */ foreach (Utils::xpQuery($xml, './saml_metadata:AssertionIDRequestService') as $ep) { $this->addAssertionIDRequestService(new EndpointType($ep)); } @@ -89,6 +95,7 @@ public function __construct(\DOMElement $xml = null) $this->setAttributeProfile(Utils::extractStrings($xml, Constants::NS_MD, 'AttributeProfile')); + /** @var \DOMElement $a */ foreach (Utils::xpQuery($xml, './saml_assertion:Attribute') as $a) { $this->addAttribute(new Attribute($a)); } @@ -97,9 +104,10 @@ public function __construct(\DOMElement $xml = null) /** * Collect the value of the AttributeService-property + * * @return \SAML2\XML\md\EndpointType[] */ - public function getAttributeService() + public function getAttributeService() : array { return $this->AttributeService; } @@ -107,10 +115,11 @@ public function getAttributeService() /** * Set the value of the AttributeService-property + * * @param \SAML2\XML\md\EndpointType[] $attributeService * @return void */ - public function setAttributeService(array $attributeService) + public function setAttributeService(array $attributeService) : void { $this->AttributeService = $attributeService; } @@ -118,21 +127,22 @@ public function setAttributeService(array $attributeService) /** * Add the value to the AttributeService-property + * * @param \SAML2\XML\md\EndpointType $attributeService * @return void */ - public function addAttributeService(EndpointType $attributeService) + public function addAttributeService(EndpointType $attributeService) : void { - Assert::isInstanceOf($attributeService, EndpointType::class); $this->AttributeService[] = $attributeService; } /** * Collect the value of the NameIDFormat-property + * * @return string[] */ - public function getNameIDFormat() + public function getNameIDFormat() : array { return $this->NameIDFormat; } @@ -140,10 +150,11 @@ public function getNameIDFormat() /** * Set the value of the NameIDFormat-property + * * @param string[] $nameIDFormat * @return void */ - public function setNameIDFormat(array $nameIDFormat) + public function setNameIDFormat(array $nameIDFormat) : void { $this->NameIDFormat = $nameIDFormat; } @@ -151,9 +162,10 @@ public function setNameIDFormat(array $nameIDFormat) /** * Collect the value of the AssertionIDRequestService-property + * * @return \SAML2\XML\md\EndpointType[] */ - public function getAssertionIDRequestService() + public function getAssertionIDRequestService() : array { return $this->AssertionIDRequestService; } @@ -161,10 +173,11 @@ public function getAssertionIDRequestService() /** * Set the value of the AssertionIDRequestService-property + * * @param \SAML2\XML\md\EndpointType[] $assertionIDRequestService * @return void */ - public function setAssertionIDRequestService(array $assertionIDRequestService) + public function setAssertionIDRequestService(array $assertionIDRequestService) : void { $this->AssertionIDRequestService = $assertionIDRequestService; } @@ -172,21 +185,22 @@ public function setAssertionIDRequestService(array $assertionIDRequestService) /** * Add the value to the AssertionIDRequestService-property + * * @param \SAML2\XML\md\EndpointType $assertionIDRequestService * @return void */ - public function addAssertionIDRequestService(EndpointType $assertionIDRequestService) + public function addAssertionIDRequestService(EndpointType $assertionIDRequestService) : void { - Assert::isInstanceOf($assertionIDRequestService, EndpointType::class); $this->AssertionIDRequestService[] = $assertionIDRequestService; } /** * Collect the value of the AttributeProfile-property + * * @return string[] */ - public function getAttributeProfile() + public function getAttributeProfile() : array { return $this->AttributeProfile; } @@ -194,10 +208,11 @@ public function getAttributeProfile() /** * Set the value of the AttributeProfile-property + * * @param string[] $attributeProfile * @return void */ - public function setAttributeProfile(array $attributeProfile) + public function setAttributeProfile(array $attributeProfile) : void { $this->AttributeProfile = $attributeProfile; } @@ -205,9 +220,10 @@ public function setAttributeProfile(array $attributeProfile) /** * Collect the value of the Attribute-property + * * @return \SAML2\XML\saml\Attribute[] */ - public function getAttribute() + public function getAttribute() : array { return $this->Attribute; } @@ -215,10 +231,11 @@ public function getAttribute() /** * Set the value of the Attribute-property + * * @param \SAML2\XML\saml\Attribute[] $attribute * @return void */ - public function setAttribute(array $attribute) + public function setAttribute(array $attribute) : void { $this->Attribute = $attribute; } @@ -226,12 +243,12 @@ public function setAttribute(array $attribute) /** * Add the value to the Attribute-property + * * @param \SAML2\XML\saml\Attribute $attribute * @return void */ - public function addAttribute(Attribute $attribute) + public function addAttribute(Attribute $attribute) : void { - Assert::isInstanceOf($attribute, Attribute::class); $this->Attribute[] = $attribute; } @@ -242,30 +259,25 @@ public function addAttribute(Attribute $attribute) * @param \DOMElement $parent The EntityDescriptor we should append this IDPSSODescriptor to. * @return \DOMElement */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::isArray($attributeService = $this->getAttributeService()); - Assert::notEmpty($attributeService); - Assert::isArray($this->getAssertionIDRequestService()); - Assert::isArray($this->getNameIDFormat()); - Assert::isArray($this->getAttributeProfile()); - Assert::isArray($this->Attribute); + Assert::notEmpty($this->AttributeService); $e = parent::toXML($parent); - foreach ($this->getAttributeService() as $ep) { + foreach ($this->AttributeService as $ep) { $ep->toXML($e, 'md:AttributeService'); } - foreach ($this->getAssertionIDRequestService() as $ep) { + foreach ($this->AssertionIDRequestService as $ep) { $ep->toXML($e, 'md:AssertionIDRequestService'); } - Utils::addStrings($e, Constants::NS_MD, 'md:NameIDFormat', false, $this->getNameIDFormat()); + Utils::addStrings($e, Constants::NS_MD, 'md:NameIDFormat', false, $this->NameIDFormat); - Utils::addStrings($e, Constants::NS_MD, 'md:AttributeProfile', false, $this->getAttributeProfile()); + Utils::addStrings($e, Constants::NS_MD, 'md:AttributeProfile', false, $this->AttributeProfile); - foreach ($this->getAttribute() as $a) { + foreach ($this->Attribute as $a) { $a->toXML($e); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/AttributeConsumingService.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/AttributeConsumingService.php index e7d64a3f8ed70e563c849fffca1449b6946fcbd4..82162e57fd5bfa9e2f013e85fb4e51d968ec6990 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/AttributeConsumingService.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/AttributeConsumingService.php @@ -1,10 +1,13 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\md; +use DOMElement; + use SAML2\Constants; use SAML2\Utils; -use Webmozart\Assert\Assert; /** * Class representing SAML 2 Metadata AttributeConsumingService element. @@ -18,14 +21,14 @@ class AttributeConsumingService * * @var int */ - public $index; + private $index; /** * Whether this is the default AttributeConsumingService. * * @var bool|null */ - public $isDefault = null; + private $isDefault = null; /** * The ServiceName of this AttributeConsumingService. @@ -34,7 +37,7 @@ class AttributeConsumingService * * @var array */ - public $ServiceName = []; + private $ServiceName = []; /** * The ServiceDescription of this AttributeConsumingService. @@ -43,7 +46,7 @@ class AttributeConsumingService * * @var array */ - public $ServiceDescription = []; + private $ServiceDescription = []; /** * The RequestedAttribute elements. @@ -52,7 +55,7 @@ class AttributeConsumingService * * @var \SAML2\XML\md\RequestedAttribute[] */ - public $RequestedAttribute = []; + private $RequestedAttribute = []; /** @@ -61,7 +64,7 @@ class AttributeConsumingService * @param \DOMElement|null $xml The XML element we should load. * @throws \Exception */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { if ($xml === null) { return; @@ -81,6 +84,7 @@ public function __construct(\DOMElement $xml = null) $this->setServiceDescription(Utils::extractLocalizedStrings($xml, Constants::NS_MD, 'ServiceDescription')); + /** @var \DOMElement $ra */ foreach (Utils::xpQuery($xml, './saml_metadata:RequestedAttribute') as $ra) { $this->addRequestedAttribute(new RequestedAttribute($ra)); } @@ -89,9 +93,10 @@ public function __construct(\DOMElement $xml = null) /** * Collect the value of the index-property + * * @return int */ - public function getIndex() + public function getIndex() : int { return $this->index; } @@ -99,21 +104,22 @@ public function getIndex() /** * Set the value of the index-property + * * @param int $index * @return void */ - public function setIndex($index) + public function setIndex(int $index) : void { - Assert::integer($index); $this->index = $index; } /** * Collect the value of the isDefault-property - * @return boolean|null + * + * @return bool|null */ - public function getIsDefault() + public function getIsDefault() : ?bool { return $this->isDefault; } @@ -121,21 +127,22 @@ public function getIsDefault() /** * Set the value of the isDefault-property - * @param boolean|null $flag + * + * @param bool|null $flag * @return void */ - public function setIsDefault($flag = null) + public function setIsDefault(bool $flag = null) : void { - Assert::nullOrBoolean($flag); $this->isDefault = $flag; } /** * Collect the value of the ServiceName-property + * * @return string[] */ - public function getServiceName() + public function getServiceName() : array { return $this->ServiceName; } @@ -143,10 +150,11 @@ public function getServiceName() /** * Set the value of the ServiceName-property + * * @param string[] $serviceName * @return void */ - public function setServiceName(array $serviceName) + public function setServiceName(array $serviceName) : void { $this->ServiceName = $serviceName; } @@ -154,9 +162,10 @@ public function setServiceName(array $serviceName) /** * Collect the value of the ServiceDescription-property + * * @return string[] */ - public function getServiceDescription() + public function getServiceDescription() : array { return $this->ServiceDescription; } @@ -164,10 +173,11 @@ public function getServiceDescription() /** * Set the value of the ServiceDescription-property + * * @param string[] $serviceDescription * @return void */ - public function setServiceDescription(array $serviceDescription) + public function setServiceDescription(array $serviceDescription) : void { $this->ServiceDescription = $serviceDescription; } @@ -175,9 +185,10 @@ public function setServiceDescription(array $serviceDescription) /** * Collect the value of the RequestedAttribute-property + * * @return \SAML2\XML\md\RequestedAttribute[] */ - public function getRequestedAttribute() + public function getRequestedAttribute() : array { return $this->RequestedAttribute; } @@ -185,10 +196,11 @@ public function getRequestedAttribute() /** * Set the value of the RequestedAttribute-property + * * @param \SAML2\XML\md\RequestedAttribute[] $requestedAttribute * @return void */ - public function setRequestedAttribute(array $requestedAttribute) + public function setRequestedAttribute(array $requestedAttribute) : void { $this->RequestedAttribute = $requestedAttribute; } @@ -196,10 +208,11 @@ public function setRequestedAttribute(array $requestedAttribute) /** * Add the value to the RequestedAttribute-property + * * @param \SAML2\XML\md\RequestedAttribute $requestedAttribute * @return void */ - public function addRequestedAttribute(RequestedAttribute $requestedAttribute) + public function addRequestedAttribute(RequestedAttribute $requestedAttribute) : void { $this->RequestedAttribute[] = $requestedAttribute; } @@ -211,14 +224,8 @@ public function addRequestedAttribute(RequestedAttribute $requestedAttribute) * @param \DOMElement $parent The element we should append this AttributeConsumingService to. * @return \DOMElement */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::integer($this->getIndex()); - Assert::nullOrBoolean($this->getIsDefault()); - Assert::isArray($this->getServiceName()); - Assert::isArray($this->getServiceDescription()); - Assert::isArray($this->getRequestedAttribute()); - $doc = $parent->ownerDocument; $e = $doc->createElementNS(Constants::NS_MD, 'md:AttributeConsumingService'); diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/AuthnAuthorityDescriptor.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/AuthnAuthorityDescriptor.php index 1343b13cd42e33d400529edcc03b22ac5cef9536..89ddd80d6836a345a83a3589841e78d17ef69984 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/AuthnAuthorityDescriptor.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/AuthnAuthorityDescriptor.php @@ -1,10 +1,14 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\md; +use DOMElement; +use Webmozart\Assert\Assert; + use SAML2\Constants; use SAML2\Utils; -use Webmozart\Assert\Assert; /** * Class representing SAML 2 metadata AuthnAuthorityDescriptor. @@ -20,7 +24,7 @@ class AuthnAuthorityDescriptor extends RoleDescriptor * * @var \SAML2\XML\md\EndpointType[] */ - public $AuthnQueryService = []; + private $AuthnQueryService = []; /** * List of AssertionIDRequestService endpoints. @@ -29,7 +33,7 @@ class AuthnAuthorityDescriptor extends RoleDescriptor * * @var \SAML2\XML\md\EndpointType[] */ - public $AssertionIDRequestService = []; + private $AssertionIDRequestService = []; /** * List of supported NameID formats. @@ -38,7 +42,7 @@ class AuthnAuthorityDescriptor extends RoleDescriptor * * @var string[] */ - public $NameIDFormat = []; + private $NameIDFormat = []; /** @@ -47,7 +51,7 @@ class AuthnAuthorityDescriptor extends RoleDescriptor * @param \DOMElement|null $xml The XML element we should load. * @throws \Exception */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { parent::__construct('md:AuthnAuthorityDescriptor', $xml); @@ -55,6 +59,7 @@ public function __construct(\DOMElement $xml = null) return; } + /** @var \DOMElement $ep */ foreach (Utils::xpQuery($xml, './saml_metadata:AuthnQueryService') as $ep) { $this->addAuthnQueryService(new EndpointType($ep)); } @@ -62,6 +67,7 @@ public function __construct(\DOMElement $xml = null) throw new \Exception('Must have at least one AuthnQueryService in AuthnAuthorityDescriptor.'); } + /** @var \DOMElement $ep */ foreach (Utils::xpQuery($xml, './saml_metadata:AssertionIDRequestService') as $ep) { $this->addAssertionIDRequestService(new EndpointType($ep)); } @@ -72,9 +78,10 @@ public function __construct(\DOMElement $xml = null) /** * Collect the value of the AuthnQueryService-property + * * @return \SAML2\XML\md\EndpointType[] */ - public function getAuthnQueryService() + public function getAuthnQueryService() : array { return $this->AuthnQueryService; } @@ -82,10 +89,11 @@ public function getAuthnQueryService() /** * Set the value of the AuthnQueryService-property + * * @param \SAML2\XML\md\EndpointType[] $authnQueryService * @return void */ - public function setAuthnQueryService(array $authnQueryService) + public function setAuthnQueryService(array $authnQueryService) : void { $this->AuthnQueryService = $authnQueryService; } @@ -93,21 +101,22 @@ public function setAuthnQueryService(array $authnQueryService) /** * Add the value to the AuthnQueryService-property + * * @param \SAML2\XML\md\EndpointType $authnQueryService * @return void */ - public function addAuthnQueryService(EndpointType $authnQueryService) + public function addAuthnQueryService(EndpointType $authnQueryService) : void { - Assert::isInstanceOf($authnQueryService, EndpointType::class); $this->AuthnQueryService[] = $authnQueryService; } /** * Collect the value of the AssertionIDRequestService-property + * * @return \SAML2\XML\md\EndpointType[] */ - public function getAssertionIDRequestService() + public function getAssertionIDRequestService() : array { return $this->AssertionIDRequestService; } @@ -115,10 +124,11 @@ public function getAssertionIDRequestService() /** * Set the value of the AssertionIDRequestService-property + * * @param \SAML2\XML\md\EndpointType[] $assertionIDRequestService * @return void */ - public function setAssertionIDRequestService(array $assertionIDRequestService) + public function setAssertionIDRequestService(array $assertionIDRequestService) : void { $this->AssertionIDRequestService = $assertionIDRequestService; } @@ -126,21 +136,22 @@ public function setAssertionIDRequestService(array $assertionIDRequestService) /** * Add the value to the AssertionIDRequestService-property + * * @param \SAML2\XML\md\EndpointType $assertionIDRequestService * @return void */ - public function addAssertionIDRequestService(EndpointType $assertionIDRequestService) + public function addAssertionIDRequestService(EndpointType $assertionIDRequestService) : void { - Assert::isInstanceOf($assertionIDRequestService, EndpointType::class); $this->AssertionIDRequestService[] = $assertionIDRequestService; } /** * Collect the value of the NameIDFormat-property + * * @return string[] */ - public function getNameIDFormat() + public function getNameIDFormat() : array { return $this->NameIDFormat; } @@ -148,10 +159,11 @@ public function getNameIDFormat() /** * Set the value of the NameIDFormat-property + * * @param string[] $nameIDFormat * @return void */ - public function setNameIDFormat(array $nameIDFormat) + public function setNameIDFormat(array $nameIDFormat) : void { $this->NameIDFormat = $nameIDFormat; } @@ -163,24 +175,21 @@ public function setNameIDFormat(array $nameIDFormat) * @param \DOMElement $parent The EntityDescriptor we should append this AuthnAuthorityDescriptor to. * @return \DOMElement */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::isArray($authnQueryService = $this->getAuthnQueryService()); - Assert::notEmpty($authnQueryService); - Assert::isArray($this->getAssertionIDRequestService()); - Assert::isArray($this->NameIDFormat); + Assert::notEmpty($this->AuthnQueryService); $e = parent::toXML($parent); - foreach ($this->getAuthnQueryService() as $ep) { + foreach ($this->AuthnQueryService as $ep) { $ep->toXML($e, 'md:AuthnQueryService'); } - foreach ($this->getAssertionIDRequestService() as $ep) { + foreach ($this->AssertionIDRequestService as $ep) { $ep->toXML($e, 'md:AssertionIDRequestService'); } - Utils::addStrings($e, Constants::NS_MD, 'md:NameIDFormat', false, $this->getNameIDFormat()); + Utils::addStrings($e, Constants::NS_MD, 'md:NameIDFormat', false, $this->NameIDFormat); return $e; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/ContactPerson.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/ContactPerson.php index 1c748042b8cce170657e69a120a77b8878299238..2ad70685483d79329b28a4e201ea7fd18ff1d645 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/ContactPerson.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/ContactPerson.php @@ -1,11 +1,14 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\md; +use DOMElement; + use SAML2\Constants; use SAML2\Utils; use SAML2\XML\Chunk; -use Webmozart\Assert\Assert; /** * Class representing SAML 2 ContactPerson. @@ -19,7 +22,7 @@ class ContactPerson * * @var string */ - public $contactType; + private $contactType; /** * Extensions on this element. @@ -28,49 +31,49 @@ class ContactPerson * * @var array */ - public $Extensions = []; + private $Extensions = []; /** * The Company of this contact. * - * @var string + * @var string|null */ - public $Company = null; + private $Company = null; /** * The GivenName of this contact. * - * @var string + * @var string|null */ - public $GivenName = null; + private $GivenName = null; /** * The SurName of this contact. * - * @var string + * @var string|null */ - public $SurName = null; + private $SurName = null; /** * The EmailAddresses of this contact. * * @var array */ - public $EmailAddress = []; + private $EmailAddress = []; /** * The TelephoneNumbers of this contact. * * @var array */ - public $TelephoneNumber = []; + private $TelephoneNumber = []; /** * Extra attributes on the contact element. * * @var array */ - public $ContactPersonAttributes = []; + private $ContactPersonAttributes = []; /** @@ -79,7 +82,7 @@ class ContactPerson * @param \DOMElement|null $xml The XML element we should load. * @throws \Exception */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { if ($xml === null) { return; @@ -115,10 +118,8 @@ public function __construct(\DOMElement $xml = null) * @param string $name The name of the child elements. * @return array The value of the child elements. */ - private static function getStringElements(\DOMElement $parent, $name) + private static function getStringElements(\DOMElement $parent, string $name) : array { - Assert::string($name); - $e = Utils::xpQuery($parent, './saml_metadata:'.$name); $ret = []; @@ -138,10 +139,8 @@ private static function getStringElements(\DOMElement $parent, $name) * @throws \Exception * @return string|null The value of the child element. */ - private static function getStringElement(\DOMElement $parent, $name) + private static function getStringElement(\DOMElement $parent, string $name) : ?string { - Assert::string($name); - $e = self::getStringElements($parent, $name); if (empty($e)) { return null; @@ -156,9 +155,10 @@ private static function getStringElement(\DOMElement $parent, $name) /** * Collect the value of the contactType-property + * * @return string */ - public function getContactType() + public function getContactType() : string { return $this->contactType; } @@ -166,21 +166,22 @@ public function getContactType() /** * Set the value of the contactType-property + * * @param string $contactType * @return void */ - public function setContactType($contactType) + public function setContactType(string $contactType) : void { - Assert::string($contactType); $this->contactType = $contactType; } /** * Collect the value of the Company-property + * * @return string|null */ - public function getCompany() + public function getCompany() : ?string { return $this->Company; } @@ -188,21 +189,22 @@ public function getCompany() /** * Set the value of the Company-property + * * @param string|null $company * @return void */ - public function setCompany($company) + public function setCompany(string $company = null) : void { - Assert::nullOrString($company); $this->Company = $company; } /** * Collect the value of the GivenName-property + * * @return string|null */ - public function getGivenName() + public function getGivenName() : ?string { return $this->GivenName; } @@ -210,21 +212,22 @@ public function getGivenName() /** * Set the value of the GivenName-property + * * @param string|null $givenName * @return void */ - public function setGivenName($givenName) + public function setGivenName(string $givenName = null) : void { - Assert::nullOrString($givenName); $this->GivenName = $givenName; } /** * Collect the value of the SurName-property + * * @return string|null */ - public function getSurName() + public function getSurName() : ?string { return $this->SurName; } @@ -232,21 +235,22 @@ public function getSurName() /** * Set the value of the SurName-property + * * @param string|null $surName * @return void */ - public function setSurName($surName) + public function setSurName(string $surName = null) : void { - Assert::nullOrString($surName); $this->SurName = $surName; } /** * Collect the value of the EmailAddress-property + * * @return string[] */ - public function getEmailAddress() + public function getEmailAddress() : array { return $this->EmailAddress; } @@ -254,31 +258,36 @@ public function getEmailAddress() /** * Set the value of the EmailAddress-property + * * @param string[] $emailAddress * @return void */ - public function setEmailAddress(array $emailAddress) + public function setEmailAddress(array $emailAddress) : void { + $emailAddress = preg_replace('/^mailto:/i', '', $emailAddress); $this->EmailAddress = $emailAddress; } /** * Add the value to the EmailAddress-property + * * @param string $emailAddress * @return void */ - public function addEmailAddress($emailAddress) + public function addEmailAddress($emailAddress) : void { + $emailAddress = preg_replace('/^mailto:/i', '', $emailAddress); $this->EmailAddress[] = $emailAddress; } /** * Collect the value of the TelephoneNumber-property + * * @return string[] */ - public function getTelephoneNumber() + public function getTelephoneNumber() : array { return $this->TelephoneNumber; } @@ -286,10 +295,11 @@ public function getTelephoneNumber() /** * Set the value of the TelephoneNumber-property + * * @param string[] $telephoneNumber * @return void */ - public function setTelephoneNumber(array $telephoneNumber) + public function setTelephoneNumber(array $telephoneNumber) : void { $this->TelephoneNumber = $telephoneNumber; } @@ -297,10 +307,11 @@ public function setTelephoneNumber(array $telephoneNumber) /** * Add the value to the TelephoneNumber-property + * * @param string $telephoneNumber * @return void */ - public function addTelephoneNumber($telephoneNumber) + public function addTelephoneNumber($telephoneNumber) : void { $this->TelephoneNumber[] = $telephoneNumber; } @@ -308,9 +319,10 @@ public function addTelephoneNumber($telephoneNumber) /** * Collect the value of the Extensions-property + * * @return \SAML2\XML\Chunk[] */ - public function getExtensions() + public function getExtensions() : array { return $this->Extensions; } @@ -318,10 +330,11 @@ public function getExtensions() /** * Set the value of the Extensions-property + * * @param array $extensions * @return void */ - public function setExtensions(array $extensions) + public function setExtensions(array $extensions) : void { $this->Extensions = $extensions; } @@ -333,7 +346,7 @@ public function setExtensions(array $extensions) * @param \SAML2\XML\Chunk $extensions The Extensions * @return void */ - public function addExtension(Chunk $extension) + public function addExtension(Chunk $extension) : void { $this->Extensions[] = $extension; } @@ -341,9 +354,10 @@ public function addExtension(Chunk $extension) /** * Collect the value of the ContactPersonAttributes-property + * * @return string[] */ - public function getContactPersonAttributes() + public function getContactPersonAttributes() : array { return $this->ContactPersonAttributes; } @@ -351,10 +365,11 @@ public function getContactPersonAttributes() /** * Set the value of the ContactPersonAttributes-property + * * @param string[] $contactPersonAttributes * @return void */ - public function setContactPersonAttributes(array $contactPersonAttributes) + public function setContactPersonAttributes(array $contactPersonAttributes) : void { $this->ContactPersonAttributes = $contactPersonAttributes; } @@ -362,14 +377,13 @@ public function setContactPersonAttributes(array $contactPersonAttributes) /** * Add the key/value of the ContactPersonAttributes-property + * * @param string $attr * @param string $value * @return void */ - public function addContactPersonAttributes($attr, $value) + public function addContactPersonAttributes(string $attr, string $value) : void { - Assert::string($attr); - Assert::string($value); $this->ContactPersonAttributes[$attr] = $value; } @@ -380,17 +394,8 @@ public function addContactPersonAttributes($attr, $value) * @param \DOMElement $parent The element we should add this contact to. * @return \DOMElement The new ContactPerson-element. */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::string($this->getContactType()); - Assert::isArray($this->getExtensions()); - Assert::nullOrString($this->getCompany()); - Assert::nullOrString($this->getGivenName()); - Assert::nullOrString($this->getSurName()); - Assert::isArray($this->getEmailAddress()); - Assert::isArray($this->getTelephoneNumber()); - Assert::isArray($this->getContactPersonAttributes()); - $doc = $parent->ownerDocument; $e = $doc->createElementNS(Constants::NS_MD, 'md:ContactPerson'); @@ -404,19 +409,22 @@ public function toXML(\DOMElement $parent) Extensions::addList($e, $this->getExtensions()); - if ($this->getCompany() !== null) { - Utils::addString($e, Constants::NS_MD, 'md:Company', $this->getCompany()); + if ($this->Company !== null) { + Utils::addString($e, Constants::NS_MD, 'md:Company', $this->Company); } - if ($this->getGivenName() !== null) { - Utils::addString($e, Constants::NS_MD, 'md:GivenName', $this->getGivenName()); + if ($this->GivenName !== null) { + Utils::addString($e, Constants::NS_MD, 'md:GivenName', $this->GivenName); } - if ($this->getSurName() !== null) { - Utils::addString($e, Constants::NS_MD, 'md:SurName', $this->getSurName()); + if ($this->SurName !== null) { + Utils::addString($e, Constants::NS_MD, 'md:SurName', $this->SurName); } - if ($this->getEmailAddress() !== null) { - Utils::addStrings($e, Constants::NS_MD, 'md:EmailAddress', false, $this->getEmailAddress()); + if (!empty($this->getEmailAddress())) { + /** @var array $addresses */ + $addresses = preg_filter('/^/', 'mailto:', $this->EmailAddress); + + Utils::addStrings($e, Constants::NS_MD, 'md:EmailAddress', false, $addresses); } - if ($this->getTelephoneNumber() !== null) { + if (!empty($this->getTelephoneNumber())) { Utils::addStrings($e, Constants::NS_MD, 'md:TelephoneNumber', false, $this->getTelephoneNumber()); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/EndpointType.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/EndpointType.php index 2985b734435878f78909a008009a6fdd8351a699..7b0832d2aa45799777c38aa5fa95e2a01c875c83 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/EndpointType.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/EndpointType.php @@ -1,9 +1,12 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\md; +use DOMElement; + use SAML2\Constants; -use Webmozart\Assert\Assert; /** * Class representing SAML 2 EndpointType. @@ -15,23 +18,23 @@ class EndpointType /** * The binding for this endpoint. * - * @var string + * @var string|null */ - public $Binding; + private $Binding = null; /** * The URI to this endpoint. * - * @var string + * @var string|null */ - public $Location; + private $Location = null; /** * The URI where responses can be delivered. * * @var string|null */ - public $ResponseLocation = null; + private $ResponseLocation = null; /** * Extra (namespace qualified) attributes. @@ -47,7 +50,7 @@ class EndpointType * @param \DOMElement|null $xml The XML element we should load. * @throws \Exception */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { if ($xml === null) { return; @@ -56,15 +59,15 @@ public function __construct(\DOMElement $xml = null) if (!$xml->hasAttribute('Binding')) { throw new \Exception('Missing Binding on '.$xml->tagName); } - $this->setBinding($xml->getAttribute('Binding')); + $this->Binding = $xml->getAttribute('Binding'); if (!$xml->hasAttribute('Location')) { throw new \Exception('Missing Location on '.$xml->tagName); } - $this->setLocation($xml->getAttribute('Location')); + $this->Location = $xml->getAttribute('Location'); if ($xml->hasAttribute('ResponseLocation')) { - $this->setResponseLocation($xml->getAttribute('ResponseLocation')); + $this->ResponseLocation = $xml->getAttribute('ResponseLocation'); } foreach ($xml->attributes as $a) { @@ -84,15 +87,12 @@ public function __construct(\DOMElement $xml = null) /** * Check if a namespace-qualified attribute exists. * - * @param string $namespaceURI The namespace URI. - * @param string $localName The local name. - * @return boolean true if the attribute exists, false if not. + * @param string $namespaceURI The namespace URI. + * @param string $localName The local name. + * @return bool true if the attribute exists, false if not. */ - public function hasAttributeNS($namespaceURI, $localName) + public function hasAttributeNS(string $namespaceURI, string $localName) : bool { - Assert::string($namespaceURI); - Assert::string($localName); - $fullName = '{'.$namespaceURI.'}'.$localName; return isset($this->attributes[$fullName]); @@ -102,15 +102,12 @@ public function hasAttributeNS($namespaceURI, $localName) /** * Get a namespace-qualified attribute. * - * @param string $namespaceURI The namespace URI. - * @param string $localName The local name. + * @param string $namespaceURI The namespace URI. + * @param string $localName The local name. * @return string The value of the attribute, or an empty string if the attribute does not exist. */ - public function getAttributeNS($namespaceURI, $localName) + public function getAttributeNS(string $namespaceURI, string $localName) : string { - Assert::string($namespaceURI); - Assert::string($localName); - $fullName = '{'.$namespaceURI.'}'.$localName; if (!isset($this->attributes[$fullName])) { return ''; @@ -125,15 +122,12 @@ public function getAttributeNS($namespaceURI, $localName) * * @param string $namespaceURI The namespace URI. * @param string $qualifiedName The local name. - * @param string $value The attribute value. + * @param string $value The attribute value. * @throws \Exception * @return void */ - public function setAttributeNS($namespaceURI, $qualifiedName, $value) + public function setAttributeNS(string $namespaceURI, string $qualifiedName, string $value) : void { - Assert::string($namespaceURI); - Assert::string($qualifiedName); - $name = explode(':', $qualifiedName, 2); if (count($name) < 2) { throw new \Exception('Not a qualified name.'); @@ -153,81 +147,80 @@ public function setAttributeNS($namespaceURI, $qualifiedName, $value) * Remove a namespace-qualified attribute. * * @param string $namespaceURI The namespace URI. - * @param string $localName The local name. + * @param string $localName The local name. * @return void */ - public function removeAttributeNS($namespaceURI, $localName) + public function removeAttributeNS(string $namespaceURI, string $localName) : void { - Assert::string($namespaceURI); - assert::string($localName); - $fullName = '{'.$namespaceURI.'}'.$localName; unset($this->attributes[$fullName]); } /** - * Collect the value of the Binding-property - * @return string + * Collect the value of the Binding property. + * + * @return string|null */ - public function getBinding() + public function getBinding() : ?string { return $this->Binding; } /** - * Set the value of the Binding-property + * Set the value of the Binding property. + * * @param string $binding * @return void */ - public function setBinding($binding) + public function setBinding(string $binding) : void { - Assert::string($binding); $this->Binding = $binding; } /** - * Collect the value of the Location-property + * Collect the value of the Location property. + * * @return string|null */ - public function getLocation() + public function getLocation() : ?string { return $this->Location; } /** - * Set the value of the Location-property + * Set the value of the Location-property. * @param string|null $location * @return void */ - public function setLocation($location) + public function setLocation(string $location = null) : void { - Assert::nullOrString($location); $this->Location = $location; } /** - * Collect the value of the ResponseLocation-property + * Collect the value of the ResponseLocation property. + * * @return string|null */ - public function getResponseLocation() + public function getResponseLocation() : ?string { return $this->ResponseLocation; } /** - * Set the value of the ResponseLocation-property + * Set the value of the ResponseLocation property. + * * @param string|null $responseLocation * @return void */ - public function setResponseLocation($responseLocation) + public function setResponseLocation(string $responseLocation = null) : void { - Assert::nullOrString($responseLocation); $this->ResponseLocation = $responseLocation; } @@ -236,24 +229,26 @@ public function setResponseLocation($responseLocation) * Add this endpoint to an XML element. * * @param \DOMElement $parent The element we should append this endpoint to. - * @param string $name The name of the element we should create. + * @param string $name The name of the element we should create. * @return \DOMElement */ - public function toXML(\DOMElement $parent, $name) + public function toXML(DOMElement $parent, string $name) : DOMElement { - Assert::string($name); - Assert::string($this->getBinding()); - Assert::string($this->getLocation()); - Assert::nullOrString($this->getResponseLocation()); - $e = $parent->ownerDocument->createElementNS(Constants::NS_MD, $name); $parent->appendChild($e); - $e->setAttribute('Binding', $this->getBinding()); - $e->setAttribute('Location', $this->getLocation()); + if (empty($this->Binding)) { + throw new \Exception('Cannot convert endpoint to XML without a Binding set.'); + } + if (empty($this->Location)) { + throw new \Exception('Cannot convert endpoint to XML without a Location set.'); + } + + $e->setAttribute('Binding', $this->Binding); + $e->setAttribute('Location', $this->Location); - if ($this->getResponseLocation() !== null) { - $e->setAttribute('ResponseLocation', $this->getResponseLocation()); + if ($this->ResponseLocation !== null) { + $e->setAttribute('ResponseLocation', $this->ResponseLocation); } foreach ($this->attributes as $a) { diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/EntitiesDescriptor.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/EntitiesDescriptor.php index 139b11c280650c0996598c17f6cf60f82a155ea8..a1b1cce2532c62c25f66d9f2953585cf2b32ed30 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/EntitiesDescriptor.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/EntitiesDescriptor.php @@ -1,13 +1,17 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\md; +use DOMElement; +use Webmozart\Assert\Assert; + use SAML2\Constants; use SAML2\DOMDocumentFactory; use SAML2\SignedElementHelper; use SAML2\Utils; use SAML2\XML\Chunk; -use Webmozart\Assert\Assert; /** * Class representing SAML 2 EntitiesDescriptor element. @@ -21,28 +25,14 @@ class EntitiesDescriptor extends SignedElementHelper * * @var string|null */ - public $ID; - - /** - * How long this element is valid, as a unix timestamp. - * - * @var int|null - */ - public $validUntil; - - /** - * The length of time this element can be cached, as string. - * - * @var string|null - */ - public $cacheDuration; + private $ID = null; /** * The name of this entity collection. * * @var string|null */ - public $Name; + private $Name = null; /** * Extensions on this element. @@ -51,14 +41,14 @@ class EntitiesDescriptor extends SignedElementHelper * * @var array */ - public $Extensions = []; + private $Extensions = []; /** * Child EntityDescriptor and EntitiesDescriptor elements. * * @var (\SAML2\XML\md\EntityDescriptor|\SAML2\XML\md\EntitiesDescriptor)[] */ - public $children = []; + private $children = []; /** @@ -66,7 +56,7 @@ class EntitiesDescriptor extends SignedElementHelper * * @param \DOMElement|null $xml The XML element we should load. */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { parent::__construct($xml); @@ -75,20 +65,21 @@ public function __construct(\DOMElement $xml = null) } if ($xml->hasAttribute('ID')) { - $this->setID($xml->getAttribute('ID')); + $this->ID = $xml->getAttribute('ID'); } if ($xml->hasAttribute('validUntil')) { - $this->setValidUntil(Utils::xsDateTimeToTimestamp($xml->getAttribute('validUntil'))); + $this->validUntil = Utils::xsDateTimeToTimestamp($xml->getAttribute('validUntil')); } if ($xml->hasAttribute('cacheDuration')) { - $this->setCacheDuration($xml->getAttribute('cacheDuration')); + $this->cacheDuration = $xml->getAttribute('cacheDuration'); } if ($xml->hasAttribute('Name')) { - $this->setName($xml->getAttribute('Name')); + $this->Name = $xml->getAttribute('Name'); } - $this->setExtensions(Extensions::getList($xml)); + $this->Extensions = Extensions::getList($xml); + /** @var \DOMElement $node */ foreach (Utils::xpQuery($xml, './saml_metadata:EntityDescriptor|./saml_metadata:EntitiesDescriptor') as $node) { if ($node->localName === 'EntityDescriptor') { $this->children[] = new EntityDescriptor($node); @@ -100,45 +91,47 @@ public function __construct(\DOMElement $xml = null) /** - * Collect the value of the Name-property + * Collect the value of the Name property. + * * @return string|null */ - public function getName() + public function getName() : ?string { return $this->Name; } /** - * Set the value of the Name-property + * Set the value of the Name property. + * * @param string|null $name * @return void */ - public function setName($name = null) + public function setName(string $name = null) : void { - Assert::nullOrString($name); $this->Name = $name; } /** - * Collect the value of the ID-property + * Collect the value of the ID property. + * * @return string|null */ - public function getID() + public function getID() : ?string { return $this->ID; } /** - * Set the value of the ID-property + * Set the value of the ID property. + * * @param string|null $Id * @return void */ - public function setID($Id = null) + public function setID(string $Id = null) : void { - Assert::nullOrString($Id); $this->ID = $Id; } @@ -147,7 +140,7 @@ public function setID($Id = null) * Collect the value of the validUntil-property * @return int|null */ - public function getValidUntil() + public function getValidUntil() : ?int { return $this->validUntil; } @@ -158,9 +151,8 @@ public function getValidUntil() * @param int|null $validUntil * @return void */ - public function setValidUntil($validUntil = null) + public function setValidUntil(int $validUntil = null) : void { - Assert::nullOrInteger($validUntil); $this->validUntil = $validUntil; } @@ -169,7 +161,7 @@ public function setValidUntil($validUntil = null) * Collect the value of the cacheDuration-property * @return string|null */ - public function getCacheDuration() + public function getCacheDuration() : ?string { return $this->cacheDuration; } @@ -180,29 +172,30 @@ public function getCacheDuration() * @param string|null $cacheDuration * @return void */ - public function setCacheDuration($cacheDuration = null) + public function setCacheDuration(string $cacheDuration = null) : void { - Assert::nullOrString($cacheDuration); $this->cacheDuration = $cacheDuration; } /** - * Collect the value of the Extensions-property + * Collect the value of the Extensions property. + * * @return \SAML2\XML\Chunk[] */ - public function getExtensions() + public function getExtensions() : array { return $this->Extensions; } /** - * Set the value of the Extensions-property + * Set the value of the Extensions property. + * * @param array $extensions * @return void */ - public function setExtensions(array $extensions) + public function setExtensions(array $extensions) : void { $this->Extensions = $extensions; } @@ -214,39 +207,42 @@ public function setExtensions(array $extensions) * @param \SAML2\XML\Chunk $extensions The Extensions * @return void */ - public function addExtension(Extensions $extension) + public function addExtension(Extensions $extension) : void { $this->Extensions[] = $extension; } /** - * Collect the value of the children-property + * Collect the value of the children property. + * * @return (\SAML2\XML\md\EntityDescriptor|\SAML2\XML\md\EntitiesDescriptor)[] */ - public function getChildren() + public function getChildren() : array { return $this->children; } /** - * Set the value of the childen-property + * Set the value of the childen property. + * * @param array $children * @return void */ - public function setChildren(array $children) + public function setChildren(array $children) : void { $this->children = $children; } /** - * Add the value to the children-property + * Add the value to the children property. + * * @param \SAML2\XML\md\EntityDescriptor|\SAML2\XML\md\EntitiesDescriptor $child * @return void */ - public function addChildren($child) + public function addChildren($child) : void { Assert::isInstanceOfAny($child, [EntityDescriptor::class, EntitiesDescriptor::class]); $this->children[] = $child; @@ -259,15 +255,8 @@ public function addChildren($child) * @param \DOMElement|null $parent The EntitiesDescriptor we should append this EntitiesDescriptor to. * @return \DOMElement */ - public function toXML(\DOMElement $parent = null) + public function toXML(DOMElement $parent = null) : DOMElement { - Assert::nullOrString($this->getID()); - Assert::nullOrInteger($this->getValidUntil()); - Assert::nullOrString($this->getCacheDuration()); - Assert::nullOrString($this->getName()); - Assert::isArray($this->getExtensions()); - Assert::isArray($this->getChildren()); - if ($parent === null) { $doc = DOMDocumentFactory::create(); $e = $doc->createElementNS(Constants::NS_MD, 'md:EntitiesDescriptor'); @@ -277,26 +266,26 @@ public function toXML(\DOMElement $parent = null) $parent->appendChild($e); } - if ($this->getID() !== null) { - $e->setAttribute('ID', $this->getID()); + if ($this->ID !== null) { + $e->setAttribute('ID', $this->ID); } - if ($this->getValidUntil() !== null) { - $e->setAttribute('validUntil', gmdate('Y-m-d\TH:i:s\Z', $this->getValidUntil())); + if ($this->validUntil !== null) { + $e->setAttribute('validUntil', gmdate('Y-m-d\TH:i:s\Z', $this->validUntil)); } - if ($this->getCacheDuration() !== null) { - $e->setAttribute('cacheDuration', $this->getCacheDuration()); + if ($this->cacheDuration !== null) { + $e->setAttribute('cacheDuration', $this->cacheDuration); } - if ($this->getName() !== null) { - $e->setAttribute('Name', $this->getName()); + if ($this->Name !== null) { + $e->setAttribute('Name', $this->Name); } - Extensions::addList($e, $this->getExtensions()); + Extensions::addList($e, $this->Extensions); /** @var \SAML2\XML\md\EntityDescriptor|\SAML2\XML\md\EntitiesDescriptor $node */ - foreach ($this->getChildren() as $node) { + foreach ($this->children as $node) { $node->toXML($e); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/EntityDescriptor.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/EntityDescriptor.php index 094dc21593b7359e394641b9d78554ae60446d6c..7ed69997d36fad229641fa7c1dedfd326d1b75ef 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/EntityDescriptor.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/EntityDescriptor.php @@ -1,15 +1,16 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\md; +use DOMElement; + use SAML2\Constants; use SAML2\DOMDocumentFactory; use SAML2\SignedElementHelper; use SAML2\Utils; use SAML2\XML\Chunk; -use SAML2\XML\md\AffiliationDescriptor; -use SAML2\XML\md\Organization; -use Webmozart\Assert\Assert; /** * Class representing SAML 2 EntityDescriptor element. @@ -23,28 +24,14 @@ class EntityDescriptor extends SignedElementHelper * * @var string */ - public $entityID; + private $entityID; /** * The ID of this element. * * @var string|null */ - public $ID; - - /** - * How long this element is valid, as a unix timestamp. - * - * @var int|null - */ - public $validUntil; - - /** - * The length of time this element can be cached, as string. - * - * @var string|null - */ - public $cacheDuration; + private $ID = null; /** * Extensions on this element. @@ -53,44 +40,44 @@ class EntityDescriptor extends SignedElementHelper * * @var array */ - public $Extensions = []; + private $Extensions = []; /** * Array with all roles for this entity. * * Array of \SAML2\XML\md\RoleDescriptor objects (and subclasses of RoleDescriptor). * - * @var (\SAML2\XML\md\UnknownRoleDescriptor|\SAML2\XML\md\IDPSSODescriptor|\SAML2\XML\md\SPSSODescriptor|\SAML2\XML\md\AuthnAuthorityDescriptor|\SAML2\XML\md\AttributeAuthorityDescriptor|\SAML2\XML\md\PDPDescriptor)[] + * @var \SAML2\XML\md\RoleDescriptor[] */ - public $RoleDescriptor = []; + private $RoleDescriptor = []; /** * AffiliationDescriptor of this entity. * * @var \SAML2\XML\md\AffiliationDescriptor|null */ - public $AffiliationDescriptor = null; + private $AffiliationDescriptor = null; /** * Organization of this entity. * * @var \SAML2\XML\md\Organization|null */ - public $Organization = null; + private $Organization = null; /** * ContactPerson elements for this entity. * * @var \SAML2\XML\md\ContactPerson[] */ - public $ContactPerson = []; + private $ContactPerson = []; /** * AdditionalMetadataLocation elements for this entity. * * @var \SAML2\XML\md\AdditionalMetadataLocation[] */ - public $AdditionalMetadataLocation = []; + private $AdditionalMetadataLocation = []; /** @@ -99,7 +86,7 @@ class EntityDescriptor extends SignedElementHelper * @param \DOMElement|null $xml The XML element we should load. * @throws \Exception */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { parent::__construct($xml); @@ -110,22 +97,22 @@ public function __construct(\DOMElement $xml = null) if (!$xml->hasAttribute('entityID')) { throw new \Exception('Missing required attribute entityID on EntityDescriptor.'); } - $this->setEntityID($xml->getAttribute('entityID')); + $this->entityID = $xml->getAttribute('entityID'); if ($xml->hasAttribute('ID')) { - $this->setID($xml->getAttribute('ID')); + $this->ID = $xml->getAttribute('ID'); } if ($xml->hasAttribute('validUntil')) { - $this->setValidUntil(Utils::xsDateTimeToTimestamp($xml->getAttribute('validUntil'))); + $this->validUntil = Utils::xsDateTimeToTimestamp($xml->getAttribute('validUntil')); } if ($xml->hasAttribute('cacheDuration')) { - $this->setCacheDuration($xml->getAttribute('cacheDuration')); + $this->cacheDuration = $xml->getAttribute('cacheDuration'); } - $this->setExtensions(Extensions::getList($xml)); + $this->Extensions = Extensions::getList($xml); - for ($node = $xml->firstChild; $node !== null; $node = $node->nextSibling) { - if (!($node instanceof \DOMElement)) { + foreach ($xml->childNodes as $node) { + if (!($node instanceof DOMElement)) { continue; } @@ -135,62 +122,62 @@ public function __construct(\DOMElement $xml = null) switch ($node->localName) { case 'RoleDescriptor': - $this->addRoleDescriptor(new UnknownRoleDescriptor($node)); + $this->RoleDescriptor[] = new UnknownRoleDescriptor($node); break; case 'IDPSSODescriptor': - $this->addRoleDescriptor(new IDPSSODescriptor($node)); + $this->RoleDescriptor[] = new IDPSSODescriptor($node); break; case 'SPSSODescriptor': - $this->addRoleDescriptor(new SPSSODescriptor($node)); + $this->RoleDescriptor[] = new SPSSODescriptor($node); break; case 'AuthnAuthorityDescriptor': - $this->addRoleDescriptor(new AuthnAuthorityDescriptor($node)); + $this->RoleDescriptor[] = new AuthnAuthorityDescriptor($node); break; case 'AttributeAuthorityDescriptor': - $this->addRoleDescriptor(new AttributeAuthorityDescriptor($node)); + $this->RoleDescriptor[] = new AttributeAuthorityDescriptor($node); break; case 'PDPDescriptor': - $this->addRoleDescriptor(new PDPDescriptor($node)); + $this->RoleDescriptor[] = new PDPDescriptor($node); + break; + case 'AffiliationDescriptor': + if ($this->AffiliationDescriptor !== null) { + throw new \Exception('More than one AffiliationDescriptor in the entity.'); + } + $this->AffiliationDescriptor = new AffiliationDescriptor($node); + break; + case 'Organization': + if ($this->Organization !== null) { + throw new \Exception('More than one Organization in the entity.'); + } + $this->Organization = new Organization($node); + break; + case 'ContactPerson': + $this->ContactPerson[] = new ContactPerson($node); + break; + case 'AdditionalMetadataLocation': + $this->AdditionalMetadataLocation[] = new AdditionalMetadataLocation($node); break; } } - $affiliationDescriptor = Utils::xpQuery($xml, './saml_metadata:AffiliationDescriptor'); - if (count($affiliationDescriptor) > 1) { - throw new \Exception('More than one AffiliationDescriptor in the entity.'); - } elseif (!empty($affiliationDescriptor)) { - $this->setAffiliationDescriptor(new AffiliationDescriptor($affiliationDescriptor[0])); - } - - $roleDescriptor = $this->getRoleDescriptor(); - if (empty($roleDescriptor) && is_null($this->getAffiliationDescriptor())) { - throw new \Exception('Must have either one of the RoleDescriptors or an AffiliationDescriptor in EntityDescriptor.'); - } elseif (!empty($roleDescriptor) && !is_null($this->getAffiliationDescriptor())) { - throw new \Exception('AffiliationDescriptor cannot be combined with other RoleDescriptor elements in EntityDescriptor.'); - } - - $organization = Utils::xpQuery($xml, './saml_metadata:Organization'); - if (count($organization) > 1) { - throw new \Exception('More than one Organization in the entity.'); - } elseif (!empty($organization)) { - $this->setOrganization(new Organization($organization[0])); - } - - foreach (Utils::xpQuery($xml, './saml_metadata:ContactPerson') as $cp) { - $this->addContactPerson(new ContactPerson($cp)); - } - - foreach (Utils::xpQuery($xml, './saml_metadata:AdditionalMetadataLocation') as $aml) { - $this->addAdditionalMetadataLocation(new AdditionalMetadataLocation($aml)); + if (empty($this->RoleDescriptor) && is_null($this->AffiliationDescriptor)) { + throw new \Exception( + 'Must have either one of the RoleDescriptors or an AffiliationDescriptor in EntityDescriptor.' + ); + } elseif (!empty($this->RoleDescriptor) && !is_null($this->AffiliationDescriptor)) { + throw new \Exception( + 'AffiliationDescriptor cannot be combined with other RoleDescriptor elements in EntityDescriptor.' + ); } } /** - * Collect the value of the entityID-property + * Collect the value of the entityID property. + * * @return string */ - public function getEntityID() + public function getEntityID() : string { return $this->entityID; } @@ -198,34 +185,34 @@ public function getEntityID() /** * Set the value of the entityID-property - * @param string|null $entityId + * @param string $entityId * @return void */ - public function setEntityID($entityId) + public function setEntityID(string $entityId) : void { - Assert::nullOrString($entityId); $this->entityID = $entityId; } /** - * Collect the value of the ID-property + * Collect the value of the ID property. + * * @return string|null */ - public function getID() + public function getID() : ?string { return $this->ID; } /** - * Set the value of the ID-property + * Set the value of the ID property. + * * @param string|null $Id * @return void */ - public function setID($Id = null) + public function setID(string $Id = null) : void { - Assert::nullOrString($Id); $this->ID = $Id; } @@ -234,7 +221,7 @@ public function setID($Id = null) * Collect the value of the validUntil-property * @return int|null */ - public function getValidUntil() + public function getValidUntil() : ?int { return $this->validUntil; } @@ -245,9 +232,8 @@ public function getValidUntil() * @param int|null $validUntil * @return void */ - public function setValidUntil($validUntil = null) + public function setValidUntil(int $validUntil = null) : void { - Assert::nullOrInteger($validUntil); $this->validUntil = $validUntil; } @@ -256,7 +242,7 @@ public function setValidUntil($validUntil = null) * Collect the value of the cacheDuration-property * @return string|null */ - public function getCacheDuration() + public function getCacheDuration() : ?string { return $this->cacheDuration; } @@ -267,29 +253,30 @@ public function getCacheDuration() * @param string|null $cacheDuration * @return void */ - public function setCacheDuration($cacheDuration = null) + public function setCacheDuration(string $cacheDuration = null) : void { - Assert::nullOrString($cacheDuration); $this->cacheDuration = $cacheDuration; } /** - * Collect the value of the Extensions-property + * Collect the value of the Extensions property. + * * @return \SAML2\XML\Chunk[] */ - public function getExtensions() + public function getExtensions() : array { return $this->Extensions; } /** - * Set the value of the Extensions-property + * Set the value of the Extensions property. + * * @param array $extensions * @return void */ - public function setExtensions(array $extensions) + public function setExtensions(array $extensions) : void { $this->Extensions = $extensions; } @@ -301,145 +288,158 @@ public function setExtensions(array $extensions) * @param \SAML2\XML\Chunk $extensions The Extensions * @return void */ - public function addExtension(Extensions $extension) + public function addExtension(Extensions $extension) : void { $this->Extensions[] = $extension; } /** - * Collect the value of the RoleDescriptor-property + * Collect the value of the RoleDescriptor property. + * * @return \SAML2\XML\md\RoleDescriptor[] */ - public function getRoleDescriptor() + public function getRoleDescriptor() : array { return $this->RoleDescriptor; } /** - * Set the value of the RoleDescriptor-property - * @param array $roleDescriptor + * Set the value of the RoleDescriptor property. + * + * @param \SAML2\XML\md\RoleDescriptor[] $roleDescriptor * @return void */ - public function setRoleDescriptor(array $roleDescriptor) + public function setRoleDescriptor(array $roleDescriptor) : void { $this->RoleDescriptor = $roleDescriptor; } /** - * Add the value to the RoleDescriptor-property + * Add the value to the RoleDescriptor property. + * * @param \SAML2\XML\md\RoleDescriptor $roleDescriptor * @return void */ - public function addRoleDescriptor(RoleDescriptor $roleDescriptor) + public function addRoleDescriptor(RoleDescriptor $roleDescriptor) : void { $this->RoleDescriptor[] = $roleDescriptor; } /** - * Collect the value of the AffiliationDescriptor-property + * Collect the value of the AffiliationDescriptor property. + * * @return \SAML2\XML\md\AffiliationDescriptor|null */ - public function getAffiliationDescriptor() + public function getAffiliationDescriptor() : ?AffiliationDescriptor { return $this->AffiliationDescriptor; } /** - * Set the value of the AffliationDescriptor-property + * Set the value of the AffliationDescriptor property. + * * @param \SAML2\XML\md\AffiliationDescriptor|null $affiliationDescriptor * @return void */ - public function setAffiliationDescriptor(AffiliationDescriptor $affiliationDescriptor = null) + public function setAffiliationDescriptor(AffiliationDescriptor $affiliationDescriptor = null) : void { $this->AffiliationDescriptor = $affiliationDescriptor; } /** - * Collect the value of the Organization-property + * Collect the value of the Organization property. + * * @return \SAML2\XML\md\Organization|null */ - public function getOrganization() + public function getOrganization() : ?Organization { return $this->Organization; } /** - * Set the value of the Organization-property + * Set the value of the Organization property. + * * @param \SAML2\XML\md\Organization|null $organization * @return void */ - public function setOrganization(Organization $organization = null) + public function setOrganization(Organization $organization = null) : void { $this->Organization = $organization; } /** - * Collect the value of the ContactPerson-property + * Collect the value of the ContactPerson property. + * * @return \SAML2\XML\md\ContactPerson[] */ - public function getContactPerson() + public function getContactPerson() : array { return $this->ContactPerson; } /** - * Set the value of the ContactPerson-property + * Set the value of the ContactPerson property. + * * @param array $contactPerson * @return void */ - public function setContactPerson(array $contactPerson) + public function setContactPerson(array $contactPerson) : void { $this->ContactPerson = $contactPerson; } /** - * Add the value to the ContactPerson-property + * Add the value to the ContactPerson property. + * * @param \SAML2\XML\md\ContactPerson $contactPerson * @return void */ - public function addContactPerson(ContactPerson $contactPerson) + public function addContactPerson(ContactPerson $contactPerson) : void { $this->ContactPerson[] = $contactPerson; } /** - * Collect the value of the AdditionalMetadataLocation-property + * Collect the value of the AdditionalMetadataLocation property. + * * @return \SAML2\XML\md\AdditionalMetadataLocation[] */ - public function getAdditionalMetadataLocation() + public function getAdditionalMetadataLocation() : array { return $this->AdditionalMetadataLocation; } /** - * Set the value of the AdditionalMetadataLocation-property + * Set the value of the AdditionalMetadataLocation property. + * * @param array $additionalMetadataLocation * @return void */ - public function setAdditionalMetadataLocation(array $additionalMetadataLocation) + public function setAdditionalMetadataLocation(array $additionalMetadataLocation) : void { $this->AdditionalMetadataLocation = $additionalMetadataLocation; } /** - * Add the value to the AdditionalMetadataLocation-property + * Add the value to the AdditionalMetadataLocation property. + * * @param AdditionalMetadataLocation $additionalMetadataLocation * @return void */ - public function addAdditionalMetadataLocation(AdditionalMetadataLocation $additionalMetadataLocation) + public function addAdditionalMetadataLocation(AdditionalMetadataLocation $additionalMetadataLocation) : void { $this->AdditionalMetadataLocation[] = $additionalMetadataLocation; } @@ -451,18 +451,11 @@ public function addAdditionalMetadataLocation(AdditionalMetadataLocation $additi * @param \DOMElement|null $parent The EntitiesDescriptor we should append this EntityDescriptor to. * @return \DOMElement */ - public function toXML(\DOMElement $parent = null) + public function toXML(DOMElement $parent = null) : DOMElement { - Assert::string($this->getEntityID()); - Assert::nullOrString($this->getID()); - Assert::nullOrInteger($this->getValidUntil()); - Assert::nullOrString($this->getCacheDuration()); - Assert::isArray($this->getExtensions()); - Assert::isArray($this->getRoleDescriptor()); - Assert::nullOrIsInstanceOf($this->getAffiliationDescriptor(), AffiliationDescriptor::class); - Assert::nullOrIsInstanceOf($this->getOrganization(), Organization::class); - Assert::isArray($this->getContactPerson()); - Assert::isArray($this->getAdditionalMetadataLocation()); + if (empty($this->entityID)) { + throw new \Exception('Cannot convert EntityDescriptor to XML without an EntityID set.'); + } if ($parent === null) { $doc = DOMDocumentFactory::create(); @@ -473,44 +466,45 @@ public function toXML(\DOMElement $parent = null) $parent->appendChild($e); } - $e->setAttribute('entityID', $this->getEntityID()); + $e->setAttribute('entityID', $this->entityID); - if ($this->getID() !== null) { - $e->setAttribute('ID', $this->getID()); + if ($this->ID !== null) { + $e->setAttribute('ID', $this->ID); } - if ($this->getValidUntil() !== null) { - $e->setAttribute('validUntil', gmdate('Y-m-d\TH:i:s\Z', $this->getValidUntil())); + if ($this->validUntil !== null) { + $e->setAttribute('validUntil', gmdate('Y-m-d\TH:i:s\Z', $this->validUntil)); } - if ($this->getCacheDuration() !== null) { - $e->setAttribute('cacheDuration', $this->getCacheDuration()); + if ($this->cacheDuration !== null) { + $e->setAttribute('cacheDuration', $this->cacheDuration); } - Extensions::addList($e, $this->getExtensions()); + Extensions::addList($e, $this->Extensions); - /** @var \SAML2\XML\md\UnknownRoleDescriptor|\SAML2\XML\md\IDPSSODescriptor|\SAML2\XML\md\SPSSODescriptor|\SAML2\XML\md\AuthnAuthorityDescriptor|\SAML2\XML\md\AttributeAuthorityDescriptor|\SAML2\XML\md\PDPDescriptor $n */ - foreach ($this->getRoleDescriptor() as $n) { + foreach ($this->RoleDescriptor as $n) { $n->toXML($e); } - if ($this->getAffiliationDescriptor() !== null) { - $this->getAffiliationDescriptor()->toXML($e); + if ($this->AffiliationDescriptor !== null) { + $this->AffiliationDescriptor->toXML($e); } - if ($this->getOrganization() !== null) { - $this->getOrganization()->toXML($e); + if ($this->Organization !== null) { + $this->Organization->toXML($e); } - foreach ($this->getContactPerson() as $cp) { + foreach ($this->ContactPerson as $cp) { $cp->toXML($e); } - foreach ($this->getAdditionalMetadataLocation() as $n) { + foreach ($this->AdditionalMetadataLocation as $n) { $n->toXML($e); } - $this->signElement($e, $e->firstChild); + /** @var \DOMElement $child */ + $child = $e->firstChild; + $this->signElement($e, $child); return $e; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/Extensions.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/Extensions.php index 2faab4828b4efa2a62b26022c76eabd829053ad6..fda7a4a3c15963a07e2627613e33e75a128ddd99 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/Extensions.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/Extensions.php @@ -1,19 +1,28 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\md; +use DOMElement; + use SAML2\Constants; use SAML2\Utils; use SAML2\XML\alg\Common as ALG; +use SAML2\XML\alg\DigestMethod; +use SAML2\XML\alg\SigningMethod; use SAML2\XML\Chunk; use SAML2\XML\mdattr\EntityAttributes; use SAML2\XML\mdrpi\Common as MDRPI; +use SAML2\XML\mdrpi\PublicationInfo; +use SAML2\XML\mdrpi\RegistrationInfo; use SAML2\XML\mdui\Common as MDUI; +use SAML2\XML\mdui\DiscoHints; +use SAML2\XML\mdui\UIInfo; use SAML2\XML\shibmd\Scope; /** * Class for handling SAML2 metadata extensions. - * * @package SimpleSAMLphp */ class Extensions @@ -21,35 +30,44 @@ class Extensions /** * Get a list of Extensions in the given element. * - * @param \DOMElement $parent The element that may contain the md:Extensions element. - * @return \SAML2\XML\Chunk[] Array of extensions. + * @param \DOMElement $parent The element that may contain the md:Extensions element. + * @return (\SAML2\XML\shibmd\Scope| + * \SAML2\XML\mdattr\EntityAttributes| + * \SAML2\XML\mdrpi\RegistrationInfo| + * \SAML2\XML\mdrpi\PublicationInfo| + * \SAML2\XML\mdui\UIInfo| + * \SAML2\XML\mdui\DiscoHints| + * \SAML2\XML\alg\DigestMethod| + * \SAML2\XML\alg\SigningMethod| + * \SAML2\XML\Chunk)[] Array of extensions. */ - public static function getList(\DOMElement $parent) + public static function getList(DOMElement $parent) : array { $ret = []; $supported = [ Scope::NS => [ - 'Scope' => '\SAML2\XML\shibmd\Scope', + 'Scope' => Scope::class, ], EntityAttributes::NS => [ - 'EntityAttributes' => '\SAML2\XML\mdattr\EntityAttributes', + 'EntityAttributes' => EntityAttributes::class, ], MDRPI::NS_MDRPI => [ - 'RegistrationInfo' => '\SAML2\XML\mdrpi\RegistrationInfo', - 'PublicationInfo' => '\SAML2\XML\mdrpi\PublicationInfo', + 'RegistrationInfo' => RegistrationInfo::class, + 'PublicationInfo' => PublicationInfo::class, ], MDUI::NS => [ - 'UIInfo' => '\SAML2\XML\mdui\UIInfo', - 'DiscoHints' => '\SAML2\XML\mdui\DiscoHints', + 'UIInfo' => UIInfo::class, + 'DiscoHints' => DiscoHints::class, ], ALG::NS => [ - 'DigestMethod' => '\SAML2\XML\alg\DigestMethod', - 'SigningMethod' => '\SAML2\XML\alg\SigningMethod', + 'DigestMethod' => DigestMethod::class, + 'SigningMethod' => SigningMethod::class, ], ]; + /** @var \DOMElement $node */ foreach (Utils::xpQuery($parent, './saml_metadata:Extensions/*') as $node) { - if (array_key_exists($node->namespaceURI, $supported) && + if (!is_null($node->namespaceURI) && array_key_exists($node->namespaceURI, $supported) && array_key_exists($node->localName, $supported[$node->namespaceURI]) ) { $ret[] = new $supported[$node->namespaceURI][$node->localName]($node); @@ -65,11 +83,11 @@ public static function getList(\DOMElement $parent) /** * Add a list of Extensions to the given element. * - * @param \DOMElement $parent The element we should add the extensions to. + * @param \DOMElement $parent The element we should add the extensions to. * @param \SAML2\XML\Chunk[] $extensions List of extension objects. * @return void */ - public static function addList(\DOMElement $parent, array $extensions) + public static function addList(DOMElement $parent, array $extensions) : void { if (empty($extensions)) { return; diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/IDPSSODescriptor.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/IDPSSODescriptor.php index 12bcfcafcffad5eeaac001651a6996d8dfaaeae1..c8690eddbfa1592eaabe169e5395883dc45bdad6 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/IDPSSODescriptor.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/IDPSSODescriptor.php @@ -1,11 +1,14 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\md; +use DOMElement; + use SAML2\Constants; use SAML2\Utils; use SAML2\XML\saml\Attribute; -use Webmozart\Assert\Assert; /** * Class representing SAML 2 IDPSSODescriptor. @@ -19,7 +22,7 @@ class IDPSSODescriptor extends SSODescriptorType * * @var bool|null */ - public $WantAuthnRequestsSigned = null; + private $WantAuthnRequestsSigned = null; /** * List of SingleSignOnService endpoints. @@ -28,7 +31,7 @@ class IDPSSODescriptor extends SSODescriptorType * * @var \SAML2\XML\md\EndpointType[] */ - public $SingleSignOnService = []; + private $SingleSignOnService = []; /** * List of NameIDMappingService endpoints. @@ -37,7 +40,7 @@ class IDPSSODescriptor extends SSODescriptorType * * @var \SAML2\XML\md\EndpointType[] */ - public $NameIDMappingService = []; + private $NameIDMappingService = []; /** * List of AssertionIDRequestService endpoints. @@ -46,7 +49,7 @@ class IDPSSODescriptor extends SSODescriptorType * * @var \SAML2\XML\md\EndpointType[] */ - public $AssertionIDRequestService = []; + private $AssertionIDRequestService = []; /** * List of supported attribute profiles. @@ -55,7 +58,7 @@ class IDPSSODescriptor extends SSODescriptorType * * @var array */ - public $AttributeProfile = []; + private $AttributeProfile = []; /** * List of supported attributes. @@ -64,7 +67,7 @@ class IDPSSODescriptor extends SSODescriptorType * * @var \SAML2\XML\saml\Attribute[] */ - public $Attribute = []; + private $Attribute = []; /** @@ -72,7 +75,7 @@ class IDPSSODescriptor extends SSODescriptorType * * @param \DOMElement|null $xml The XML element we should load. */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { parent::__construct('md:IDPSSODescriptor', $xml); @@ -80,33 +83,38 @@ public function __construct(\DOMElement $xml = null) return; } - $this->setWantAuthnRequestsSigned(Utils::parseBoolean($xml, 'WantAuthnRequestsSigned', null)); + $this->WantAuthnRequestsSigned = Utils::parseBoolean($xml, 'WantAuthnRequestsSigned', null); + /** @var \DOMElement $ep */ foreach (Utils::xpQuery($xml, './saml_metadata:SingleSignOnService') as $ep) { - $this->addSingleSignOnService(new EndpointType($ep)); + $this->SingleSignOnService[] = new EndpointType($ep); } + /** @var \DOMElement $ep */ foreach (Utils::xpQuery($xml, './saml_metadata:NameIDMappingService') as $ep) { - $this->addNameIDMappingService(new EndpointType($ep)); + $this->NameIDMappingService[] = new EndpointType($ep); } + /** @var \DOMElement $ep */ foreach (Utils::xpQuery($xml, './saml_metadata:AssertionIDRequestService') as $ep) { - $this->addAssertionIDRequestService(new EndpointType($ep)); + $this->AssertionIDRequestService[] = new EndpointType($ep); } - $this->setAttributeProfile(Utils::extractStrings($xml, Constants::NS_MD, 'AttributeProfile')); + $this->AttributeProfile = Utils::extractStrings($xml, Constants::NS_MD, 'AttributeProfile'); + /** @var \DOMElement $a */ foreach (Utils::xpQuery($xml, './saml_assertion:Attribute') as $a) { - $this->addAttribute(new Attribute($a)); + $this->Attribute[] = new Attribute($a); } } /** * Collect the value of the WantAuthnRequestsSigned-property + * * @return bool|null */ - public function wantAuthnRequestsSigned() + public function wantAuthnRequestsSigned() : ?bool { return $this->WantAuthnRequestsSigned; } @@ -114,21 +122,22 @@ public function wantAuthnRequestsSigned() /** * Set the value of the WantAuthnRequestsSigned-property + * * @param bool|null $flag * @return void */ - public function setWantAuthnRequestsSigned($flag = null) + public function setWantAuthnRequestsSigned(bool $flag = null) : void { - Assert::nullOrBoolean($flag); $this->WantAuthnRequestsSigned = $flag; } /** * Collect the value of the SingleSignOnService-property + * * @return \SAML2\XML\md\EndpointType[] */ - public function getSingleSignOnService() + public function getSingleSignOnService() : array { return $this->SingleSignOnService; } @@ -136,10 +145,11 @@ public function getSingleSignOnService() /** * Set the value of the SingleSignOnService-property + * * @param array $singleSignOnService * @return void */ - public function setSingleSignOnService(array $singleSignOnService) + public function setSingleSignOnService(array $singleSignOnService) : void { $this->SingleSignOnService = $singleSignOnService; } @@ -147,10 +157,11 @@ public function setSingleSignOnService(array $singleSignOnService) /** * Add the value to the SingleSignOnService-property + * * @param \SAML2\XML\md\EndpointType $singleSignOnService * @return void */ - public function addSingleSignOnService(EndpointType $singleSignOnService) + public function addSingleSignOnService(EndpointType $singleSignOnService) : void { $this->SingleSignOnService[] = $singleSignOnService; } @@ -158,9 +169,10 @@ public function addSingleSignOnService(EndpointType $singleSignOnService) /** * Collect the value of the NameIDMappingService-property + * * @return \SAML2\XML\md\EndpointType[] */ - public function getNameIDMappingService() + public function getNameIDMappingService() : array { return $this->NameIDMappingService; } @@ -168,10 +180,11 @@ public function getNameIDMappingService() /** * Set the value of the NameIDMappingService-property + * * @param array $nameIDMappingService * @return void */ - public function setNameIDMappingService(array $nameIDMappingService) + public function setNameIDMappingService(array $nameIDMappingService) : void { $this->NameIDMappingService = $nameIDMappingService; } @@ -179,10 +192,11 @@ public function setNameIDMappingService(array $nameIDMappingService) /** * Add the value to the NameIDMappingService-property + * * @param \SAML2\XML\md\EndpointType $nameIDMappingService * @return void */ - public function addNameIDMappingService(EndpointType $nameIDMappingService) + public function addNameIDMappingService(EndpointType $nameIDMappingService) : void { $this->NameIDMappingService[] = $nameIDMappingService; } @@ -190,9 +204,10 @@ public function addNameIDMappingService(EndpointType $nameIDMappingService) /** * Collect the value of the AssertionIDRequestService-property + * * @return \SAML2\XML\md\EndpointType[] */ - public function getAssertionIDRequestService() + public function getAssertionIDRequestService() : array { return $this->AssertionIDRequestService; } @@ -200,10 +215,11 @@ public function getAssertionIDRequestService() /** * Set the value of the AssertionIDRequestService-property + * * @param array $assertionIDRequestService * @return void */ - public function setAssertionIDRequestService(array $assertionIDRequestService) + public function setAssertionIDRequestService(array $assertionIDRequestService) : void { $this->AssertionIDRequestService = $assertionIDRequestService; } @@ -211,10 +227,11 @@ public function setAssertionIDRequestService(array $assertionIDRequestService) /** * Add the value to the AssertionIDRequestService-property + * * @param \SAML2\XML\md\EndpointType $assertionIDRequestService * @return void */ - public function addAssertionIDRequestService(EndpointType $assertionIDRequestService) + public function addAssertionIDRequestService(EndpointType $assertionIDRequestService) : void { $this->AssertionIDRequestService[] = $assertionIDRequestService; } @@ -224,7 +241,7 @@ public function addAssertionIDRequestService(EndpointType $assertionIDRequestSer * Collect the value of the AttributeProfile-property * @return array */ - public function getAttributeProfile() + public function getAttributeProfile() : array { return $this->AttributeProfile; } @@ -232,10 +249,11 @@ public function getAttributeProfile() /** * Set the value of the AttributeProfile-property + * * @param array $attributeProfile * @return void */ - public function setAttributeProfile(array $attributeProfile) + public function setAttributeProfile(array $attributeProfile) : void { $this->AttributeProfile = $attributeProfile; } @@ -243,9 +261,10 @@ public function setAttributeProfile(array $attributeProfile) /** * Collect the value of the Attribute-property + * * @return \SAML2\XML\saml\Attribute[] */ - public function getAttribute() + public function getAttribute() : array { return $this->Attribute; } @@ -253,10 +272,11 @@ public function getAttribute() /** * Set the value of the Attribute-property + * * @param array $attribute * @return void */ - public function setAttribute(array $attribute) + public function setAttribute(array $attribute) : void { $this->Attribute = $attribute; } @@ -264,10 +284,11 @@ public function setAttribute(array $attribute) /** * Addthe value to the Attribute-property + * * @param \SAML2\XML\saml\Attribute $attribute * @return void */ - public function addAttribute(Attribute $attribute) + public function addAttribute(Attribute $attribute) : void { $this->Attribute[] = $attribute; } @@ -279,38 +300,29 @@ public function addAttribute(Attribute $attribute) * @param \DOMElement $parent The EntityDescriptor we should append this IDPSSODescriptor to. * @return \DOMElement */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::nullOrBoolean($this->WantAuthnRequestsSigned()); - Assert::isArray($this->getSingleSignOnService()); - Assert::isArray($this->getNameIDMappingService()); - Assert::isArray($this->getAssertionIDRequestService()); - Assert::isArray($this->getAttributeProfile()); - Assert::isArray($this->getAttribute()); - $e = parent::toXML($parent); - if ($this->WantAuthnRequestsSigned() === true) { - $e->setAttribute('WantAuthnRequestsSigned', 'true'); - } elseif ($this->WantAuthnRequestsSigned() === false) { - $e->setAttribute('WantAuthnRequestsSigned', 'false'); + if (is_bool($this->WantAuthnRequestsSigned)) { + $e->setAttribute('WantAuthnRequestsSigned', $this->WantAuthnRequestsSigned ? 'true' : 'false'); } - foreach ($this->getSingleSignOnService() as $ep) { + foreach ($this->SingleSignOnService as $ep) { $ep->toXML($e, 'md:SingleSignOnService'); } - foreach ($this->getNameIDMappingService() as $ep) { + foreach ($this->NameIDMappingService as $ep) { $ep->toXML($e, 'md:NameIDMappingService'); } - foreach ($this->getAssertionIDRequestService() as $ep) { + foreach ($this->AssertionIDRequestService as $ep) { $ep->toXML($e, 'md:AssertionIDRequestService'); } - Utils::addStrings($e, Constants::NS_MD, 'md:AttributeProfile', false, $this->getAttributeProfile()); + Utils::addStrings($e, Constants::NS_MD, 'md:AttributeProfile', false, $this->AttributeProfile); - foreach ($this->getAttribute() as $a) { + foreach ($this->Attribute as $a) { $a->toXML($e); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/IndexedEndpointType.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/IndexedEndpointType.php index e980783bbe1df0696b0ce81783b681789fba40ab..c874b58eb96bcb241b930ce05420c2f77d8c3565 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/IndexedEndpointType.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/IndexedEndpointType.php @@ -1,9 +1,12 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\md; +use DOMElement; + use SAML2\Utils; -use Webmozart\Assert\Assert; /** * Class representing SAML 2 IndexedEndpointType. @@ -17,14 +20,14 @@ class IndexedEndpointType extends EndpointType * * @var int */ - public $index; + private $index = 0; /** * Whether this endpoint is the default. * * @var bool|null */ - public $isDefault = null; + private $isDefault = null; /** @@ -33,7 +36,7 @@ class IndexedEndpointType extends EndpointType * @param \DOMElement|null $xml The XML element we should load. * @throws \Exception */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { parent::__construct($xml); @@ -44,52 +47,54 @@ public function __construct(\DOMElement $xml = null) if (!$xml->hasAttribute('index')) { throw new \Exception('Missing index on '.$xml->tagName); } - $this->setIndex(intval($xml->getAttribute('index'))); + $this->index = intval($xml->getAttribute('index')); - $this->setIsDefault(Utils::parseBoolean($xml, 'isDefault', null)); + $this->isDefault = Utils::parseBoolean($xml, 'isDefault', null); } /** - * Collect the value of the index-property + * Collect the value of the index property. + * * @return int */ - public function getIndex() + public function getIndex() : int { return $this->index; } /** - * Set the value of the index-property + * Set the value of the index property. + * * @param int $index * @return void */ - public function setIndex($index) + public function setIndex(int $index) : void { - Assert::integer($index); $this->index = $index; } /** - * Collect the value of the isDefault-property + * Collect the value of the isDefault property. + * * @return bool|null */ - public function getIsDefault() + public function getIsDefault() : ?bool { return $this->isDefault; } /** - * Set the value of the isDefault-property + * Set the value of the isDefault property. + * * @param bool|null $flag * @return void */ - public function setIsDefault($flag = null) + public function setIsDefault(bool $flag = null) : void { - Assert::nullOrBoolean($flag); $this->isDefault = $flag; } @@ -98,22 +103,16 @@ public function setIsDefault($flag = null) * Add this endpoint to an XML element. * * @param \DOMElement $parent The element we should append this endpoint to. - * @param string $name The name of the element we should create. + * @param string $name The name of the element we should create. * @return \DOMElement */ - public function toXML(\DOMElement $parent, $name) + public function toXML(DOMElement $parent, string $name) : DOMElement { - Assert::string($name); - Assert::integer($this->getIndex()); - Assert::nullOrBoolean($this->getIsDefault()); - $e = parent::toXML($parent, $name); - $e->setAttribute('index', (string) $this->getIndex()); + $e->setAttribute('index', strval($this->index)); - if ($this->getIsDefault() === true) { - $e->setAttribute('isDefault', 'true'); - } elseif ($this->getIsDefault() === false) { - $e->setAttribute('isDefault', 'false'); + if (is_bool($this->isDefault)) { + $e->setAttribute('isDefault', $this->isDefault ? 'true' : 'false'); } return $e; diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/KeyDescriptor.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/KeyDescriptor.php index aa2b6bdbe48e1fa7e880704f2535ef953e32bcf0..8463a1bbf09be46312787f7371b29ff98e26f0f8 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/KeyDescriptor.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/KeyDescriptor.php @@ -1,12 +1,16 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\md; +use DOMElement; +use Webmozart\Assert\Assert; + use SAML2\Constants; use SAML2\Utils; use SAML2\XML\Chunk; use SAML2\XML\ds\KeyInfo; -use Webmozart\Assert\Assert; /** * Class representing a KeyDescriptor element. @@ -22,14 +26,14 @@ class KeyDescriptor * * @var string|null */ - public $use; + private $use = null; /** * The KeyInfo for this key. * - * @var \SAML2\XML\ds\KeyInfo + * @var \SAML2\XML\ds\KeyInfo|null */ - public $KeyInfo; + private $KeyInfo = null; /** * Supported EncryptionMethods. @@ -38,7 +42,7 @@ class KeyDescriptor * * @var \SAML2\XML\Chunk[] */ - public $EncryptionMethod = []; + private $EncryptionMethod = []; /** @@ -47,14 +51,14 @@ class KeyDescriptor * @param \DOMElement|null $xml The XML element we should load. * @throws \Exception */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { if ($xml === null) { return; } if ($xml->hasAttribute('use')) { - $this->setUse($xml->getAttribute('use')); + $this->use = $xml->getAttribute('use'); } $keyInfo = Utils::xpQuery($xml, './ds:KeyInfo'); @@ -63,84 +67,92 @@ public function __construct(\DOMElement $xml = null) } elseif (empty($keyInfo)) { throw new \Exception('No ds:KeyInfo in the KeyDescriptor.'); } - $this->setKeyInfo(new KeyInfo($keyInfo[0])); + /** @var \DOMElement $keyInfo[0] */ + $this->KeyInfo = new KeyInfo($keyInfo[0]); + /** @var \DOMElement $em */ foreach (Utils::xpQuery($xml, './saml_metadata:EncryptionMethod') as $em) { - $this->addEncryptionMethod(new Chunk($em)); + $this->EncryptionMethod[] = new Chunk($em); } } /** - * Collect the value of the use-property - * @return string + * Collect the value of the use property. + * + * @return string|null */ - public function getUse() + public function getUse() : ?string { return $this->use; } /** - * Set the value of the use-property + * Set the value of the use property. + * * @param string|null $use * @return void */ - public function setUse($use) + public function setUse(string $use = null) : void { - Assert::nullOrString($use); $this->use = $use; } /** - * Collect the value of the KeyInfo-property - * @return \SAML2\XML\ds\KeyInfo + * Collect the value of the KeyInfo property. + * + * @return \SAML2\XML\ds\KeyInfo|null */ - public function getKeyInfo() + public function getKeyInfo() : ?KeyInfo { return $this->KeyInfo; } /** - * Set the value of the KeyInfo-property + * Set the value of the KeyInfo property. + * * @param \SAML2\XML\ds\KeyInfo $keyInfo * @return void */ - public function setKeyInfo(KeyInfo $keyInfo) + public function setKeyInfo(KeyInfo $keyInfo) : void { $this->KeyInfo = $keyInfo; } /** - * Collect the value of the EncryptionMethod-property + * Collect the value of the EncryptionMethod property. + * * @return \SAML2\XML\Chunk[] */ - public function getEncryptionMethod() + public function getEncryptionMethod() : array { return $this->EncryptionMethod; } /** - * Set the value of the EncryptionMethod-property + * Set the value of the EncryptionMethod property. + * * @param \SAML2\XML\Chunk[] $encryptionMethod * @return void */ - public function setEncryptionMethod(array $encryptionMethod) + public function setEncryptionMethod(array $encryptionMethod) : void { $this->EncryptionMethod = $encryptionMethod; } /** - * Add the value to the EncryptionMethod-property + * Add the value to the EncryptionMethod property. + * * @param \SAML2\XML\Chunk $encryptionMethod * @return void */ - public function addEncryptionMethod(Chunk $encryptionMethod) + public function addEncryptionMethod(Chunk $encryptionMethod) : void { $this->EncryptionMethod[] = $encryptionMethod; } @@ -152,24 +164,24 @@ public function addEncryptionMethod(Chunk $encryptionMethod) * @param \DOMElement $parent The element we should append this KeyDescriptor to. * @return \DOMElement */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::nullOrString($this->getUse()); - Assert::isInstanceOf($this->getKeyInfo(), KeyInfo::class); - Assert::isArray($this->getEncryptionMethod()); + if ($this->KeyInfo === null) { + throw new \Exception('Cannot convert KeyDescriptor to XML without KeyInfo set.'); + } $doc = $parent->ownerDocument; $e = $doc->createElementNS(Constants::NS_MD, 'md:KeyDescriptor'); $parent->appendChild($e); - if ($this->getUse() !== null) { - $e->setAttribute('use', $this->getUse()); + if ($this->use !== null) { + $e->setAttribute('use', $this->use); } - $this->getKeyInfo()->toXML($e); + $this->KeyInfo->toXML($e); - foreach ($this->getEncryptionMethod() as $em) { + foreach ($this->EncryptionMethod as $em) { $em->toXML($e); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/Organization.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/Organization.php index 46427a9432c3d0ba5e1bc9e3a2ac040a261168f6..43dd8d4b4c2203ac2b7dfc235f92bee128542a07 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/Organization.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/Organization.php @@ -1,11 +1,15 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\md; +use DOMElement; +use Webmozart\Assert\Assert; + use SAML2\Constants; use SAML2\Utils; use SAML2\XML\Chunk; -use Webmozart\Assert\Assert; /** * Class representing SAML 2 Organization element. @@ -21,28 +25,28 @@ class Organization * * @var array */ - public $Extensions = []; + private $Extensions = []; /** * The OrganizationName, as an array of language => translation. * * @var array */ - public $OrganizationName = []; + private $OrganizationName = []; /** * The OrganizationDisplayName, as an array of language => translation. * * @var array */ - public $OrganizationDisplayName = []; + private $OrganizationDisplayName = []; /** * The OrganizationURL, as an array of language => translation. * * @var array */ - public $OrganizationURL = []; + private $OrganizationURL = []; /** @@ -50,50 +54,53 @@ class Organization * * @param \DOMElement|null $xml The XML element we should load. */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { if ($xml === null) { return; } - $this->setExtensions(Extensions::getList($xml)); + $this->Extensions = Extensions::getList($xml); - $this->setOrganizationName(Utils::extractLocalizedStrings($xml, Constants::NS_MD, 'OrganizationName')); - $organizationName = $this->getOrganizationName(); - if (empty($organizationName)) { - $this->setOrganizationName(['invalid' => '']); + $this->OrganizationName = Utils::extractLocalizedStrings($xml, Constants::NS_MD, 'OrganizationName'); + if (empty($this->OrganizationName)) { + $this->OrganizationName = ['invalid' => '']; } - $this->setOrganizationDisplayName(Utils::extractLocalizedStrings($xml, Constants::NS_MD, 'OrganizationDisplayName')); - $organizationDisplayName = $this->getOrganizationDisplayName(); - if (empty($organizationDisplayName)) { - $this->setOrganizationDisplayName(['invalid' => '']); + $this->OrganizationDisplayName = Utils::extractLocalizedStrings( + $xml, + Constants::NS_MD, + 'OrganizationDisplayName' + ); + if (empty($this->OrganizationDisplayName)) { + $this->OrganizationDisplayName = ['invalid' => '']; } - $this->setOrganizationURL(Utils::extractLocalizedStrings($xml, Constants::NS_MD, 'OrganizationURL')); - $organizationURL = $this->getOrganizationURL(); - if (empty($organizationURL)) { - $this->setOrganizationURL(['invalid' => '']); + $this->OrganizationURL = Utils::extractLocalizedStrings($xml, Constants::NS_MD, 'OrganizationURL'); + if (empty($this->OrganizationURL)) { + $this->OrganizationURL = ['invalid' => '']; } } /** - * Collect the value of the Extensions-property + * Collect the value of the Extensions property. + * * @return \SAML2\XML\Chunk[] */ - public function getExtensions() + public function getExtensions() : array { return $this->Extensions; } /** - * Set the value of the Extensions-property + * Set the value of the Extensions property. + * * @param array $extensions * @return void */ - public function setExtensions(array $extensions) + public function setExtensions(array $extensions) : void { $this->Extensions = $extensions; } @@ -105,70 +112,76 @@ public function setExtensions(array $extensions) * @param \SAML2\XML\Chunk $extensions The Extensions * @return void */ - public function addExtension(Extensions $extension) + public function addExtension(Extensions $extension) : void { $this->Extensions[] = $extension; } /** - * Collect the value of the OrganizationName-property + * Collect the value of the OrganizationName property. + * * @return string[] */ - public function getOrganizationName() + public function getOrganizationName() : array { return $this->OrganizationName; } /** - * Set the value of the OrganizationName-property + * Set the value of the OrganizationName property. + * * @param array $organizationName * @return void */ - public function setOrganizationName(array $organizationName) + public function setOrganizationName(array $organizationName) : void { $this->OrganizationName = $organizationName; } /** - * Collect the value of the OrganizationDisplayName-property + * Collect the value of the OrganizationDisplayName property. + * * @return string[] */ - public function getOrganizationDisplayName() + public function getOrganizationDisplayName() : array { return $this->OrganizationDisplayName; } /** - * Set the value of the OrganizationDisplayName-property + * Set the value of the OrganizationDisplayName property. + * * @param array $organizationDisplayName * @return void */ - public function setOrganizationDisplayName(array $organizationDisplayName) + public function setOrganizationDisplayName(array $organizationDisplayName) : void { $this->OrganizationDisplayName = $organizationDisplayName; } /** - * Collect the value of the OrganizationURL-property + * Collect the value of the OrganizationURL property. + * * @return string[] */ - public function getOrganizationURL() + public function getOrganizationURL() : array { return $this->OrganizationURL; } /** - * Set the value of the OrganizationURL-property + * Set the value of the OrganizationURL property. + * * @param array $organizationURL * @return void */ - public function setOrganizationURL(array $organizationURL) + public function setOrganizationURL(array $organizationURL) : void { $this->OrganizationURL = $organizationURL; } @@ -180,26 +193,22 @@ public function setOrganizationURL(array $organizationURL) * @param \DOMElement $parent The element we should add this organization to. * @return \DOMElement This Organization-element. */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::isArray($this->getExtensions()); - Assert::isArray($organizationName = $this->getOrganizationName()); - Assert::notEmpty($organizationName); - Assert::isArray($organizationDisplayName = $this->getOrganizationDisplayName()); - Assert::notEmpty($organizationDisplayName); - Assert::isArray($organizationURL = $this->getOrganizationURL()); - Assert::notEmpty($organizationURL); + Assert::notEmpty($this->OrganizationName); + Assert::notEmpty($this->OrganizationDisplayName); + Assert::notEmpty($this->OrganizationURL); $doc = $parent->ownerDocument; $e = $doc->createElementNS(Constants::NS_MD, 'md:Organization'); $parent->appendChild($e); - Extensions::addList($e, $this->getExtensions()); + Extensions::addList($e, $this->Extensions); - Utils::addStrings($e, Constants::NS_MD, 'md:OrganizationName', true, $this->getOrganizationName()); - Utils::addStrings($e, Constants::NS_MD, 'md:OrganizationDisplayName', true, $this->getOrganizationDisplayName()); - Utils::addStrings($e, Constants::NS_MD, 'md:OrganizationURL', true, $this->getOrganizationURL()); + Utils::addStrings($e, Constants::NS_MD, 'md:OrganizationName', true, $this->OrganizationName); + Utils::addStrings($e, Constants::NS_MD, 'md:OrganizationDisplayName', true, $this->OrganizationDisplayName); + Utils::addStrings($e, Constants::NS_MD, 'md:OrganizationURL', true, $this->OrganizationURL); return $e; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/PDPDescriptor.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/PDPDescriptor.php index 0eae33bb9379a3bde91ce8092327fd272f0396bb..eb3dfb2212d85634ab6f8b8abdf5f1f81439d8fd 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/PDPDescriptor.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/PDPDescriptor.php @@ -1,10 +1,14 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\md; +use DOMElement; +use Webmozart\Assert\Assert; + use SAML2\Constants; use SAML2\Utils; -use Webmozart\Assert\Assert; /** * Class representing SAML 2 metadata PDPDescriptor. @@ -20,7 +24,7 @@ class PDPDescriptor extends RoleDescriptor * * @var \SAML2\XML\md\EndpointType[] */ - public $AuthzService = []; + private $AuthzService = []; /** * List of AssertionIDRequestService endpoints. @@ -29,7 +33,7 @@ class PDPDescriptor extends RoleDescriptor * * @var \SAML2\XML\md\EndpointType[] */ - public $AssertionIDRequestService = []; + private $AssertionIDRequestService = []; /** * List of supported NameID formats. @@ -38,7 +42,7 @@ class PDPDescriptor extends RoleDescriptor * * @var string[] */ - public $NameIDFormat = []; + private $NameIDFormat = []; /** @@ -47,7 +51,7 @@ class PDPDescriptor extends RoleDescriptor * @param \DOMElement|null $xml The XML element we should load. * @throws \Exception */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { parent::__construct('md:PDPDescriptor', $xml); @@ -55,26 +59,29 @@ public function __construct(\DOMElement $xml = null) return; } + /** @var \DOMElement $ep */ foreach (Utils::xpQuery($xml, './saml_metadata:AuthzService') as $ep) { - $this->addAuthzService(new EndpointType($ep)); + $this->AuthzService[] = new EndpointType($ep); } if ($this->getAuthzService() !== []) { throw new \Exception('Must have at least one AuthzService in PDPDescriptor.'); } + /** @var \DOMElement $ep */ foreach (Utils::xpQuery($xml, './saml_metadata:AssertionIDRequestService') as $ep) { - $this->addAssertionIDRequestService(new EndpointType($ep)); + $this->AssertionIDRequestService[] = new EndpointType($ep); } - $this->setNameIDFormat(Utils::extractStrings($xml, Constants::NS_MD, 'NameIDFormat')); + $this->NameIDFormat = Utils::extractStrings($xml, Constants::NS_MD, 'NameIDFormat'); } /** * Collect the value of the AuthzService-property + * * @return \SAML2\XML\md\EndpointType[] */ - public function getAuthzService() + public function getAuthzService() : array { return $this->AuthzService; } @@ -82,10 +89,11 @@ public function getAuthzService() /** * Set the value of the AuthzService-property + * * @param \SAML2\XML\md\EndpointType[] $authzService * @return void */ - public function setAuthzService(array $authzService = []) + public function setAuthzService(array $authzService = []) : void { $this->AuthzService = $authzService; } @@ -93,21 +101,22 @@ public function setAuthzService(array $authzService = []) /** * Add the value to the AuthzService-property + * * @param \SAML2\XML\md\EndpointType $authzService * @return void */ - public function addAuthzService(EndpointType $authzService) + public function addAuthzService(EndpointType $authzService) : void { - Assert::isInstanceOf($authzService, EndpointType::class); $this->AuthzService[] = $authzService; } /** * Collect the value of the AssertionIDRequestService-property + * * @return \SAML2\XML\md\EndpointType[] */ - public function getAssertionIDRequestService() + public function getAssertionIDRequestService() : array { return $this->AssertionIDRequestService; } @@ -115,10 +124,11 @@ public function getAssertionIDRequestService() /** * Set the value of the AssertionIDRequestService-property + * * @param \SAML2\XML\md\EndpointType[] $assertionIDRequestService * @return void */ - public function setAssertionIDRequestService(array $assertionIDRequestService) + public function setAssertionIDRequestService(array $assertionIDRequestService) : void { $this->AssertionIDRequestService = $assertionIDRequestService; } @@ -126,21 +136,22 @@ public function setAssertionIDRequestService(array $assertionIDRequestService) /** * Add the value to the AssertionIDRequestService-property + * * @param \SAML2\XML\md\EndpointType $assertionIDRequestService * @return void */ - public function addAssertionIDRequestService(EndpointType $assertionIDRequestService) + public function addAssertionIDRequestService(EndpointType $assertionIDRequestService) : void { - Assert::isInstanceOf($assertionIDRequestService, EndpointType::class); $this->AssertionIDRequestService[] = $assertionIDRequestService; } /** * Collect the value of the NameIDFormat-property + * * @return string[] */ - public function getNameIDFormat() + public function getNameIDFormat() : array { return $this->NameIDFormat; } @@ -148,10 +159,11 @@ public function getNameIDFormat() /** * Set the value of the NameIDFormat-property + * * @param string[] $nameIDFormat * @return void */ - public function setNameIDFormat(array $nameIDFormat) + public function setNameIDFormat(array $nameIDFormat) : void { $this->NameIDFormat = $nameIDFormat; } @@ -163,24 +175,21 @@ public function setNameIDFormat(array $nameIDFormat) * @param \DOMElement $parent The EntityDescriptor we should append this IDPSSODescriptor to. * @return \DOMElement */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::isArray($authzService = $this->getAuthzService()); - Assert::notEmpty($authzService); - Assert::isArray($this->getAssertionIDRequestService()); - Assert::isArray($this->getNameIDFormat()); + Assert::notEmpty($this->AuthzService); $e = parent::toXML($parent); - foreach ($this->getAuthzService() as $ep) { + foreach ($this->AuthzService as $ep) { $ep->toXML($e, 'md:AuthzService'); } - foreach ($this->getAssertionIDRequestService() as $ep) { + foreach ($this->AssertionIDRequestService as $ep) { $ep->toXML($e, 'md:AssertionIDRequestService'); } - Utils::addStrings($e, Constants::NS_MD, 'md:NameIDFormat', false, $this->getNameIDFormat()); + Utils::addStrings($e, Constants::NS_MD, 'md:NameIDFormat', false, $this->NameIDFormat); return $e; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/RequestedAttribute.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/RequestedAttribute.php index e1ed35e47e45663977c473c6f222471885607618..816804434e3dea4b12a3b4f5d111dcf7af0e8e0e 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/RequestedAttribute.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/RequestedAttribute.php @@ -1,11 +1,14 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\md; +use DOMElement; + use SAML2\Constants; use SAML2\Utils; use SAML2\XML\saml\Attribute; -use Webmozart\Assert\Assert; /** * Class representing SAML 2 metadata RequestedAttribute. @@ -19,7 +22,7 @@ class RequestedAttribute extends Attribute * * @var bool|null */ - public $isRequired = null; + private $isRequired = null; /** @@ -27,7 +30,7 @@ class RequestedAttribute extends Attribute * * @param \DOMElement|null $xml The XML element we should load. */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { parent::__construct($xml); @@ -35,15 +38,16 @@ public function __construct(\DOMElement $xml = null) return; } - $this->setIsRequired(Utils::parseBoolean($xml, 'isRequired', null)); + $this->isRequired = Utils::parseBoolean($xml, 'isRequired', null); } /** * Collect the value of the isRequired-property - * @return boolean|null + * + * @return bool|null */ - public function getIsRequired() + public function getIsRequired() : ?bool { return $this->isRequired; } @@ -51,12 +55,12 @@ public function getIsRequired() /** * Set the value of the isRequired-property - * @param boolean|null $flag + * + * @param bool|null $flag * @return void */ - public function setIsRequired($flag = null) + public function setIsRequired(bool $flag = null) : void { - Assert::nullOrBoolean($flag); $this->isRequired = $flag; } @@ -67,16 +71,12 @@ public function setIsRequired($flag = null) * @param \DOMElement $parent The element we should append this RequestedAttribute to. * @return \DOMElement */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::nullOrBoolean($this->isRequired); - $e = $this->toXMLInternal($parent, Constants::NS_MD, 'md:RequestedAttribute'); - if ($this->getIsRequired() === true) { - $e->setAttribute('isRequired', 'true'); - } elseif ($this->getIsRequired() === false) { - $e->setAttribute('isRequired', 'false'); + if (is_bool($this->isRequired)) { + $e->setAttribute('isRequired', $this->isRequired ? 'true' : 'false'); } return $e; diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/RoleDescriptor.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/RoleDescriptor.php index fbfc2721bc0cc92283d25091c0a2779d3442ea89..5457e19ad9d781605ace8870d54859168fc340d5 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/RoleDescriptor.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/RoleDescriptor.php @@ -1,12 +1,15 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\md; +use DOMElement; + use SAML2\Constants; use SAML2\SignedElementHelper; use SAML2\Utils; use SAML2\XML\Chunk; -use Webmozart\Assert\Assert; /** * Class representing SAML 2 RoleDescriptor element. @@ -27,35 +30,21 @@ class RoleDescriptor extends SignedElementHelper * * @var string|null */ - public $ID; - - /** - * How long this element is valid, as a unix timestamp. - * - * @var int|null - */ - public $validUntil; - - /** - * The length of time this element can be cached, as string. - * - * @var string|null - */ - public $cacheDuration; + private $ID = null; /** * List of supported protocols. * * @var array */ - public $protocolSupportEnumeration = []; + private $protocolSupportEnumeration = []; /** * Error URL for this role. * * @var string|null */ - public $errorURL; + private $errorURL = null; /** * Extensions on this element. @@ -64,7 +53,7 @@ class RoleDescriptor extends SignedElementHelper * * @var array */ - public $Extensions = []; + private $Extensions = []; /** * KeyDescriptor elements. @@ -73,14 +62,14 @@ class RoleDescriptor extends SignedElementHelper * * @var \SAML2\XML\md\KeyDescriptor[] */ - public $KeyDescriptor = []; + private $KeyDescriptor = []; /** * Organization of this role. * * @var \SAML2\XML\md\Organization|null */ - public $Organization = null; + private $Organization = null; /** * ContactPerson elements for this role. @@ -89,20 +78,18 @@ class RoleDescriptor extends SignedElementHelper * * @var \SAML2\XML\md\ContactPerson[] */ - public $ContactPerson = []; + private $ContactPerson = []; /** * Initialize a RoleDescriptor. * - * @param string $elementName The name of this element. - * @param \DOMElement|null $xml The XML element we should load. + * @param string $elementName The name of this element. + * @param \DOMElement|null $xml The XML element we should load. * @throws \Exception */ - protected function __construct($elementName, \DOMElement $xml = null) + protected function __construct(string $elementName, DOMElement $xml = null) { - Assert::string($elementName); - parent::__construct($xml); $this->elementName = $elementName; @@ -111,61 +98,65 @@ protected function __construct($elementName, \DOMElement $xml = null) } if ($xml->hasAttribute('ID')) { - $this->setID($xml->getAttribute('ID')); + $this->ID = $xml->getAttribute('ID'); } if ($xml->hasAttribute('validUntil')) { - $this->setValidUntil(Utils::xsDateTimeToTimestamp($xml->getAttribute('validUntil'))); + $this->validUntil = Utils::xsDateTimeToTimestamp($xml->getAttribute('validUntil')); } if ($xml->hasAttribute('cacheDuration')) { - $this->setCacheDuration($xml->getAttribute('cacheDuration')); + $this->cacheDuration = $xml->getAttribute('cacheDuration'); } if (!$xml->hasAttribute('protocolSupportEnumeration')) { throw new \Exception('Missing protocolSupportEnumeration attribute on '.$xml->localName); } - $this->setProtocolSupportEnumeration(preg_split('/[\s]+/', $xml->getAttribute('protocolSupportEnumeration'))); + $this->protocolSupportEnumeration = preg_split('/[\s]+/', $xml->getAttribute('protocolSupportEnumeration')); if ($xml->hasAttribute('errorURL')) { - $this->setErrorURL($xml->getAttribute('errorURL')); + $this->errorURL = $xml->getAttribute('errorURL'); } - $this->setExtensions(Extensions::getList($xml)); + $this->Extensions = Extensions::getList($xml); foreach (Utils::xpQuery($xml, './saml_metadata:KeyDescriptor') as $kd) { - $this->addKeyDescriptor(new KeyDescriptor($kd)); + /** @var \DOMElement $kd */ + $this->KeyDescriptor[] = new KeyDescriptor($kd); } $organization = Utils::xpQuery($xml, './saml_metadata:Organization'); if (count($organization) > 1) { throw new \Exception('More than one Organization in the entity.'); } elseif (!empty($organization)) { - $this->setOrganization(new Organization($organization[0])); + /** @var \DOMElement $organization[0] */ + $this->Organization = new Organization($organization[0]); } foreach (Utils::xpQuery($xml, './saml_metadata:ContactPerson') as $cp) { - $this->addContactPerson(new ContactPerson($cp)); + /** @var \DOMElement $cp */ + $this->ContactPerson[] = new ContactPerson($cp); } } /** - * Collect the value of the ID-property + * Collect the value of the ID property. + * * @return string|null */ - public function getID() + public function getID() : ?string { return $this->ID; } /** - * Set the value of the ID-property + * Set the value of the ID property. + * * @param string|null $Id * @return void */ - public function setID($Id = null) + public function setID(string $Id = null) : void { - Assert::nullOrString($Id); $this->ID = $Id; } @@ -174,7 +165,7 @@ public function setID($Id = null) * Collect the value of the validUntil-property * @return int|null */ - public function getValidUntil() + public function getValidUntil() : ?int { return $this->validUntil; } @@ -185,9 +176,8 @@ public function getValidUntil() * @param int|null $validUntil * @return void */ - public function setValidUntil($validUntil = null) + public function setValidUntil(int $validUntil = null) : void { - Assert::nullOrInteger($validUntil); $this->validUntil = $validUntil; } @@ -196,7 +186,7 @@ public function setValidUntil($validUntil = null) * Collect the value of the cacheDuration-property * @return string|null */ - public function getCacheDuration() + public function getCacheDuration() : ?string { return $this->cacheDuration; } @@ -207,29 +197,30 @@ public function getCacheDuration() * @param string|null $cacheDuration * @return void */ - public function setCacheDuration($cacheDuration = null) + public function setCacheDuration(string $cacheDuration = null) : void { - Assert::nullOrString($cacheDuration); $this->cacheDuration = $cacheDuration; } /** - * Collect the value of the Extensions-property + * Collect the value of the Extensions property. + * * @return \SAML2\XML\Chunk[] */ - public function getExtensions() + public function getExtensions() : array { return $this->Extensions; } /** - * Set the value of the Extensions-property + * Set the value of the Extensions property. + * * @param array $extensions * @return void */ - public function setExtensions(array $extensions) + public function setExtensions(array $extensions) : void { $this->Extensions = $extensions; } @@ -241,20 +232,20 @@ public function setExtensions(array $extensions) * @param \SAML2\XML\Chunk $extensions The Extensions * @return void */ - public function addExtension(Extensions $extension) + public function addExtension(Extensions $extension) : void { $this->Extensions[] = $extension; } /** - * Set the value of the errorURL-property + * Set the value of the errorURL property. + * * @param string|null $errorURL * @return void */ - public function setErrorURL($errorURL = null) + public function setErrorURL(string $errorURL = null) : void { - Assert::nullOrString($errorURL); if (!is_null($errorURL) && !filter_var($errorURL, FILTER_VALIDATE_URL)) { throw new \InvalidArgumentException('RoleDescriptor errorURL is not a valid URL.'); } @@ -263,127 +254,139 @@ public function setErrorURL($errorURL = null) /** - * Collect the value of the errorURL-property + * Collect the value of the errorURL property. + * * @return string|null */ - public function getErrorURL() + public function getErrorURL() : ?string { return $this->errorURL; } /** - * Collect the value of the ProtocolSupportEnumeration-property + * Collect the value of the ProtocolSupportEnumeration property. + * * @return string[] */ - public function getProtocolSupportEnumeration() + public function getProtocolSupportEnumeration() : array { return $this->protocolSupportEnumeration; } /** - * Set the value of the ProtocolSupportEnumeration-property + * Set the value of the ProtocolSupportEnumeration property. + * * @param array $protocols * @return void */ - public function setProtocolSupportEnumeration(array $protocols) + public function setProtocolSupportEnumeration(array $protocols) : void { $this->protocolSupportEnumeration = $protocols; } /** - * Add the value to the ProtocolSupportEnumeration-property + * Add the value to the ProtocolSupportEnumeration property. + * * @param string $protocol * @return void */ - public function addProtocolSupportEnumeration($protocol) + public function addProtocolSupportEnumeration(string $protocol) : void { $this->protocolSupportEnumeration[] = $protocol; } /** - * Collect the value of the Organization-property - * @return \SAML2\XML\md\Organization + * Collect the value of the Organization property. + * + * @return \SAML2\XML\md\Organization|null */ - public function getOrganization() + public function getOrganization() : ?Organization { return $this->Organization; } /** - * Set the value of the Organization-property + * Set the value of the Organization property. + * * @param \SAML2\XML\md\Organization|null $organization * @return void */ - public function setOrganization(Organization $organization = null) + public function setOrganization(Organization $organization = null) : void { $this->Organization = $organization; } /** - * Collect the value of the ContactPerson-property + * Collect the value of the ContactPerson property. + * * @return \SAML2\XML\md\ContactPerson[] */ - public function getContactPerson() + public function getContactPerson() : array { return $this->ContactPerson; } /** - * Set the value of the ContactPerson-property + * Set the value of the ContactPerson property. + * * @param array $contactPerson * @return void */ - public function setContactPerson(array $contactPerson) + public function setContactPerson(array $contactPerson) : void { $this->ContactPerson = $contactPerson; } /** - * Add the value to the ContactPerson-property + * Add the value to the ContactPerson property. + * * @param \SAML2\XML\md\ContactPerson $contactPerson * @return void */ - public function addContactPerson(ContactPerson $contactPerson) + public function addContactPerson(ContactPerson $contactPerson) : void { $this->ContactPerson[] = $contactPerson; } /** - * Collect the value of the KeyDescriptor-property + * Collect the value of the KeyDescriptor property. + * * @return \SAML2\XML\md\KeyDescriptor[] */ - public function getKeyDescriptor() + public function getKeyDescriptor() : array { return $this->KeyDescriptor; } /** - * Set the value of the KeyDescriptor-property + * Set the value of the KeyDescriptor property. + * * @param array $keyDescriptor * @return void */ - public function setKeyDescriptor(array $keyDescriptor) + public function setKeyDescriptor(array $keyDescriptor) : void { $this->KeyDescriptor = $keyDescriptor; } /** - * Add the value to the KeyDescriptor-property + * Add the value to the KeyDescriptor property. + * * @param \SAML2\XML\md\KeyDescriptor $keyDescriptor * @return void */ - public function addKeyDescriptor(KeyDescriptor $keyDescriptor) + public function addKeyDescriptor(KeyDescriptor $keyDescriptor) : void { $this->KeyDescriptor[] = $keyDescriptor; } @@ -395,50 +398,40 @@ public function addKeyDescriptor(KeyDescriptor $keyDescriptor) * @param \DOMElement $parent The EntityDescriptor we should append this endpoint to. * @return \DOMElement */ - protected function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::nullOrString($this->getID()); - Assert::nullOrInteger($this->getValidUntil()); - Assert::nullOrString($this->getCacheDuration()); - Assert::isArray($this->getProtocolSupportEnumeration()); - Assert::nullOrString($this->getErrorURL()); - Assert::isArray($this->getExtensions()); - Assert::isArray($this->getKeyDescriptor()); - Assert::nullOrIsInstanceOf($this->getOrganization(), Organization::class); - Assert::isArray($this->getContactPerson()); - $e = $parent->ownerDocument->createElementNS(Constants::NS_MD, $this->elementName); $parent->appendChild($e); - if ($this->getID() !== null) { - $e->setAttribute('ID', $this->getID()); + if ($this->ID !== null) { + $e->setAttribute('ID', $this->ID); } - if ($this->getValidUntil() !== null) { - $e->setAttribute('validUntil', gmdate('Y-m-d\TH:i:s\Z', $this->getValidUntil())); + if ($this->validUntil !== null) { + $e->setAttribute('validUntil', gmdate('Y-m-d\TH:i:s\Z', $this->validUntil)); } - if ($this->getCacheDuration() !== null) { - $e->setAttribute('cacheDuration', $this->getCacheDuration()); + if ($this->cacheDuration !== null) { + $e->setAttribute('cacheDuration', $this->cacheDuration); } - $e->setAttribute('protocolSupportEnumeration', implode(' ', $this->getProtocolSupportEnumeration())); + $e->setAttribute('protocolSupportEnumeration', implode(' ', $this->protocolSupportEnumeration)); - if ($this->getErrorURL() !== null) { - $e->setAttribute('errorURL', $this->getErrorURL()); + if ($this->errorURL !== null) { + $e->setAttribute('errorURL', $this->errorURL); } - Extensions::addList($e, $this->getExtensions()); + Extensions::addList($e, $this->Extensions); - foreach ($this->getKeyDescriptor() as $kd) { + foreach ($this->KeyDescriptor as $kd) { $kd->toXML($e); } - if ($this->getOrganization() !== null) { - $this->getOrganization()->toXML($e); + if ($this->Organization !== null) { + $this->Organization->toXML($e); } - foreach ($this->getContactPerson() as $cp) { + foreach ($this->ContactPerson as $cp) { $cp->toXML($e); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/SPSSODescriptor.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/SPSSODescriptor.php index 5cc9fc9986854650f1d8743b4d6ba34ea3c62f9a..4d27270efb9f6900b484b637e8e57df3a8e1f424 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/SPSSODescriptor.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/SPSSODescriptor.php @@ -1,9 +1,12 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\md; +use DOMElement; + use SAML2\Utils; -use Webmozart\Assert\Assert; /** * Class representing SAML 2 SPSSODescriptor. @@ -17,14 +20,14 @@ class SPSSODescriptor extends SSODescriptorType * * @var bool|null */ - public $AuthnRequestsSigned = null; + private $AuthnRequestsSigned = null; /** * Whether this SP wants the Assertion elements to be signed. * * @var bool|null */ - public $WantAssertionsSigned = null; + private $WantAssertionsSigned = null; /** * List of AssertionConsumerService endpoints for this SP. @@ -33,7 +36,7 @@ class SPSSODescriptor extends SSODescriptorType * * @var \SAML2\XML\md\IndexedEndpointType[] */ - public $AssertionConsumerService = []; + private $AssertionConsumerService = []; /** * List of AttributeConsumingService descriptors for this SP. @@ -42,7 +45,7 @@ class SPSSODescriptor extends SSODescriptorType * * @var \SAML2\XML\md\AttributeConsumingService[] */ - public $AttributeConsumingService = []; + private $AttributeConsumingService = []; /** @@ -50,7 +53,7 @@ class SPSSODescriptor extends SSODescriptorType * * @param \DOMElement|null $xml The XML element we should load. */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { parent::__construct('md:SPSSODescriptor', $xml); @@ -58,24 +61,27 @@ public function __construct(\DOMElement $xml = null) return; } - $this->setAuthnRequestsSigned(Utils::parseBoolean($xml, 'AuthnRequestsSigned', null)); - $this->setWantAssertionsSigned(Utils::parseBoolean($xml, 'WantAssertionsSigned', null)); + $this->AuthnRequestsSigned = Utils::parseBoolean($xml, 'AuthnRequestsSigned', null); + $this->WantAssertionsSigned = Utils::parseBoolean($xml, 'WantAssertionsSigned', null); + /** @var \DOMElement $ep */ foreach (Utils::xpQuery($xml, './saml_metadata:AssertionConsumerService') as $ep) { - $this->addAssertionConsumerService(new IndexedEndpointType($ep)); + $this->AssertionConsumerService[] = new IndexedEndpointType($ep); } + /** @var \DOMElement $acs */ foreach (Utils::xpQuery($xml, './saml_metadata:AttributeConsumingService') as $acs) { - $this->addAttributeConsumingService(new AttributeConsumingService($acs)); + $this->AttributeConsumingService[] = new AttributeConsumingService($acs); } } /** * Collect the value of the AuthnRequestsSigned-property + * * @return bool|null */ - public function getAuthnRequestsSigned() + public function getAuthnRequestsSigned() : ?bool { return $this->AuthnRequestsSigned; } @@ -83,21 +89,22 @@ public function getAuthnRequestsSigned() /** * Set the value of the AuthnRequestsSigned-property + * * @param bool|null $flag * @return void */ - public function setAuthnRequestsSigned($flag = null) + public function setAuthnRequestsSigned(bool $flag = null) : void { - Assert::nullOrBoolean($flag); $this->AuthnRequestsSigned = $flag; } /** * Collect the value of the WantAssertionsSigned-property + * * @return bool|null */ - public function wantAssertionsSigned() + public function wantAssertionsSigned() : ?bool { return $this->WantAssertionsSigned; } @@ -105,21 +112,22 @@ public function wantAssertionsSigned() /** * Set the value of the WantAssertionsSigned-property + * * @param bool|null $flag * @return void */ - public function setWantAssertionsSigned($flag = null) + public function setWantAssertionsSigned(bool $flag = null) : void { - Assert::nullOrBoolean($flag); $this->WantAssertionsSigned = $flag; } /** * Collect the value of the AssertionConsumerService-property + * * @return array */ - public function getAssertionConsumerService() + public function getAssertionConsumerService() : array { return $this->AssertionConsumerService; } @@ -127,10 +135,11 @@ public function getAssertionConsumerService() /** * Set the value of the AssertionConsumerService-property + * * @param array $acs * @return void */ - public function setAssertionConsumerService(array $acs) + public function setAssertionConsumerService(array $acs) : void { $this->AssertionConsumerService = $acs; } @@ -138,10 +147,11 @@ public function setAssertionConsumerService(array $acs) /** * Add the value to the AssertionConsumerService-property + * * @param \SAML2\XML\md\IndexedEndpointType $acs * @return void */ - public function addAssertionConsumerService(IndexedEndpointType $acs) + public function addAssertionConsumerService(IndexedEndpointType $acs) : void { $this->AssertionConsumerService[] = $acs; } @@ -149,9 +159,10 @@ public function addAssertionConsumerService(IndexedEndpointType $acs) /** * Collect the value of the AttributeConsumingService-property + * * @return array */ - public function getAttributeConsumingService() + public function getAttributeConsumingService() : array { return $this->AttributeConsumingService; } @@ -159,10 +170,11 @@ public function getAttributeConsumingService() /** * Add the value to the AttributeConsumingService-property + * * @param \SAML2\XML\md\AttributeConsumingService $acs * @return void */ - public function addAttributeConsumingService(AttributeConsumingService $acs) + public function addAttributeConsumingService(AttributeConsumingService $acs) : void { $this->AttributeConsumingService[] = $acs; } @@ -170,10 +182,11 @@ public function addAttributeConsumingService(AttributeConsumingService $acs) /** * Set the value of the AttributeConsumingService-property + * * @param array $acs * @return void */ - public function setAttributeConsumingService(array $acs) + public function setAttributeConsumingService(array $acs) : void { $this->AttributeConsumingService = $acs; } @@ -185,32 +198,23 @@ public function setAttributeConsumingService(array $acs) * @param \DOMElement $parent The EntityDescriptor we should append this SPSSODescriptor to. * @return \DOMElement */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::nullOrBoolean($this->getAuthnRequestsSigned()); - Assert::nullOrBoolean($this->wantAssertionsSigned()); - Assert::isArray($this->getAssertionConsumerService()); - Assert::isArray($this->getAttributeConsumingService()); - $e = parent::toXML($parent); - if ($this->getAuthnRequestsSigned() === true) { - $e->setAttribute('AuthnRequestsSigned', 'true'); - } elseif ($this->getAuthnRequestsSigned() === false) { - $e->setAttribute('AuthnRequestsSigned', 'false'); + if (is_bool($this->AuthnRequestsSigned)) { + $e->setAttribute('AuthnRequestsSigned', $this->AuthnRequestsSigned ? 'true' : 'false'); } - if ($this->wantAssertionsSigned() === true) { - $e->setAttribute('WantAssertionsSigned', 'true'); - } elseif ($this->wantAssertionsSigned() === false) { - $e->setAttribute('WantAssertionsSigned', 'false'); + if (is_bool($this->WantAssertionsSigned)) { + $e->setAttribute('WantAssertionsSigned', $this->WantAssertionsSigned ? 'true' : 'false'); } - foreach ($this->getAssertionConsumerService() as $ep) { + foreach ($this->AssertionConsumerService as $ep) { $ep->toXML($e, 'md:AssertionConsumerService'); } - foreach ($this->getAttributeConsumingService() as $acs) { + foreach ($this->AttributeConsumingService as $acs) { $acs->toXML($e); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/SSODescriptorType.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/SSODescriptorType.php index 3477ee895db4d72d37d1a1f0c0b4b7a3fc67ee21..ff179b1a75bee65f84005d3f230b4aeb92d95a5a 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/SSODescriptorType.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/SSODescriptorType.php @@ -1,10 +1,13 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\md; +use DOMElement; + use SAML2\Constants; use SAML2\Utils; -use Webmozart\Assert\Assert; /** * Class representing SAML 2 SSODescriptorType. @@ -20,7 +23,7 @@ abstract class SSODescriptorType extends RoleDescriptor * * @var \SAML2\XML\md\IndexedEndpointType[] */ - public $ArtifactResolutionService = []; + private $ArtifactResolutionService = []; /** * List of SingleLogoutService endpoints. @@ -29,7 +32,7 @@ abstract class SSODescriptorType extends RoleDescriptor * * @var \SAML2\XML\md\EndpointType[] */ - public $SingleLogoutService = []; + private $SingleLogoutService = []; /** * List of ManageNameIDService endpoints. @@ -38,7 +41,7 @@ abstract class SSODescriptorType extends RoleDescriptor * * @var \SAML2\XML\md\EndpointType[] */ - public $ManageNameIDService = []; + private $ManageNameIDService = []; /** * List of supported NameID formats. @@ -47,33 +50,34 @@ abstract class SSODescriptorType extends RoleDescriptor * * @var string[] */ - public $NameIDFormat = []; + private $NameIDFormat = []; /** * Initialize a SSODescriptor. * - * @param string $elementName The name of this element. - * @param \DOMElement|null $xml The XML element we should load. + * @param string $elementName The name of this element. + * @param \DOMElement|null $xml The XML element we should load. */ - protected function __construct($elementName, \DOMElement $xml = null) + protected function __construct(string $elementName, DOMElement $xml = null) { - Assert::string($elementName); - parent::__construct($elementName, $xml); if ($xml === null) { return; } + /** @var \DOMElement $ep */ foreach (Utils::xpQuery($xml, './saml_metadata:ArtifactResolutionService') as $ep) { $this->addArtifactResolutionService(new IndexedEndpointType($ep)); } + /** @var \DOMElement $ep */ foreach (Utils::xpQuery($xml, './saml_metadata:SingleLogoutService') as $ep) { $this->addSingleLogoutService(new EndpointType($ep)); } + /** @var \DOMElement $ep */ foreach (Utils::xpQuery($xml, './saml_metadata:ManageNameIDService') as $ep) { $this->addManageNameIDService(new EndpointType($ep)); } @@ -84,9 +88,10 @@ protected function __construct($elementName, \DOMElement $xml = null) /** * Collect the value of the ArtifactResolutionService-property + * * @return \SAML2\XML\md\IndexedEndpointType[] */ - public function getArtifactResolutionService() + public function getArtifactResolutionService() : array { return $this->ArtifactResolutionService; } @@ -94,10 +99,11 @@ public function getArtifactResolutionService() /** * Set the value of the ArtifactResolutionService-property + * * @param \SAML2\XML\md\IndexedEndpointType[] $artifactResolutionService * @return void */ - public function setArtifactResolutionService(array $artifactResolutionService) + public function setArtifactResolutionService(array $artifactResolutionService) : void { $this->ArtifactResolutionService = $artifactResolutionService; } @@ -105,21 +111,22 @@ public function setArtifactResolutionService(array $artifactResolutionService) /** * Add the value to the ArtifactResolutionService-property + * * @param \SAML2\XML\md\IndexedEndpointType $artifactResolutionService * @return void */ - public function addArtifactResolutionService(IndexedEndpointType $artifactResolutionService) + public function addArtifactResolutionService(IndexedEndpointType $artifactResolutionService) : void { - Assert::isInstanceOf($artifactResolutionService, IndexedEndpointType::class); $this->ArtifactResolutionService[] = $artifactResolutionService; } /** * Collect the value of the SingleLogoutService-property + * * @return \SAML2\XML\md\EndpointType[] */ - public function getSingleLogoutService() + public function getSingleLogoutService() : array { return $this->SingleLogoutService; } @@ -127,10 +134,11 @@ public function getSingleLogoutService() /** * Set the value of the SingleLogoutService-property + * * @param \SAML2\XML\md\EndpointType[] $singleLogoutService * @return void */ - public function setSingleLogoutService(array $singleLogoutService) + public function setSingleLogoutService(array $singleLogoutService) : void { $this->SingleLogoutService = $singleLogoutService; } @@ -138,21 +146,22 @@ public function setSingleLogoutService(array $singleLogoutService) /** * Add the value to the SingleLogoutService-property + * * @param \SAML2\XML\md\EndpointType $singleLogoutService * @return void */ - public function addSingleLogoutService(EndpointType $singleLogoutService) + public function addSingleLogoutService(EndpointType $singleLogoutService) : void { - Assert::isInstanceOf($singleLogoutService, EndpointType::class); $this->SingleLogoutService[] = $singleLogoutService; } /** * Collect the value of the ManageNameIDService-property + * * @return \SAML2\XML\md\EndpointType[] */ - public function getManageNameIDService() + public function getManageNameIDService() : array { return $this->ManageNameIDService; } @@ -160,10 +169,11 @@ public function getManageNameIDService() /** * Set the value of the ManageNameIDService-property + * * @param \SAML2\XML\md\EndpointType[] $manageNameIDService * @return void */ - public function setManageNameIDService(array $manageNameIDService) + public function setManageNameIDService(array $manageNameIDService) : void { $this->ManageNameIDService = $manageNameIDService; } @@ -171,21 +181,22 @@ public function setManageNameIDService(array $manageNameIDService) /** * Add the value to the ManageNameIDService-property + * * @param \SAML2\XML\md\EndpointType $manageNameIDService * @return void */ - public function addManageNameIDService(EndpointType $manageNameIDService) + public function addManageNameIDService(EndpointType $manageNameIDService) : void { - Assert::isInstanceOf($manageNameIDService, EndpointType::class); $this->ManageNameIDService[] = $manageNameIDService; } /** * Collect the value of the NameIDFormat-property + * * @return string[] */ - public function getNameIDFormat() + public function getNameIDFormat() : array { return $this->NameIDFormat; } @@ -193,10 +204,11 @@ public function getNameIDFormat() /** * Set the value of the NameIDFormat-property + * * @param string[] $nameIDFormat * @return void */ - public function setNameIDFormat(array $nameIDFormat) + public function setNameIDFormat(array $nameIDFormat) : void { $this->NameIDFormat = $nameIDFormat; } @@ -208,28 +220,23 @@ public function setNameIDFormat(array $nameIDFormat) * @param \DOMElement $parent The EntityDescriptor we should append this SSODescriptorType to. * @return \DOMElement The generated SSODescriptor DOMElement. */ - protected function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::isArray($this->getArtifactResolutionService()); - Assert::isArray($this->getSingleLogoutService()); - Assert::isArray($this->getManageNameIDService()); - Assert::isArray($this->getNameIDFormat()); - $e = parent::toXML($parent); - foreach ($this->getArtifactResolutionService() as $ep) { + foreach ($this->ArtifactResolutionService as $ep) { $ep->toXML($e, 'md:ArtifactResolutionService'); } - foreach ($this->getSingleLogoutService() as $ep) { + foreach ($this->SingleLogoutService as $ep) { $ep->toXML($e, 'md:SingleLogoutService'); } - foreach ($this->getManageNameIDService() as $ep) { + foreach ($this->ManageNameIDService as $ep) { $ep->toXML($e, 'md:ManageNameIDService'); } - Utils::addStrings($e, Constants::NS_MD, 'md:NameIDFormat', false, $this->getNameIDFormat()); + Utils::addStrings($e, Constants::NS_MD, 'md:NameIDFormat', false, $this->NameIDFormat); return $e; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/UnknownRoleDescriptor.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/UnknownRoleDescriptor.php index c530d88d672c009b25a0a269b74df8ee171637c0..ccb7c2b14f3aa50099c22c556027a91f01051584 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/md/UnknownRoleDescriptor.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/md/UnknownRoleDescriptor.php @@ -1,7 +1,11 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\md; +use DOMElement; + use SAML2\XML\Chunk; /** @@ -24,7 +28,7 @@ class UnknownRoleDescriptor extends RoleDescriptor * * @param \DOMElement $xml The XML element we should load. */ - public function __construct(\DOMElement $xml) + public function __construct(DOMElement $xml) { parent::__construct('md:RoleDescriptor', $xml); @@ -36,10 +40,10 @@ public function __construct(\DOMElement $xml) * Add this RoleDescriptor to an EntityDescriptor. * * @param \DOMElement $parent The EntityDescriptor we should append this RoleDescriptor to. - * @return void + * @return \DOMElement */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - $this->xml->toXML($parent); + return $this->xml->toXML($parent); } } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/mdattr/EntityAttributes.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/mdattr/EntityAttributes.php index bad38df95518b8c6f67991c8d47694dc0de26018..2131170f3b28d24ced1a1aba374c835e486969c4 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/mdattr/EntityAttributes.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/mdattr/EntityAttributes.php @@ -1,11 +1,15 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\mdattr; +use DOMElement; +use Webmozart\Assert\Assert; + use SAML2\Utils; use SAML2\XML\Chunk; use SAML2\XML\saml\Attribute; -use Webmozart\Assert\Assert; /** * Class for handling the EntityAttributes metadata extension. @@ -27,7 +31,7 @@ class EntityAttributes * * @var (\SAML2\XML\saml\Attribute|\SAML2\XML\Chunk)[] */ - public $children; + private $children = []; /** @@ -35,17 +39,18 @@ class EntityAttributes * * @param \DOMElement|null $xml The XML element we should load. */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { if ($xml === null) { return; } + /** @var \DOMElement $node */ foreach (Utils::xpQuery($xml, './saml_assertion:Attribute|./saml_assertion:Assertion') as $node) { if ($node->localName === 'Attribute') { - $this->addChildren(new Attribute($node)); + $this->children[] = new Attribute($node); } else { - $this->addChildren(new Chunk($node)); + $this->children[] = new Chunk($node); } } } @@ -53,9 +58,10 @@ public function __construct(\DOMElement $xml = null) /** * Collect the value of the children-property + * * @return (\SAML2\XML\Chunk|\SAML2\XML\saml\Attribute)[] */ - public function getChildren() + public function getChildren() : array { return $this->children; } @@ -63,10 +69,11 @@ public function getChildren() /** * Set the value of the childen-property + * * @param array $children * @return void */ - public function setChildren(array $children) + public function setChildren(array $children) : void { $this->children = $children; } @@ -74,10 +81,11 @@ public function setChildren(array $children) /** * Add the value to the children-property + * * @param \SAML2\XML\Chunk|\SAML2\XML\saml\Attribute $child * @return void */ - public function addChildren($child) + public function addChildren($child) : void { Assert::isInstanceOfAny($child, [Chunk::class, Attribute::class]); $this->children[] = $child; @@ -90,17 +98,15 @@ public function addChildren($child) * @param \DOMElement $parent The element we should append to. * @return \DOMElement */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::isArray($this->getChildren()); - $doc = $parent->ownerDocument; $e = $doc->createElementNS(EntityAttributes::NS, 'mdattr:EntityAttributes'); $parent->appendChild($e); /** @var \SAML2\XML\saml\Attribute|\SAML2\XML\Chunk $child */ - foreach ($this->getChildren() as $child) { + foreach ($this->children as $child) { $child->toXML($e); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/mdrpi/Common.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/mdrpi/Common.php index 2641120128bb78ba153bd40645592608f1ca2775..f80a858253c59e52a01a38e5eb66233ef283b7d8 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/mdrpi/Common.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/mdrpi/Common.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\mdrpi; /** diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/mdrpi/PublicationInfo.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/mdrpi/PublicationInfo.php index 54e6217e9141e52ab09735879e2ad40ba64a9ad4..b8e87cb2ed03374b89744547cf2f9458c8239e2c 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/mdrpi/PublicationInfo.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/mdrpi/PublicationInfo.php @@ -1,10 +1,14 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\mdrpi; -use SAML2\Utils; +use DOMElement; use Webmozart\Assert\Assert; +use SAML2\Utils; + /** * Class for handling the mdrpi:PublicationInfo element. * @@ -18,21 +22,21 @@ class PublicationInfo * * @var string */ - public $publisher; + private $publisher = ''; /** * The creation timestamp for the metadata, as a UNIX timestamp. * * @var int|null */ - public $creationInstant; + private $creationInstant = null; /** * Identifier for this metadata publication. * * @var string|null */ - public $publicationId; + private $publicationId = null; /** * Link to usage policy for this metadata. @@ -41,7 +45,7 @@ class PublicationInfo * * @var array */ - public $UsagePolicy = []; + private $UsagePolicy = []; /** @@ -50,7 +54,7 @@ class PublicationInfo * @param \DOMElement|null $xml The XML element we should load. * @throws \Exception */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { if ($xml === null) { return; @@ -59,25 +63,26 @@ public function __construct(\DOMElement $xml = null) if (!$xml->hasAttribute('publisher')) { throw new \Exception('Missing required attribute "publisher" in mdrpi:PublicationInfo element.'); } - $this->setPublisher($xml->getAttribute('publisher')); + $this->publisher = $xml->getAttribute('publisher'); if ($xml->hasAttribute('creationInstant')) { - $this->setCreationInstant(Utils::xsDateTimeToTimestamp($xml->getAttribute('creationInstant'))); + $this->creationInstant = Utils::xsDateTimeToTimestamp($xml->getAttribute('creationInstant')); } if ($xml->hasAttribute('publicationId')) { - $this->setPublicationId($xml->getAttribute('publicationId')); + $this->publicationId = $xml->getAttribute('publicationId'); } - $this->setUsagePolicy(Utils::extractLocalizedStrings($xml, Common::NS_MDRPI, 'UsagePolicy')); + $this->UsagePolicy = Utils::extractLocalizedStrings($xml, Common::NS_MDRPI, 'UsagePolicy'); } /** * Collect the value of the publisher-property + * * @return string */ - public function getPublisher() + public function getPublisher() : string { return $this->publisher; } @@ -85,9 +90,10 @@ public function getPublisher() /** * Collect the value of the creationInstant-property + * * @return int|null */ - public function getCreationInstant() + public function getCreationInstant() : ?int { return $this->creationInstant; } @@ -95,9 +101,10 @@ public function getCreationInstant() /** * Collect the value of the publicationId-property + * * @return string|null */ - public function getPublicationId() + public function getPublicationId() : ?string { return $this->publicationId; } @@ -105,9 +112,10 @@ public function getPublicationId() /** * Collect the value of the UsagePolicy-property + * * @return array */ - public function getUsagePolicy() + public function getUsagePolicy() : array { return $this->UsagePolicy; } @@ -115,46 +123,47 @@ public function getUsagePolicy() /** * Set the value of the publisher-property + * * @param string $publisher * @return void */ - public function setPublisher($publisher) + public function setPublisher(string $publisher) : void { - Assert::string($publisher); $this->publisher = $publisher; } /** * Set the value of the creationInstant-property + * * @param int|null $creationInstant * @return void */ - public function setCreationInstant($creationInstant = null) + public function setCreationInstant(int $creationInstant = null) : void { - Assert::nullOrInteger($creationInstant); $this->creationInstant = $creationInstant; } /** * Set the value of the publicationId-property + * * @param string|null $publicationId * @return void */ - public function setPublicationId($publicationId = null) + public function setPublicationId(string $publicationId = null) : void { - Assert::nullOrString($publicationId); $this->publicationId = $publicationId; } /** * Set the value of the UsagePolicy-property + * * @param array $usagePolicy * @return void */ - public function setUsagePolicy(array $usagePolicy) + public function setUsagePolicy(array $usagePolicy) : void { $this->UsagePolicy = $usagePolicy; } @@ -166,29 +175,26 @@ public function setUsagePolicy(array $usagePolicy) * @param \DOMElement $parent The element we should append to. * @return \DOMElement */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::string($this->getPublisher()); - Assert::nullOrInteger($this->getCreationInstant()); - Assert::nullOrString($this->getPublicationId()); - Assert::isArray($this->getUsagePolicy()); + Assert::notEmpty($this->publisher, "Cannot convert PublicationInfo to XML without a publisher set."); $doc = $parent->ownerDocument; $e = $doc->createElementNS(Common::NS_MDRPI, 'mdrpi:PublicationInfo'); $parent->appendChild($e); - $e->setAttribute('publisher', $this->getPublisher()); + $e->setAttribute('publisher', $this->publisher); - if ($this->getCreationInstant() !== null) { - $e->setAttribute('creationInstant', gmdate('Y-m-d\TH:i:s\Z', $this->getCreationInstant())); + if ($this->creationInstant !== null) { + $e->setAttribute('creationInstant', gmdate('Y-m-d\TH:i:s\Z', $this->creationInstant)); } - if ($this->getPublicationId() !== null) { - $e->setAttribute('publicationId', $this->getPublicationId()); + if ($this->publicationId !== null) { + $e->setAttribute('publicationId', $this->publicationId); } - Utils::addStrings($e, Common::NS_MDRPI, 'mdrpi:UsagePolicy', true, $this->getUsagePolicy()); + Utils::addStrings($e, Common::NS_MDRPI, 'mdrpi:UsagePolicy', true, $this->UsagePolicy); return $e; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/mdrpi/RegistrationInfo.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/mdrpi/RegistrationInfo.php index e59c1348473c8d883231d22f4b58937a73f297b1..ea2ee751c4f82cc8b19507fdfe13ea5fe67d63de 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/mdrpi/RegistrationInfo.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/mdrpi/RegistrationInfo.php @@ -1,9 +1,12 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\mdrpi; +use DOMElement; + use SAML2\Utils; -use Webmozart\Assert\Assert; /** * Class for handling the mdrpi:RegistrationInfo element. @@ -16,16 +19,16 @@ class RegistrationInfo /** * The identifier of the metadata registration authority. * - * @var string + * @var string|null */ - public $registrationAuthority; + private $registrationAuthority = null; /** * The registration timestamp for the metadata, as a UNIX timestamp. * * @var int|null */ - public $registrationInstant; + private $registrationInstant = null; /** * Link to registration policy for this metadata. @@ -34,7 +37,7 @@ class RegistrationInfo * * @var array */ - public $RegistrationPolicy = []; + private $RegistrationPolicy = []; /** @@ -43,85 +46,91 @@ class RegistrationInfo * @param \DOMElement|null $xml The XML element we should load. * @throws \Exception */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { if ($xml === null) { return; } if (!$xml->hasAttribute('registrationAuthority')) { - throw new \Exception('Missing required attribute "registrationAuthority" in mdrpi:RegistrationInfo element.'); + throw new \Exception( + 'Missing required attribute "registrationAuthority" in mdrpi:RegistrationInfo element.' + ); } - $this->setRegistrationAuthority($xml->getAttribute('registrationAuthority')); + $this->registrationAuthority = $xml->getAttribute('registrationAuthority'); if ($xml->hasAttribute('registrationInstant')) { - $this->setRegistrationInstant(Utils::xsDateTimeToTimestamp($xml->getAttribute('registrationInstant'))); + $this->registrationInstant = Utils::xsDateTimeToTimestamp($xml->getAttribute('registrationInstant')); } - $this->setRegistrationPolicy(Utils::extractLocalizedStrings($xml, Common::NS_MDRPI, 'RegistrationPolicy')); + $this->RegistrationPolicy = Utils::extractLocalizedStrings($xml, Common::NS_MDRPI, 'RegistrationPolicy'); } /** - * Collect the value of the RegistrationAuthority-property - * @return string + * Collect the value of the RegistrationAuthority property + * + * @return string|null */ - public function getRegistrationAuthority() + public function getRegistrationAuthority() : ?string { return $this->registrationAuthority; } /** - * Set the value of the registrationAuthority-property + * Set the value of the registrationAuthority property + * * @param string $registrationAuthority * @return void */ - public function setRegistrationAuthority($registrationAuthority) + public function setRegistrationAuthority(string $registrationAuthority) : void { - Assert::string($registrationAuthority); $this->registrationAuthority = $registrationAuthority; } /** - * Collect the value of the registrationInstant-property + * Collect the value of the registrationInstant property + * * @return int|null */ - public function getRegistrationInstant() + public function getRegistrationInstant() : ?int { return $this->registrationInstant; } /** - * Set the value of the registrationInstant-property + * Set the value of the registrationInstant property + * * @param int|null $registrationInstant * @return void */ - public function setRegistrationInstant($registrationInstant = null) + public function setRegistrationInstant(int $registrationInstant = null) : void { - Assert::nullOrInteger($registrationInstant); $this->registrationInstant = $registrationInstant; } /** - * Collect the value of the RegistrationPolicy-property + * Collect the value of the RegistrationPolicy property + * * @return array */ - public function getRegistrationPolicy() + public function getRegistrationPolicy() : array { return $this->RegistrationPolicy; } /** - * Set the value of the RegistrationPolicy-property + * Set the value of the RegistrationPolicy property + * * @param array $registrationPolicy * @return void */ - public function setRegistrationPolicy(array $registrationPolicy) + public function setRegistrationPolicy(array $registrationPolicy) : void { $this->RegistrationPolicy = $registrationPolicy; } @@ -133,14 +142,9 @@ public function setRegistrationPolicy(array $registrationPolicy) * @param \DOMElement $parent The element we should append to. * @return \DOMElement */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::string($this->getRegistrationAuthority()); - Assert::nullOrInteger($this->getRegistrationInstant()); - Assert::isArray($this->getRegistrationPolicy()); - - $registrationAuthority = $this->getRegistrationAuthority(); - if (empty($registrationAuthority)) { + if (empty($this->registrationAuthority)) { throw new \Exception('Missing required registration authority.'); } @@ -149,13 +153,13 @@ public function toXML(\DOMElement $parent) $e = $doc->createElementNS(Common::NS_MDRPI, 'mdrpi:RegistrationInfo'); $parent->appendChild($e); - $e->setAttribute('registrationAuthority', $this->getRegistrationAuthority()); + $e->setAttribute('registrationAuthority', $this->registrationAuthority); - if ($this->getRegistrationInstant() !== null) { - $e->setAttribute('registrationInstant', gmdate('Y-m-d\TH:i:s\Z', $this->getRegistrationInstant())); + if ($this->registrationInstant !== null) { + $e->setAttribute('registrationInstant', gmdate('Y-m-d\TH:i:s\Z', $this->registrationInstant)); } - Utils::addStrings($e, Common::NS_MDRPI, 'mdrpi:RegistrationPolicy', true, $this->getRegistrationPolicy()); + Utils::addStrings($e, Common::NS_MDRPI, 'mdrpi:RegistrationPolicy', true, $this->RegistrationPolicy); return $e; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/mdui/Common.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/mdui/Common.php index e573f227d16675f768284ae45a155a8f825d8af7..f9b980857bb340d8927c3d8cdfc8221dce42a416 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/mdui/Common.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/mdui/Common.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\mdui; /** diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/mdui/DiscoHints.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/mdui/DiscoHints.php index 43392cd9f12f9e4b210bfddf673d40c8f8fb03b0..728fb53c16fcc4ec19d028937993e7d7d6ad5e30 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/mdui/DiscoHints.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/mdui/DiscoHints.php @@ -1,10 +1,13 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\mdui; +use DOMElement; + use SAML2\Utils; use SAML2\XML\Chunk; -use Webmozart\Assert\Assert; /** * Class for handling the metadata extensions for login and discovery user interface @@ -21,28 +24,28 @@ class DiscoHints * * @var \SAML2\XML\Chunk[] */ - public $children = []; + private $children = []; /** * The IPHint, as an array of strings. * * @var string[] */ - public $IPHint = []; + private $IPHint = []; /** * The DomainHint, as an array of strings. * * @var string[] */ - public $DomainHint = []; + private $DomainHint = []; /** * The GeolocationHint, as an array of strings. * * @var string[] */ - public $GeolocationHint = []; + private $GeolocationHint = []; /** @@ -50,27 +53,29 @@ class DiscoHints * * @param \DOMElement|null $xml The XML element we should load. */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { if ($xml === null) { return; } - $this->setIPHint(Utils::extractStrings($xml, Common::NS, 'IPHint')); - $this->setDomainHint(Utils::extractStrings($xml, Common::NS, 'DomainHint')); - $this->setGeolocationHint(Utils::extractStrings($xml, Common::NS, 'GeolocationHint')); + $this->IPHint = Utils::extractStrings($xml, Common::NS, 'IPHint'); + $this->DomainHint = Utils::extractStrings($xml, Common::NS, 'DomainHint'); + $this->GeolocationHint = Utils::extractStrings($xml, Common::NS, 'GeolocationHint'); + /** @var \DOMElement $node */ foreach (Utils::xpQuery($xml, "./*[namespace-uri()!='".Common::NS."']") as $node) { - $this->addChildren(new Chunk($node)); + $this->children[] = new Chunk($node); } } /** * Collect the value of the IPHint-property + * * @return string[] */ - public function getIPHint() + public function getIPHint() : array { return $this->IPHint; } @@ -78,10 +83,11 @@ public function getIPHint() /** * Set the value of the IPHint-property + * * @param string[] $hints * @return void */ - public function setIPHint(array $hints) + public function setIPHint(array $hints) : void { $this->IPHint = $hints; } @@ -89,9 +95,10 @@ public function setIPHint(array $hints) /** * Collect the value of the DomainHint-property + * * @return string[] */ - public function getDomainHint() + public function getDomainHint() : array { return $this->DomainHint; } @@ -99,10 +106,11 @@ public function getDomainHint() /** * Set the value of the DomainHint-property + * * @param string[] $hints * @return void */ - public function setDomainHint(array $hints) + public function setDomainHint(array $hints) : void { $this->DomainHint = $hints; } @@ -110,9 +118,10 @@ public function setDomainHint(array $hints) /** * Collect the value of the GeolocationHint-property + * * @return string[] */ - public function getGeolocationHint() + public function getGeolocationHint() : array { return $this->GeolocationHint; } @@ -120,10 +129,11 @@ public function getGeolocationHint() /** * Set the value of the GeolocationHint-property + * * @param string[] $hints * @return void */ - public function setGeolocationHint(array $hints) + public function setGeolocationHint(array $hints) : void { $this->GeolocationHint = $hints; } @@ -131,9 +141,10 @@ public function setGeolocationHint(array $hints) /** * Collect the value of the children-property + * * @return \SAML2\XML\Chunk[] */ - public function getChildren() + public function getChildren() : array { return $this->children; } @@ -141,10 +152,11 @@ public function getChildren() /** * Set the value of the childen-property + * * @param array $children * @return void */ - public function setChildren(array $children) + public function setChildren(array $children) : void { $this->children = $children; } @@ -152,12 +164,12 @@ public function setChildren(array $children) /** * Add the value to the children-property + * * @param \SAML2\XML\Chunk $child * @return void */ - public function addChildren(Chunk $child) + public function addChildren(Chunk $child) : void { - Assert::isInstanceOf($child, Chunk::class); $this->children[] = $child; } @@ -168,31 +180,25 @@ public function addChildren(Chunk $child) * @param \DOMElement $parent The element we should append to. * @return \DOMElement|null */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : ?DOMElement { - Assert::isArray($IPHint = $this->getIPHint()); - Assert::isArray($DomainHint = $this->getDomainHint()); - Assert::isArray($GeolocationHint = $this->getGeolocationHint()); - Assert::isArray($children = $this->getChildren()); - - if (!empty($IPHint) - || !empty($DomainHint) - || !empty($GeolocationHint) - || !empty($children)) { + if (!empty($this->IPHint) + || !empty($this->DomainHint) + || !empty($this->GeolocationHint) + || !empty($this->children) + ) { $doc = $parent->ownerDocument; $e = $doc->createElementNS(Common::NS, 'mdui:DiscoHints'); $parent->appendChild($e); - if (!empty($children)) { - foreach ($this->getChildren() as $child) { - $child->toXML($e); - } + foreach ($this->getChildren() as $child) { + $child->toXML($e); } - Utils::addStrings($e, Common::NS, 'mdui:IPHint', false, $this->getIPHint()); - Utils::addStrings($e, Common::NS, 'mdui:DomainHint', false, $this->getDomainHint()); - Utils::addStrings($e, Common::NS, 'mdui:GeolocationHint', false, $this->getGeolocationHint()); + Utils::addStrings($e, Common::NS, 'mdui:IPHint', false, $this->IPHint); + Utils::addStrings($e, Common::NS, 'mdui:DomainHint', false, $this->DomainHint); + Utils::addStrings($e, Common::NS, 'mdui:GeolocationHint', false, $this->GeolocationHint); return $e; } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/mdui/Keywords.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/mdui/Keywords.php index 33fc3688875baf7c5b6ea5cb2e3fa9afebff2c68..c79c9e5988c9ca1b2fe8dbffe9e41c846efce912 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/mdui/Keywords.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/mdui/Keywords.php @@ -1,7 +1,10 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\mdui; +use DOMElement; use Webmozart\Assert\Assert; /** @@ -19,14 +22,14 @@ class Keywords * * @var string[] */ - public $Keywords; + private $Keywords = []; /** * The language of this item. * - * @var string|null + * @var string */ - public $lang; + private $lang = ''; /** @@ -35,7 +38,7 @@ class Keywords * @param \DOMElement|null $xml The XML element we should load. * @throws \Exception */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { if ($xml === null) { return; @@ -44,22 +47,22 @@ public function __construct(\DOMElement $xml = null) if (!$xml->hasAttribute('xml:lang')) { throw new \Exception('Missing lang on Keywords.'); } - if (!is_string($xml->textContent) || !strlen($xml->textContent)) { + if (!strlen($xml->textContent)) { throw new \Exception('Missing value for Keywords.'); } - $this->setKeywords([]); foreach (explode(' ', $xml->textContent) as $keyword) { - $this->addKeyword(str_replace('+', ' ', $keyword)); + $this->Keywords[] = str_replace('+', ' ', $keyword); } - $this->setLanguage($xml->getAttribute('xml:lang')); + $this->lang = $xml->getAttribute('xml:lang'); } /** * Collect the value of the lang-property - * @return string|null + * + * @return string */ - public function getLanguage() + public function getLanguage() : string { return $this->lang; } @@ -67,21 +70,22 @@ public function getLanguage() /** * Set the value of the lang-property + * * @param string $lang * @return void */ - public function setLanguage($lang) + public function setLanguage(string $lang) : void { - Assert::nullOrString($lang); $this->lang = $lang; } /** * Collect the value of the Keywords-property + * * @return string[] */ - public function getKeywords() + public function getKeywords() : array { return $this->Keywords; } @@ -89,10 +93,11 @@ public function getKeywords() /** * Set the value of the Keywords-property + * * @param string[] $keywords * @return void */ - public function setKeywords(array $keywords) + public function setKeywords(array $keywords) : void { $this->Keywords = $keywords; } @@ -100,12 +105,12 @@ public function setKeywords(array $keywords) /** * Add the value to the Keywords-property + * * @param string $keyword * @return void */ - public function addKeyword($keyword) + public function addKeyword(string $keyword) : void { - Assert::string($keyword); $this->Keywords[] = $keyword; } @@ -117,17 +122,16 @@ public function addKeyword($keyword) * @throws \Exception * @return \DOMElement */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::string($this->getLanguage()); - Assert::isArray($this->getKeywords()); + Assert::notEmpty($this->lang, "Cannot convert Keywords to XML without a language set."); $doc = $parent->ownerDocument; $e = $doc->createElementNS(Common::NS, 'mdui:Keywords'); - $e->setAttribute('xml:lang', $this->getLanguage()); + $e->setAttribute('xml:lang', $this->lang); $value = ''; - foreach ($this->getKeywords() as $keyword) { + foreach ($this->Keywords as $keyword) { if (strpos($keyword, "+") !== false) { throw new \Exception('Keywords may not contain a "+" character.'); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/mdui/Logo.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/mdui/Logo.php index dce6e025fa842867d504e07ddf1a4e35c6c60bf9..b680a759b239b786cfb21969f9c12ea45ba9ba3c 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/mdui/Logo.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/mdui/Logo.php @@ -1,8 +1,10 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\mdui; -use Webmozart\Assert\Assert; +use DOMElement; /** * Class for handling the Logo metadata extensions for login and discovery user interface @@ -17,28 +19,28 @@ class Logo * * @var string */ - public $url; + private $url; /** * The width of this logo. * * @var int */ - public $width; + private $width; /** * The height of this logo. * * @var int */ - public $height; + private $height; /** * The language of this item. * - * @var string + * @var string|null */ - public $lang; + private $lang = null; /** @@ -47,7 +49,7 @@ class Logo * @param \DOMElement|null $xml The XML element we should load. * @throws \Exception */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { if ($xml === null) { return; @@ -59,7 +61,7 @@ public function __construct(\DOMElement $xml = null) if (!$xml->hasAttribute('height')) { throw new \Exception('Missing height of Logo.'); } - if (!is_string($xml->textContent) || !strlen($xml->textContent)) { + if (!strlen($xml->textContent)) { throw new \Exception('Missing url value for Logo.'); } $this->setUrl($xml->textContent); @@ -73,9 +75,10 @@ public function __construct(\DOMElement $xml = null) /** * Collect the value of the url-property + * * @return string */ - public function getUrl() + public function getUrl() : string { return $this->url; } @@ -83,11 +86,12 @@ public function getUrl() /** * Set the value of the url-property + * * @param string $url + * @return void */ - public function setUrl($url) + public function setUrl(string $url) : void { - Assert::string($url); if (!filter_var(trim($url), FILTER_VALIDATE_URL) && substr(trim($url), 0, 5) !== 'data:') { throw new \InvalidArgumentException('mdui:Logo is not a valid URL.'); } @@ -97,9 +101,10 @@ public function setUrl($url) /** * Collect the value of the lang-property - * @return string + * + * @return string|null */ - public function getLanguage() + public function getLanguage() : ?string { return $this->lang; } @@ -107,21 +112,22 @@ public function getLanguage() /** * Set the value of the lang-property + * * @param string $lang * @return void */ - public function setLanguage($lang) + public function setLanguage(string $lang) : void { - Assert::string($lang); $this->lang = $lang; } /** * Collect the value of the height-property + * * @return int */ - public function getHeight() + public function getHeight() : int { return $this->height; } @@ -129,21 +135,22 @@ public function getHeight() /** * Set the value of the height-property + * * @param int $height * @return void */ - public function setHeight($height) + public function setHeight(int $height) : void { - Assert::integer($height); $this->height = $height; } /** * Collect the value of the width-property + * * @return int */ - public function getWidth() + public function getWidth() : int { return $this->width; } @@ -151,12 +158,12 @@ public function getWidth() /** * Set the value of the width-property + * * @param int $width * @return void */ - public function setWidth($width) + public function setWidth(int $width) : void { - Assert::integer($width); $this->width = $width; } @@ -167,20 +174,16 @@ public function setWidth($width) * @param \DOMElement $parent The element we should append this Logo to. * @return \DOMElement */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::integer($this->getWidth()); - Assert::integer($this->getHeight()); - Assert::string($this->getUrl()); - $doc = $parent->ownerDocument; $e = $doc->createElementNS(Common::NS, 'mdui:Logo'); - $e->appendChild($doc->createTextNode($this->getUrl())); - $e->setAttribute('width', intval($this->getWidth())); - $e->setAttribute('height', intval($this->getHeight())); - if ($this->getLanguage() !== null) { - $e->setAttribute('xml:lang', $this->getLanguage()); + $e->appendChild($doc->createTextNode($this->url)); + $e->setAttribute('width', strval($this->width)); + $e->setAttribute('height', strval($this->height)); + if ($this->lang !== null) { + $e->setAttribute('xml:lang', $this->lang); } $parent->appendChild($e); diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/mdui/UIInfo.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/mdui/UIInfo.php index 5327d0024c26e4d0d2672be3f1f8cc3719faeb33..4871c95b6ff9ccff4e2bb3df7c62b7e8d00c2bd4 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/mdui/UIInfo.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/mdui/UIInfo.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\mdui; use DOMElement; @@ -22,49 +24,49 @@ class UIInfo * * @var \SAML2\XML\Chunk[] */ - public $children = []; + private $children = []; /** * The DisplayName, as an array of language => translation. * * @var array */ - public $DisplayName = []; + private $DisplayName = []; /** * The Description, as an array of language => translation. * * @var array */ - public $Description = []; + private $Description = []; /** * The InformationURL, as an array of language => url. * * @var array */ - public $InformationURL = []; + private $InformationURL = []; /** * The PrivacyStatementURL, as an array of language => url. * * @var array */ - public $PrivacyStatementURL = []; + private $PrivacyStatementURL = []; /** * The Keywords, as an array of Keywords objects * * @var \SAML2\XML\mdui\Keywords[] */ - public $Keywords = []; + private $Keywords = []; /** * The Logo, as an array of Logo objects * * @var \SAML2\XML\mdui\Logo[] */ - public $Logo = []; + private $Logo = []; /** @@ -72,29 +74,30 @@ class UIInfo * * @param \DOMElement|null $xml The XML element we should load. */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { if ($xml === null) { return; } - $this->setDisplayName(Utils::extractLocalizedStrings($xml, Common::NS, 'DisplayName')); - $this->setDescription(Utils::extractLocalizedStrings($xml, Common::NS, 'Description')); - $this->setInformationURL(Utils::extractLocalizedStrings($xml, Common::NS, 'InformationURL')); - $this->setPrivacyStatementURL(Utils::extractLocalizedStrings($xml, Common::NS, 'PrivacyStatementURL')); + $this->DisplayName = Utils::extractLocalizedStrings($xml, Common::NS, 'DisplayName'); + $this->Description = Utils::extractLocalizedStrings($xml, Common::NS, 'Description'); + $this->InformationURL = Utils::extractLocalizedStrings($xml, Common::NS, 'InformationURL'); + $this->PrivacyStatementURL = Utils::extractLocalizedStrings($xml, Common::NS, 'PrivacyStatementURL'); + /** @var \DOMElement $node */ foreach (Utils::xpQuery($xml, './*') as $node) { if ($node->namespaceURI === Common::NS) { switch ($node->localName) { case 'Keywords': - $this->addKeyword(new Keywords($node)); + $this->Keywords[] = new Keywords($node); break; case 'Logo': - $this->addLogo(new Logo($node)); + $this->Logo[] = new Logo($node); break; } } else { - $this->addChildren(new Chunk($node)); + $this->children[] = new Chunk($node); } } } @@ -102,9 +105,10 @@ public function __construct(\DOMElement $xml = null) /** * Collect the value of the Keywords-property + * * @return \SAML2\XML\mdui\Keywords[] */ - public function getKeywords() + public function getKeywords() : array { return $this->Keywords; } @@ -112,10 +116,11 @@ public function getKeywords() /** * Set the value of the Keywords-property + * * @param \SAML2\XML\mdui\Keywords[] $keywords * @return void */ - public function setKeywords(array $keywords) + public function setKeywords(array $keywords) : void { Assert::allIsInstanceOf($keywords, Keywords::class); $this->Keywords = $keywords; @@ -124,10 +129,11 @@ public function setKeywords(array $keywords) /** * Add the value to the Keywords-property + * * @param \SAML2\XML\mdui\Keywords $keyword * @return void */ - public function addKeyword(Keywords $keyword) + public function addKeyword(Keywords $keyword) : void { $this->Keywords[] = $keyword; } @@ -135,9 +141,10 @@ public function addKeyword(Keywords $keyword) /** * Collect the value of the DisplayName-property + * * @return string[] */ - public function getDisplayName() + public function getDisplayName() : array { return $this->DisplayName; } @@ -145,10 +152,11 @@ public function getDisplayName() /** * Set the value of the DisplayName-property + * * @param array $displayName * @return void */ - public function setDisplayName(array $displayName) + public function setDisplayName(array $displayName) : void { $this->DisplayName = $displayName; } @@ -156,9 +164,10 @@ public function setDisplayName(array $displayName) /** * Collect the value of the Description-property + * * @return string[] */ - public function getDescription() + public function getDescription() : array { return $this->Description; } @@ -166,10 +175,11 @@ public function getDescription() /** * Set the value of the Description-property + * * @param array $description * @return void */ - public function setDescription(array $description) + public function setDescription(array $description) : void { $this->Description = $description; } @@ -179,7 +189,7 @@ public function setDescription(array $description) * Collect the value of the InformationURL-property * @return string[] */ - public function getInformationURL() + public function getInformationURL() : array { return $this->InformationURL; } @@ -187,10 +197,11 @@ public function getInformationURL() /** * Set the value of the InformationURL-property + * * @param array $informationURL * @return void */ - public function setInformationURL(array $informationURL) + public function setInformationURL(array $informationURL) : void { $this->InformationURL = $informationURL; } @@ -198,9 +209,10 @@ public function setInformationURL(array $informationURL) /** * Collect the value of the PrivacyStatementURL-property + * * @return string[] */ - public function getPrivacyStatementURL() + public function getPrivacyStatementURL() : array { return $this->PrivacyStatementURL; } @@ -208,10 +220,11 @@ public function getPrivacyStatementURL() /** * Set the value of the PrivacyStatementURL-property + * * @param array $privacyStatementURL * @return void */ - public function setPrivacyStatementURL(array $privacyStatementURL) + public function setPrivacyStatementURL(array $privacyStatementURL) : void { $this->PrivacyStatementURL = $privacyStatementURL; } @@ -219,9 +232,10 @@ public function setPrivacyStatementURL(array $privacyStatementURL) /** * Collect the value of the Logo-property + * * @return \SAML2\XML\mdui\Logo[] */ - public function getLogo() + public function getLogo() : array { return $this->Logo; } @@ -229,10 +243,11 @@ public function getLogo() /** * Set the value of the Logo-property - * @param \SAML2\XML\mdui\Logo $logo + * + * @param \SAML2\XML\mdui\Logo[] $logo * @return void */ - public function setLogo(array $logo) + public function setLogo(array $logo) : void { $this->Logo = $logo; } @@ -240,10 +255,11 @@ public function setLogo(array $logo) /** * Add the value to the Logo-property + * * @param \SAML2\XML\mdui\Logo $logo * @return void */ - public function addLogo(Logo $logo) + public function addLogo(Logo $logo) : void { $this->Logo[] = $logo; } @@ -251,9 +267,10 @@ public function addLogo(Logo $logo) /** * Collect the value of the children-property + * * @return \SAML2\XML\Chunk[] */ - public function getChildren() + public function getChildren() : array { return $this->children; } @@ -261,10 +278,11 @@ public function getChildren() /** * Set the value of the childen-property + * * @param array $children * @return void */ - public function setChildren(array $children) + public function setChildren(array $children) : void { $this->children = $children; } @@ -272,10 +290,11 @@ public function setChildren(array $children) /** * Add the value to the children-property + * * @param \SAML2\XML\Chunk $child * @return void */ - public function addChildren(Chunk $child) + public function addChildren(Chunk $child) : void { $this->children[] = $child; } @@ -287,50 +306,37 @@ public function addChildren(Chunk $child) * @param \DOMElement $parent The element we should append to. * @return \DOMElement|null */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : ?DOMElement { - Assert::isArray($displayName = $this->getDisplayName()); - Assert::isArray($description = $this->getDescription()); - Assert::isArray($informationURL = $this->getInformationURL()); - Assert::isArray($privacyStatementURL = $this->getPrivacyStatementURL()); - Assert::isArray($keywords = $this->getKeywords()); - Assert::isArray($logo = $this->getLogo()); - Assert::isArray($children = $this->getChildren()); - $e = null; - if (!empty($displayName) - || !empty($description) - || !empty($informationURL) - || !empty($privacyStatementURL) - || !empty($keywords) - || !empty($logo) - || !empty($children)) { + if (!empty($this->DisplayName) + || !empty($this->Description) + || !empty($this->InformationURL) + || !empty($this->PrivacyStatementURL) + || !empty($this->Keywords) + || !empty($this->Logo) + || !empty($this->children) + ) { $doc = $parent->ownerDocument; $e = $doc->createElementNS(Common::NS, 'mdui:UIInfo'); $parent->appendChild($e); - Utils::addStrings($e, Common::NS, 'mdui:DisplayName', true, $this->getDisplayName()); - Utils::addStrings($e, Common::NS, 'mdui:Description', true, $this->getDescription()); - Utils::addStrings($e, Common::NS, 'mdui:InformationURL', true, $this->getInformationURL()); - Utils::addStrings($e, Common::NS, 'mdui:PrivacyStatementURL', true, $this->getPrivacyStatementURL()); + Utils::addStrings($e, Common::NS, 'mdui:DisplayName', true, $this->DisplayName); + Utils::addStrings($e, Common::NS, 'mdui:Description', true, $this->Description); + Utils::addStrings($e, Common::NS, 'mdui:InformationURL', true, $this->InformationURL); + Utils::addStrings($e, Common::NS, 'mdui:PrivacyStatementURL', true, $this->PrivacyStatementURL); - if ($this->getKeywords() !== null) { - foreach ($this->getKeywords() as $child) { - $child->toXML($e); - } + foreach ($this->Keywords as $child) { + $child->toXML($e); } - if ($this->getLogo() !== null) { - foreach ($this->getLogo() as $child) { - $child->toXML($e); - } + foreach ($this->Logo as $child) { + $child->toXML($e); } - if ($this->getChildren() !== null) { - foreach ($this->getChildren() as $child) { - $child->toXML($e); - } + foreach ($this->children as $child) { + $child->toXML($e); } } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/Attribute.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/Attribute.php index b516935111e5254fcc4230a4f239ad04706e5995..ec86fab77f92e213851b30c75a8630368f852928 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/Attribute.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/Attribute.php @@ -1,10 +1,13 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\saml; +use DOMElement; + use SAML2\Constants; use SAML2\Utils; -use Webmozart\Assert\Assert; /** * Class representing SAML 2 Attribute. @@ -16,23 +19,23 @@ class Attribute /** * The Name of this attribute. * - * @var string + * @var string|null */ - public $Name; + private $Name = null; /** * The NameFormat of this attribute. * * @var string|null */ - public $NameFormat; + private $NameFormat = null; /** * The FriendlyName of this attribute. * * @var string|null */ - public $FriendlyName = null; + private $FriendlyName = null; /** * List of attribute values. @@ -41,7 +44,7 @@ class Attribute * * @var \SAML2\XML\saml\AttributeValue[] */ - public $AttributeValue = []; + private $AttributeValue = []; /** @@ -50,7 +53,7 @@ class Attribute * @param \DOMElement|null $xml The XML element we should load. * @throws \Exception */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { if ($xml === null) { return; @@ -77,9 +80,10 @@ public function __construct(\DOMElement $xml = null) /** * Collect the value of the Name-property - * @return string + * + * @return string|null */ - public function getName() + public function getName() : ?string { return $this->Name; } @@ -87,21 +91,22 @@ public function getName() /** * Set the value of the Name-property + * * @param string $name * @return void */ - public function setName($name) + public function setName(string $name) : void { - Assert::string($name); $this->Name = $name; } /** * Collect the value of the NameFormat-property + * * @return string|null */ - public function getNameFormat() + public function getNameFormat() : ?string { return $this->NameFormat; } @@ -109,21 +114,22 @@ public function getNameFormat() /** * Set the value of the NameFormat-property + * * @param string|null $nameFormat * @return void */ - public function setNameFormat($nameFormat = null) + public function setNameFormat(string $nameFormat = null) : void { - Assert::nullOrString($nameFormat); $this->NameFormat = $nameFormat; } /** * Collect the value of the FriendlyName-property + * * @return string|null */ - public function getFriendlyName() + public function getFriendlyName() : ?string { return $this->FriendlyName; } @@ -131,21 +137,22 @@ public function getFriendlyName() /** * Set the value of the FriendlyName-property + * * @param string|null $friendlyName * @return void */ - public function setFriendlyName($friendlyName = null) + public function setFriendlyName(string $friendlyName = null) : void { - Assert::nullOrString($friendlyName); $this->FriendlyName = $friendlyName; } /** * Collect the value of the AttributeValue-property + * * @return \SAML2\XML\saml\AttributeValue[] */ - public function getAttributeValue() + public function getAttributeValue() : array { return $this->AttributeValue; } @@ -153,10 +160,11 @@ public function getAttributeValue() /** * Set the value of the AttributeValue-property + * * @param array $attributeValue * @return void */ - public function setAttributeValue(array $attributeValue) + public function setAttributeValue(array $attributeValue) : void { $this->AttributeValue = $attributeValue; } @@ -164,10 +172,11 @@ public function setAttributeValue(array $attributeValue) /** * Add the value to the AttributeValue-property + * * @param \SAML2\XML\saml\AttributeValue $attributeValue * @return void */ - public function addAttributeValue(AttributeValue $attributeValue) + public function addAttributeValue(AttributeValue $attributeValue) : void { $this->AttributeValue[] = $attributeValue; } @@ -177,34 +186,30 @@ public function addAttributeValue(AttributeValue $attributeValue) * Internal implementation of toXML. * This function allows RequestedAttribute to specify the element name and namespace. * - * @param \DOMElement $parent The element we should append this Attribute to. - * @param string $namespace The namespace the element should be created in. - * @param string $name The name of the element. + * @param \DOMElement $parent The element we should append this Attribute to. + * @param string $namespace The namespace the element should be created in. + * @param string $name The name of the element. * @return \DOMElement */ - protected function toXMLInternal(\DOMElement $parent, $namespace, $name) + protected function toXMLInternal(DOMElement $parent, string $namespace, string $name) : DOMElement { - Assert::string($namespace); - Assert::string($name); - Assert::string($this->getName()); - Assert::nullOrString($this->getNameFormat()); - Assert::nullOrString($this->getFriendlyName()); - Assert::isArray($this->getAttributeValue()); - $e = $parent->ownerDocument->createElementNS($namespace, $name); $parent->appendChild($e); - $e->setAttribute('Name', $this->getName()); + if (empty($this->Name)) { + throw new \Exception('Cannot convert Attribute to XML with no Name set.'); + } + $e->setAttribute('Name', $this->Name); - if ($this->getNameFormat() !== null) { + if ($this->NameFormat !== null) { $e->setAttribute('NameFormat', $this->NameFormat); } if ($this->FriendlyName !== null) { - $e->setAttribute('FriendlyName', $this->getFriendlyName()); + $e->setAttribute('FriendlyName', $this->FriendlyName); } - foreach ($this->getAttributeValue() as $av) { + foreach ($this->AttributeValue as $av) { $av->toXML($e); } @@ -218,7 +223,7 @@ protected function toXMLInternal(\DOMElement $parent, $namespace, $name) * @param \DOMElement $parent The element we should append this Attribute to. * @return \DOMElement */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : \DOMElement { return $this->toXMLInternal($parent, Constants::NS_SAML, 'saml:Attribute'); } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/AttributeValue.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/AttributeValue.php index c696c243e15ac5b42ddb5e2327693666a459751b..3159f79c98cc7c3311af349538cc886f1aea1c78 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/AttributeValue.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/AttributeValue.php @@ -1,12 +1,15 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\saml; use DOMElement; +use Webmozart\Assert\Assert; + use SAML2\Constants; use SAML2\DOMDocumentFactory; use SAML2\Utils; -use Webmozart\Assert\Assert; /** * Serializable class representing an AttributeValue. @@ -20,14 +23,14 @@ class AttributeValue implements \Serializable * * @var \DOMElement */ - public $element; + private $element; /** * Create an AttributeValue. * * @param mixed $value The value of this element. Can be one of: - * - string Create an attribute value with a simple string. + * - string Create an attribute value with a simple string. * - \DOMElement(AttributeValue) Create an attribute value of the given DOMElement. * - \DOMElement Create an attribute value with the given DOMElement as a child. */ @@ -37,32 +40,33 @@ public function __construct($value) if (is_string($value)) { $doc = DOMDocumentFactory::create(); - $this->setElement($doc->createElementNS(Constants::NS_SAML, 'saml:AttributeValue')); - $this->getElement()->setAttributeNS(Constants::NS_XSI, 'xsi:type', 'xs:string'); - $this->getElement()->appendChild($doc->createTextNode($value)); + $this->element = $doc->createElementNS(Constants::NS_SAML, 'saml:AttributeValue'); + $this->element->setAttributeNS(Constants::NS_XSI, 'xsi:type', 'xs:string'); + $this->element->appendChild($doc->createTextNode($value)); /* Make sure that the xs-namespace is available in the AttributeValue (for xs:string). */ - $this->getElement()->setAttributeNS(Constants::NS_XS, 'xs:tmp', 'tmp'); - $this->getElement()->removeAttributeNS(Constants::NS_XS, 'tmp'); + $this->element->setAttributeNS(Constants::NS_XS, 'xs:tmp', 'tmp'); + $this->element->removeAttributeNS(Constants::NS_XS, 'tmp'); return; } if ($value->namespaceURI === Constants::NS_SAML && $value->localName === 'AttributeValue') { - $this->setElement(Utils::copyElement($value)); + $this->element = Utils::copyElement($value); return; } $doc = DOMDocumentFactory::create(); - $this->setElement($doc->createElementNS(Constants::NS_SAML, 'saml:AttributeValue')); + $this->element = $doc->createElementNS(Constants::NS_SAML, 'saml:AttributeValue'); Utils::copyElement($value, $this->element); } /** * Collect the value of the element-property + * * @return \DOMElement */ - public function getElement() + public function getElement() : DOMElement { return $this->element; } @@ -70,10 +74,11 @@ public function getElement() /** * Set the value of the element-property + * * @param \DOMElement $element * @return void */ - public function setElement(DOMElement $element) + public function setElement(DOMElement $element) : void { $this->element = $element; } @@ -85,21 +90,21 @@ public function setElement(DOMElement $element) * @param \DOMElement $parent The element we should append this attribute value to. * @return \DOMElement The generated AttributeValue element. */ - public function toXML(DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::isInstanceOf($this->getElement(), DOMElement::class); Assert::same($this->getElement()->namespaceURI, Constants::NS_SAML); - Assert::same($this->element->localName, "AttributeValue"); + Assert::same($this->getElement()->localName, "AttributeValue"); - return Utils::copyElement($this->getElement(), $parent); + return Utils::copyElement($this->element, $parent); } /** * Returns a plain text content of the attribute value. + * * @return string */ - public function getString() + public function getString() : string { return $this->element->textContent; } @@ -112,14 +117,12 @@ public function getString() * * @return string This attribute value. */ - public function __toString() + public function __toString() : string { - Assert::isInstanceOf($this->getElement(), DOMElement::class); - - $doc = $this->getElement()->ownerDocument; + $doc = $this->element->ownerDocument; $ret = ''; - foreach ($this->getElement()->childNodes as $c) { + foreach ($this->element->childNodes as $c) { $ret .= $doc->saveXML($c); } @@ -132,9 +135,9 @@ public function __toString() * * @return string The AttributeValue serialized. */ - public function serialize() + public function serialize() : string { - return serialize($this->getElement()->ownerDocument->saveXML($this->getElement())); + return serialize($this->element->ownerDocument->saveXML($this->element)); } @@ -143,10 +146,12 @@ public function serialize() * * @param string $serialized The serialized AttributeValue. * @return void + * + * Type hint not possible due to upstream method signature */ - public function unserialize($serialized) + public function unserialize($serialized) : void { $doc = DOMDocumentFactory::fromString(unserialize($serialized)); - $this->setElement($doc->documentElement); + $this->element = $doc->documentElement; } } diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/BaseIDType.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/BaseIDType.php index 6299ec69913c520fd9bdbabcc29eedb05664a46a..0eb118e621d854e252bd0311b797208b6416dee6 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/BaseIDType.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/BaseIDType.php @@ -1,4 +1,7 @@ <?php + +declare(strict_types=1); + /** * Base class corresponding to the BaseID element. * @@ -8,9 +11,10 @@ namespace SAML2\XML\saml; +use DOMElement; + use SAML2\Constants; use SAML2\DOMDocumentFactory; -use Webmozart\Assert\Assert; abstract class BaseIDType { @@ -22,7 +26,7 @@ abstract class BaseIDType * * @var string|null */ - public $NameQualifier = null; + protected $NameQualifier = null; /** * Further qualifies an identifier with the name of a service provider or affiliation of providers. @@ -32,7 +36,7 @@ abstract class BaseIDType * * @var string|null */ - public $SPNameQualifier = null; + protected $SPNameQualifier = null; /** * The name for this BaseID. @@ -54,7 +58,7 @@ abstract class BaseIDType * * @param \DOMElement|null $xml The XML element we should load, if any. */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { if ($xml === null) { return; @@ -63,20 +67,21 @@ public function __construct(\DOMElement $xml = null) $this->element = $xml; if ($xml->hasAttribute('NameQualifier')) { - $this->setNameQualifier($xml->getAttribute('NameQualifier')); + $this->NameQualifier = $xml->getAttribute('NameQualifier'); } if ($xml->hasAttribute('SPNameQualifier')) { - $this->setSPNameQualifier($xml->getAttribute('SPNameQualifier')); + $this->SPNameQualifier = $xml->getAttribute('SPNameQualifier'); } } /** * Collect the value of the NameQualifier-property + * * @return string|null */ - public function getNameQualifier() + public function getNameQualifier() : ?string { return $this->NameQualifier; } @@ -84,21 +89,22 @@ public function getNameQualifier() /** * Set the value of the NameQualifier-property + * * @param string|null $nameQualifier * @return void */ - public function setNameQualifier($nameQualifier = null) + public function setNameQualifier(string $nameQualifier = null) : void { - Assert::nullOrString($nameQualifier); $this->NameQualifier = $nameQualifier; } /** * Collect the value of the SPNameQualifier-property + * * @return string|null */ - public function getSPNameQualifier() + public function getSPNameQualifier() : ?string { return $this->SPNameQualifier; } @@ -106,12 +112,12 @@ public function getSPNameQualifier() /** * Set the value of the SPNameQualifier-property + * * @param string|null $spNameQualifier * @return void */ - public function setSPNameQualifier($spNameQualifier = null) + public function setSPNameQualifier(string $spNameQualifier = null) : void { - Assert::nullOrString($spNameQualifier); $this->SPNameQualifier = $spNameQualifier; } @@ -122,11 +128,8 @@ public function setSPNameQualifier($spNameQualifier = null) * @param \DOMElement $parent The element we are converting to XML. * @return \DOMElement The XML element after adding the data corresponding to this BaseID. */ - public function toXML(\DOMElement $parent = null) + public function toXML(DOMElement $parent = null) : DOMElement { - Assert::nullOrString($this->getNameQualifier()); - Assert::nullOrString($this->getSPNameQualifier()); - if ($parent === null) { $parent = DOMDocumentFactory::create(); $doc = $parent; @@ -136,12 +139,12 @@ public function toXML(\DOMElement $parent = null) $element = $doc->createElementNS(Constants::NS_SAML, $this->nodeName); $parent->appendChild($element); - if ($this->getNameQualifier() !== null) { - $element->setAttribute('NameQualifier', $this->getNameQualifier()); + if ($this->NameQualifier !== null) { + $element->setAttribute('NameQualifier', $this->NameQualifier); } - if ($this->getSPNameQualifier() !== null) { - $element->setAttribute('SPNameQualifier', $this->getSPNameQualifier()); + if ($this->SPNameQualifier !== null) { + $element->setAttribute('SPNameQualifier', $this->SPNameQualifier); } return $element; diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/Issuer.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/Issuer.php index 5c8d283506063979b56a707d6b90a5a60307af4c..f37f11611c28f5c70ed30ae96b5b2685f144bdf8 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/Issuer.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/Issuer.php @@ -1,10 +1,13 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\saml; +use DOMElement; + use SAML2\Constants; use SAML2\DOMDocumentFactory; -use Webmozart\Assert\Assert; /** * Class representing the saml:Issuer element. @@ -14,9 +17,8 @@ */ class Issuer extends NameIDType { + /** - * Set the name of this XML element to "saml:Issuer" - * * @var string */ protected $nodeName = 'saml:Issuer'; @@ -32,7 +34,7 @@ class Issuer extends NameIDType * * @var boolean */ - public $Saml2IssuerShowAll = false; //setting true break saml-core-2.0-os 8.3.6 + private $Saml2IssuerShowAll = false; //setting true breaks saml-core-2.0-os 8.3.6 /** @@ -40,22 +42,23 @@ class Issuer extends NameIDType * * @param \DOMElement|null $xml The XML element we should load, if any. */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { /** * The format of this NameIDType. * * Defaults to urn:oasis:names:tc:SAML:2.0:nameid-format:entity: * - * Indicates that the content of the element is the identifier of an entity that provides SAML-based services (such - * as a SAML authority, requester, or responder) or is a participant in SAML profiles (such as a service provider - * supporting the browser SSO profile). Such an identifier can be used in the <Issuer> element to identify the - * issuer of a SAML request, response, or assertion, or within the <NameID> element to make assertions about system - * entities that can issue SAML requests, responses, and assertions. It can also be used in other elements and - * attributes whose purpose is to identify a system entity in various protocol exchanges. + * Indicates that the content of the element is the identifier of an entity that provides SAML-based services + * (such as a SAML authority, requester, or responder) or is a participant in SAML profiles (such as a service + * provider supporting the browser SSO profile). Such an identifier can be used in the <Issuer> element to + * identify the issuer of a SAML request, response, or assertion, or within the <NameID> element to make + * assertions about system entities that can issue SAML requests, responses, and assertions. It can also be + * used in other elements and attributes whose purpose is to identify a system entity in various protocol + * exchanges. * - * The syntax of such an identifier is a URI of not more than 1024 characters in length. It is RECOMMENDED that a - * system entity use a URL containing its own domain name to identify itself. + * The syntax of such an identifier is a URI of not more than 1024 characters in length. It is RECOMMENDED that + * a system entity use a URL containing its own domain name to identify itself. * * @see saml-core-2.0-os * @@ -69,9 +72,10 @@ public function __construct(\DOMElement $xml = null) /** * Collect the value of the Saml2IssuerShowAll-property - * @return boolean + * + * @return bool */ - public function isSaml2IssuerShowAll() + public function isSaml2IssuerShowAll() : bool { return $this->Saml2IssuerShowAll; } @@ -79,12 +83,12 @@ public function isSaml2IssuerShowAll() /** * Set the value of the Saml2IssuerShowAll-property - * @param boolean $saml2IssuerShowAll + * + * @param bool $saml2IssuerShowAll * @return void */ - public function setSaml2IssuerShowAll($saml2IssuerShowAll) + public function setSaml2IssuerShowAll(bool $saml2IssuerShowAll) : void { - Assert::boolean($saml2IssuerShowAll); $this->Saml2IssuerShowAll = $saml2IssuerShowAll; } @@ -93,23 +97,22 @@ public function setSaml2IssuerShowAll($saml2IssuerShowAll) * Convert this Issuer to XML. * * @param \DOMElement|null $parent The element we should append to. - * * @return \DOMElement The current Issuer object converted into a \DOMElement. */ - public function toXML(\DOMElement $parent = null) + public function toXML(DOMElement $parent = null) : DOMElement { - if (($this->isSaml2IssuerShowAll() && ($this->getFormat() === Constants::NAMEID_ENTITY)) - || ($this->getFormat() !== Constants::NAMEID_ENTITY) + if (($this->Saml2IssuerShowAll && ($this->Format === Constants::NAMEID_ENTITY)) + || ($this->Format !== Constants::NAMEID_ENTITY) ) { return parent::toXML($parent); } /* - * if $this->isSaml2IssuerShowAll() is set false + * if $this->Saml2IssuerShowAll is set false * From saml-core-2.0-os 8.3.6, when the entity Format is used: "The NameQualifier, SPNameQualifier, and * SPProvidedID attributes MUST be omitted." - * if $this->isSaml2IssuerShowAll() is set true when the entity Format is used: "The NameQualifier, SPNameQualifier, and - * SPProvidedID attributes are not omitted." + * if $this->isSaml2IssuerShowAll() is set true when the entity Format is used: "The NameQualifier, + * SPNameQualifier, and SPProvidedID attributes are not omitted." */ if ($parent === null) { @@ -121,7 +124,10 @@ public function toXML(\DOMElement $parent = null) $element = $doc->createElementNS(Constants::NS_SAML, 'saml:Issuer'); $parent->appendChild($element); - $value = $element->ownerDocument->createTextNode($this->getValue()); + if (empty($this->value)) { + throw new \Exception("Cannot convert Issuer to XML with no value."); + } + $value = $element->ownerDocument->createTextNode($this->value); $element->appendChild($value); return $element; diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/NameID.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/NameID.php index c53dc9bf4a49901e01ba6a52629a095e4836ae3e..eb267954179c25799d16f4b3960b9c0b178f865a 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/NameID.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/NameID.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\saml; /** diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/NameIDType.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/NameIDType.php index cc869f067db25dfe4160a235cafeb887c6a55bf9..25088f776ca83d723c44370c34ccbb62ca74e733 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/NameIDType.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/NameIDType.php @@ -1,5 +1,4 @@ <?php - /** * SAML NameIDType abstract data type. * @@ -7,9 +6,11 @@ * @package simplesamlphp/saml2 */ +declare(strict_types=1); + namespace SAML2\XML\saml; -use Webmozart\Assert\Assert; +use DOMElement; abstract class NameIDType extends BaseIDType { @@ -29,7 +30,7 @@ abstract class NameIDType extends BaseIDType * * @see saml-core-2.0-os */ - public $Format = null; + protected $Format = null; /** * A name identifier established by a service provider or affiliation of providers for the entity, if different from @@ -41,14 +42,14 @@ abstract class NameIDType extends BaseIDType * * @see saml-core-2.0-os */ - public $SPProvidedID = null; + protected $SPProvidedID = null; /** * The NameIDType complex type is used when an element serves to represent an entity by a string-valued name. * - * @var string|null + * @var string */ - public $value = null; + protected $value = ''; /** @@ -56,7 +57,7 @@ abstract class NameIDType extends BaseIDType * * @param \DOMElement|null $xml The XML element we should load, if any. */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { parent::__construct($xml); @@ -65,22 +66,23 @@ public function __construct(\DOMElement $xml = null) } if ($xml->hasAttribute('Format')) { - $this->setFormat($xml->getAttribute('Format')); + $this->Format = $xml->getAttribute('Format'); } if ($xml->hasAttribute('SPProvidedID')) { - $this->setSPProvidedID($xml->getAttribute('SPProvidedID')); + $this->SPProvidedID = $xml->getAttribute('SPProvidedID'); } - $this->setValue(trim($xml->textContent)); + $this->value = trim($xml->textContent); } /** * Collect the value of the Format-property + * * @return string|null */ - public function getFormat() + public function getFormat() : ?string { return $this->Format; } @@ -88,21 +90,22 @@ public function getFormat() /** * Set the value of the Format-property + * * @param string|null $format * @return void */ - public function setFormat($format = null) + public function setFormat(string $format = null) : void { - Assert::nullOrString($format); $this->Format = $format; } /** * Collect the value of the value-property - * @return string|null + * + * @return string */ - public function getValue() + public function getValue() : string { return $this->value; } @@ -110,21 +113,22 @@ public function getValue() /** * Set the value of the value-property - * @param string|null $value + * @param string $value + * * @return void */ - public function setValue($value) + public function setValue(string $value) : void { - Assert::nullOrString($value); $this->value = $value; } /** * Collect the value of the SPProvidedID-property + * * @return string|null */ - public function getSPProvidedID() + public function getSPProvidedID() : ?string { return $this->SPProvidedID; } @@ -132,72 +136,35 @@ public function getSPProvidedID() /** * Set the value of the SPProvidedID-property + * * @param string|null $spProvidedID * @return void */ - public function setSPProvidedID($spProvidedID) + public function setSPProvidedID(string $spProvidedID = null) : void { - Assert::nullOrString($spProvidedID); $this->SPProvidedID = $spProvidedID; } - /** - * Create a \SAML2\XML\saml\NameID object from an array with its contents. - * - * @param array $nameId An array whose keys correspond to the fields of a NameID. - * @throws \InvalidArgumentException If the array does not contain the "Value" key. - * @return \SAML2\XML\saml\NameID The corresponding NameID object. - * - * @deprecated - */ - public static function fromArray(array $nameId) - { - $nid = new NameID(); - if (!array_key_exists('Value', $nameId)) { - throw new \InvalidArgumentException('Missing "Value" in array, cannot create NameID from it.'); - } - $nid->setValue($nameId['Value']); - - if (array_key_exists('NameQualifier', $nameId) && $nameId['NameQualifier'] !== null) { - $nid->setNameQualifier($nameId['NameQualifier']); - } - if (array_key_exists('SPNameQualifier', $nameId) && $nameId['SPNameQualifier'] !== null) { - $nid->setSPNameQualifier($nameId['SPNameQualifier']); - } - if (array_key_exists('SPProvidedID', $nameId) && $nameId['SPProvidedID'] !== null) { - $nid->setSPProvidedID($nameId['SPProvidedID']); - } - if (array_key_exists('Format', $nameId) && $nameId['Format'] !== null) { - $nid->setFormat($nameId['Format']); - } - return $nid; - } - - /** * Convert this NameIDType to XML. * * @param \DOMElement $parent The element we are converting to XML. * @return \DOMElement The XML element after adding the data corresponding to this NameIDType. */ - public function toXML(\DOMElement $parent = null) + public function toXML(DOMElement $parent = null) : DOMElement { - Assert::nullOrString($this->getFormat()); - Assert::nullOrString($this->getSPProvidedID()); - Assert::string($this->getValue()); - $element = parent::toXML($parent); - if ($this->getFormat() !== null) { - $element->setAttribute('Format', $this->getFormat()); + if ($this->Format !== null) { + $element->setAttribute('Format', $this->Format); } - if ($this->getSPProvidedID() !== null) { - $element->setAttribute('SPProvidedID', $this->getSPProvidedID()); + if ($this->SPProvidedID !== null) { + $element->setAttribute('SPProvidedID', $this->SPProvidedID); } - $value = $element->ownerDocument->createTextNode($this->getValue()); + $value = $element->ownerDocument->createTextNode($this->value); $element->appendChild($value); return $element; diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/SubjectConfirmation.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/SubjectConfirmation.php index dced4035d744bfec9f180f01ee8f51d8cfbf538b..f933ece1e723ff8410c72a9d9321dd83c291d9a6 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/SubjectConfirmation.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/SubjectConfirmation.php @@ -1,10 +1,14 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\saml; +use DOMElement; +use Webmozart\Assert\Assert; + use SAML2\Constants; use SAML2\Utils; -use Webmozart\Assert\Assert; /** * Class representing SAML 2 SubjectConfirmation element. @@ -16,23 +20,23 @@ class SubjectConfirmation /** * The method we can use to verify this Subject. * - * @var string + * @var string|null */ - public $Method; + private $Method = null; /** * The NameID of the entity that can use this element to verify the Subject. * * @var \SAML2\XML\saml\NameID|null */ - public $NameID; + private $NameID = null; /** * SubjectConfirmationData element with extra data for verification of the Subject. * * @var \SAML2\XML\saml\SubjectConfirmationData|null */ - public $SubjectConfirmationData; + private $SubjectConfirmationData = null; /** @@ -41,7 +45,7 @@ class SubjectConfirmation * @param \DOMElement|null $xml The XML element we should load. * @throws \Exception */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { if ($xml === null) { return; @@ -50,29 +54,32 @@ public function __construct(\DOMElement $xml = null) if (!$xml->hasAttribute('Method')) { throw new \Exception('SubjectConfirmation element without Method attribute.'); } - $this->setMethod($xml->getAttribute('Method')); + $this->Method = $xml->getAttribute('Method'); + /** @var \DOMElement[] $nid */ $nid = Utils::xpQuery($xml, './saml_assertion:NameID'); if (count($nid) > 1) { throw new \Exception('More than one NameID in a SubjectConfirmation element.'); } elseif (!empty($nid)) { - $this->setNameID(new NameID($nid[0])); + $this->NameID = new NameID($nid[0]); } + /** @var \DOMElement[] $scd */ $scd = Utils::xpQuery($xml, './saml_assertion:SubjectConfirmationData'); if (count($scd) > 1) { throw new \Exception('More than one SubjectConfirmationData child in a SubjectConfirmation element.'); } elseif (!empty($scd)) { - $this->setSubjectConfirmationData(new SubjectConfirmationData($scd[0])); + $this->SubjectConfirmationData = new SubjectConfirmationData($scd[0]); } } /** * Collect the value of the Method-property - * @return string + * + * @return string|null */ - public function getMethod() + public function getMethod() : ?string { return $this->Method; } @@ -80,21 +87,22 @@ public function getMethod() /** * Set the value of the Method-property + * * @param string $method * @return void */ - public function setMethod($method) + public function setMethod(string $method) : void { - Assert::string($method); $this->Method = $method; } /** * Collect the value of the NameID-property - * @return \SAML2\XML\saml\NameID + * + * @return \SAML2\XML\saml\NameID|null */ - public function getNameID() + public function getNameID() : ?NameID { return $this->NameID; } @@ -102,10 +110,11 @@ public function getNameID() /** * Set the value of the NameID-property + * * @param \SAML2\XML\saml\NameID $nameId * @return void */ - public function setNameID(NameID $nameId) + public function setNameID(NameID $nameId = null) : void { $this->NameID = $nameId; } @@ -113,9 +122,10 @@ public function setNameID(NameID $nameId) /** * Collect the value of the SubjectConfirmationData-property + * * @return \SAML2\XML\saml\SubjectConfirmationData|null */ - public function getSubjectConfirmationData() + public function getSubjectConfirmationData() : ?SubjectConfirmationData { return $this->SubjectConfirmationData; } @@ -123,10 +133,11 @@ public function getSubjectConfirmationData() /** * Set the value of the SubjectConfirmationData-property + * * @param \SAML2\XML\saml\SubjectConfirmationData|null $subjectConfirmationData * @return void */ - public function setSubjectConfirmationData($subjectConfirmationData = null) + public function setSubjectConfirmationData(SubjectConfirmationData $subjectConfirmationData = null) : void { $this->SubjectConfirmationData = $subjectConfirmationData; } @@ -138,22 +149,21 @@ public function setSubjectConfirmationData($subjectConfirmationData = null) * @param \DOMElement $parent The parent element we should append this element to. * @return \DOMElement This element, as XML. */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::string($this->getMethod()); - Assert::nullOrIsInstanceOf($this->getNameID(), NameID::class); - Assert::nullOrIsInstanceOf($this->getSubjectConfirmationData(), SubjectConfirmationData::class); + Assert::notNull($this->Method, "Cannot convert SubjectConfirmation to XML without a Method set."); $e = $parent->ownerDocument->createElementNS(Constants::NS_SAML, 'saml:SubjectConfirmation'); $parent->appendChild($e); - $e->setAttribute('Method', $this->getMethod()); + /** @psalm-suppress PossiblyNullArgument */ + $e->setAttribute('Method', $this->Method); - if ($this->getNameID() !== null) { - $this->getNameID()->toXML($e); + if ($this->NameID !== null) { + $this->NameID->toXML($e); } - if ($this->getSubjectConfirmationData() !== null) { - $this->getSubjectConfirmationData()->toXML($e); + if ($this->SubjectConfirmationData !== null) { + $this->SubjectConfirmationData->toXML($e); } return $e; diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/SubjectConfirmationData.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/SubjectConfirmationData.php index e3937d7d445fdacec868c39f89e437df15df0a44..a37dc9c4cf734e936bc9319117b8dded081f7cfb 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/SubjectConfirmationData.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/saml/SubjectConfirmationData.php @@ -1,13 +1,17 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\saml; +use DOMElement; use RobRichards\XMLSecLibs\XMLSecurityDSig; +use Webmozart\Assert\Assert; + use SAML2\Constants; use SAML2\Utils; use SAML2\XML\Chunk; use SAML2\XML\ds\KeyInfo; -use Webmozart\Assert\Assert; /** * Class representing SAML 2 SubjectConfirmationData element. @@ -21,35 +25,35 @@ class SubjectConfirmationData * * @var int|null */ - public $NotBefore; + private $NotBefore = null; /** * The time after which this element is invalid, as an unix timestamp. * * @var int|null */ - public $NotOnOrAfter; + private $NotOnOrAfter = null; /** * The Recipient this Subject is valid for. Either an entity or a location. * * @var string|null */ - public $Recipient; + private $Recipient = null; /** * The ID of the AuthnRequest this is a response to. * * @var string|null */ - public $InResponseTo; + private $InResponseTo = null; /** * The IP(v6) address of the user. * * @var string|null */ - public $Address; + private $Address = null; /** * The various key information elements. @@ -59,14 +63,15 @@ class SubjectConfirmationData * * @var (\SAML2\XML\ds\KeyInfo|\SAML2\XML\Chunk)[] */ - public $info = []; + private $info = []; /** * Collect the value of the NotBefore-property + * * @return int|null */ - public function getNotBefore() + public function getNotBefore() : ?int { return $this->NotBefore; } @@ -74,21 +79,22 @@ public function getNotBefore() /** * Set the value of the NotBefore-property + * * @param int|null $notBefore * @return void */ - public function setNotBefore($notBefore = null) + public function setNotBefore(int $notBefore = null) : void { - Assert::nullOrInteger($notBefore); $this->NotBefore = $notBefore; } /** * Collect the value of the NotOnOrAfter-property + * * @return int|null */ - public function getNotOnOrAfter() + public function getNotOnOrAfter() : ?int { return $this->NotOnOrAfter; } @@ -96,21 +102,22 @@ public function getNotOnOrAfter() /** * Set the value of the NotOnOrAfter-property + * * @param int|null $notOnOrAfter * @return void */ - public function setNotOnOrAfter($notOnOrAfter = null) + public function setNotOnOrAfter(int $notOnOrAfter = null) : void { - Assert::nullOrInteger($notOnOrAfter); $this->NotOnOrAfter = $notOnOrAfter; } /** * Collect the value of the Recipient-property + * * @return string|null */ - public function getRecipient() + public function getRecipient() : ?string { return $this->Recipient; } @@ -118,21 +125,22 @@ public function getRecipient() /** * Set the value of the Recipient-property + * * @param string|null $recipient * @return void */ - public function setRecipient($recipient = null) + public function setRecipient(string $recipient = null) : void { - Assert::nullOrString($recipient); $this->Recipient = $recipient; } /** * Collect the value of the InResponseTo-property + * * @return string|null */ - public function getInResponseTo() + public function getInResponseTo() : ?string { return $this->InResponseTo; } @@ -140,21 +148,22 @@ public function getInResponseTo() /** * Set the value of the InResponseTo-property + * * @param string|null $inResponseTo * @return void */ - public function setInResponseTo($inResponseTo = null) + public function setInResponseTo(string $inResponseTo = null) : void { - Assert::nullOrString($inResponseTo); $this->InResponseTo = $inResponseTo; } /** * Collect the value of the Address-property + * * @return string|null */ - public function getAddress() + public function getAddress() : ?string { return $this->Address; } @@ -162,12 +171,12 @@ public function getAddress() /** * Set the value of the Address-property + * * @param string|null $address * @return void */ - public function setAddress($address = null) + public function setAddress(string $address = null) : void { - Assert::nullOrstring($address); if (!is_null($address) && !filter_var($address, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6)) { Utils::getContainer()->getLogger()->warning(sprintf('Provided argument (%s) is not a valid IP address.', $address)); } @@ -177,9 +186,10 @@ public function setAddress($address = null) /** * Collect the value of the info-property + * * @return (\SAML2\XML\ds\KeyInfo|\SAML2\XML\Chunk)[] */ - public function getInfo() + public function getInfo() : array { return $this->info; } @@ -187,10 +197,11 @@ public function getInfo() /** * Set the value of the info-property + * * @param (\SAML2\XML\ds\KeyInfo|\SAML2\XML\Chunk)[] $info * @return void */ - public function setInfo(array $info) + public function setInfo(array $info) : void { $this->info = $info; } @@ -198,10 +209,11 @@ public function setInfo(array $info) /** * Add the value to the info-property + * * @param \SAML2\XML\Chunk|\SAML2\XML\ds\KeyInfo $info * @return void */ - public function addInfo($info) + public function addInfo($info) : void { Assert::isInstanceOfAny($info, [Chunk::class, KeyInfo::class]); $this->info[] = $info; @@ -213,7 +225,7 @@ public function addInfo($info) * * @param \DOMElement|null $xml The XML element we should load. */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { if ($xml === null) { return; @@ -234,8 +246,8 @@ public function __construct(\DOMElement $xml = null) if ($xml->hasAttribute('Address')) { $this->setAddress($xml->getAttribute('Address')); } - for ($n = $xml->firstChild; $n !== null; $n = $n->nextSibling) { - if (!($n instanceof \DOMElement)) { + foreach ($xml->childNodes as $n) { + if (!($n instanceof DOMElement)) { continue; } if ($n->namespaceURI !== XMLSecurityDSig::XMLDSIGNS) { @@ -260,31 +272,25 @@ public function __construct(\DOMElement $xml = null) * @param \DOMElement $parent The parent element we should append this element to. * @return \DOMElement This element, as XML. */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::nullOrInteger($this->getNotBefore()); - Assert::nullOrInteger($this->getNotOnOrAfter()); - Assert::nullOrString($this->getRecipient()); - Assert::nullOrString($this->getInResponseTo()); - Assert::nullOrString($this->getAddress()); - $e = $parent->ownerDocument->createElementNS(Constants::NS_SAML, 'saml:SubjectConfirmationData'); $parent->appendChild($e); - if ($this->getNotBefore() !== null) { - $e->setAttribute('NotBefore', gmdate('Y-m-d\TH:i:s\Z', $this->getNotBefore())); + if ($this->NotBefore !== null) { + $e->setAttribute('NotBefore', gmdate('Y-m-d\TH:i:s\Z', $this->NotBefore)); } - if ($this->getNotOnOrAfter() !== null) { - $e->setAttribute('NotOnOrAfter', gmdate('Y-m-d\TH:i:s\Z', $this->getNotOnOrAfter())); + if ($this->NotOnOrAfter !== null) { + $e->setAttribute('NotOnOrAfter', gmdate('Y-m-d\TH:i:s\Z', $this->NotOnOrAfter)); } - if ($this->getRecipient() !== null) { - $e->setAttribute('Recipient', $this->getRecipient()); + if ($this->Recipient !== null) { + $e->setAttribute('Recipient', $this->Recipient); } - if ($this->getInResponseTo() !== null) { - $e->setAttribute('InResponseTo', $this->getInResponseTo()); + if ($this->InResponseTo !== null) { + $e->setAttribute('InResponseTo', $this->InResponseTo); } - if ($this->getAddress() !== null) { - $e->setAttribute('Address', $this->getAddress()); + if ($this->Address !== null) { + $e->setAttribute('Address', $this->Address); } /** @var \SAML2\XML\ds\KeyInfo|\SAML2\XML\Chunk $n */ foreach ($this->getInfo() as $n) { diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/samlp/Extensions.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/samlp/Extensions.php index 61e805fa3eed37fd76471e2852c03200dbcee3b0..0f9904da6b95958027493166aa1a027f4896eb19 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/samlp/Extensions.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/samlp/Extensions.php @@ -1,7 +1,11 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\samlp; +use DOMElement; + use SAML2\Constants; use SAML2\Utils; use SAML2\XML\Chunk; @@ -17,11 +21,12 @@ class Extensions * Get a list of Extensions in the given element. * * @param \DOMElement $parent The element that may contain the samlp:Extensions element. - * @return array Array of extensions. + * @return array Array of extensions. */ - public static function getList(\DOMElement $parent) + public static function getList(DOMElement $parent) : array { $ret = []; + /** @var \DOMElement $node */ foreach (Utils::xpQuery($parent, './saml_protocol:Extensions/*') as $node) { $ret[] = new Chunk($node); } @@ -33,11 +38,11 @@ public static function getList(\DOMElement $parent) /** * Add a list of Extensions to the given element. * - * @param \DOMElement $parent The element we should add the extensions to. + * @param \DOMElement $parent The element we should add the extensions to. * @param \SAML2\XML\Chunk[] $extensions List of extension objects. * @return void */ - public static function addList(\DOMElement $parent, array $extensions) + public static function addList(DOMElement $parent, array $extensions) : void { if (empty($extensions)) { return; diff --git a/vendor/simplesamlphp/saml2/src/SAML2/XML/shibmd/Scope.php b/vendor/simplesamlphp/saml2/src/SAML2/XML/shibmd/Scope.php index dad3e310e625641c138b450e390f98e969c84792..b1dab87d51bc920bb6e371a32b646e64c597b6ca 100644 --- a/vendor/simplesamlphp/saml2/src/SAML2/XML/shibmd/Scope.php +++ b/vendor/simplesamlphp/saml2/src/SAML2/XML/shibmd/Scope.php @@ -1,10 +1,14 @@ <?php +declare(strict_types=1); + namespace SAML2\XML\shibmd; -use SAML2\Utils; +use DOMElement; use Webmozart\Assert\Assert; +use SAML2\Utils; + /** * Class which represents the Scope element found in Shibboleth metadata. * @@ -23,14 +27,14 @@ class Scope * * @var string */ - public $scope; + private $scope = ''; /** * Whether this is a regexp scope. * * @var bool */ - public $regexp = false; + private $regexp = false; /** @@ -38,22 +42,23 @@ class Scope * * @param \DOMElement|null $xml The XML element we should load. */ - public function __construct(\DOMElement $xml = null) + public function __construct(DOMElement $xml = null) { if ($xml === null) { return; } - $this->setScope($xml->textContent); - $this->setIsRegexpScope(Utils::parseBoolean($xml, 'regexp', false)); + $this->scope = $xml->textContent; + $this->regexp = Utils::parseBoolean($xml, 'regexp', false); } /** * Collect the value of the scope-property + * * @return string */ - public function getScope() + public function getScope() : string { return $this->scope; } @@ -61,21 +66,22 @@ public function getScope() /** * Set the value of the scope-property + * * @param string $scope * @return void */ - public function setScope($scope) + public function setScope(string $scope) : void { - Assert::string($scope); $this->scope = $scope; } /** * Collect the value of the regexp-property - * @return boolean + * + * @return bool */ - public function isRegexpScope() + public function isRegexpScope() : bool { return $this->regexp; } @@ -83,12 +89,12 @@ public function isRegexpScope() /** * Set the value of the regexp-property - * @param boolean $regexp + * + * @param bool $regexp * @return void */ - public function setIsRegexpScope($regexp) + public function setIsRegexpScope(bool $regexp) : void { - Assert::boolean($regexp); $this->regexp = $regexp; } @@ -99,19 +105,18 @@ public function setIsRegexpScope($regexp) * @param \DOMElement $parent The element we should append this Scope to. * @return \DOMElement */ - public function toXML(\DOMElement $parent) + public function toXML(DOMElement $parent) : DOMElement { - Assert::string($this->getScope()); - Assert::nullOrBoolean($this->isRegexpScope()); + Assert::notEmpty($this->scope); $doc = $parent->ownerDocument; $e = $doc->createElementNS(Scope::NS, 'shibmd:Scope'); $parent->appendChild($e); - $e->appendChild($doc->createTextNode($this->getScope())); + $e->appendChild($doc->createTextNode($this->scope)); - if ($this->isRegexpScope() === true) { + if ($this->regexp === true) { $e->setAttribute('regexp', 'true'); } else { $e->setAttribute('regexp', 'false'); diff --git a/vendor/simplesamlphp/saml2/src/_autoload.php b/vendor/simplesamlphp/saml2/src/_autoload.php index 1061c3b9c2be1da8c1c53aa0925cd219bf96bbc5..e002b67459a8e3a77cdcefa6a0c4391595e28ac9 100644 --- a/vendor/simplesamlphp/saml2/src/_autoload.php +++ b/vendor/simplesamlphp/saml2/src/_autoload.php @@ -1,18 +1,21 @@ <?php +declare(strict_types=1); + /** - * Temporary autoloader to ensure compatibility with old, non-PSR-2 compliant classes. + * Temporary autoloader to ensure compatibility with old, non-PSR-4 compliant classes. * * @author Jaime Pérez Crespo <jaime.perez@uninett.no> * @package SimpleSAMLphp */ /** - * Autoload function that looks for classes migrated to PSR-2. + * Autoload function that looks for classes migrated to PSR-4. * * @param string $className Name of the class. + * @return void */ -function SAML2_autoload($className) +function SAML2_autoload(string $className) : void { // handle classes that have been renamed $renamed = [ diff --git a/vendor/simplesamlphp/simplesamlphp/.appveyor.yml b/vendor/simplesamlphp/simplesamlphp/.appveyor.yml new file mode 100644 index 0000000000000000000000000000000000000000..6bae47a324f13ecb5fa1dffc763fef214121741c --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/.appveyor.yml @@ -0,0 +1,30 @@ +build: false +shallow_clone: false +version: '1.17.1.{build}' +platform: 'x64' +clone_folder: C:\projects\simplesamlphp + +environment: + matrix: + - PHP_VERSION: "5.6" + - PHP_VERSION: "7.0" + - PHP_VERSION: "7.1" + - PHP_VERSION: "7.2" + - PHP_VERSION: "7.3" + +install: + - ps: Invoke-WebRequest "https://raw.githubusercontent.com/ChadSikorra/ps-install-php/master/Install-PHP.ps1" -OutFile "Install-PHP.ps1" + - ps: .\Install-PHP.ps1 -Version $Env:PHP_VERSION -Highest -Arch x64 -Extensions mbstring,intl,openssl,curl,pdo_mysql,pdo_sqlite + - refreshenv + - cd C:\projects\simplesamlphp + - php -r "readfile('https://getcomposer.org/installer');" | php + +before_test: + - cd C:\projects\simplesamlphp + # For 2.0 (or once the externalized modules are no longer included), remove the --ignore-platform-reqs + - php composer.phar install --no-interaction --no-progress --optimize-autoloader --prefer-source --no-ansi --ignore-platform-reqs + +test_script: + - cd C:\projects\simplesamlphp + - vendor\bin\phpunit.bat + diff --git a/vendor/simplesamlphp/simplesamlphp/CONTRIBUTING.md b/vendor/simplesamlphp/simplesamlphp/CONTRIBUTING.md index d16eec4696968af1e18c93acdf4a5227584b1667..11441b987f7f0da64f83e6233d40293f50474a76 100644 --- a/vendor/simplesamlphp/simplesamlphp/CONTRIBUTING.md +++ b/vendor/simplesamlphp/simplesamlphp/CONTRIBUTING.md @@ -8,10 +8,14 @@ These guidelines briefly explain how to contribute to SimpleSAMLphp effectively ## Team members Currently, the core team members are: -* Jaime Pérez Crespo, *main developer and release manager*, UNINETT <jaime.perez@uninett.no> -* Olav Morken, *main developer*, UNINETT <olav.morken@uninett.no> +* Jaime Pérez Crespo, *maintainer and main developer*, UNINETT <jaime.perez@uninett.no> +* Tim van Dijen, *main developer* +* Thijs Kinkhorst, *main developer* + +Two other persons are listed here for historical reasons, even though they are no longer involved in the project: + * Andreas Åkre Solberg, *architect and original developer*, UNINETT <andreas.solberg@uninett.no> -* Hanne Moa, *developer*, UNINETT <hanne.moa@uninett.no> +* Olav Morken, *architect and main developer*, UNINETT <olav.morken@uninett.no> We have been lucky enough to have so many people help us through the years. SimpleSAMLphp wouldn't have reached so far without them. We want to thank them from here, but unfortunately they are so many it is nearly impossible to mention all of them. [Here is a Github page that summarizes everyone's contributions](https://github.com/simplesamlphp/simplesamlphp/graphs/contributors?from=2007-09-09&to=2015-09-06&type=c). @@ -31,7 +35,7 @@ New features are always welcome, provided they will be useful to someone apart f When submitting a pull request, please make sure to account for: ### Coding standards -* Respect the coding standards. We try to comply with PHP's [PSR-2](http://www.php-fig.org/psr/psr-2/). Pay special attention to the rules below: +* Respect the coding standards. We try to comply with PHP's [PSR-12](http://www.php-fig.org/psr/psr-12/). Pay special attention to the rules below: * Lines should not be longer than 80 characters. * Use **4 spaces** instead of tabs. * Keep the keywords in **lowercase**, including `true`, `false` and `null`. diff --git a/vendor/simplesamlphp/simplesamlphp/README.md b/vendor/simplesamlphp/simplesamlphp/README.md index eba29fc6bc01152d2ec21e75fd3b7373ecf3e960..d4f424d2ad8166f3e15d3a30925efbcd9144789c 100644 --- a/vendor/simplesamlphp/simplesamlphp/README.md +++ b/vendor/simplesamlphp/simplesamlphp/README.md @@ -1,7 +1,7 @@ SimpleSAMLphp ============= [](https://travis-ci.org/simplesamlphp/simplesamlphp) -[](https://coveralls.io/r/simplesamlphp/simplesamlphp) +[](https://codecov.io/gh/simplesamlphp/simplesamlphp) This is the official repository of the SimpleSAMLphp software. diff --git a/vendor/simplesamlphp/simplesamlphp/SECURITY.md b/vendor/simplesamlphp/simplesamlphp/SECURITY.md new file mode 100644 index 0000000000000000000000000000000000000000..676cf9becf513a396927b0f9aafadda9541a1216 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/SECURITY.md @@ -0,0 +1,29 @@ +# Security Policy + +SimpleSAMLphp is a software product critical for the security of applications and the privacy of users. As such, we take every security issue very seriously, and try to solve them as fast as possible, avoiding any potential damage to both users of this software and end users. + +This page contains information about security vulnerabilities, incidents or issues related to SimpleSAMLphp. Read below to learn how to properly report vulnerabilities, as well as to find information about issues already reported and fixed. + +## Supported Versions + +Only the current minor version (X.Y) receives bug and security fixes as a general rule. Release candidates are not considered stable, meaning the previous minor version will still receive fixes until the release candidate promotes to stable. + +## Reporting a Vulnerability + +In case you find a vulnerability in SimpleSAMLphp, or you want to confirm a possible security issue in the software, please get in touch with us through [UNINETT's CERT team](https://www.uninett.no/cert). Please use our PGP public key to encrypt any possible sensitive data that you may need to submit. We will get back to you as soon as possible according to our working hours in Central European Time. + +When reporting a security issue, please add as much information as possible to help us identify, confirm, replicate and fix the problem. In particular, remember to include the following information in your report: + +* The version or versions of SimpleSAMLphp affected. +* An exact version that can be used to replicate the issue. +* Any module or modules involved in the issue. +* Any particular configuration details relevant to the setup affected. +* A detailed description and a clear and concise, step-by-step guide to allow us reproduce the issue. +* Screenshots, videos, or any other media that would help identify the issue. +* Pointers to the exact line or lines in the code where the vulnerability is supposed to be. +* Context on how you discovered the issue. +* Your own name and whether you want to be credited for the discovery or not. + +Please **DO NOT** report security incidents related to systems that use SimpleSAMLphp, where this software is not the cause of the incident. Issues related to the use (or misuse) of infrastructure, misconfiguration of the software, malfunction of a particular system or user-related errors should not be reported either. If you are using SimpleSAMLphp to authenticate or login to services, but you don't know what SimpleSAMLphp is or you are not sure about the nature of the issue, please contact the organization running the service for you. + +Finally, be reasonable. We'll do our best to resolve the issue according to our principles of security and transparency. Every confirmed vulnerability will be published and resolved in a timely manner. All we ask in return is that you contact us privately first in order to avoid any potential damage to those using the software. diff --git a/vendor/simplesamlphp/simplesamlphp/TESTING.md b/vendor/simplesamlphp/simplesamlphp/TESTING.md index c38db47e8f070fb652931a0599c3cfaf8d520d39..302fb309a30fb4b27d4cad87c37b6793f95b805f 100644 --- a/vendor/simplesamlphp/simplesamlphp/TESTING.md +++ b/vendor/simplesamlphp/simplesamlphp/TESTING.md @@ -40,15 +40,14 @@ throws an exception in a specific situation: ```php /** * Test SimpleSAML\Utils\HTTP::addURLParameters(). - * - * @expectedException \InvalidArgumentException */ public function testAddURLParametersInvalidParameters() { + $this->expectException(ExpectedException::class); ``` -Refer to [the `phpunit 4.8` documentation](https://phpunit.de/manual/4.8/en/installation.html) -for more information on how to write tests. We currently use the `phpunit 4.8` -since it is the last version to support php 5.3. +Refer to [the `phpunit 5.7` documentation](https://phpunit.de/manual/5.7/en/installation.html) +for more information on how to write tests. We currently use the `phpunit 5.7` +since it is the last version to support php 5.6. Once you have implemented your tests, you can run them locally. First, make sure the `config` directory is **not** in the root of your @@ -59,7 +58,7 @@ you have `phpunit` installed and run: phpunit -c ./phpunit.xml ``` -If your default version of `phpunit` is more recent than 4.8, you can run +If your default version of `phpunit` is more recent than 5.7, you can run the old version installed by composer ```sh diff --git a/vendor/simplesamlphp/simplesamlphp/attributemap/deprecatedSchacNS.php b/vendor/simplesamlphp/simplesamlphp/attributemap/deprecatedSchacNS.php index 4a613348e15ed5f84f236a755c76e8d1c26421be..d8ce0e79dcd7865eec352eb5393635f29b71b9c7 100644 --- a/vendor/simplesamlphp/simplesamlphp/attributemap/deprecatedSchacNS.php +++ b/vendor/simplesamlphp/simplesamlphp/attributemap/deprecatedSchacNS.php @@ -32,4 +32,5 @@ SCHAC_NEW_NS.'schacUserPresenceID' => SCHAC_OLD_NS.'schacUserPresenceID', SCHAC_NEW_NS.'schacUserPrivateAttribute' => SCHAC_OLD_NS.'schacUserPrivateAttribute', SCHAC_NEW_NS.'schacUserStatus' => SCHAC_OLD_NS.'schacUserStatus', + SCHAC_NEW_NS.'schacYearOfBirth' => SCHAC_OLD_NS.'schacYearOfBirth', ]; diff --git a/vendor/simplesamlphp/simplesamlphp/attributemap/newSchacNS.php b/vendor/simplesamlphp/simplesamlphp/attributemap/newSchacNS.php index 16e67394eecf567af9ffb263c21e02e5964efad7..8de37c992c6694e5c764d8de7ccfea14069d530a 100644 --- a/vendor/simplesamlphp/simplesamlphp/attributemap/newSchacNS.php +++ b/vendor/simplesamlphp/simplesamlphp/attributemap/newSchacNS.php @@ -32,4 +32,5 @@ SCHAC_OLD_NS.'schacUserPresenceID' => SCHAC_NEW_NS.'schacUserPresenceID', SCHAC_OLD_NS.'schacUserPrivateAttribute' => SCHAC_NEW_NS.'schacUserPrivateAttribute', SCHAC_OLD_NS.'schacUserStatus' => SCHAC_NEW_NS.'schacUserStatus', + SCHAC_OLD_NS.'schacYearOfBirth' => SCHAC_NEW_NS.'schacYearOfBirth', ]; diff --git a/vendor/simplesamlphp/simplesamlphp/attributemap/oid2name.php b/vendor/simplesamlphp/simplesamlphp/attributemap/oid2name.php index f36dd1cab3b173df320c424f78b05a8e5a455a49..6c2cda72da656d794d5d6b090797b6e4806ced36 100644 --- a/vendor/simplesamlphp/simplesamlphp/attributemap/oid2name.php +++ b/vendor/simplesamlphp/simplesamlphp/attributemap/oid2name.php @@ -83,6 +83,7 @@ 'urn:oid:1.3.6.1.4.1.5923.1.2.1.5' => 'eduOrgSuperiorURI', 'urn:oid:1.3.6.1.4.1.5923.1.2.1.6' => 'eduOrgWhitePagesURI', 'urn:oid:1.3.6.1.4.1.5923.1.5.1.1' => 'isMemberOf', + 'urn:oid:1.3.6.1.4.1.25178.1.0.2.3' => 'schacYearOfBirth', 'urn:oid:1.3.6.1.4.1.25178.1.2.1' => 'schacMotherTongue', 'urn:oid:1.3.6.1.4.1.25178.1.2.2' => 'schacGender', 'urn:oid:1.3.6.1.4.1.25178.1.2.3' => 'schacDateOfBirth', diff --git a/vendor/simplesamlphp/simplesamlphp/attributemap/oid2urn.php b/vendor/simplesamlphp/simplesamlphp/attributemap/oid2urn.php index a2b0a78e32e63655ca946a2d85a05d86d1e29a26..4d25dece2dfbb6f9b8431e5557ca6626cfa3a650 100644 --- a/vendor/simplesamlphp/simplesamlphp/attributemap/oid2urn.php +++ b/vendor/simplesamlphp/simplesamlphp/attributemap/oid2urn.php @@ -80,6 +80,7 @@ 'urn:oid:1.3.6.1.4.1.5923.1.2.1.4' => 'urn:mace:dir:attribute-def:eduOrgLegalName', 'urn:oid:1.3.6.1.4.1.5923.1.2.1.5' => 'urn:mace:dir:attribute-def:eduOrgSuperiorURI', 'urn:oid:1.3.6.1.4.1.5923.1.2.1.6' => 'urn:mace:dir:attribute-def:eduOrgWhitePagesURI', + 'urn:oid:1.3.6.1.4.1.25178.1.0.2.3' => 'urn:mace:terena.org:attribute-def:schacYearOfBirth', 'urn:oid:1.3.6.1.4.1.25178.1.2.1' => 'urn:mace:terena.org:attribute-def:schacMotherTongue', 'urn:oid:1.3.6.1.4.1.25178.1.2.2' => 'urn:mace:terena.org:attribute-def:schacGender', 'urn:oid:1.3.6.1.4.1.25178.1.2.3' => 'urn:mace:terena.org:attribute-def:schacDateOfBirth', diff --git a/vendor/simplesamlphp/simplesamlphp/attributemap/urn2oid.php b/vendor/simplesamlphp/simplesamlphp/attributemap/urn2oid.php index 4abf467844205819687bee888882586f4e3e8cec..e7acc594243b80f7c5566c89df2d1ed5db02e399 100644 --- a/vendor/simplesamlphp/simplesamlphp/attributemap/urn2oid.php +++ b/vendor/simplesamlphp/simplesamlphp/attributemap/urn2oid.php @@ -185,4 +185,5 @@ 'urn:mace:terena.org:attribute-def:schacUserPresenceID' => 'urn:oid:1.3.6.1.4.1.25178.1.2.12', 'urn:mace:terena.org:attribute-def:schacUserPrivateAttribute' => 'urn:oid:1.3.6.1.4.1.25178.1.2.18', 'urn:mace:terena.org:attribute-def:schacUserStatus' => 'urn:oid:1.3.6.1.4.1.25178.1.2.19', + 'urn:mace:terena.org:attribute-def:schacYearOfBirth' => 'urn:oid:1.3.6.1.4.1.25178.1.0.2.3', ]; diff --git a/vendor/simplesamlphp/simplesamlphp/bin/build-release.sh b/vendor/simplesamlphp/simplesamlphp/bin/build-release.sh index da576e59739e4da68ef4c132519e26e99662160a..cd702b7c59b65eb8324078d968e41d0f69e63f64 100755 --- a/vendor/simplesamlphp/simplesamlphp/bin/build-release.sh +++ b/vendor/simplesamlphp/simplesamlphp/bin/build-release.sh @@ -46,7 +46,7 @@ # Install dependencies (without vcs history or dev tools) php "$TARGET/composer.phar" install --no-dev --prefer-dist -o -d "$TARGET" -cd $TARGET +cd $TARGET npm install npm audit fix npm run build diff --git a/vendor/simplesamlphp/simplesamlphp/bin/check-syntax.sh b/vendor/simplesamlphp/simplesamlphp/bin/check-syntax.sh deleted file mode 100755 index 0be70baff93b61899035a3e8fb9b69df0c3c97d3..0000000000000000000000000000000000000000 --- a/vendor/simplesamlphp/simplesamlphp/bin/check-syntax.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -PHP='/usr/bin/env php' -RETURN=0 - -# check PHP files -for FILE in `find attributemap bin config-templates lib metadata-templates modules templates www -name "*.php"`; do - $PHP -l $FILE > /dev/null 2>&1 - if [ $? -ne 0 ]; then - echo "Syntax check failed for ${FILE}" - RETURN=`expr ${RETURN} + 1` - fi -done - -# check JSON files -for FILE in `find dictionaries modules -name "*.json"`; do - $PHP -r "exit((json_decode(file_get_contents('$FILE')) === null) ? 1 : 0);" - if [ $? -ne 0 ]; then - echo "Syntax check failed for ${FILE}" - RETURN=`expr ${RETURN} + 1` - fi -done - -exit $RETURN diff --git a/vendor/simplesamlphp/simplesamlphp/bin/importPdoMetadata.php b/vendor/simplesamlphp/simplesamlphp/bin/importPdoMetadata.php index abf4fdd4842f5a6ec3c6641d82664a01e330e769..3dbd6cf8caede53c35b0d32507c17fccc7e44162 100755 --- a/vendor/simplesamlphp/simplesamlphp/bin/importPdoMetadata.php +++ b/vendor/simplesamlphp/simplesamlphp/bin/importPdoMetadata.php @@ -2,8 +2,8 @@ <?php $baseDir = dirname(dirname(__FILE__)); -require_once $baseDir.DIRECTORY_SEPARATOR.'lib'.DIRECTORY_SEPARATOR.'_autoload.php'; -require_once \SimpleSAML\Utils\Config::getConfigDir().DIRECTORY_SEPARATOR.'config.php'; +require_once $baseDir . DIRECTORY_SEPARATOR . 'lib' . DIRECTORY_SEPARATOR . '_autoload.php'; +require_once \SimpleSAML\Utils\Config::getConfigDir() . DIRECTORY_SEPARATOR . 'config.php'; # Iterate through configured metadata sources and ensure # that a PDO source exists. @@ -13,14 +13,15 @@ $mdshp = new \SimpleSAML\Metadata\MetaDataStorageHandlerPdo($s); $mdshp->initDatabase(); - foreach (glob("metadata/*.php") as $filename) { + $metadataDir = rtrim(\SimpleSAML\Configuration::getInstance()->getString('metadatadir'), '/'); + foreach (glob("{$metadataDir}/*.php") as $filename) { $metadata = []; require_once $filename; $set = basename($filename, ".php"); - echo "importing set '$set'...".PHP_EOL; + echo "importing set '$set'..." . PHP_EOL; foreach ($metadata as $k => $v) { - echo "\t$k".PHP_EOL; + echo "\t$k" . PHP_EOL; $mdshp->addEntry($k, $set, $v); } } diff --git a/vendor/simplesamlphp/simplesamlphp/bin/initMDSPdo.php b/vendor/simplesamlphp/simplesamlphp/bin/initMDSPdo.php index 403b4d2de00ce3ac8fdd9267b31cecf77b8abea1..ca60292003482ebbe7a98a41cee8b3ca46c4b8e8 100755 --- a/vendor/simplesamlphp/simplesamlphp/bin/initMDSPdo.php +++ b/vendor/simplesamlphp/simplesamlphp/bin/initMDSPdo.php @@ -5,10 +5,10 @@ $baseDir = dirname(dirname(__FILE__)); // Add library autoloader and configuration -require_once $baseDir.DIRECTORY_SEPARATOR.'lib'.DIRECTORY_SEPARATOR.'_autoload.php'; -require_once \SimpleSAML\Utils\Config::getConfigDir().DIRECTORY_SEPARATOR.'config.php'; +require_once $baseDir . DIRECTORY_SEPARATOR . 'lib' . DIRECTORY_SEPARATOR . '_autoload.php'; +require_once \SimpleSAML\Utils\Config::getConfigDir() . DIRECTORY_SEPARATOR . 'config.php'; -echo "Initializing Metadata Database...".PHP_EOL; +echo "Initializing Metadata Database..." . PHP_EOL; # Iterate through configured metadata sources and ensure # that a PDO source exists. @@ -19,9 +19,9 @@ $result = $metadataStorageHandler->initDatabase(); if ($result === false) { - echo "Failed to initialize metadata database.".PHP_EOL; + echo "Failed to initialize metadata database." . PHP_EOL; } else { - echo "Successfully initialized metadata database.".PHP_EOL; + echo "Successfully initialized metadata database." . PHP_EOL; } } } diff --git a/vendor/simplesamlphp/simplesamlphp/bin/memcacheSync.php b/vendor/simplesamlphp/simplesamlphp/bin/memcacheSync.php index 0dfdc31f4741b3b56961c9ea27e7e569ac3952a8..910841e1c8e698c646b7f620d0184951054a035d 100755 --- a/vendor/simplesamlphp/simplesamlphp/bin/memcacheSync.php +++ b/vendor/simplesamlphp/simplesamlphp/bin/memcacheSync.php @@ -1,7 +1,6 @@ #!/usr/bin/env php <?php - // Check that the memcache library is enabled if (!class_exists('Memcache') && !class_exists('Memcached')) { echo "Error: the memcached (or memcache) PHP extension appears to be unavailable.\n"; @@ -22,7 +21,7 @@ $baseDir = dirname(dirname(__FILE__)); // Add library autoloader -require_once($baseDir.'/lib/_autoload.php'); +require_once($baseDir . '/lib/_autoload.php'); // Initialize the configuration $configdir = SimpleSAML\Utils\Config::getConfigDir(); @@ -39,21 +38,21 @@ foreach ($stats as $group) { foreach ($group as $server => $state) { if ($state === false) { - echo "WARNING: Server ".$server." is down.\n"; + echo "WARNING: Server " . $server . " is down.\n"; $warnServerDown++; continue; } $items = $state['curr_items']; - echo "Server ".$server." has ".$items." items.\n"; + echo "Server " . $server . " has " . $items . " items.\n"; $serverKeys = getServerKeys($server); $keys = array_merge($keys, $serverKeys); } } -echo "Total number of keys: ".count($keys)."\n"; +echo "Total number of keys: " . count($keys) . "\n"; $keys = array_unique($keys); -echo "Total number of unique keys: ".count($keys)."\n"; +echo "Total number of unique keys: " . count($keys) . "\n"; echo "Starting synchronization.\n" ; @@ -70,19 +69,19 @@ echo "Synchronization done.\n"; -echo $sync." keys in sync.\n"; +echo $sync . " keys in sync.\n"; if ($skipped > 0) { - echo $skipped." keys skipped.\n"; + echo $skipped . " keys skipped.\n"; echo "Keys are skipped because they are either expired, or are of a type unknown\n"; echo "to SimpleSAMLphp.\n"; } if ($warnServerDown > 0) { - echo "WARNING: ".$warnServerDown." server(s) down. Not all servers are synchronized.\n"; + echo "WARNING: " . $warnServerDown . " server(s) down. Not all servers are synchronized.\n"; } if ($warnBigSlab > 0) { - echo "WARNING: ".$warnBigSlab." slab(s) may have contained more keys than we were told about.\n"; + echo "WARNING: " . $warnBigSlab . " slab(s) may have contained more keys than we were told about.\n"; } /** @@ -98,7 +97,7 @@ function getServerKeys($server) $host = $server[0]; $port = (int) $server[1]; - echo "Connecting to: ".$host.":".$port."\n"; + echo "Connecting to: " . $host . ":" . $port . "\n"; $socket = fsockopen($host, $port); echo "Connected. Finding keys.\n"; @@ -126,7 +125,7 @@ function getServerKeys($server) // Dump keys in slabs $keys = []; foreach ($slabs as $slab) { - if (fwrite($socket, "stats cachedump ".$slab." 1000000\r\n") === false) { + if (fwrite($socket, "stats cachedump " . $slab . " 1000000\r\n") === false) { echo "Error requesting cache dump from server.\n"; exit(1); } @@ -147,17 +146,17 @@ function getServerKeys($server) if (preg_match('/^ITEM (.*) \[\d+ b; \d+ s\]/', $line, $matches)) { $keys[] = $matches[1]; } else { - echo "Unknown result from cache dump: ".$line."\n"; + echo "Unknown result from cache dump: " . $line . "\n"; } } if ($resultSize > 1900000 || count($keys) >= 1000000) { - echo "WARNING: Slab ".$slab." on server ".$host.":".$port. + echo "WARNING: Slab " . $slab . " on server " . $host . ":" . $port . " may have contained more keys than we were told about.\n"; $GLOBALS['warnBigSlab'] += 1; } } - echo "Found ".count($keys)." key(s).\n"; + echo "Found " . count($keys) . " key(s).\n"; fclose($socket); return $keys; diff --git a/vendor/simplesamlphp/simplesamlphp/bin/pwgen.php b/vendor/simplesamlphp/simplesamlphp/bin/pwgen.php index b9789cb57b2ec49cf04d70a5fb1eaea1525e83c6..7ef18b3e53854a8430fdc34bea9fa4ebc77d1839 100755 --- a/vendor/simplesamlphp/simplesamlphp/bin/pwgen.php +++ b/vendor/simplesamlphp/simplesamlphp/bin/pwgen.php @@ -1,16 +1,16 @@ #!/usr/bin/env php <?php + /* * Interactive script to generate password hashes. * */ - // This is the base directory of the SimpleSAMLphp installation $baseDir = dirname(dirname(__FILE__)); // Add library autoloader -require_once($baseDir.'/lib/_autoload.php'); +require_once($baseDir . '/lib/_autoload.php'); echo "Enter password: "; @@ -21,4 +21,4 @@ exit(1); } -echo "\n ".SimpleSAML\Utils\Crypto::pwHash($password)."\n\n"; +echo "\n " . SimpleSAML\Utils\Crypto::pwHash($password) . "\n\n"; diff --git a/vendor/simplesamlphp/simplesamlphp/bin/translateAttributes.php b/vendor/simplesamlphp/simplesamlphp/bin/translateAttributes.php new file mode 100755 index 0000000000000000000000000000000000000000..7ed0a2111727f252786c364cae305e29c09c7778 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/bin/translateAttributes.php @@ -0,0 +1,123 @@ +#!/usr/bin/env php +<?php + +/** + * This script loads attribute names from the attributemap/ directory, and dumps them into an attributes.po + * translation file for each supported language. + */ + +$base = __DIR__ . '/../'; + +include_once($base . 'vendor/autoload.php'); + +include_once($base . 'attributemap/name2urn.php'); +$names = $attributemap; + +include_once($base . 'attributemap/urn2oid.php'); +$urns = $attributemap; + +include_once($base . 'attributemap/newSchacNS.php'); +$schac = $attributemap; + +/* + * We are still using the old JSON dictionaries as authoritative source here. It is actually convenient to keep + * something equivalent to this, in order to automate propagation of attribute translations to the PO files. We should + * probably consider moving the "dictionaries/attributes.definition.json" file somewhere else, and keep using it as + * the authoritative source of known attributes for this script. + */ +$defs = json_decode(file_get_contents($base . 'dictionaries/attributes.definition.json'), true); +$trans = json_decode(file_get_contents($base . 'dictionaries/attributes.translation.json'), true); + +$attributes = []; + +$languages = SimpleSAML\Locale\Language::$language_names; +$languages['nb'] = $languages['no']; +unset($languages['no']); + + +// build the list of attributes with their corresponding aliases +foreach ($names as $name => $urn) { + $lower = str_replace([':', '-'], '_', strtolower($name)); + if (!array_key_exists('attribute_' . $lower, $defs)) { + $defs['attribute_' . $lower] = []; + } + if (!array_key_exists('attribute_' . $lower, $trans)) { + $trans['attribute_' . $lower] = []; + } + if (array_key_exists('no', $trans['attribute_' . $lower])) { + // fix the locale code + $trans['attribute_' . $lower]['nb'] = $trans['attribute_' . $lower]['no']; + unset($trans['attribute_' . $lower]['no']); + } + $names = [$name, $urn, $urns[$urn]]; + if (array_key_exists($urn, $schac)) { + $names[] = $schac[$urn]; + } + $attributes[$name] = [ + 'names' => $names, + 'translations' => array_merge( + [ + 'en' => $defs['attribute_' . $lower]['en'], + ], + $trans['attribute_' . $lower] + ), + ]; +} + +// process other sets of attributes +foreach (['facebook', 'linkedin', 'openid', 'twitter', 'windowslive'] as $set) { + include_once($base . 'attributemap/' . $set . '2name.php'); + foreach ($attributemap as $alias => $attr) { + if (array_key_exists($attr, $attributes)) { + $attributes[$attr]['names'][] = $alias; + } + } +} + +// build the dictionaries per language +foreach (array_keys($languages) as $language) { + $strings = new Gettext\Translations(); + + // load existing translations in the PO files + $strings->addFromPoFile($base . 'locales/' . $language . "/LC_MESSAGES/attributes.po"); + + foreach ($attributes as $attribute) { + foreach ($attribute['names'] as $name) { + if (empty($name)) { + continue; + } + $translation = new Gettext\Translation('', $name); + if ( + array_key_exists($language, $attribute['translations']) + && !is_null($attribute['translations'][$language]) + ) { + $t = $strings->find($translation); + if ($t) { + if ($t->getOriginal() === $t->getTranslation()) { + $t->setTranslation($attribute['translations'][$language]); + $translation = $t; + } + } + } + if (!is_null($attribute['translations']['en']) && $language !== 'en') { + $translation->addComment('English string: ' . $attribute['translations']['en']); + } + $strings[] = $translation; + } + } + + foreach ($strings as $entry) { + if ($entry->getTranslation() === '') { + // ensure that all entries contain a translation string + $entry->setTranslation($entry->getOriginal()); + } + } + + // remove headers that only cause unnecessary changes in our commits + $strings->deleteHeader('POT-Creation-Date'); + $strings->deleteHeader('PO-Revision-Date'); + + $strings->setLanguage($language); + echo "Saving translations to " . $base . "locales/" . $language . "/LC_MESSAGES/attributes.po\n"; + Gettext\Generators\Po::toFile($strings, $base . 'locales/' . $language . '/LC_MESSAGES/attributes.po'); +} diff --git a/vendor/simplesamlphp/simplesamlphp/composer.json b/vendor/simplesamlphp/simplesamlphp/composer.json index 945bf8e9ccb0cd77077b212a18518c6553098895..b1fe7c94c867f9baed1a6f2634b67d1eec465c19 100644 --- a/vendor/simplesamlphp/simplesamlphp/composer.json +++ b/vendor/simplesamlphp/simplesamlphp/composer.json @@ -5,6 +5,7 @@ "keywords": [ "saml2", "shibboleth","oauth","ws-federation","sp","idp" ], "homepage": "http://simplesamlphp.org", "license": "LGPL-2.1-or-later", + "version": "v1.18.7", "authors": [ { "name": "Andreas Åkre Solberg", @@ -25,8 +26,14 @@ }, "files": ["lib/_autoload_modules.php"] }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\": ["tests", "tests/lib/SimpleSAML"] + }, + "files": ["tests/_autoload_modules.php"] + }, "require": { - "php": ">=5.5", + "php": ">=5.6", "ext-SPL": "*", "ext-zlib": "*", "ext-pcre": "*", @@ -36,23 +43,56 @@ "ext-hash": "*", "ext-json": "*", "ext-mbstring": "*", - "simplesamlphp/saml2": "^3.3", - "robrichards/xmlseclibs": "^3.0.4", - "whitehat101/apr1-md5": "~1.0", - "twig/twig": "~1.0 || ~2.0", "gettext/gettext": "^4.6", - "jaimeperez/twig-configurable-i18n": "^2.0", + "phpmailer/phpmailer": "^6.0", + "robrichards/xmlseclibs": "^3.0.4", + "simplesamlphp/saml2": "^3.4 || ^4.0", + "simplesamlphp/simplesamlphp-module-adfs": "^0.9", + "simplesamlphp/simplesamlphp-module-authcrypt": "^0.9", + "simplesamlphp/simplesamlphp-module-authfacebook": "^0.9", + "simplesamlphp/simplesamlphp-module-authorize": "^0.9", + "simplesamlphp/simplesamlphp-module-authtwitter": "^0.9", + "simplesamlphp/simplesamlphp-module-authwindowslive": "^0.9", + "simplesamlphp/simplesamlphp-module-authx509": "^0.9", + "simplesamlphp/simplesamlphp-module-authyubikey": "^0.9", + "simplesamlphp/simplesamlphp-module-cas": "^0.9", + "simplesamlphp/simplesamlphp-module-cdc": "^0.9", + "simplesamlphp/simplesamlphp-module-consent": "^0.9", + "simplesamlphp/simplesamlphp-module-consentadmin": "^0.9", + "simplesamlphp/simplesamlphp-module-discopower": "^0.9", + "simplesamlphp/simplesamlphp-module-exampleattributeserver": "^1.0", + "simplesamlphp/simplesamlphp-module-expirycheck": "^0.9", + "simplesamlphp/simplesamlphp-module-ldap": "^0.9", + "simplesamlphp/simplesamlphp-module-memcookie": "^1.2", + "simplesamlphp/simplesamlphp-module-memcachemonitor": "^0.9", + "simplesamlphp/simplesamlphp-module-metarefresh": "^0.9", + "simplesamlphp/simplesamlphp-module-negotiate": "^0.9", + "simplesamlphp/simplesamlphp-module-oauth": "^0.9", + "simplesamlphp/simplesamlphp-module-preprodwarning": "^0.9", + "simplesamlphp/simplesamlphp-module-radius": "^0.9", + "simplesamlphp/simplesamlphp-module-riak": "^0.9", + "simplesamlphp/simplesamlphp-module-smartattributes": "^0.9", + "simplesamlphp/simplesamlphp-module-sanitycheck": "^0.9", + "simplesamlphp/simplesamlphp-module-statistics": "^0.9", + "simplesamlphp/simplesamlphp-module-sqlauth": "^0.9", + "simplesamlphp/twig-configurable-i18n": "^2.1", "symfony/routing": "^3.4 || ^4.0", "symfony/http-foundation": "^3.4 || ^4.0", "symfony/config": "^3.4 || ^4.0", "symfony/http-kernel": "^3.4 || ^4.0", "symfony/dependency-injection": "^3.4 || ^4.0", - "symfony/yaml": "^3.4 || ^4.0" + "symfony/yaml": "^3.4 || ^4.0", + "twig/twig": "~1.0 || ~2.0", + "whitehat101/apr1-md5": "~1.0" }, "require-dev": { - "phpunit/phpunit": "~4.8", + "ext-curl": "*", "mikey179/vfsstream": "~1.6", - "ext-curl": "*" + "phpunit/phpunit": "~5.7", + "sensiolabs/security-checker": "^5.0.3", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.14", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "~1.1.9" }, "suggest": { "predis/predis": "Needed if a Redis server is used to store session information", diff --git a/vendor/simplesamlphp/simplesamlphp/composer.lock b/vendor/simplesamlphp/simplesamlphp/composer.lock index b828386ff6e7d18396f92b2d92b036262a499f58..71621a69c5d0f3e13c102136e14f95ce2b706d8f 100644 --- a/vendor/simplesamlphp/simplesamlphp/composer.lock +++ b/vendor/simplesamlphp/simplesamlphp/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "0603e3b6481824853d37eeb5801017d3", + "content-hash": "27c9966878bf09243ab1ca6e19a60e6c", "packages": [ { "name": "gettext/gettext", - "version": "v4.8.0", + "version": "v4.8.2", "source": { "type": "git", "url": "https://github.com/php-gettext/Gettext.git", - "reference": "207719c6eae36f5ac7c2c9542f6a4d4b76307e5a" + "reference": "e474f872f2c8636cf53fd283ec4ce1218f3d236a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-gettext/Gettext/zipball/207719c6eae36f5ac7c2c9542f6a4d4b76307e5a", - "reference": "207719c6eae36f5ac7c2c9542f6a4d4b76307e5a", + "url": "https://api.github.com/repos/php-gettext/Gettext/zipball/e474f872f2c8636cf53fd283ec4ce1218f3d236a", + "reference": "e474f872f2c8636cf53fd283ec4ce1218f3d236a", "shasum": "" }, "require": { @@ -66,31 +66,31 @@ "po", "translation" ], - "time": "2019-11-04T18:03:29+00:00" + "time": "2019-12-02T10:21:14+00:00" }, { "name": "gettext/languages", - "version": "2.5.0", + "version": "2.6.0", "source": { "type": "git", - "url": "https://github.com/mlocati/cldr-to-gettext-plural-rules.git", - "reference": "78db2d17933f0765a102f368a6663f057162ddbd" + "url": "https://github.com/php-gettext/Languages.git", + "reference": "38ea0482f649e0802e475f0ed19fa993bcb7a618" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mlocati/cldr-to-gettext-plural-rules/zipball/78db2d17933f0765a102f368a6663f057162ddbd", - "reference": "78db2d17933f0765a102f368a6663f057162ddbd", + "url": "https://api.github.com/repos/php-gettext/Languages/zipball/38ea0482f649e0802e475f0ed19fa993bcb7a618", + "reference": "38ea0482f649e0802e475f0ed19fa993bcb7a618", "shasum": "" }, "require": { "php": ">=5.3" }, "require-dev": { - "phpunit/phpunit": "^4" + "friendsofphp/php-cs-fixer": "^2.16.0", + "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5 || ^8.4" }, "bin": [ - "bin/export-plural-rules", - "bin/export-plural-rules.php" + "bin/export-plural-rules" ], "type": "library", "autoload": { @@ -110,7 +110,7 @@ } ], "description": "gettext languages with plural rules", - "homepage": "https://github.com/mlocati/cldr-to-gettext-plural-rules", + "homepage": "https://github.com/php-gettext/Languages", "keywords": [ "cldr", "i18n", @@ -127,105 +127,190 @@ "translations", "unicode" ], - "time": "2018-11-13T22:06:07+00:00" + "time": "2019-11-13T10:30:21+00:00" }, { - "name": "jaimeperez/twig-configurable-i18n", - "version": "v2.1", + "name": "paragonie/random_compat", + "version": "v2.0.18", "source": { "type": "git", - "url": "https://github.com/jaimeperez/twig-configurable-i18n.git", - "reference": "38a22aaa6b31efdc0d76d58f5934dea3ebac8556" + "url": "https://github.com/paragonie/random_compat.git", + "reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jaimeperez/twig-configurable-i18n/zipball/38a22aaa6b31efdc0d76d58f5934dea3ebac8556", - "reference": "38a22aaa6b31efdc0d76d58f5934dea3ebac8556", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/0a58ef6e3146256cc3dc7cc393927bcc7d1b72db", + "reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db", "shasum": "" }, "require": { - "twig/extensions": "^1.5" + "php": ">=5.2.0" }, "require-dev": { - "phpunit/phpunit": "~4.8.36", - "twig/twig": "^1.37 || ^2.7" + "phpunit/phpunit": "4.*|5.*" }, - "type": "project", + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "autoload": { + "files": [ + "lib/random.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "polyfill", + "pseudorandom", + "random" + ], + "time": "2019-01-03T20:59:08+00:00" + }, + { + "name": "phpfastcache/riak-client", + "version": "3.4.3", + "source": { + "type": "git", + "url": "https://github.com/PHPSocialNetwork/riak-php-client.git", + "reference": "d771f75d16196006604a30bb15adc1c6a9b0fcc9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPSocialNetwork/riak-php-client/zipball/d771f75d16196006604a30bb15adc1c6a9b0fcc9", + "reference": "d771f75d16196006604a30bb15adc1c6a9b0fcc9", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-json": "*", + "php": ">=5.4" + }, + "conflict": { + "basho/riak": "*" + }, + "require-dev": { + "apigen/apigen": "4.1.*", + "phpunit/phpunit": "4.8.*" + }, + "type": "library", "autoload": { "psr-4": { - "JaimePerez\\TwigConfigurableI18n\\": "src/" + "Basho\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "LGPL-2.1" + "Apache-2.0" ], "authors": [ { - "name": "Jaime Perez", - "email": "jaime.perez@uninett.no" + "name": "Georges.L", + "email": "contact@geolim4.com", + "homepage": "https://github.com/Geolim4", + "role": "Maintainer" + }, + { + "name": "Christopher Mancini", + "email": "cmancini@basho.com", + "homepage": "https://github.com/christophermancini", + "role": "Former Lead Developer" + }, + { + "name": "Alex Moore", + "email": "amoore@basho.com", + "homepage": "https://github.com/alexmoore", + "role": "Former Developer" } ], - "description": "This is an extension on top of Twig's i18n extension, allowing you to customize which functions to use for translations.", + "description": "Riak client for PHP (Fork of the official basho/riak due to maintainer significant inactivity)", + "homepage": "https://github.com/PHPSocialNetwork/riak-php-client", "keywords": [ - "extension", - "gettext", - "i18n", - "internationalization", - "translation", - "twig" + "basho", + "client", + "crdt", + "data", + "database", + "datatype", + "driver", + "kv", + "nosql", + "riak" ], - "abandoned": "simplesamlphp/twig-configurable-i18n", - "time": "2019-06-07T11:03:28+00:00" + "time": "2017-11-23T21:33:15+00:00" }, { - "name": "paragonie/random_compat", - "version": "v2.0.18", + "name": "phpmailer/phpmailer", + "version": "v6.1.3", "source": { "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db" + "url": "https://github.com/PHPMailer/PHPMailer.git", + "reference": "a25ae38e03de4ee4031725498a600012364787c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/0a58ef6e3146256cc3dc7cc393927bcc7d1b72db", - "reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/a25ae38e03de4ee4031725498a600012364787c7", + "reference": "a25ae38e03de4ee4031725498a600012364787c7", "shasum": "" }, "require": { - "php": ">=5.2.0" + "ext-ctype": "*", + "ext-filter": "*", + "php": ">=5.5.0" }, "require-dev": { - "phpunit/phpunit": "4.*|5.*" + "doctrine/annotations": "^1.2", + "friendsofphp/php-cs-fixer": "^2.2", + "phpunit/phpunit": "^4.8 || ^5.7" }, "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + "ext-mbstring": "Needed to send email in multibyte encoding charset", + "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication", + "league/oauth2-google": "Needed for Google XOAUTH2 authentication", + "psr/log": "For optional PSR-3 debug logging", + "stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication", + "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)" }, "type": "library", "autoload": { - "files": [ - "lib/random.php" - ] + "psr-4": { + "PHPMailer\\PHPMailer\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "LGPL-2.1-only" ], "authors": [ { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" + "name": "Marcus Bointon", + "email": "phpmailer@synchromedia.co.uk" + }, + { + "name": "Jim Jagielski", + "email": "jimjag@gmail.com" + }, + { + "name": "Andy Prevost", + "email": "codeworxtech@users.sourceforge.net" + }, + { + "name": "Brent R. Matzelle" } ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", - "keywords": [ - "csprng", - "polyfill", - "pseudorandom", - "random" - ], - "time": "2019-01-03T20:59:08+00:00" + "description": "PHPMailer is a full-featured email creation and transfer class for PHP", + "time": "2019-11-21T09:37:46+00:00" }, { "name": "psr/container", @@ -361,18 +446,49 @@ ], "time": "2019-11-05T11:44:22+00:00" }, + { + "name": "simplesamlphp/composer-module-installer", + "version": "v1.1.6", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/composer-module-installer.git", + "reference": "b70414a2112fe49e97a7eddd747657bd8bc38ef0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/composer-module-installer/zipball/b70414a2112fe49e97a7eddd747657bd8bc38ef0", + "reference": "b70414a2112fe49e97a7eddd747657bd8bc38ef0", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0", + "simplesamlphp/simplesamlphp": "*" + }, + "type": "composer-plugin", + "extra": { + "class": "SimpleSamlPhp\\Composer\\ModuleInstallerPlugin" + }, + "autoload": { + "psr-0": { + "SimpleSamlPhp\\Composer": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "description": "A Composer plugin that allows installing SimpleSAMLphp modules through Composer.", + "time": "2017-04-24T07:12:50+00:00" + }, { "name": "simplesamlphp/saml2", - "version": "v3.4.2", + "version": "v3.4.4", "source": { "type": "git", "url": "https://github.com/simplesamlphp/saml2.git", - "reference": "3806d276edb066c60aa3d748ffd0681d92ffbda7" + "reference": "ed2d61c6f67adcdf87fe2ff88f2a65aa582bfbf6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/3806d276edb066c60aa3d748ffd0681d92ffbda7", - "reference": "3806d276edb066c60aa3d748ffd0681d92ffbda7", + "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/ed2d61c6f67adcdf87fe2ff88f2a65aa582bfbf6", + "reference": "ed2d61c6f67adcdf87fe2ff88f2a65aa582bfbf6", "shasum": "" }, "require": { @@ -418,663 +534,2146 @@ } ], "description": "SAML2 PHP library from SimpleSAMLphp", - "time": "2019-11-06T10:00:32+00:00" + "time": "2020-02-02T10:23:00+00:00" }, { - "name": "symfony/config", - "version": "v3.4.33", + "name": "simplesamlphp/simplesamlphp-module-adfs", + "version": "v0.9.6", "source": { "type": "git", - "url": "https://github.com/symfony/config.git", - "reference": "c111091db748ed394fd8c3e473a90ad3b80e08ad" + "url": "https://github.com/simplesamlphp/simplesamlphp-module-adfs.git", + "reference": "425e5ebbdd097c92fe5265a6b48d32a3095c7237" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/c111091db748ed394fd8c3e473a90ad3b80e08ad", - "reference": "c111091db748ed394fd8c3e473a90ad3b80e08ad", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-adfs/zipball/425e5ebbdd097c92fe5265a6b48d32a3095c7237", + "reference": "425e5ebbdd097c92fe5265a6b48d32a3095c7237", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/filesystem": "~2.8|~3.0|~4.0", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/dependency-injection": "<3.3", - "symfony/finder": "<3.3" + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" }, "require-dev": { - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/event-dispatcher": "~3.3|~4.0", - "symfony/finder": "~3.3|~4.0", - "symfony/yaml": "~3.0|~4.0" - }, - "suggest": { - "symfony/yaml": "To use the yaml reference dumper" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17", + "webmozart/assert": "<1.7" }, + "type": "simplesamlphp-module", "autoload": { "psr-4": { - "Symfony\\Component\\Config\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "SimpleSAML\\Module\\adfs\\": "lib/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "LGPL-2.1-or-later" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" } ], - "description": "Symfony Config Component", - "homepage": "https://symfony.com", - "time": "2019-10-30T12:46:47+00:00" + "description": "A module that implements the WS-federation IDP", + "keywords": [ + "adfs", + "simplesamlphp" + ], + "time": "2020-03-31T14:29:24+00:00" }, { - "name": "symfony/debug", - "version": "v3.4.33", + "name": "simplesamlphp/simplesamlphp-module-authcrypt", + "version": "v0.9.1", "source": { "type": "git", - "url": "https://github.com/symfony/debug.git", - "reference": "f72e33fdb1170b326e72c3157f0cd456351dd086" + "url": "https://github.com/simplesamlphp/simplesamlphp-module-authcrypt.git", + "reference": "cc2950cf710933063192e883ba2804321b8af6db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/f72e33fdb1170b326e72c3157f0cd456351dd086", - "reference": "f72e33fdb1170b326e72c3157f0cd456351dd086", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-authcrypt/zipball/cc2950cf710933063192e883ba2804321b8af6db", + "reference": "cc2950cf710933063192e883ba2804321b8af6db", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "psr/log": "~1.0" - }, - "conflict": { - "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "webmozart/assert": "~1.4" }, "require-dev": { - "symfony/http-kernel": "~2.8|~3.0|~4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" }, + "type": "simplesamlphp-module", "autoload": { "psr-4": { - "Symfony\\Component\\Debug\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "SimpleSAML\\Module\\authcrypt\\": "lib/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "LGPL-3.0-or-later" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Olav Morken", + "email": "olavmrk@gmail.com" } ], - "description": "Symfony Debug Component", - "homepage": "https://symfony.com", - "time": "2019-10-24T15:33:53+00:00" + "description": "This module provides authentication against password hashes or .htpasswd files", + "keywords": [ + "authcrypt", + "simplesamlphp" + ], + "time": "2019-12-03T08:56:36+00:00" }, { - "name": "symfony/dependency-injection", - "version": "v3.4.33", + "name": "simplesamlphp/simplesamlphp-module-authfacebook", + "version": "v0.9.3", "source": { "type": "git", - "url": "https://github.com/symfony/dependency-injection.git", - "reference": "413a2c0cae6a1a5d8720bdfeebc0dbbfac24155d" + "url": "https://github.com/simplesamlphp/simplesamlphp-module-authfacebook.git", + "reference": "9152731e939ad4a49e0f06da5f0009ebde0d2b5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/413a2c0cae6a1a5d8720bdfeebc0dbbfac24155d", - "reference": "413a2c0cae6a1a5d8720bdfeebc0dbbfac24155d", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-authfacebook/zipball/9152731e939ad4a49e0f06da5f0009ebde0d2b5c", + "reference": "9152731e939ad4a49e0f06da5f0009ebde0d2b5c", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "psr/container": "^1.0" - }, - "conflict": { - "symfony/config": "<3.3.7", - "symfony/finder": "<3.3", - "symfony/proxy-manager-bridge": "<3.4", - "symfony/yaml": "<3.4" - }, - "provide": { - "psr/container-implementation": "1.0" + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" }, "require-dev": { - "symfony/config": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/yaml": "~3.4|~4.0" - }, - "suggest": { - "symfony/config": "", - "symfony/expression-language": "For using expressions in service container configuration", - "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", - "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", - "symfony/yaml": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.10" }, + "type": "simplesamlphp-module", "autoload": { "psr-4": { - "Symfony\\Component\\DependencyInjection\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "SimpleSAML\\Module\\authfacebook\\": "lib/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "LGPL-3.0-or-later" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Andjelko Horvat", + "email": "comel@vingd.com" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" } ], - "description": "Symfony DependencyInjection Component", - "homepage": "https://symfony.com", - "time": "2019-10-24T15:33:53+00:00" + "description": "A module that is able to authenticate against Facebook", + "keywords": [ + "facebook", + "simplesamlphp" + ], + "time": "2020-03-13T11:29:21+00:00" }, { - "name": "symfony/event-dispatcher", - "version": "v3.4.33", + "name": "simplesamlphp/simplesamlphp-module-authorize", + "version": "v0.9.2", "source": { "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "f9031c22ec127d4a2450760f81a8677fe8a10177" + "url": "https://github.com/simplesamlphp/simplesamlphp-module-authorize.git", + "reference": "c2607a5252ee1256b50ce7795e35513b116998d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f9031c22ec127d4a2450760f81a8677fe8a10177", - "reference": "f9031c22ec127d4a2450760f81a8677fe8a10177", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-authorize/zipball/c2607a5252ee1256b50ce7795e35513b116998d4", + "reference": "c2607a5252ee1256b50ce7795e35513b116998d4", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" - }, - "conflict": { - "symfony/dependency-injection": "<3.3" + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/stopwatch": "~2.8|~3.0|~4.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" }, + "type": "simplesamlphp-module", "autoload": { "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "SimpleSAML\\Module\\authorize\\": "lib/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "LGPL-3.0-or-later" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Ernesto Revilla", + "email": "erny@yaco.es" } ], - "description": "Symfony EventDispatcher Component", - "homepage": "https://symfony.com", - "time": "2019-10-24T15:33:53+00:00" + "description": "This module provides a user authorization filter based on attribute matching", + "keywords": [ + "authorize", + "simplesamlphp" + ], + "time": "2020-02-25T15:16:57+00:00" }, { - "name": "symfony/filesystem", - "version": "v3.4.33", + "name": "simplesamlphp/simplesamlphp-module-authtwitter", + "version": "v0.9.1", "source": { "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "00e3a6ddd723b8bcfe4f2a1b6f82b98eeeb51516" + "url": "https://github.com/simplesamlphp/simplesamlphp-module-authtwitter.git", + "reference": "29a15e58061222632fea9eb2c807aef5e2c0d54a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/00e3a6ddd723b8bcfe4f2a1b6f82b98eeeb51516", - "reference": "00e3a6ddd723b8bcfe4f2a1b6f82b98eeeb51516", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-authtwitter/zipball/29a15e58061222632fea9eb2c807aef5e2c0d54a", + "reference": "29a15e58061222632fea9eb2c807aef5e2c0d54a", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-ctype": "~1.8" + "php": ">=5.5", + "simplesamlphp/composer-module-installer": "~1.0", + "simplesamlphp/simplesamlphp-module-oauth": "^0.9" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } + "require-dev": { + "phpunit/phpunit": "~4.8.35", + "simplesamlphp/simplesamlphp": "^1.17" }, + "type": "simplesamlphp-module", "autoload": { "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "SimpleSAML\\Module\\authtwitter\\": "lib/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "LGPL-3.0-or-later" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Olav Morken", + "email": "olavmrk@gmail.com" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" } ], - "description": "Symfony Filesystem Component", - "homepage": "https://symfony.com", - "time": "2019-08-20T13:31:17+00:00" + "description": "A module that is able to perform authentication against Twitter", + "keywords": [ + "simplesamlphp", + "twitter" + ], + "time": "2019-12-03T09:00:09+00:00" }, { - "name": "symfony/http-foundation", - "version": "v3.4.33", + "name": "simplesamlphp/simplesamlphp-module-authwindowslive", + "version": "v0.9.1", "source": { "type": "git", - "url": "https://github.com/symfony/http-foundation.git", - "reference": "7b4626ab40d8562707e6d1c9a6fab977a86c2037" + "url": "https://github.com/simplesamlphp/simplesamlphp-module-authwindowslive.git", + "reference": "f40aecec6c0adaedb6693309840c98cec783876e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/7b4626ab40d8562707e6d1c9a6fab977a86c2037", - "reference": "7b4626ab40d8562707e6d1c9a6fab977a86c2037", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-authwindowslive/zipball/f40aecec6c0adaedb6693309840c98cec783876e", + "reference": "f40aecec6c0adaedb6693309840c98cec783876e", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php70": "~1.6" + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" }, "require-dev": { - "symfony/expression-language": "~2.8|~3.0|~4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" }, + "type": "simplesamlphp-module", "autoload": { "psr-4": { - "Symfony\\Component\\HttpFoundation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "SimpleSAML\\Module\\authwindowslive\\": "lib/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "LGPL-3.0-or-later" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Olav Morken", + "email": "olavmrk@gmail.com" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" } ], - "description": "Symfony HttpFoundation Component", - "homepage": "https://symfony.com", - "time": "2019-10-24T15:33:53+00:00" + "description": "A module that is able to perform authentication against Windows Live", + "keywords": [ + "live", + "simplesamlphp", + "windows", + "windowslive" + ], + "time": "2019-12-03T09:01:13+00:00" }, { - "name": "symfony/http-kernel", - "version": "v3.4.33", + "name": "simplesamlphp/simplesamlphp-module-authx509", + "version": "v0.9.1", "source": { "type": "git", - "url": "https://github.com/symfony/http-kernel.git", - "reference": "a2e189ee513dc02df98bf8ac8e1a765afd91e41f" + "url": "https://github.com/simplesamlphp/simplesamlphp-module-authX509.git", + "reference": "32f4fb3822b4325fdccbff824996e82fa1042e0d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a2e189ee513dc02df98bf8ac8e1a765afd91e41f", - "reference": "a2e189ee513dc02df98bf8ac8e1a765afd91e41f", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-authX509/zipball/32f4fb3822b4325fdccbff824996e82fa1042e0d", + "reference": "32f4fb3822b4325fdccbff824996e82fa1042e0d", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "psr/log": "~1.0", - "symfony/debug": "^3.3.3|~4.0", - "symfony/event-dispatcher": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "~3.4.12|~4.0.12|^4.1.1", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/config": "<2.8", - "symfony/dependency-injection": "<3.4.10|<4.0.10,>=4", - "symfony/var-dumper": "<3.3", - "twig/twig": "<1.34|<2.4,>=2" - }, - "provide": { - "psr/log-implementation": "1.0" + "php": ">=5.5", + "simplesamlphp/composer-module-installer": "~1.1", + "simplesamlphp/simplesamlphp-module-ldap": "^0.9" }, "require-dev": { - "psr/cache": "~1.0", - "symfony/browser-kit": "~2.8|~3.0|~4.0", - "symfony/class-loader": "~2.8|~3.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/console": "~2.8|~3.0|~4.0", - "symfony/css-selector": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "^3.4.10|^4.0.10", - "symfony/dom-crawler": "~2.8|~3.0|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/process": "~2.8|~3.0|~4.0", - "symfony/routing": "~3.4|~4.0", - "symfony/stopwatch": "~2.8|~3.0|~4.0", - "symfony/templating": "~2.8|~3.0|~4.0", - "symfony/translation": "~2.8|~3.0|~4.0", - "symfony/var-dumper": "~3.3|~4.0" - }, - "suggest": { - "symfony/browser-kit": "", - "symfony/config": "", - "symfony/console": "", - "symfony/dependency-injection": "", - "symfony/finder": "", - "symfony/var-dumper": "" + "phpunit/phpunit": "~4.8.36", + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.7" }, - "type": "library", + "type": "simplesamlphp-module", "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } + "ssp-mixedcase-module-name": "authX509" }, "autoload": { "psr-4": { - "Symfony\\Component\\HttpKernel\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "SimpleSAML\\Module\\authX509\\": "lib/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "LGPL-3.0-or-later" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Joost van Dijk", + "email": "Joost.vanDijk@surfnet.nl" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" } ], - "description": "Symfony HttpKernel Component", - "homepage": "https://symfony.com", - "time": "2019-11-01T09:46:31+00:00" + "description": "A module that is able to authenticate users based on X509 client certificates", + "keywords": [ + "simplesamlphp", + "x509" + ], + "time": "2019-12-03T08:48:01+00:00" }, { - "name": "symfony/polyfill-ctype", - "version": "v1.12.0", + "name": "simplesamlphp/simplesamlphp-module-authyubikey", + "version": "v0.9.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "550ebaac289296ce228a706d0867afc34687e3f4" + "url": "https://github.com/simplesamlphp/simplesamlphp-module-authyubikey.git", + "reference": "8c27bfeb4981d2e6fa40a831e945f40c5a4ad3d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/550ebaac289296ce228a706d0867afc34687e3f4", - "reference": "550ebaac289296ce228a706d0867afc34687e3f4", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-authyubikey/zipball/8c27bfeb4981d2e6fa40a831e945f40c5a4ad3d2", + "reference": "8c27bfeb4981d2e6fa40a831e945f40c5a4ad3d2", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "webmozart/assert": "~1.4" }, - "suggest": { - "ext-ctype": "For best performance" + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" }, - "type": "library", + "type": "simplesamlphp-module", "extra": { - "branch-alias": { - "dev-master": "1.12-dev" - } + "ssp-mixedcase-module-name": "authYubikey" }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, - "files": [ - "bootstrap.php" - ] + "SimpleSAML\\modules\\yubikey\\": "lib/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "LGPL-3.0-or-later" ], "authors": [ { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" } ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", + "description": "A module that is able to authenticate against YubiKey", "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" + "authyubikey", + "simplesamlphp" ], - "time": "2019-08-06T08:03:45+00:00" + "time": "2019-12-03T08:52:49+00:00" }, { - "name": "symfony/polyfill-mbstring", - "version": "v1.12.0", + "name": "simplesamlphp/simplesamlphp-module-cas", + "version": "v0.9.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17" + "url": "https://github.com/simplesamlphp/simplesamlphp-module-cas.git", + "reference": "63b72e4600550c507cdfc32fdd208ad59a64321e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b42a2f66e8f1b15ccf25652c3424265923eb4f17", - "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-cas/zipball/63b72e4600550c507cdfc32fdd208ad59a64321e", + "reference": "63b72e4600550c507cdfc32fdd208ad59a64321e", "shasum": "" }, "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-mbstring": "For best performance" + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "simplesamlphp/simplesamlphp-module-ldap": "^0.9", + "webmozart/assert": "~1.4" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.12-dev" - } + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" }, + "type": "simplesamlphp-module", "autoload": { "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" - ] + "SimpleSAML\\Module\\cas\\": "lib/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "LGPL-3.0-or-later" ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Olav Morken", + "email": "olavmrk@gmail.com" } ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", + "description": "A module that provides CAS authentication", "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" + "cas", + "simplesamlphp" ], - "time": "2019-08-06T08:03:45+00:00" + "time": "2019-12-03T09:03:06+00:00" }, { - "name": "symfony/polyfill-php70", - "version": "v1.12.0", + "name": "simplesamlphp/simplesamlphp-module-cdc", + "version": "v0.9.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "54b4c428a0054e254223797d2713c31e08610831" + "url": "https://github.com/simplesamlphp/simplesamlphp-module-cdc.git", + "reference": "16a5bfac7299e04e5feb472af328e07598708166" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/54b4c428a0054e254223797d2713c31e08610831", - "reference": "54b4c428a0054e254223797d2713c31e08610831", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-cdc/zipball/16a5bfac7299e04e5feb472af328e07598708166", + "reference": "16a5bfac7299e04e5feb472af328e07598708166", "shasum": "" }, "require": { - "paragonie/random_compat": "~1.0|~2.0|~9.99", - "php": ">=5.3.3" + "simplesamlphp/composer-module-installer": ">=1.1.6" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.12-dev" - } + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" }, + "type": "simplesamlphp-module", "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php70\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] + "SimpleSAML\\Module\\cdc\\": "lib/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "LGPL-3.0-or-later" ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Olav Morken", + "email": "olav.morken@uninett.no" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Jaime Perez Crespo", + "email": "jaime.perez@uninett.no" } ], - "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", - "homepage": "https://symfony.com", + "description": "A SimpleSAMLphp module that allows integration with CDC", + "homepage": "https://simplesamlphp.org/", "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" + "cdc", + "simplesamlphp" ], - "time": "2019-08-06T08:03:45+00:00" + "time": "2019-12-03T09:04:11+00:00" }, { - "name": "symfony/routing", - "version": "v3.4.33", + "name": "simplesamlphp/simplesamlphp-module-consent", + "version": "v0.9.5", "source": { "type": "git", - "url": "https://github.com/symfony/routing.git", - "reference": "ebc745e728f7a9fb571e7c116a14245c00b8f366" + "url": "https://github.com/simplesamlphp/simplesamlphp-module-consent.git", + "reference": "700f4c6abfdcd7ebd75a0c405d386758eff6e65e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/ebc745e728f7a9fb571e7c116a14245c00b8f366", - "reference": "ebc745e728f7a9fb571e7c116a14245c00b8f366", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-consent/zipball/700f4c6abfdcd7ebd75a0c405d386758eff6e65e", + "reference": "700f4c6abfdcd7ebd75a0c405d386758eff6e65e", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" - }, - "conflict": { - "symfony/config": "<3.3.1", - "symfony/dependency-injection": "<3.3", - "symfony/yaml": "<3.4" + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" }, "require-dev": { - "doctrine/annotations": "~1.0", - "psr/log": "~1.0", - "symfony/config": "^3.3.1|~4.0", - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "~2.8|~3.0|~4.0", - "symfony/yaml": "~3.4|~4.0" + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" }, - "suggest": { + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\consent\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "lavmrk@gmail.com" + } + ], + "description": "A module that will ask for user consent before releasing attributes", + "keywords": [ + "consent", + "simplesamlphp" + ], + "time": "2019-12-13T07:55:51+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-consentadmin", + "version": "v0.9.1", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-consentadmin.git", + "reference": "466e8d0d751f0080162d78e63ab2e125b24d17a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-consentadmin/zipball/466e8d0d751f0080162d78e63ab2e125b24d17a1", + "reference": "466e8d0d751f0080162d78e63ab2e125b24d17a1", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "simplesamlphp/simplesamlphp-module-consent": "^0.9", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "type": "simplesamlphp-module", + "extra": { + "ssp-mixedcase-module-name": "consentAdmin" + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Jacob Christiansen", + "email": "jach@wayf.dk" + }, + { + "name": "Olav Morken", + "email": "olav.morken@uninett.no" + } + ], + "description": "A module that allows users to manage their consent", + "keywords": [ + "consentadmin", + "simplesamlphp" + ], + "time": "2019-12-03T09:06:40+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-discopower", + "version": "v0.9.3", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-discopower.git", + "reference": "c892926e8186d0a2c638f7032dfc30540c1f92fb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-discopower/zipball/c892926e8186d0a2c638f7032dfc30540c1f92fb", + "reference": "c892926e8186d0a2c638f7032dfc30540c1f92fb", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "webmozart/assert": "~1.4 <1.6" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\modules\\discopower\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + } + ], + "description": "Fancy tabbed discovery service with filtering capabilities where SPs can have different sets of metadata listed", + "keywords": [ + "discopower", + "discovery", + "simplesamlphp" + ], + "time": "2019-12-13T07:51:43+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-exampleattributeserver", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-exampleattributeserver.git", + "reference": "63e0323e81c32bc3c9eaa01ea45194bb10153708" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-exampleattributeserver/zipball/63e0323e81c32bc3c9eaa01ea45194bb10153708", + "reference": "63e0323e81c32bc3c9eaa01ea45194bb10153708", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\exampleattributeserver\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + } + ], + "description": "An example for SAML attributes queries", + "keywords": [ + "exampleattributeserver", + "simplesamlphp" + ], + "time": "2019-05-28T12:37:15+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-expirycheck", + "version": "v0.9.3", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-expirycheck.git", + "reference": "59c59cdf87e2679257b46c07bb4c27666a11cc20" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-expirycheck/zipball/59c59cdf87e2679257b46c07bb4c27666a11cc20", + "reference": "59c59cdf87e2679257b46c07bb4c27666a11cc20", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.10" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\expirycheck\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Alex Mihičinac", + "email": "alexm@arnes.si" + } + ], + "description": "The expirycheck module validates user's expiry date", + "keywords": [ + "expirycheck", + "simplesamlphp" + ], + "time": "2019-12-14T13:20:46+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-ldap", + "version": "v0.9.5", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-ldap.git", + "reference": "daee2f362b5a6d443014a4842cc7acc8b47be8ac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-ldap/zipball/daee2f362b5a6d443014a4842cc7acc8b47be8ac", + "reference": "daee2f362b5a6d443014a4842cc7acc8b47be8ac", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "suggest": { + "ext-ldap": "Needed when using LDAP authentication in SimpleSAMLphp" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\ldap\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + }, + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "description": "A module that provides authentication against LDAP stores", + "keywords": [ + "ldap", + "simplesamlphp" + ], + "time": "2020-05-05T10:00:48+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-memcachemonitor", + "version": "v0.9.1", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-memcachemonitor.git", + "reference": "0e08e87707cd7b1fb91bbcf65cc454d8849571b0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-memcachemonitor/zipball/0e08e87707cd7b1fb91bbcf65cc454d8849571b0", + "reference": "0e08e87707cd7b1fb91bbcf65cc454d8849571b0", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "~0.0.6" + }, + "type": "simplesamlphp-module", + "extra": { + "ssp-mixedcase-module-name": "memcacheMonitor" + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + }, + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "description": "A module that is able display usage statistics of a memcache(d) store", + "keywords": [ + "memcachemonitor", + "simplesamlphp" + ], + "time": "2019-12-03T09:19:35+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-memcookie", + "version": "v1.2.2", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-memcookie.git", + "reference": "39535304e8d464b7baa1e82cb441fa432947ff57" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-memcookie/zipball/39535304e8d464b7baa1e82cb441fa432947ff57", + "reference": "39535304e8d464b7baa1e82cb441fa432947ff57", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": ">=1.1.6" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.6" + }, + "type": "simplesamlphp-module", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olav.morken@uninett.no" + }, + { + "name": "Jaime Perez Crespo", + "email": "jaime.perez@uninett.no" + } + ], + "description": "A SimpleSAMLphp module that allows integration with Auth MemCookie, allowing web applications written in other languages than PHP to integrate with SimpleSAMLphp.", + "homepage": "https://simplesamlphp.org/", + "keywords": [ + "Auth MemCookie", + "apache", + "cookies", + "simplesamlphp" + ], + "time": "2019-08-08T18:33:47+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-metarefresh", + "version": "v0.9.4", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-metarefresh.git", + "reference": "478e52f33c725aea10b493d574b4b42b62c5dbed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-metarefresh/zipball/478e52f33c725aea10b493d574b4b42b62c5dbed", + "reference": "478e52f33c725aea10b493d574b4b42b62c5dbed", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.18" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\metarefresh\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + } + ], + "description": "The metarefresh module will download and parse metadata documents and store them locally", + "keywords": [ + "metarefresh", + "simplesamlphp" + ], + "time": "2019-12-15T09:44:34+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-negotiate", + "version": "v0.9.5", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-negotiate.git", + "reference": "6bbbbf798ab05ac20625b0c9cf4f8d80bd0875c3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-negotiate/zipball/6bbbbf798ab05ac20625b0c9cf4f8d80bd0875c3", + "reference": "6bbbbf798ab05ac20625b0c9cf4f8d80bd0875c3", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "simplesamlphp/simplesamlphp-module-ldap": "^0.9", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "suggest": { + "ext-krb5": "Needed in case the SimpleSAMLphp negotiate module is used" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\negotiate\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + } + ], + "description": "The Negotiate module implements Microsofts Kerberos SPNEGO mechanism", + "keywords": [ + "negotiate", + "simplesamlphp" + ], + "time": "2020-02-27T16:11:42+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-oauth", + "version": "v0.9.2", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-oauth.git", + "reference": "d14d7aca6e699ec12b3f4dd0128373faa1a2cc61" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-oauth/zipball/d14d7aca6e699ec12b3f4dd0128373faa1a2cc61", + "reference": "d14d7aca6e699ec12b3f4dd0128373faa1a2cc61", + "shasum": "" + }, + "require": { + "simplesamlphp/composer-module-installer": ">=1.1.6" + }, + "require-dev": { + "phpunit/phpunit": "~4.8.36", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "type": "simplesamlphp-module", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olav.morken@uninett.no" + }, + { + "name": "Jaime Perez Crespo", + "email": "jaime.perez@uninett.no" + } + ], + "description": "A SimpleSAMLphp module that allows integration with OAuth1,", + "homepage": "https://simplesamlphp.org/", + "keywords": [ + "oauth1", + "simplesamlphp" + ], + "time": "2020-04-29T19:37:43+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-preprodwarning", + "version": "v0.9.2", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-preprodwarning.git", + "reference": "8e032de33a75eb44857dc06d886ad94ee3af4638" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-preprodwarning/zipball/8e032de33a75eb44857dc06d886ad94ee3af4638", + "reference": "8e032de33a75eb44857dc06d886ad94ee3af4638", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17", + "webmozart/assert": "^1.4" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\preprodwarning\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + } + ], + "description": "Display a warning when using a pre-production environment", + "keywords": [ + "preprodwarning", + "simplesamlphp" + ], + "time": "2020-04-09T13:05:27+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-radius", + "version": "v0.9.3", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-radius.git", + "reference": "36bd0f39f9a13f7eb96ead97c97c3634aa1c3f2d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-radius/zipball/36bd0f39f9a13f7eb96ead97c97c3634aa1c3f2d", + "reference": "36bd0f39f9a13f7eb96ead97c97c3634aa1c3f2d", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.7" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\radius\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + } + ], + "description": "A module that is able perform authentication against a RADIUS server", + "keywords": [ + "radius", + "simplesamlphp" + ], + "time": "2019-10-03T18:13:07+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-riak", + "version": "v0.9.1", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-riak.git", + "reference": "c1a9d9545cb4e05b9205b34624850bb777aca991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-riak/zipball/c1a9d9545cb4e05b9205b34624850bb777aca991", + "reference": "c1a9d9545cb4e05b9205b34624850bb777aca991", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "phpfastcache/riak-client": "^3.4", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\riak\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "description": "A module that is able to store key/value pairs in a Riak store", + "keywords": [ + "riak", + "simplesamlphp" + ], + "time": "2019-12-03T08:28:45+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-sanitycheck", + "version": "v0.9.1", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-sanitycheck.git", + "reference": "15d6664eae73a233c3c4c72fd8a5c2be72b6ed2a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-sanitycheck/zipball/15d6664eae73a233c3c4c72fd8a5c2be72b6ed2a", + "reference": "15d6664eae73a233c3c4c72fd8a5c2be72b6ed2a", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\sanitycheck\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + } + ], + "description": "Perform sanity checks on configuration", + "keywords": [ + "sanitycheck", + "simplesamlphp" + ], + "time": "2020-05-07T11:34:29+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-smartattributes", + "version": "v0.9.1", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-smartattributes.git", + "reference": "b45d3ecd916e359a9cae05f9ae9df09b5c42f4e6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-smartattributes/zipball/b45d3ecd916e359a9cae05f9ae9df09b5c42f4e6", + "reference": "b45d3ecd916e359a9cae05f9ae9df09b5c42f4e6", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\smartattributes\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + } + ], + "description": "The SmartAttributes module provides additional authentication processing filters to manipulate attributes.", + "keywords": [ + "simplesamlphp", + "smartattributes" + ], + "time": "2019-12-03T09:24:09+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-sqlauth", + "version": "v0.9.1", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-sqlauth.git", + "reference": "31bce8763ad97f4b4473e4ad4a5a96ddc136ef6b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-sqlauth/zipball/31bce8763ad97f4b4473e4ad4a5a96ddc136ef6b", + "reference": "31bce8763ad97f4b4473e4ad4a5a96ddc136ef6b", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17", + "webmozart/assert": "^1.4" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\sqlauth\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + } + ], + "description": "This is a authentication module for authenticating a user against a SQL database", + "keywords": [ + "simplesamlphp", + "sqlauth" + ], + "time": "2019-12-03T09:07:09+00:00" + }, + { + "name": "simplesamlphp/simplesamlphp-module-statistics", + "version": "v0.9.4", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/simplesamlphp-module-statistics.git", + "reference": "1bb1e46921d8dc84707bc9cd3c307c8abd723ac7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-module-statistics/zipball/1bb1e46921d8dc84707bc9cd3c307c8abd723ac7", + "reference": "1bb1e46921d8dc84707bc9cd3c307c8abd723ac7", + "shasum": "" + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "webmozart/assert": "^1.4" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.12" + }, + "type": "simplesamlphp-module", + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\statistics\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + } + ], + "description": "The SimpleSAMLphp statistics module", + "keywords": [ + "simplesamlphp", + "statistics" + ], + "time": "2019-12-03T08:42:27+00:00" + }, + { + "name": "simplesamlphp/twig-configurable-i18n", + "version": "v2.2", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/twig-configurable-i18n.git", + "reference": "b036c134157ce40ed66da2fc9d01f63e3b1d3abd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/twig-configurable-i18n/zipball/b036c134157ce40ed66da2fc9d01f63e3b1d3abd", + "reference": "b036c134157ce40ed66da2fc9d01f63e3b1d3abd", + "shasum": "" + }, + "require": { + "twig/extensions": "^1.5" + }, + "require-dev": { + "phpunit/phpunit": "~4.8.36 || ~7.5", + "twig/twig": "^1.37 || ^2.7" + }, + "type": "project", + "autoload": { + "psr-4": { + "SimpleSAML\\TwigConfigurableI18n\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1" + ], + "authors": [ + { + "name": "Jaime Perez", + "email": "jaime.perez@uninett.no" + } + ], + "description": "This is an extension on top of Twig's i18n extension, allowing you to customize which functions to use for translations.", + "keywords": [ + "extension", + "gettext", + "i18n", + "internationalization", + "translation", + "twig" + ], + "time": "2019-07-09T08:35:44+00:00" + }, + { + "name": "symfony/config", + "version": "v3.4.36", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "a599a867d0e4a07c342b5f1e656b3915a540ddbe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/a599a867d0e4a07c342b5f1e656b3915a540ddbe", + "reference": "a599a867d0e4a07c342b5f1e656b3915a540ddbe", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/filesystem": "~2.8|~3.0|~4.0", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/dependency-injection": "<3.3", + "symfony/finder": "<3.3" + }, + "require-dev": { + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/event-dispatcher": "~3.3|~4.0", + "symfony/finder": "~3.3|~4.0", + "symfony/yaml": "~3.0|~4.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Config Component", + "homepage": "https://symfony.com", + "time": "2019-12-01T10:45:41+00:00" + }, + { + "name": "symfony/debug", + "version": "v3.4.36", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug.git", + "reference": "f72e33fdb1170b326e72c3157f0cd456351dd086" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug/zipball/f72e33fdb1170b326e72c3157f0cd456351dd086", + "reference": "f72e33fdb1170b326e72c3157f0cd456351dd086", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "psr/log": "~1.0" + }, + "conflict": { + "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" + }, + "require-dev": { + "symfony/http-kernel": "~2.8|~3.0|~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Debug Component", + "homepage": "https://symfony.com", + "time": "2019-10-24T15:33:53+00:00" + }, + { + "name": "symfony/dependency-injection", + "version": "v3.4.36", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "0d201916bfb3af939fec3c0c8815ea16c60ac1a2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/0d201916bfb3af939fec3c0c8815ea16c60ac1a2", + "reference": "0d201916bfb3af939fec3c0c8815ea16c60ac1a2", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "psr/container": "^1.0" + }, + "conflict": { + "symfony/config": "<3.3.7", + "symfony/finder": "<3.3", + "symfony/proxy-manager-bridge": "<3.4", + "symfony/yaml": "<3.4" + }, + "provide": { + "psr/container-implementation": "1.0" + }, + "require-dev": { + "symfony/config": "~3.3|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony DependencyInjection Component", + "homepage": "https://symfony.com", + "time": "2019-12-01T08:33:36+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v3.4.36", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "f9031c22ec127d4a2450760f81a8677fe8a10177" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f9031c22ec127d4a2450760f81a8677fe8a10177", + "reference": "f9031c22ec127d4a2450760f81a8677fe8a10177", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "conflict": { + "symfony/dependency-injection": "<3.3" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/stopwatch": "~2.8|~3.0|~4.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony EventDispatcher Component", + "homepage": "https://symfony.com", + "time": "2019-10-24T15:33:53+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v3.4.36", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "00cdad0936d06fab136944bc2342b762b1c3a4a2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/00cdad0936d06fab136944bc2342b762b1c3a4a2", + "reference": "00cdad0936d06fab136944bc2342b762b1c3a4a2", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-ctype": "~1.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Filesystem Component", + "homepage": "https://symfony.com", + "time": "2019-11-25T16:36:22+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v3.4.36", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "d2d0cfe8e319d9df44c4cca570710fcf221d4593" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d2d0cfe8e319d9df44c4cca570710fcf221d4593", + "reference": "d2d0cfe8e319d9df44c4cca570710fcf221d4593", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php70": "~1.6" + }, + "require-dev": { + "symfony/expression-language": "~2.8|~3.0|~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony HttpFoundation Component", + "homepage": "https://symfony.com", + "time": "2019-11-28T12:52:59+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v3.4.36", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "c42c8339acb28cfff0fb1786948db4d23d609ff7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/c42c8339acb28cfff0fb1786948db4d23d609ff7", + "reference": "c42c8339acb28cfff0fb1786948db4d23d609ff7", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "psr/log": "~1.0", + "symfony/debug": "^3.3.3|~4.0", + "symfony/event-dispatcher": "~2.8|~3.0|~4.0", + "symfony/http-foundation": "~3.4.12|~4.0.12|^4.1.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php56": "~1.8" + }, + "conflict": { + "symfony/config": "<2.8", + "symfony/dependency-injection": "<3.4.10|<4.0.10,>=4", + "symfony/var-dumper": "<3.3", + "twig/twig": "<1.34|<2.4,>=2" + }, + "provide": { + "psr/log-implementation": "1.0" + }, + "require-dev": { + "psr/cache": "~1.0", + "symfony/browser-kit": "~2.8|~3.0|~4.0", + "symfony/class-loader": "~2.8|~3.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/console": "~2.8|~3.0|~4.0", + "symfony/css-selector": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "^3.4.10|^4.0.10", + "symfony/dom-crawler": "~2.8|~3.0|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/process": "~2.8|~3.0|~4.0", + "symfony/routing": "~3.4|~4.0", + "symfony/stopwatch": "~2.8|~3.0|~4.0", + "symfony/templating": "~2.8|~3.0|~4.0", + "symfony/translation": "~2.8|~3.0|~4.0", + "symfony/var-dumper": "~3.3|~4.0" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "", + "symfony/finder": "", + "symfony/var-dumper": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony HttpKernel Component", + "homepage": "https://symfony.com", + "time": "2019-12-01T13:50:37+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.13.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", + "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.13-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "time": "2019-11-27T13:56:44+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.13.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7b4aab9743c30be783b73de055d24a39cf4b954f", + "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.13-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "time": "2019-11-27T14:18:11+00:00" + }, + { + "name": "symfony/polyfill-php56", + "version": "v1.13.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php56.git", + "reference": "53dd1cdf3cb986893ccf2b96665b25b3abb384f4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/53dd1cdf3cb986893ccf2b96665b25b3abb384f4", + "reference": "53dd1cdf3cb986893ccf2b96665b25b3abb384f4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony/polyfill-util": "~1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.13-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php56\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2019-11-27T13:56:44+00:00" + }, + { + "name": "symfony/polyfill-php70", + "version": "v1.13.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php70.git", + "reference": "af23c7bb26a73b850840823662dda371484926c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/af23c7bb26a73b850840823662dda371484926c4", + "reference": "af23c7bb26a73b850840823662dda371484926c4", + "shasum": "" + }, + "require": { + "paragonie/random_compat": "~1.0|~2.0|~9.99", + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.13-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php70\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2019-11-27T13:56:44+00:00" + }, + { + "name": "symfony/polyfill-util", + "version": "v1.13.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-util.git", + "reference": "964a67f293b66b95883a5ed918a65354fcd2258f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/964a67f293b66b95883a5ed918a65354fcd2258f", + "reference": "964a67f293b66b95883a5ed918a65354fcd2258f", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.13-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Util\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony utilities for portability of PHP codes", + "homepage": "https://symfony.com", + "keywords": [ + "compat", + "compatibility", + "polyfill", + "shim" + ], + "time": "2019-11-27T13:56:44+00:00" + }, + { + "name": "symfony/routing", + "version": "v3.4.36", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "b689ccd48e234ea404806d94b07eeb45f9f6f06a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/b689ccd48e234ea404806d94b07eeb45f9f6f06a", + "reference": "b689ccd48e234ea404806d94b07eeb45f9f6f06a", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "conflict": { + "symfony/config": "<3.3.1", + "symfony/dependency-injection": "<3.3", + "symfony/yaml": "<3.4" + }, + "require-dev": { + "doctrine/annotations": "~1.0", + "psr/log": "~1.0", + "symfony/config": "^3.3.1|~4.0", + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/http-foundation": "~2.8|~3.0|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { "doctrine/annotations": "For using the annotation loader", "symfony/config": "For using the all-in-one router or any loader", "symfony/expression-language": "For using expression matching", @@ -1084,16 +2683,1174 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Routing Component", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "time": "2019-12-01T08:33:36+00:00" + }, + { + "name": "symfony/yaml", + "version": "v3.4.36", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "dab657db15207879217fc81df4f875947bf68804" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/dab657db15207879217fc81df4f875947bf68804", + "reference": "dab657db15207879217fc81df4f875947bf68804", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<3.4" + }, + "require-dev": { + "symfony/console": "~3.4|~4.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Yaml Component", + "homepage": "https://symfony.com", + "time": "2019-10-24T15:33:53+00:00" + }, + { + "name": "twig/extensions", + "version": "v1.5.4", + "source": { + "type": "git", + "url": "https://github.com/twigphp/Twig-extensions.git", + "reference": "57873c8b0c1be51caa47df2cdb824490beb16202" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/Twig-extensions/zipball/57873c8b0c1be51caa47df2cdb824490beb16202", + "reference": "57873c8b0c1be51caa47df2cdb824490beb16202", + "shasum": "" + }, + "require": { + "twig/twig": "^1.27|^2.0" + }, + "require-dev": { + "symfony/phpunit-bridge": "^3.4", + "symfony/translation": "^2.7|^3.4" + }, + "suggest": { + "symfony/translation": "Allow the time_diff output to be translated" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.5-dev" + } + }, + "autoload": { + "psr-0": { + "Twig_Extensions_": "lib/" + }, + "psr-4": { + "Twig\\Extensions\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Common additional features for Twig that do not directly belong in core", + "keywords": [ + "i18n", + "text" + ], + "time": "2018-12-05T18:34:18+00:00" + }, + { + "name": "twig/twig", + "version": "v1.42.4", + "source": { + "type": "git", + "url": "https://github.com/twigphp/Twig.git", + "reference": "e587180584c3d2d6cb864a0454e777bb6dcb6152" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/e587180584c3d2d6cb864a0454e777bb6dcb6152", + "reference": "e587180584c3d2d6cb864a0454e777bb6dcb6152", + "shasum": "" + }, + "require": { + "php": ">=5.5.0", + "symfony/polyfill-ctype": "^1.8" + }, + "require-dev": { + "psr/container": "^1.0", + "symfony/debug": "^3.4|^4.2", + "symfony/phpunit-bridge": "^4.4@dev|^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.42-dev" + } + }, + "autoload": { + "psr-0": { + "Twig_": "lib/" + }, + "psr-4": { + "Twig\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Twig Team", + "homepage": "https://twig.symfony.com/contributors", + "role": "Contributors" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com", + "role": "Project Founder" + } + ], + "description": "Twig, the flexible, fast, and secure template language for PHP", + "homepage": "https://twig.symfony.com", + "keywords": [ + "templating" + ], + "time": "2019-11-11T16:49:32+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.5.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/assert.git", + "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/assert/zipball/88e6d84706d09a236046d686bbea96f07b3a34f4", + "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0", + "symfony/polyfill-ctype": "^1.8" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.36 || ^7.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "time": "2019-08-24T08:43:50+00:00" + }, + { + "name": "whitehat101/apr1-md5", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/whitehat101/apr1-md5.git", + "reference": "8b261c9fc0481b4e9fa9d01c6ca70867b5d5e819" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/whitehat101/apr1-md5/zipball/8b261c9fc0481b4e9fa9d01c6ca70867b5d5e819", + "reference": "8b261c9fc0481b4e9fa9d01c6ca70867b5d5e819", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "4.0.*" + }, + "type": "library", + "autoload": { + "psr-4": { + "WhiteHat101\\Crypt\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jeremy Ebler", + "email": "jebler@gmail.com" + } + ], + "description": "Apache's APR1-MD5 algorithm in pure PHP", + "homepage": "https://github.com/whitehat101/apr1-md5", + "keywords": [ + "MD5", + "apr1" + ], + "time": "2015-02-11T11:06:42+00:00" + } + ], + "packages-dev": [ + { + "name": "composer/ca-bundle", + "version": "1.2.4", + "source": { + "type": "git", + "url": "https://github.com/composer/ca-bundle.git", + "reference": "10bb96592168a0f8e8f6dcde3532d9fa50b0b527" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/10bb96592168a0f8e8f6dcde3532d9fa50b0b527", + "reference": "10bb96592168a0f8e8f6dcde3532d9fa50b0b527", + "shasum": "" + }, + "require": { + "ext-openssl": "*", + "ext-pcre": "*", + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8", + "psr/log": "^1.0", + "symfony/process": "^2.5 || ^3.0 || ^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\CaBundle\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", + "keywords": [ + "cabundle", + "cacert", + "certificate", + "ssl", + "tls" + ], + "time": "2019-08-30T08:44:50+00:00" + }, + { + "name": "composer/xdebug-handler", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "cbe23383749496fe0f373345208b79568e4bc248" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/cbe23383749496fe0f373345208b79568e4bc248", + "reference": "cbe23383749496fe0f373345208b79568e4bc248", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0", + "psr/log": "^1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "time": "2019-11-06T16:40:04+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", + "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", + "shasum": "" + }, + "require": { + "php": ">=5.3,<8.0-DEV" + }, + "require-dev": { + "athletic/athletic": "~0.1.8", + "ext-pdo": "*", + "ext-phar": "*", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.com/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://github.com/doctrine/instantiator", + "keywords": [ + "constructor", + "instantiate" + ], + "time": "2015-06-14T21:17:01+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "6.5.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "dbc2bc3a293ed6b1ae08a3651e2bfd213d19b6a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/dbc2bc3a293ed6b1ae08a3651e2bfd213d19b6a5", + "reference": "dbc2bc3a293ed6b1ae08a3651e2bfd213d19b6a5", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.0", + "guzzlehttp/psr7": "^1.6.1", + "php": ">=5.5" + }, + "require-dev": { + "ext-curl": "*", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", + "psr/log": "^1.1" + }, + "suggest": { + "ext-intl": "Required for Internationalized Domain Name (IDN) support", + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.5-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "time": "2019-12-07T18:20:45+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "v1.3.1", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "shasum": "" + }, + "require": { + "php": ">=5.5.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "time": "2016-12-20T10:07:11+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "1.6.1", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "239400de7a173fe9901b9ac7c06497751f00727a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a", + "reference": "239400de7a173fe9901b9ac7c06497751f00727a", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "psr/http-message": "~1.0", + "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "ext-zlib": "*", + "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8" + }, + "suggest": { + "zendframework/zend-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Schultze", + "homepage": "https://github.com/Tobion" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "time": "2019-07-01T23:21:34+00:00" + }, + { + "name": "mikey179/vfsstream", + "version": "v1.6.8", + "source": { + "type": "git", + "url": "https://github.com/bovigo/vfsStream.git", + "reference": "231c73783ebb7dd9ec77916c10037eff5a2b6efe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bovigo/vfsStream/zipball/231c73783ebb7dd9ec77916c10037eff5a2b6efe", + "reference": "231c73783ebb7dd9ec77916c10037eff5a2b6efe", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.5|^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6.x-dev" + } + }, + "autoload": { + "psr-0": { + "org\\bovigo\\vfs\\": "src/main/php" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Frank Kleine", + "homepage": "http://frankkleine.de/", + "role": "Developer" + } + ], + "description": "Virtual file system to mock the real file system in unit tests.", + "homepage": "http://vfs.bovigo.org/", + "time": "2019-10-30T15:31:00+00:00" + }, + { + "name": "muglug/package-versions-56", + "version": "1.2.4", + "source": { + "type": "git", + "url": "https://github.com/muglug/PackageVersions.git", + "reference": "a67bed26deaaf9269a348e53063bc8d4dcc60ffd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/muglug/PackageVersions/zipball/a67bed26deaaf9269a348e53063bc8d4dcc60ffd", + "reference": "a67bed26deaaf9269a348e53063bc8d4dcc60ffd", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0", + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "composer/composer": "^1.3", + "ext-zip": "*", + "phpunit/phpunit": "^5.7.5" + }, + "type": "composer-plugin", + "extra": { + "class": "Muglug\\PackageVersions\\Installer", + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Muglug\\PackageVersions\\": "src/PackageVersions" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + }, + { + "name": "Abdul Malik Ikhsan", + "email": "samsonasik@gmail.com" + }, + { + "name": "Matt Brown", + "email": "github@muglug.com" + } + ], + "description": "A backport of ocramius/package-versions that supports php ^5.6. Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "time": "2018-03-26T03:22:13+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.7.0", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", + "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "doctrine/collections": "^1.0", + "doctrine/common": "^2.6", + "phpunit/phpunit": "^4.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + }, + "files": [ + "src/DeepCopy/deep_copy.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "time": "2017-10-19T19:58:43+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v3.1.5", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "bb87e28e7d7b8d9a7fda231d37457c9210faf6ce" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/bb87e28e7d7b8d9a7fda231d37457c9210faf6ce", + "reference": "bb87e28e7d7b8d9a7fda231d37457c9210faf6ce", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "~4.0|~5.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "time": "2018-02-28T20:30:58+00:00" + }, + { + "name": "openlss/lib-array2xml", + "version": "0.5.1", + "source": { + "type": "git", + "url": "https://github.com/nullivex/lib-array2xml.git", + "reference": "c8b5998a342d7861f2e921403f44e0a2f3ef2be0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nullivex/lib-array2xml/zipball/c8b5998a342d7861f2e921403f44e0a2f3ef2be0", + "reference": "c8b5998a342d7861f2e921403f44e0a2f3ef2be0", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "autoload": { + "psr-0": { + "LSS": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Bryan Tong", + "email": "contact@nullivex.com", + "homepage": "http://bryantong.com" + }, + { + "name": "Tony Butler", + "email": "spudz76@gmail.com", + "homepage": "http://openlss.org" + } + ], + "description": "Array2XML conversion library credit to lalit.org", + "homepage": "http://openlss.org", + "keywords": [ + "array", + "array conversion", + "xml", + "xml conversion" + ], + "time": "2016-11-10T19:10:18+00:00" + }, + { + "name": "php-coveralls/php-coveralls", + "version": "v2.2.0", + "source": { + "type": "git", + "url": "https://github.com/php-coveralls/php-coveralls.git", + "reference": "3e6420fa666ef7bae5e750ddeac903153e193bae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-coveralls/php-coveralls/zipball/3e6420fa666ef7bae5e750ddeac903153e193bae", + "reference": "3e6420fa666ef7bae5e750ddeac903153e193bae", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-simplexml": "*", + "guzzlehttp/guzzle": "^6.0", + "php": "^5.5 || ^7.0", + "psr/log": "^1.0", + "symfony/config": "^2.1 || ^3.0 || ^4.0 || ^5.0", + "symfony/console": "^2.1 || ^3.0 || ^4.0 || ^5.0", + "symfony/stopwatch": "^2.0 || ^3.0 || ^4.0 || ^5.0", + "symfony/yaml": "^2.0.5 || ^3.0 || ^4.0 || ^5.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.4.3 || ^6.0" + }, + "suggest": { + "symfony/http-kernel": "Allows Symfony integration" + }, + "bin": [ + "bin/php-coveralls" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2-dev" + } + }, + "autoload": { + "psr-4": { + "PhpCoveralls\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kitamura Satoshi", + "email": "with.no.parachute@gmail.com", + "homepage": "https://www.facebook.com/satooshi.jp", + "role": "Original creator" + }, + { + "name": "Takashi Matsuo", + "email": "tmatsuo@google.com" + }, + { + "name": "Google Inc" + }, + { + "name": "Dariusz Ruminski", + "email": "dariusz.ruminski@gmail.com", + "homepage": "https://github.com/keradus" + }, + { + "name": "Contributors", + "homepage": "https://github.com/php-coveralls/php-coveralls/graphs/contributors" + } + ], + "description": "PHP client library for Coveralls API", + "homepage": "https://github.com/php-coveralls/php-coveralls", + "keywords": [ + "ci", + "coverage", + "github", + "test" + ], + "time": "2019-11-20T16:29:20+00:00" + }, + { + "name": "php-cs-fixer/diff", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/PHP-CS-Fixer/diff.git", + "reference": "78bb099e9c16361126c86ce82ec4405ebab8e756" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/78bb099e9c16361126c86ce82ec4405ebab8e756", + "reference": "78bb099e9c16361126c86ce82ec4405ebab8e756", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7.23 || ^6.4.3", + "symfony/process": "^3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "SpacePossum" + } + ], + "description": "sebastian/diff v2 backport support for PHP5.6", + "homepage": "https://github.com/PHP-CS-Fixer", + "keywords": [ + "diff" + ], + "time": "2018-02-15T16:58:55+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "^4.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "time": "2017-09-11T18:02:19+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "3.3.2", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bf329f6c1aadea3299f08ee804682b7c45b326a2", + "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0", + "phpdocumentor/reflection-common": "^1.0.0", + "phpdocumentor/type-resolver": "^0.4.0", + "webmozart/assert": "^1.0" + }, + "require-dev": { + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "^4.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "time": "2017-11-10T14:09:06+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "0.4.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", + "shasum": "" + }, + "require": { + "php": "^5.5 || ^7.0", + "phpdocumentor/reflection-common": "^1.0" + }, + "require-dev": { + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "^5.2||^4.8.24" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Routing\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "phpDocumentor\\Reflection\\": [ + "src/" + ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1101,64 +3858,47 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Mike van Riel", + "email": "me@mikevanriel.com" } ], - "description": "Symfony Routing Component", - "homepage": "https://symfony.com", - "keywords": [ - "router", - "routing", - "uri", - "url" - ], - "time": "2019-10-24T15:33:53+00:00" + "time": "2017-07-14T14:27:02+00:00" }, { - "name": "symfony/yaml", - "version": "v3.4.33", + "name": "phpspec/prophecy", + "version": "1.9.0", "source": { "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "dab657db15207879217fc81df4f875947bf68804" + "url": "https://github.com/phpspec/prophecy.git", + "reference": "f6811d96d97bdf400077a0cc100ae56aa32b9203" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/dab657db15207879217fc81df4f875947bf68804", - "reference": "dab657db15207879217fc81df4f875947bf68804", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/f6811d96d97bdf400077a0cc100ae56aa32b9203", + "reference": "f6811d96d97bdf400077a0cc100ae56aa32b9203", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/console": "<3.4" + "doctrine/instantiator": "^1.0.2", + "php": "^5.3|^7.0", + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", + "sebastian/comparator": "^1.1|^2.0|^3.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0" }, "require-dev": { - "symfony/console": "~3.4|~4.0" - }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" + "phpspec/phpspec": "^2.5|^3.2", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "1.8.x-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Prophecy\\": "src/Prophecy" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1166,109 +3906,117 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" } ], - "description": "Symfony Yaml Component", - "homepage": "https://symfony.com", - "time": "2019-10-24T15:33:53+00:00" + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" + ], + "time": "2019-10-03T11:07:50+00:00" }, { - "name": "twig/extensions", - "version": "v1.5.4", + "name": "phpunit/php-code-coverage", + "version": "4.0.8", "source": { "type": "git", - "url": "https://github.com/twigphp/Twig-extensions.git", - "reference": "57873c8b0c1be51caa47df2cdb824490beb16202" + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig-extensions/zipball/57873c8b0c1be51caa47df2cdb824490beb16202", - "reference": "57873c8b0c1be51caa47df2cdb824490beb16202", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef7b2f56815df854e66ceaee8ebe9393ae36a40d", + "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d", "shasum": "" }, "require": { - "twig/twig": "^1.27|^2.0" + "ext-dom": "*", + "ext-xmlwriter": "*", + "php": "^5.6 || ^7.0", + "phpunit/php-file-iterator": "^1.3", + "phpunit/php-text-template": "^1.2", + "phpunit/php-token-stream": "^1.4.2 || ^2.0", + "sebastian/code-unit-reverse-lookup": "^1.0", + "sebastian/environment": "^1.3.2 || ^2.0", + "sebastian/version": "^1.0 || ^2.0" }, "require-dev": { - "symfony/phpunit-bridge": "^3.4", - "symfony/translation": "^2.7|^3.4" + "ext-xdebug": "^2.1.4", + "phpunit/phpunit": "^5.7" }, "suggest": { - "symfony/translation": "Allow the time_diff output to be translated" + "ext-xdebug": "^2.5.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.5-dev" + "dev-master": "4.0.x-dev" } }, "autoload": { - "psr-0": { - "Twig_Extensions_": "lib/" - }, - "psr-4": { - "Twig\\Extensions\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" } ], - "description": "Common additional features for Twig that do not directly belong in core", + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", "keywords": [ - "i18n", - "text" + "coverage", + "testing", + "xunit" ], - "time": "2018-12-05T18:34:18+00:00" + "time": "2017-04-02T07:44:40+00:00" }, { - "name": "twig/twig", - "version": "v1.42.3", + "name": "phpunit/php-file-iterator", + "version": "1.4.5", "source": { "type": "git", - "url": "https://github.com/twigphp/Twig.git", - "reference": "201baee843e0ffe8b0b956f336dd42b2a92fae4e" + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/201baee843e0ffe8b0b956f336dd42b2a92fae4e", - "reference": "201baee843e0ffe8b0b956f336dd42b2a92fae4e", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", "shasum": "" }, "require": { - "php": ">=5.5.0", - "symfony/polyfill-ctype": "^1.8" - }, - "require-dev": { - "psr/container": "^1.0", - "symfony/debug": "^3.4|^4.2", - "symfony/phpunit-bridge": "^4.4@dev|^5.0" + "php": ">=5.3.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.42-dev" + "dev-master": "1.4.x-dev" } }, "autoload": { - "psr-0": { - "Twig_": "lib/" - }, - "psr-4": { - "Twig\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1276,209 +4024,279 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, - { - "name": "Twig Team", - "homepage": "https://twig.symfony.com/contributors", - "role": "Contributors" - }, + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "time": "2017-11-27T13:52:08+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ { - "name": "Armin Ronacher", - "email": "armin.ronacher@active-4.com", - "role": "Project Founder" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Twig, the flexible, fast, and secure template language for PHP", - "homepage": "https://twig.symfony.com", + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", "keywords": [ - "templating" + "template" ], - "time": "2019-08-24T12:51:03+00:00" + "time": "2015-06-21T13:50:34+00:00" }, { - "name": "webmozart/assert", - "version": "1.5.0", + "name": "phpunit/php-timer", + "version": "1.0.9", "source": { "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4" + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/88e6d84706d09a236046d686bbea96f07b3a34f4", - "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0", - "symfony/polyfill-ctype": "^1.8" + "php": "^5.3.3 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.36 || ^7.5.13" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3-dev" + "dev-master": "1.0-dev" } }, "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" } ], - "description": "Assertions to validate method input/output with nice error messages.", + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", "keywords": [ - "assert", - "check", - "validate" + "timer" ], - "time": "2019-08-24T08:43:50+00:00" + "time": "2017-02-26T11:10:40+00:00" }, { - "name": "whitehat101/apr1-md5", - "version": "v1.0.0", + "name": "phpunit/php-token-stream", + "version": "1.4.12", "source": { "type": "git", - "url": "https://github.com/whitehat101/apr1-md5.git", - "reference": "8b261c9fc0481b4e9fa9d01c6ca70867b5d5e819" + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/whitehat101/apr1-md5/zipball/8b261c9fc0481b4e9fa9d01c6ca70867b5d5e819", - "reference": "8b261c9fc0481b4e9fa9d01c6ca70867b5d5e819", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16", + "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16", "shasum": "" }, "require": { - "php": ">=5.3.0" + "ext-tokenizer": "*", + "php": ">=5.3.3" }, "require-dev": { - "phpunit/phpunit": "4.0.*" + "phpunit/phpunit": "~4.2" }, "type": "library", - "autoload": { - "psr-4": { - "WhiteHat101\\Crypt\\": "src" + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" } }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Jeremy Ebler", - "email": "jebler@gmail.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Apache's APR1-MD5 algorithm in pure PHP", - "homepage": "https://github.com/whitehat101/apr1-md5", + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", "keywords": [ - "MD5", - "apr1" + "tokenizer" ], - "time": "2015-02-11T11:06:42+00:00" - } - ], - "packages-dev": [ + "time": "2017-12-04T08:55:13+00:00" + }, { - "name": "doctrine/instantiator", - "version": "1.0.5", + "name": "phpunit/phpunit", + "version": "5.7.27", "source": { "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c", + "reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c", "shasum": "" }, "require": { - "php": ">=5.3,<8.0-DEV" + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "myclabs/deep-copy": "~1.3", + "php": "^5.6 || ^7.0", + "phpspec/prophecy": "^1.6.2", + "phpunit/php-code-coverage": "^4.0.4", + "phpunit/php-file-iterator": "~1.4", + "phpunit/php-text-template": "~1.2", + "phpunit/php-timer": "^1.0.6", + "phpunit/phpunit-mock-objects": "^3.2", + "sebastian/comparator": "^1.2.4", + "sebastian/diff": "^1.4.3", + "sebastian/environment": "^1.3.4 || ^2.0", + "sebastian/exporter": "~2.0", + "sebastian/global-state": "^1.1", + "sebastian/object-enumerator": "~2.0", + "sebastian/resource-operations": "~1.0", + "sebastian/version": "^1.0.6|^2.0.1", + "symfony/yaml": "~2.1|~3.0|~4.0" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "3.0.2" }, "require-dev": { - "athletic/athletic": "~0.1.8", - "ext-pdo": "*", - "ext-phar": "*", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~2.0" + "ext-pdo": "*" }, + "suggest": { + "ext-xdebug": "*", + "phpunit/php-invoker": "~1.1" + }, + "bin": [ + "phpunit" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "5.7.x-dev" } }, "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://github.com/doctrine/instantiator", + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", "keywords": [ - "constructor", - "instantiate" + "phpunit", + "testing", + "xunit" ], - "time": "2015-06-14T21:17:01+00:00" + "time": "2018-02-01T05:50:59+00:00" }, { - "name": "mikey179/vfsstream", - "version": "v1.6.8", + "name": "phpunit/phpunit-mock-objects", + "version": "3.4.4", "source": { "type": "git", - "url": "https://github.com/bovigo/vfsStream.git", - "reference": "231c73783ebb7dd9ec77916c10037eff5a2b6efe" + "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", + "reference": "a23b761686d50a560cc56233b9ecf49597cc9118" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bovigo/vfsStream/zipball/231c73783ebb7dd9ec77916c10037eff5a2b6efe", - "reference": "231c73783ebb7dd9ec77916c10037eff5a2b6efe", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/a23b761686d50a560cc56233b9ecf49597cc9118", + "reference": "a23b761686d50a560cc56233b9ecf49597cc9118", "shasum": "" }, "require": { - "php": ">=5.3.0" + "doctrine/instantiator": "^1.0.2", + "php": "^5.6 || ^7.0", + "phpunit/php-text-template": "^1.2", + "sebastian/exporter": "^1.2 || ^2.0" + }, + "conflict": { + "phpunit/phpunit": "<5.4.0" }, "require-dev": { - "phpunit/phpunit": "^4.5|^5.0" + "phpunit/phpunit": "^5.4" + }, + "suggest": { + "ext-soap": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.6.x-dev" + "dev-master": "3.2.x-dev" } }, "autoload": { - "psr-0": { - "org\\bovigo\\vfs\\": "src/main/php" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1486,34 +4304,36 @@ ], "authors": [ { - "name": "Frank Kleine", - "homepage": "http://frankkleine.de/", - "role": "Developer" + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" } ], - "description": "Virtual file system to mock the real file system in unit tests.", - "homepage": "http://vfs.bovigo.org/", - "time": "2019-10-30T15:31:00+00:00" + "description": "Mock Object library for PHPUnit", + "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", + "keywords": [ + "mock", + "xunit" + ], + "abandoned": true, + "time": "2017-06-30T09:13:00+00:00" }, { - "name": "phpdocumentor/reflection-common", + "name": "psr/http-message", "version": "1.0.1", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", "shasum": "" }, "require": { - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "^4.6" + "php": ">=5.3.0" }, "type": "library", "extra": { @@ -1523,9 +4343,7 @@ }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src" - ] + "Psr\\Http\\Message\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1534,52 +4352,48 @@ ], "authors": [ { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" } ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" ], - "time": "2017-09-11T18:02:19+00:00" + "time": "2016-08-06T14:39:51+00:00" }, { - "name": "phpdocumentor/reflection-docblock", - "version": "3.2.2", + "name": "ralouphie/getallheaders", + "version": "3.0.3", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "4aada1f93c72c35e22fb1383b47fee43b8f1d157" + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/4aada1f93c72c35e22fb1383b47fee43b8f1d157", - "reference": "4aada1f93c72c35e22fb1383b47fee43b8f1d157", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", "shasum": "" }, "require": { - "php": ">=5.5", - "phpdocumentor/reflection-common": "^1.0@dev", - "phpdocumentor/type-resolver": "^0.3.0", - "webmozart/assert": "^1.0" + "php": ">=5.6" }, "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^4.4" + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" }, "type": "library", "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } + "files": [ + "src/getallheaders.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1587,34 +4401,32 @@ ], "authors": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" } ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2017-08-08T06:39:58+00:00" + "description": "A polyfill for getallheaders.", + "time": "2019-03-08T08:55:37+00:00" }, { - "name": "phpdocumentor/type-resolver", - "version": "0.3.0", + "name": "sebastian/code-unit-reverse-lookup", + "version": "1.0.1", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "fb3933512008d8162b3cdf9e18dba9309b7c3773" + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/fb3933512008d8162b3cdf9e18dba9309b7c3773", - "reference": "fb3933512008d8162b3cdf9e18dba9309b7c3773", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0", - "phpdocumentor/reflection-common": "^1.0" + "php": "^5.6 || ^7.0" }, "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^5.2||^4.8.24" + "phpunit/phpunit": "^5.7 || ^6.0" }, "type": "library", "extra": { @@ -1623,122 +4435,112 @@ } }, "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "time": "2017-06-03T08:32:36+00:00" + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "time": "2017-03-04T06:30:41+00:00" }, { - "name": "phpspec/prophecy", - "version": "1.9.0", + "name": "sebastian/comparator", + "version": "1.2.4", "source": { "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "f6811d96d97bdf400077a0cc100ae56aa32b9203" + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be" }, "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/f6811d96d97bdf400077a0cc100ae56aa32b9203", - "reference": "f6811d96d97bdf400077a0cc100ae56aa32b9203", + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", + "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", - "sebastian/comparator": "^1.1|^2.0|^3.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" + "php": ">=5.3.3", + "sebastian/diff": "~1.2", + "sebastian/exporter": "~1.2 || ~2.0" }, "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" + "phpunit/phpunit": "~4.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8.x-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { - "psr-4": { - "Prophecy\\": "src/Prophecy" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" }, { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "http://www.github.com/sebastianbergmann/comparator", "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" + "comparator", + "compare", + "equality" ], - "time": "2019-10-03T11:07:50+00:00" + "time": "2017-01-29T09:50:25+00:00" }, { - "name": "phpunit/php-code-coverage", - "version": "2.2.4", + "name": "sebastian/diff", + "version": "1.4.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979" + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979", - "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", "shasum": "" }, "require": { - "php": ">=5.3.3", - "phpunit/php-file-iterator": "~1.3", - "phpunit/php-text-template": "~1.2", - "phpunit/php-token-stream": "~1.3", - "sebastian/environment": "^1.3.2", - "sebastian/version": "~1.0" + "php": "^5.3.3 || ^7.0" }, "require-dev": { - "ext-xdebug": ">=2.1.4", - "phpunit/phpunit": "~4" - }, - "suggest": { - "ext-dom": "*", - "ext-xdebug": ">=2.2.1", - "ext-xmlwriter": "*" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2.x-dev" + "dev-master": "1.4-dev" } }, "autoload": { @@ -1751,42 +4553,46 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "email": "sebastian@phpunit.de" } ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", "keywords": [ - "coverage", - "testing", - "xunit" + "diff" ], - "time": "2015-10-06T15:47:00+00:00" + "time": "2017-05-22T07:24:03+00:00" }, { - "name": "phpunit/php-file-iterator", - "version": "1.4.5", + "name": "sebastian/environment", + "version": "2.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac", + "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -1801,36 +4607,46 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "email": "sebastian@phpunit.de" } ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", "keywords": [ - "filesystem", - "iterator" + "Xdebug", + "environment", + "hhvm" ], - "time": "2017-11-27T13:52:08+00:00" + "time": "2016-11-26T07:53:53+00:00" }, { - "name": "phpunit/php-text-template", - "version": "1.2.1", + "name": "sebastian/exporter", + "version": "2.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", + "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.3", + "sebastian/recursion-context": "~2.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "~4.4" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -1841,38 +4657,57 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" } ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", "keywords": [ - "template" + "export", + "exporter" ], - "time": "2015-06-21T13:50:34+00:00" + "time": "2016-11-19T08:54:04+00:00" }, { - "name": "phpunit/php-timer", - "version": "1.0.9", + "name": "sebastian/global-state", + "version": "1.1.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", + "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "php": ">=5.3.3" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + "phpunit/phpunit": "~4.2" + }, + "suggest": { + "ext-uopz": "*" }, "type": "library", "extra": { @@ -1892,42 +4727,41 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "email": "sebastian@phpunit.de" } ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", "keywords": [ - "timer" + "global state" ], - "time": "2017-02-26T11:10:40+00:00" + "time": "2015-10-12T03:26:01+00:00" }, { - "name": "phpunit/php-token-stream", - "version": "1.4.12", + "name": "sebastian/object-enumerator", + "version": "2.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16" + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16", - "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1311872ac850040a79c3c058bea3e22d0f09cbb7", + "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": ">=5.3.3" + "php": ">=5.6", + "sebastian/recursion-context": "~2.0" }, "require-dev": { - "phpunit/phpunit": "~4.2" + "phpunit/phpunit": "~5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -1945,58 +4779,34 @@ "email": "sebastian@phpunit.de" } ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", - "keywords": [ - "tokenizer" - ], - "time": "2017-12-04T08:55:13+00:00" + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "time": "2017-02-18T15:18:39+00:00" }, { - "name": "phpunit/phpunit", - "version": "4.8.36", + "name": "sebastian/recursion-context", + "version": "2.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "46023de9a91eec7dfb06cc56cb4e260017298517" + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/46023de9a91eec7dfb06cc56cb4e260017298517", - "reference": "46023de9a91eec7dfb06cc56cb4e260017298517", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a", + "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-json": "*", - "ext-pcre": "*", - "ext-reflection": "*", - "ext-spl": "*", - "php": ">=5.3.3", - "phpspec/prophecy": "^1.3.1", - "phpunit/php-code-coverage": "~2.1", - "phpunit/php-file-iterator": "~1.4", - "phpunit/php-text-template": "~1.2", - "phpunit/php-timer": "^1.0.6", - "phpunit/phpunit-mock-objects": "~2.3", - "sebastian/comparator": "~1.2.2", - "sebastian/diff": "~1.2", - "sebastian/environment": "~1.3", - "sebastian/exporter": "~1.2", - "sebastian/global-state": "~1.0", - "sebastian/version": "~1.0", - "symfony/yaml": "~2.1|~3.0" + "php": ">=5.3.3" }, - "suggest": { - "phpunit/php-invoker": "~1.1" + "require-dev": { + "phpunit/phpunit": "~4.4" }, - "bin": [ - "phpunit" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "4.8.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -2009,51 +4819,44 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" } ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "time": "2017-06-21T08:07:12+00:00" + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "time": "2016-11-19T07:33:16+00:00" }, { - "name": "phpunit/phpunit-mock-objects", - "version": "2.3.8", + "name": "sebastian/resource-operations", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983" + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983", - "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.2", - "php": ">=5.3.3", - "phpunit/php-text-template": "~1.2", - "sebastian/exporter": "~1.2" - }, - "require-dev": { - "phpunit/phpunit": "~4.4" + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "shasum": "" }, - "suggest": { - "ext-soap": "*" + "require": { + "php": ">=5.6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { @@ -2068,45 +4871,34 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "email": "sebastian@phpunit.de" } ], - "description": "Mock Object library for PHPUnit", - "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", - "keywords": [ - "mock", - "xunit" - ], - "abandoned": true, - "time": "2015-10-02T06:51:40+00:00" + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "time": "2015-07-28T20:34:47+00:00" }, { - "name": "sebastian/comparator", - "version": "1.2.4", + "name": "sebastian/version", + "version": "2.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be" + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", - "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", "shasum": "" }, "require": { - "php": ">=5.3.3", - "sebastian/diff": "~1.2", - "sebastian/exporter": "~1.2 || ~2.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.4" + "php": ">=5.6" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -2119,339 +4911,353 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "http://www.github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "time": "2017-01-29T09:50:25+00:00" + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "time": "2016-10-03T07:35:21+00:00" }, { - "name": "sebastian/diff", - "version": "1.4.3", + "name": "sensiolabs/security-checker", + "version": "v5.0.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" + "url": "https://github.com/sensiolabs/security-checker.git", + "reference": "46be3f58adac13084497961e10eed9a7fb4d44d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", - "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", + "url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/46be3f58adac13084497961e10eed9a7fb4d44d1", + "reference": "46be3f58adac13084497961e10eed9a7fb4d44d1", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + "composer/ca-bundle": "^1.0", + "php": ">=5.5.9", + "symfony/console": "~2.7|~3.0|~4.0" }, + "bin": [ + "security-checker" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "5.0-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "SensioLabs\\Security\\": "SensioLabs/Security" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Fabien Potencier", + "email": "fabien.potencier@gmail.com" } ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff" - ], - "time": "2017-05-22T07:24:03+00:00" + "description": "A security checker for your composer.lock", + "time": "2018-12-19T17:14:59+00:00" }, { - "name": "sebastian/environment", - "version": "1.3.8", + "name": "simplesamlphp/simplesamlphp-test-framework", + "version": "v0.0.14", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea" + "url": "https://github.com/simplesamlphp/simplesamlphp-test-framework.git", + "reference": "d9b90d829ffd1597f0119570b4b1f5b7c91a56e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea", - "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-test-framework/zipball/d9b90d829ffd1597f0119570b4b1f5b7c91a56e1", + "reference": "d9b90d829ffd1597f0119570b4b1f5b7c91a56e1", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "php": ">=5.6", + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "~5.7|^6.0|^7.0|^8.0", + "vimeo/psalm": "1.1.9|^2.0|^3.0|^4.0" }, "require-dev": { - "phpunit/phpunit": "^4.8 || ^5.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } + "ext-curl": "*", + "ext-krb5": "*", + "simplesamlphp/simplesamlphp": "dev-master" }, + "bin": [ + "bin/check-syntax-json.sh", + "bin/check-syntax-php.sh", + "bin/check-syntax-xml.sh", + "bin/check-syntax-yaml.sh" + ], + "type": "project", "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "SimpleSAML\\TestUtils\\": "lib/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "LGPL-3.0-or-later" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" } ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", + "description": "Test framework for SimpleSAMLphp and related repositories ", "keywords": [ - "Xdebug", - "environment", - "hhvm" + "test-framework" ], - "time": "2016-08-18T05:49:44+00:00" + "time": "2019-10-22T20:45:13+00:00" }, { - "name": "sebastian/exporter", - "version": "1.2.2", + "name": "squizlabs/php_codesniffer", + "version": "3.5.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4" + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "557a1fc7ac702c66b0bbfe16ab3d55839ef724cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4", - "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/557a1fc7ac702c66b0bbfe16ab3d55839ef724cb", + "reference": "557a1fc7ac702c66b0bbfe16ab3d55839ef724cb", "shasum": "" }, "require": { - "php": ">=5.3.3", - "sebastian/recursion-context": "~1.0" + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" }, "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "~4.4" + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" }, + "bin": [ + "bin/phpcs", + "bin/phpcbf" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3.x-dev" + "dev-master": "3.x-dev" } }, - "autoload": { - "classmap": [ - "src/" - ] - }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], "authors": [ { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" + "name": "Greg Sherwood", + "role": "lead" } ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", "keywords": [ - "export", - "exporter" + "phpcs", + "standards" ], - "time": "2016-06-17T09:04:28+00:00" + "time": "2019-12-04T04:46:47+00:00" }, { - "name": "sebastian/global-state", - "version": "1.1.1", + "name": "symfony/console", + "version": "v3.4.36", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" + "url": "https://github.com/symfony/console.git", + "reference": "1ee23b3b659b06c622f2bd2492a229e416eb4586" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", - "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", + "url": "https://api.github.com/repos/symfony/console/zipball/1ee23b3b659b06c622f2bd2492a229e416eb4586", + "reference": "1ee23b3b659b06c622f2bd2492a229e416eb4586", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^5.5.9|>=7.0.8", + "symfony/debug": "~2.8|~3.0|~4.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/process": "<3.3" + }, + "provide": { + "psr/log-implementation": "1.0" }, "require-dev": { - "phpunit/phpunit": "~4.2" + "psr/log": "~1.0", + "symfony/config": "~3.3|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/event-dispatcher": "~2.8|~3.0|~4.0", + "symfony/lock": "~3.4|~4.0", + "symfony/process": "~3.3|~4.0" }, "suggest": { - "ext-uopz": "*" + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "3.4-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "time": "2015-10-12T03:26:01+00:00" + "description": "Symfony Console Component", + "homepage": "https://symfony.com", + "time": "2019-12-01T10:04:45+00:00" }, { - "name": "sebastian/recursion-context", - "version": "1.0.5", + "name": "symfony/stopwatch", + "version": "v3.4.36", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7" + "url": "https://github.com/symfony/stopwatch.git", + "reference": "efe0af281ad336bc3b10375c88b117499f1d8494" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7", - "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/efe0af281ad336bc3b10375c88b117499f1d8494", + "reference": "efe0af281ad336bc3b10375c88b117499f1d8494", "shasum": "" }, "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.4" + "php": "^5.5.9|>=7.0.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "3.4-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\Stopwatch\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Adam Harvey", - "email": "aharvey@php.net" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2016-10-03T07:41:43+00:00" + "description": "Symfony Stopwatch Component", + "homepage": "https://symfony.com", + "time": "2019-11-03T17:17:59+00:00" }, { - "name": "sebastian/version", - "version": "1.0.6", + "name": "vimeo/psalm", + "version": "1.1.9", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6" + "url": "https://github.com/vimeo/psalm.git", + "reference": "d15cf3b7f50249caf933144c8926c8e69aff3d34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", - "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/d15cf3b7f50249caf933144c8926c8e69aff3d34", + "reference": "d15cf3b7f50249caf933144c8926c8e69aff3d34", "shasum": "" }, + "require": { + "composer/xdebug-handler": "^1.1", + "muglug/package-versions-56": "1.2.4", + "nikic/php-parser": "^3.1", + "openlss/lib-array2xml": "^0.0.10||^0.5.1", + "php": "^5.6||^7.0", + "php-cs-fixer/diff": "^1.2" + }, + "provide": { + "psalm/psalm": "self.version" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.2", + "php-coveralls/php-coveralls": "^2.0", + "phpunit/phpunit": "^5.7.4", + "squizlabs/php_codesniffer": "^3.0" + }, + "suggest": { + "ext-igbinary": "^2.0.5" + }, + "bin": [ + "psalm", + "psalter" + ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev", + "dev-1.x": "1.x-dev" + } + }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Psalm\\": "src/Psalm" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Matthew Brown" } ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "time": "2015-06-21T13:59:46+00:00" + "description": "A static analysis tool for finding errors in PHP applications", + "keywords": [ + "code", + "inspection", + "php" + ], + "time": "2018-08-14T16:06:16+00:00" } ], "aliases": [], @@ -2460,7 +5266,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": ">=5.5", + "php": ">=5.6", "ext-spl": "*", "ext-zlib": "*", "ext-pcre": "*", @@ -2473,5 +5279,6 @@ }, "platform-dev": { "ext-curl": "*" - } + }, + "plugin-api-version": "1.1.0" } diff --git a/vendor/simplesamlphp/simplesamlphp/config-templates/authsources.php b/vendor/simplesamlphp/simplesamlphp/config-templates/authsources.php index 0d8da0e9c6198c74668f61f2a16ebe8f48f25768..f2d562163f0e3bce199bbf989a9419f2083dbc83 100644 --- a/vendor/simplesamlphp/simplesamlphp/config-templates/authsources.php +++ b/vendor/simplesamlphp/simplesamlphp/config-templates/authsources.php @@ -57,13 +57,14 @@ 'dsn' => 'pgsql:host=sql.example.org;port=5432;dbname=simplesaml', 'username' => 'simplesaml', 'password' => 'secretpassword', - 'query' => 'SELECT uid, givenName, email, eduPersonPrincipalName FROM users WHERE uid = :username AND password = SHA2(CONCAT((SELECT salt FROM users WHERE uid = :username), :password), 256);', + 'query' => 'SELECT uid, givenName, email, eduPersonPrincipalName FROM users WHERE uid = :username ' . + 'AND password = SHA2(CONCAT((SELECT salt FROM users WHERE uid = :username), :password), 256);', ], */ /* 'example-static' => [ - 'exampleauth:Static', + 'exampleauth:StaticSource', 'uid' => ['testuser'], 'eduPersonAffiliation' => ['member', 'employee'], 'cn' => ['Test User'], @@ -149,17 +150,16 @@ */ /* - // Twitter OAuth Authentication API. + // LinkedIn OAuth Authentication API. // Register your application to get an API key here: - // http://twitter.com/oauth_clients - 'twitter' => [ - 'authtwitter:Twitter', + // https://www.linkedin.com/secure/developer + // Attributes definition: + // https://developer.linkedin.com/docs/fields + 'linkedin' => [ + 'authlinkedin:LinkedIn', 'key' => 'xxxxxxxxxxxxxxxx', 'secret' => 'xxxxxxxxxxxxxxxx', - - // Forces the user to enter their credentials to ensure the correct users account is authorized. - // Details: https://dev.twitter.com/docs/api/1/get/oauth/authenticate - 'force_login' => false, + 'attributes' => 'id,first-name,last-name,headline,summary,specialties,picture-url,email-address', ], */ diff --git a/vendor/simplesamlphp/simplesamlphp/config-templates/config.php b/vendor/simplesamlphp/simplesamlphp/config-templates/config.php index 29d7a004364398856e5923f6228072ff188fc8af..923628ee108b3db41551e3edf84c2be683d4174d 100644 --- a/vendor/simplesamlphp/simplesamlphp/config-templates/config.php +++ b/vendor/simplesamlphp/simplesamlphp/config-templates/config.php @@ -75,6 +75,31 @@ 'technicalcontact_name' => 'Administrator', 'technicalcontact_email' => 'na@example.org', + /* + * (Optional) The method by which email is delivered. Defaults to mail which utilizes the + * PHP mail() function. + * + * Valid options are: mail, sendmail and smtp. + */ + //'mail.transport.method' => 'smtp', + + /* + * Set the transport options for the transport method specified. The valid settings are relative to the + * selected transport method. + */ + // // smtp mail transport options + // 'mail.transport.options' => [ + // 'host' => 'mail.example.org', // required + // 'port' => 25, // optional + // 'username' => 'user@example.org', // optional: if set, enables smtp authentication + // 'password' => 'password', // optional: if set, enables smtp authentication + // 'security' => 'tls', // optional: defaults to no smtp security + // ], + // // sendmail mail transport options + // 'mail.transport.options' => [ + // 'path' => '/usr/sbin/sendmail' // optional: defaults to php.ini path + // ], + /* * The envelope from address for outgoing emails. * This should be in a domain that has your application's IP addresses in its SPF record @@ -264,7 +289,7 @@ * * Choose logging handler. * - * Options: [syslog,file,errorlog] + * Options: [syslog,file,errorlog,stderr] * */ 'logging.level' => SimpleSAML\Logger::NOTICE, @@ -439,13 +464,6 @@ 'enable.saml20-idp' => false, 'enable.shib13-idp' => false, 'enable.adfs-idp' => false, - 'enable.wsfed-sp' => false, - 'enable.authmemcookie' => false, - - /* - * Default IdP for WS-Fed. - */ - 'default-wsfed-idp' => 'urn:federation:pingfederate:localhost', /* * Whether SimpleSAMLphp should sign the response or the assertion in SAML 1.1 authentication @@ -470,7 +488,7 @@ * * 'module.enable' => [ * 'exampleauth' => true, // Setting to TRUE enables. - * 'saml' => false, // Setting to FALSE disables. + * 'consent' => false, // Setting to FALSE disables. * 'core' => null, // Unset or NULL uses default. * ], * @@ -616,6 +634,9 @@ * - 'port': This is the port number of the memcache server. If this * option isn't set, then we will use the 'memcache.default_port' * ini setting. This is 11211 by default. + * + * When using the "memcache" extension, the following options are also + * supported: * - 'weight': This sets the weight of this server in this server * group. http://php.net/manual/en/function.Memcache-addServer.php * contains more information about the weight option. @@ -649,6 +670,35 @@ * ], * ], * + * Additionally, when using the "memcached" extension, unique keys must + * be provided for each group of servers if persistent connections are + * desired. Each server group can also have an "options" indexed array + * with the options desired for the given group: + * + * 'memcache_store.servers' => [ + * 'memcache_group_1' => [ + * 'options' => [ + * \Memcached::OPT_BINARY_PROTOCOL => true, + * \Memcached::OPT_NO_BLOCK => true, + * \Memcached::OPT_TCP_NODELAY => true, + * \Memcached::OPT_LIBKETAMA_COMPATIBLE => true, + * ], + * ['hostname' => '127.0.0.1', 'port' => 11211], + * ['hostname' => '127.0.0.2', 'port' => 11211], + * ], + * + * 'memcache_group_2' => [ + * 'options' => [ + * \Memcached::OPT_BINARY_PROTOCOL => true, + * \Memcached::OPT_NO_BLOCK => true, + * \Memcached::OPT_TCP_NODELAY => true, + * \Memcached::OPT_LIBKETAMA_COMPATIBLE => true, + * ], + * ['hostname' => '127.0.0.3', 'port' => 11211], + * ['hostname' => '127.0.0.4', 'port' => 11211], + * ], + * ], + * */ 'memcache_store.servers' => [ [ @@ -805,6 +855,15 @@ */ //'theme.header' => 'SimpleSAMLphp' + /** + * A template controller, if any. + * + * Used to intercept certain parts of the template handling, while keeping away unwanted/unexpected hooks. Set + * the 'theme.controller' configuration option to a class that implements the + * \SimpleSAML\XHTML\TemplateControllerInterface interface to use it. + */ + //'theme.controller' => '', + /* * Templating options * @@ -834,6 +893,31 @@ */ 'production' => true, + /* + * SimpleSAMLphp modules can host static resources which are served through PHP. + * The serving of the resources can be configured through these settings. + */ + 'assets' => [ + /* + * These settings adjust the caching headers that are sent + * when serving static resources. + */ + 'caching' => [ + /* + * Amount of seconds before the resource should be fetched again + */ + 'max_age' => 86400, + /* + * Calculate a checksum of every file and send it to the browser + * This allows the browser to avoid downloading assets again in situations + * where the Last-Modified header cannot be trusted, + * for example in cluster setups + * + * Defaults false + */ + 'etag' => false, + ], + ], /********************* diff --git a/vendor/simplesamlphp/simplesamlphp/dictionaries/admin.definition.json b/vendor/simplesamlphp/simplesamlphp/dictionaries/admin.definition.json index 491c713765d3427c0b47af9ef1d51ac792c3ce6a..ce20e0e336e76984d17191f6b0b47cf9342e8565 100644 --- a/vendor/simplesamlphp/simplesamlphp/dictionaries/admin.definition.json +++ b/vendor/simplesamlphp/simplesamlphp/dictionaries/admin.definition.json @@ -68,18 +68,12 @@ "metaover_group_metadata.shib13-idp-remote": { "en": "Shib 1.3 Identity Provider (Remote)" }, - "metaover_group_metadata.adfs-sp-remote": { - "en": "ADFS Service Provider (Remote)" - }, - "metaover_group_metadata.adfs-idp-hosted": { - "en": "ADFS Identity Provider (Hosted)" - }, - "metaover_group_metadata.wsfed-sp-hosted": { - "en": "WS-Federation Service Provider (Hosted)" - }, - "metaover_group_metadata.wsfed-idp-remote": { - "en": "WS-Federation Identity Provider (Remote)" - }, + "metaover_group_metadata.adfs-sp-remote": { + "en": "ADFS Service Provider (Remote)" + }, + "metaover_group_metadata.adfs-idp-hosted": { + "en": "ADFS Identity Provider (Hosted)" + }, "metaconv_title": { "en": "Metadata parser" }, diff --git a/vendor/simplesamlphp/simplesamlphp/dictionaries/admin.translation.json b/vendor/simplesamlphp/simplesamlphp/dictionaries/admin.translation.json index 7f5f18abbdbc4d57dfdc8f92a55beafdc632eb34..ec56e98a4752d8c599e7a9a2524008a5cac26f17 100644 --- a/vendor/simplesamlphp/simplesamlphp/dictionaries/admin.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/dictionaries/admin.translation.json @@ -30,7 +30,8 @@ "id": "Pemeriksaan konfigurasi", "sr": "Provera pode\u0161avanja", "ro": "Verificarea configura\u021biei", - "el": "\u0388\u03bb\u03b5\u03b3\u03c7\u03bf\u03c2 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd" + "el": "\u0388\u03bb\u03b5\u03b3\u03c7\u03bf\u03c2 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd", + "ca": "Comprovar la configuaraci\u00f3" }, "cfg_check_select_file": { "no": "Velg hvilken konfigurasjonfil som skal sjekkes", @@ -63,7 +64,8 @@ "sr": "Odaberite konfiguracionu fajl koji \u017eelite proveriti:", "ro": "Alege\u021bi fi\u0219ierul de configurare care dori\u021bi s\u0103-l verifica\u021bi:", "eu": "Hautatu ezazu egiaztatu beharreko konfigurazio fitxategia: ", - "el": "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 \u03b3\u03b9\u03b1 \u03ad\u03bb\u03b5\u03b3\u03c7\u03bf: " + "el": "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 \u03b3\u03b9\u03b1 \u03ad\u03bb\u03b5\u03b3\u03c7\u03bf: ", + "ca": "Seleccioneu el fitxer de configuraci\u00f3 per comprovar:" }, "cfg_check_missing": { "no": "Mangler element i konfigurasjonsfilen", @@ -96,7 +98,8 @@ "ro": "Op\u021biuni care nu apar \u00een fi\u0219ierul de configurare", "ru": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0432 \u0444\u0430\u0439\u043b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438", "eu": "Konfigurazio fitxategian falta diren aukerak", - "el": "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ad\u03c2 \u03c0\u03bf\u03c5 \u03bb\u03b5\u03af\u03c0\u03bf\u03c5\u03bd \u03b1\u03c0\u03cc \u03c4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd" + "el": "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ad\u03c2 \u03c0\u03bf\u03c5 \u03bb\u03b5\u03af\u03c0\u03bf\u03c5\u03bd \u03b1\u03c0\u03cc \u03c4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd", + "ca": "Falten les opcions del fitxer de configuraci\u00f3" }, "cfg_check_superfluous": { "no": "Overf\u00f8ldig element i konfigurasjonsfilen", @@ -129,7 +132,8 @@ "ro": "Op\u021biuni inutile \u00een fi\u0219ierul de configurare", "ru": "\u0418\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432 \u0444\u0430\u0439\u043b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438", "eu": "Konfigurazio fitxategian soberan dauden aukerak", - "el": "\u03a0\u03b5\u03c1\u03b9\u03c4\u03c4\u03ad\u03c2 \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ad\u03c2 \u03c3\u03c4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd" + "el": "\u03a0\u03b5\u03c1\u03b9\u03c4\u03c4\u03ad\u03c2 \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ad\u03c2 \u03c3\u03c4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd", + "ca": "Opcions superflues al fitxer de configuraci\u00f3" }, "cfg_check_noerrors": { "no": "Ingen feil funnet", @@ -162,7 +166,8 @@ "sr": "Nije prona\u0111ena nijedna gre\u0161ka.", "ro": "Nu au fost depistate erori.", "ru": "\u041e\u0448\u0438\u0431\u043e\u043a \u043d\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043e.", - "el": "\u0394\u03b5\u03bd \u03b5\u03bd\u03c4\u03bf\u03c0\u03af\u03c3\u03c4\u03b7\u03ba\u03b1\u03bd \u03bb\u03ac\u03b8\u03b7." + "el": "\u0394\u03b5\u03bd \u03b5\u03bd\u03c4\u03bf\u03c0\u03af\u03c3\u03c4\u03b7\u03ba\u03b1\u03bd \u03bb\u03ac\u03b8\u03b7.", + "ca": "No s'ha trobat cap error." }, "cfg_check_back": { "no": "G\u00e5 tilbake til fil-listen", @@ -195,7 +200,8 @@ "sr": "Vrati se natrag na listu fajlova", "ro": "Merge\u021bi \u00eenapoi la lista de fi\u0219iere", "ru": "\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u0441\u043f\u0438\u0441\u043a\u0443 \u0444\u0430\u0439\u043b\u043e\u0432", - "el": "\u0395\u03c0\u03b9\u03c3\u03c4\u03c1\u03bf\u03c6\u03ae \u03c3\u03c4\u03bf\u03bd \u03ba\u03b1\u03c4\u03ac\u03bb\u03bf\u03b3\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03c9\u03bd" + "el": "\u0395\u03c0\u03b9\u03c3\u03c4\u03c1\u03bf\u03c6\u03ae \u03c3\u03c4\u03bf\u03bd \u03ba\u03b1\u03c4\u03ac\u03bb\u03bf\u03b3\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03c9\u03bd", + "ca": "Torneu a la llista de fitxers" }, "metaover_header": { "no": "Oversikt over metadata", @@ -228,7 +234,8 @@ "ro": "Prezentare general\u0103 a metadatelor", "ru": "\u041a\u0440\u0430\u0442\u043a\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445", "eu": "Ikusi metadatuak", - "el": "\u0395\u03c0\u03b9\u03c3\u03ba\u03cc\u03c0\u03b7\u03c3\u03b7 \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd (metadata)" + "el": "\u0395\u03c0\u03b9\u03c3\u03ba\u03cc\u03c0\u03b7\u03c3\u03b7 \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd (metadata)", + "ca": "Visi\u00f3 general de les metadades" }, "metaover_intro": { "no": "For \u00e5 se p\u00e5 detaljene i en SAML-entitet, klikk p\u00e5 SAML-entitet overskriften", @@ -261,7 +268,8 @@ "ro": "Pentru a vizualiza detalii privind o entitate SAML, ap\u0103sa\u021bi pe antetul entit\u0103\u021bii SAML.", "ru": "\u0414\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0435\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 SAML, \u043a\u043b\u0438\u043a\u043d\u0438\u0442\u0435 \u043d\u0430 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0437\u0430\u043f\u0438\u0441\u0438 SAML.", "eu": "SAML entitate baten xehetasunak ikusteko, klikatu entitatearen goiburua.", - "el": "\u0393\u03b9\u03b1 \u03bd\u03b1 \u03b4\u03b5\u03af\u03c4\u03b5 \u03c4\u03b9\u03c2 \u03bb\u03b5\u03c0\u03c4\u03bf\u03bc\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2 \u03b3\u03b9\u03b1 \u03bc\u03b9\u03b1 \u03bf\u03bd\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1 \u0053\u0041\u004d\u004c, \u03ba\u03ac\u03bd\u03c4\u03b5 \u03ba\u03bb\u03b9\u03ba \u03c3\u03c4\u03b7\u03bd \u03b5\u03c0\u03b9\u03ba\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 \u03c4\u03b7\u03c2 \u03bf\u03bd\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2." + "el": "\u0393\u03b9\u03b1 \u03bd\u03b1 \u03b4\u03b5\u03af\u03c4\u03b5 \u03c4\u03b9\u03c2 \u03bb\u03b5\u03c0\u03c4\u03bf\u03bc\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2 \u03b3\u03b9\u03b1 \u03bc\u03b9\u03b1 \u03bf\u03bd\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1 \u0053\u0041\u004d\u004c, \u03ba\u03ac\u03bd\u03c4\u03b5 \u03ba\u03bb\u03b9\u03ba \u03c3\u03c4\u03b7\u03bd \u03b5\u03c0\u03b9\u03ba\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 \u03c4\u03b7\u03c2 \u03bf\u03bd\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2.", + "ca": "Per veure els detalls d'una entitat SAML, feu clic a la cap\u00e7alera de l'entitat SAML." }, "metaover_errorentry": { "no": "Feil i metadataoppf\u00f8ringen", @@ -294,7 +302,8 @@ "ro": "Eroare \u00een aceast\u0103 metadat\u0103", "ru": "\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0432\u0432\u043e\u0434\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445", "eu": "Metadatu sarrera honetan errorea", - "el": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03ae \u03c4\u03b7\u03bd \u03ba\u03b1\u03c4\u03b1\u03c7\u03ce\u03c1\u03b7\u03c3\u03b7 \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd" + "el": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03ae \u03c4\u03b7\u03bd \u03ba\u03b1\u03c4\u03b1\u03c7\u03ce\u03c1\u03b7\u03c3\u03b7 \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd", + "ca": "Error en aquesta entrada de metadades" }, "metaover_required_found": { "no": "Obligatorisk felt", @@ -327,7 +336,8 @@ "ro": "C\u00e2mpuri obligatorii", "ru": "\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f", "eu": "Derrigorrezko eremuak", - "el": "\u03a5\u03c0\u03bf\u03c7\u03c1\u03b5\u03c9\u03c4\u03b9\u03ba\u03ac \u03c0\u03b5\u03b4\u03af\u03b1" + "el": "\u03a5\u03c0\u03bf\u03c7\u03c1\u03b5\u03c9\u03c4\u03b9\u03ba\u03ac \u03c0\u03b5\u03b4\u03af\u03b1", + "ca": "Camps obligatoris" }, "metaover_required_not_found": { "no": "F\u00f8lgende obligatoriske felter ble ikke funnet", @@ -360,7 +370,8 @@ "ro": "Urm\u0103toarele c\u00e2mpuri obligatorii nu au fost g\u0103site", "ru": "\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u044b", "eu": "Derrigorrezko datu hauek ez dira aurkitu", - "el": "\u03a4\u03b1 \u03c0\u03b1\u03c1\u03b1\u03ba\u03ac\u03c4\u03c9 \u03c5\u03c0\u03bf\u03c7\u03c1\u03b5\u03c9\u03c4\u03b9\u03ba\u03ac \u03c0\u03b5\u03b4\u03af\u03b1 \u03b4\u03b5 \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b1\u03bd" + "el": "\u03a4\u03b1 \u03c0\u03b1\u03c1\u03b1\u03ba\u03ac\u03c4\u03c9 \u03c5\u03c0\u03bf\u03c7\u03c1\u03b5\u03c9\u03c4\u03b9\u03ba\u03ac \u03c0\u03b5\u03b4\u03af\u03b1 \u03b4\u03b5 \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b1\u03bd", + "ca": "No s'han trobat els seg\u00fcents camps obligatoris" }, "metaover_optional_found": { "no": "Valgbart felt", @@ -393,7 +404,8 @@ "ro": "C\u00e2mpuri op\u021bionale", "ru": "\u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f", "eu": "Hautazko datuak", - "el": "\u03a0\u03c1\u03bf\u03b1\u03b9\u03c1\u03b5\u03c4\u03b9\u03ba\u03ac \u03c0\u03b5\u03b4\u03af\u03b1" + "el": "\u03a0\u03c1\u03bf\u03b1\u03b9\u03c1\u03b5\u03c4\u03b9\u03ba\u03ac \u03c0\u03b5\u03b4\u03af\u03b1", + "ca": "Camps opcionals" }, "metaover_optional_not_found": { "no": "F\u00f8lgende valgbare felt ble ikke funnet", @@ -426,7 +438,8 @@ "ro": "Urm\u0103toarele c\u00e2mpuri op\u021bionale nu au fost g\u0103site", "ru": "\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u044b", "eu": "Hautazko datu hauek ez dira aurkitu", - "el": "\u03a4\u03b1 \u03c0\u03b1\u03c1\u03b1\u03ba\u03ac\u03c4\u03c9 \u03c0\u03c1\u03bf\u03b1\u03b9\u03c1\u03b5\u03c4\u03b9\u03ba\u03ac \u03c0\u03b5\u03b4\u03af\u03b1 \u03b4\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b1\u03bd" + "el": "\u03a4\u03b1 \u03c0\u03b1\u03c1\u03b1\u03ba\u03ac\u03c4\u03c9 \u03c0\u03c1\u03bf\u03b1\u03b9\u03c1\u03b5\u03c4\u03b9\u03ba\u03ac \u03c0\u03b5\u03b4\u03af\u03b1 \u03b4\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b1\u03bd", + "ca": "No s'han trobat els seg\u00fcents camps opcionals" }, "metaover_unknown_found": { "no": "F\u00f8lgende felt ble ikke gjenkjent", @@ -459,7 +472,8 @@ "ro": "Urm\u0103toarele c\u00e2mpuri nu au fost recunoscute", "ru": "\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u043b\u044f \u043d\u0435 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u043d\u044b", "eu": "Datu hauek ez dira antzeman", - "el": "\u03a4\u03b1 \u03c0\u03b1\u03c1\u03b1\u03ba\u03ac\u03c4\u03c9 \u03c0\u03b5\u03b4\u03af\u03b1 \u03b4\u03b5\u03bd \u03b1\u03bd\u03b1\u03b3\u03bd\u03c9\u03c1\u03af\u03c3\u03c4\u03b7\u03ba\u03b1\u03bd" + "el": "\u03a4\u03b1 \u03c0\u03b1\u03c1\u03b1\u03ba\u03ac\u03c4\u03c9 \u03c0\u03b5\u03b4\u03af\u03b1 \u03b4\u03b5\u03bd \u03b1\u03bd\u03b1\u03b3\u03bd\u03c9\u03c1\u03af\u03c3\u03c4\u03b7\u03ba\u03b1\u03bd", + "ca": "No s'han reconegut els seg\u00fcents camps" }, "metadata_metadata": { "no": "Metadata", @@ -492,7 +506,8 @@ "ro": "Metadate", "ru": "\u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435", "eu": "Metadatuak", - "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1" + "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1", + "ca": "Metadades" }, "metadata_xmlformat": { "no": "I SAML 2.0 Metadata XML Format:", @@ -525,7 +540,8 @@ "ro": "\u00cen format metadate XML SAML 2.0:", "ru": "xml \u0444\u043e\u0440\u043c\u0430\u0442 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 SAML 2.0:", "eu": "SAML 2.0 metadatuetako xml formatuan:", - "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03c3\u03b5 \u03bc\u03bf\u03c1\u03c6\u03ae xml SAML 2.0:" + "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03c3\u03b5 \u03bc\u03bf\u03c1\u03c6\u03ae xml SAML 2.0:", + "ca": "En format XML de metadades SAML 2.0:" }, "debug_sending_message_text_link": { "no": "Du er i ferd med \u00e5 sende en melding. Trykk p\u00e5 send melding knappen for \u00e5 fortsette.", @@ -557,7 +573,8 @@ "sr": "Kliknite na link \"Po\u0161alji poruku\" da biste poslali poruku.", "ro": "Mesajul este preg\u0103tit pentru a fi trimis. Ap\u0103sa\u021bi link-ul de trimitere pentru a continua.", "ru": "\u0412\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0435\u0441\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435. \u041a\u043b\u0438\u043a\u043d\u0438\u0442\u0435 \u0441\u0441\u044b\u043b\u043a\u0443 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u044f.", - "el": "\u03a0\u03c1\u03cc\u03ba\u03b5\u03b9\u03c4\u03b1\u03b9 \u03bd\u03b1 \u03c3\u03c4\u03b5\u03af\u03bb\u03b5\u03c4\u03b5 \u03ad\u03bd\u03b1 \u03bc\u03ae\u03bd\u03c5\u03bc\u03b1. \u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u00ab\u03a5\u03c0\u03bf\u03b2\u03bf\u03bb\u03ae \u03bc\u03b7\u03bd\u03cd\u03bc\u03b1\u03c4\u03bf\u03c2\u00bb \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b5\u03c7\u03af\u03c3\u03b5\u03c4\u03b5." + "el": "\u03a0\u03c1\u03cc\u03ba\u03b5\u03b9\u03c4\u03b1\u03b9 \u03bd\u03b1 \u03c3\u03c4\u03b5\u03af\u03bb\u03b5\u03c4\u03b5 \u03ad\u03bd\u03b1 \u03bc\u03ae\u03bd\u03c5\u03bc\u03b1. \u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u00ab\u03a5\u03c0\u03bf\u03b2\u03bf\u03bb\u03ae \u03bc\u03b7\u03bd\u03cd\u03bc\u03b1\u03c4\u03bf\u03c2\u00bb \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b5\u03c7\u03af\u03c3\u03b5\u03c4\u03b5.", + "ca": "Esteu a punt d'enviar un missatge. Premeu l'enlla\u00e7 d'enviar el missatge per continuar." }, "debug_sending_message_send": { "no": "Send melding", @@ -590,7 +607,8 @@ "sr": "Po\u0161alji poruku", "ro": "Trimite mesajul", "ru": "\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435", - "el": "\u03a5\u03c0\u03bf\u03b2\u03bf\u03bb\u03ae \u03bc\u03b7\u03bd\u03cd\u03bc\u03b1\u03c4\u03bf\u03c2" + "el": "\u03a5\u03c0\u03bf\u03b2\u03bf\u03bb\u03ae \u03bc\u03b7\u03bd\u03cd\u03bc\u03b1\u03c4\u03bf\u03c2", + "ca": "Enviar missatge" }, "debug_sending_message_msg_title": { "no": "Melding", @@ -623,7 +641,8 @@ "ro": "Mesaj", "ru": "\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435", "eu": "Mezua", - "el": "\u039c\u03ae\u03bd\u03c5\u03bc\u03b1" + "el": "\u039c\u03ae\u03bd\u03c5\u03bc\u03b1", + "ca": "Missatge" }, "debug_sending_message_msg_text": { "no": "Siden du er i debug modus kan du se innholdet i meldingene du sender.", @@ -655,7 +674,8 @@ "ro": "\u00centruc\u00e2t sunte\u021bi \u00een modul depanare, ve\u021bi vedea con\u021binutul mesajului care va fi trimis:", "ru": "\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0435\u0441\u044c \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f.", "eu": "Arazketa moduan egonez gero, bidaltzera zoazen mezuaren edukia ikusiko duzu: ", - "el": "\u0395\u03c0\u03b5\u03b9\u03b4\u03ae \u03b5\u03af\u03c3\u03c4\u03b5 \u03c3\u03b5 \u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 \u03b5\u03bd\u03c4\u03bf\u03c0\u03b9\u03c3\u03bc\u03bf\u03cd \u03c3\u03c6\u03b1\u03bb\u03bc\u03ac\u03c4\u03c9\u03bd (debug), \u03bc\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03b4\u03b5\u03af\u03c4\u03b5 \u03c4\u03bf \u03c0\u03b5\u03c1\u03b9\u03b5\u03c7\u03cc\u03bc\u03b5\u03bd\u03bf \u03c4\u03bf\u03c5 \u03bc\u03b7\u03bd\u03cd\u03bc\u03b1\u03c4\u03bf\u03c2 \u03c0\u03bf\u03c5 \u03c3\u03c4\u03ad\u03bb\u03bd\u03b5\u03c4\u03b5:" + "el": "\u0395\u03c0\u03b5\u03b9\u03b4\u03ae \u03b5\u03af\u03c3\u03c4\u03b5 \u03c3\u03b5 \u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 \u03b5\u03bd\u03c4\u03bf\u03c0\u03b9\u03c3\u03bc\u03bf\u03cd \u03c3\u03c6\u03b1\u03bb\u03bc\u03ac\u03c4\u03c9\u03bd (debug), \u03bc\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03b4\u03b5\u03af\u03c4\u03b5 \u03c4\u03bf \u03c0\u03b5\u03c1\u03b9\u03b5\u03c7\u03cc\u03bc\u03b5\u03bd\u03bf \u03c4\u03bf\u03c5 \u03bc\u03b7\u03bd\u03cd\u03bc\u03b1\u03c4\u03bf\u03c2 \u03c0\u03bf\u03c5 \u03c3\u03c4\u03ad\u03bb\u03bd\u03b5\u03c4\u03b5:", + "ca": "Mentre esteu en mode de depuraci\u00f3, podreu veure el contingut del missatge que envieu:" }, "metaover_group_metadata.saml20-sp-remote": { "no": "SAML 2.0 Tjenesteleverand\u00f8r (ekstern)", @@ -688,7 +708,8 @@ "ro": "Furnizor de servicii SAML 2.0 (distant)", "ru": "\u0421\u0435\u0440\u0432\u0438\u0441 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440 SAML 2.0 (\u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435)", "eu": "SAML 2.0 Zerbitzu hornitzailea (Urrunekoa)", - "el": "\u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd SAML 2.0 (\u0391\u03c0\u03bf\u03bc\u03b1\u03ba\u03c1\u03c5\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2)" + "el": "\u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd SAML 2.0 (\u0391\u03c0\u03bf\u03bc\u03b1\u03ba\u03c1\u03c5\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2)", + "ca": "Proveïdor de serveis SAML 2.0 (remot)" }, "metaover_group_metadata.saml20-idp-hosted": { "no": "SAML 2.0 Identitetsleverand\u00f8r (ekstern)", @@ -721,7 +742,8 @@ "ro": "Furnizor de identitate SAML 2.0 (g\u0103zduit)", "ru": "\u041f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 SAML 2.0 (\u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435)", "eu": "SAML 2.0 Identitate hornitzailea (Anfitrioia)", - "el": "\u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 SAML 2.0 (\u03a6\u03b9\u03bb\u03bf\u03be\u03b5\u03bd\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf\u03c2)" + "el": "\u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 SAML 2.0 (\u03a6\u03b9\u03bb\u03bf\u03be\u03b5\u03bd\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf\u03c2)", + "ca": "Proveïdor d'identitat SAML 2.0 (allotjat)" }, "metaover_group_metadata.saml20-idp-remote": { "no": "SAML 2.0 Identitetsleverand\u00f8r (ekstern)", @@ -754,7 +776,8 @@ "ro": "Furnizor de identitate SAML 2.0 (distant)", "ru": "\u041f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 SAML 2.0 (\u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435)", "eu": "SAML 2.0 Identitate hornitzailea (Urrunekoa)", - "el": "\u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 SAML 2.0 (\u0391\u03c0\u03bf\u03bc\u03b1\u03ba\u03c1\u03c5\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2)" + "el": "\u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 SAML 2.0 (\u0391\u03c0\u03bf\u03bc\u03b1\u03ba\u03c1\u03c5\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2)", + "ca": "Proveïdor d'identitat SAML 2.0 (remot)" }, "metaover_group_metadata.shib13-sp-hosted": { "no": "Shib 1.3 Tjenesteleverand\u00f8r (intern)", @@ -787,7 +810,8 @@ "ro": "Furnizor de servicii Shib 1.3 (g\u0103zduit)", "ru": "\u0421\u0435\u0440\u0432\u0438\u0441 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440 Shib 1.3 (\u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435)", "eu": "Shib 1.3 Zerbitzu hornitzailea (Anfitrioia)", - "el": "\u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd Shib 1.3 (\u03a6\u03b9\u03bb\u03bf\u03be\u03b5\u03bd\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf\u03c2)" + "el": "\u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd Shib 1.3 (\u03a6\u03b9\u03bb\u03bf\u03be\u03b5\u03bd\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf\u03c2)", + "ca": "Proveïdor de serveis Shib 1.3 (allotjat)" }, "metaover_group_metadata.shib13-sp-remote": { "no": "Shib 1.3 Tjenesteleverand\u00f8r (ekstern)", @@ -820,7 +844,8 @@ "ro": "Furnizor de servicii Shib 1.3 (distant)", "ru": "\u0421\u0435\u0440\u0432\u0438\u0441 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440 Shib 1.3 (\u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435)", "eu": "Shib 1.3 Zerbitzu hornitzailea (Urrunekoa)", - "el": "\u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd Shib 1.3 (\u0391\u03c0\u03bf\u03bc\u03b1\u03ba\u03c1\u03c5\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2)" + "el": "\u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd Shib 1.3 (\u0391\u03c0\u03bf\u03bc\u03b1\u03ba\u03c1\u03c5\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2)", + "ca": "Proveïdor de serveis Shib 1.3 (remot)" }, "metaover_group_metadata.shib13-idp-hosted": { "no": "Shib 1.3 Identitetsleverand\u00f8r (ekstern)", @@ -853,7 +878,8 @@ "ro": "Furnizor de identitate Shib 1.3 (g\u0103zduit)", "ru": "\u041f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 Shib 1.3 (\u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435)", "eu": "Shib 1.3 Identitate hornitzailea (Anfitrioia)", - "el": "\u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 Shib 1.3 (\u03a6\u03b9\u03bb\u03bf\u03be\u03b5\u03bd\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf\u03c2)" + "el": "\u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 Shib 1.3 (\u03a6\u03b9\u03bb\u03bf\u03be\u03b5\u03bd\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf\u03c2)", + "ca": "Proveïdor d'identitat Shib 1.3 (allotjat)" }, "metaover_group_metadata.shib13-idp-remote": { "no": "Shib 1.3 Identitetsleverand\u00f8r (ekstern) ", @@ -885,73 +911,8 @@ "sr": "Shib 1.3 Davalac Identiteta (udaljeni)", "ro": "Furnizor de identitate Shib 1.3 (distant)", "ru": "\u041f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 Shib 1.3 (\u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435)", - "eu": "Shib 1.3 Identitate hornitzailea (Urrunekoa)" - }, - "metaover_group_metadata.wsfed-sp-hosted": { - "no": "WS-Federation tjenesteleverand\u00f8r (intern)", - "nn": "WS-Federation Service Provider (Hosted)", - "sv": "WS-Federation Service Provider (V\u00e4rd)", - "es": "Proveedor de Servicios WS-Federation (local)", - "nl": "WS-Federation Service Provider (Hosted)", - "sl": "WS-Fedration SP (Lokalni)", - "da": "WS-Federation tjenesteudbyder (hosted)", - "hr": "WS-Federation davatelj usluge (lokalni)", - "hu": "WS-Federation alkalmaz\u00e1sszolg\u00e1ltat\u00f3 (helyi)", - "pt-br": "WS-Federation Service Provider (Local)", - "pt": "Fornecedor de servi\u00e7o (SP) WS-Federation (Local)", - "pl": "WS-Federation Dostawca Serwisu (Lokalny)", - "cs": "WS-Federation Service Provider (Hosted - lok\u00e1ln\u00ed)", - "tr": "WS-Federasyon Servis Sa\u011flay\u0131c\u0131 (Bu sistemde sunulan)", - "de": "WS-Federation Service Provider (gehosted)", - "fr": "Fournisseur de service WS-federation local", - "it": "WS-Federation Service Provider (Hosted)", - "ja": "WS-Federation\u30b5\u30fc\u30d3\u30b9\u30d7\u30ed\u30d0\u30a4\u30c0(\u30db\u30b9\u30c8)", - "lt": "WS-Federacijos Paslaugos teik\u0117jas (vietinis)", - "zh-tw": "WS-Federation \u670d\u52d9\u63d0\u4f9b\u8005 (\u672c\u5730)", - "et": "WS-Federation teenusepakkuja (hostitud)", - "he": "\u05e1\u05e4\u05e7 \u05e9\u05d9\u05e8\u05d5\u05ea \u05de\u05e7\u05d5\u05de\u05d9 \u05de\u05e1\u05d5\u05d2 \u05d0\u05d9\u05d7\u05d5\u05d3-WS", - "zh": "WS-Federation \u670d\u52a1\u63d0\u4f9b\u8005\uff08\u672c\u5730\uff09", - "ar": "\u0645\u0642\u062f\u0645 \u062e\u062f\u0645\u0629 WS-\u0627\u0644\u0641\u062f\u0631\u0627\u0644\u064a\u0629 \u0627\u0644\u0645\u0633\u062a\u0636\u0627\u0641 ", - "lv": "WS-Federation servisa pieg\u0101d\u0101t\u0101js (host\u0113ts)", - "id": "Servide Provider WS-Federation (Hosted)", - "sr": "WS-Federation Davalac Servisa (lokalni)", - "ro": "Furnizor de servicii federa\u021bie WS (g\u0103zduit)", - "ru": "\u0421\u0435\u0440\u0432\u0438\u0441 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440 WS-Federation (\u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435)", - "eu": "WS-Federation Zerbitzu hornitzailea (Anfitrioia)", - "el": "\u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd WS-Federation (\u03a6\u03b9\u03bb\u03bf\u03be\u03b5\u03bd\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf\u03c2)" - }, - "metaover_group_metadata.wsfed-idp-remote": { - "no": "WS-Federation identitetsleverand\u00f8r (ekstern)", - "nn": "WS-Federation Identity Provider (Remote)", - "sv": "WS-Federation Service Provider (Fj\u00e4rr)", - "es": "Proveedor de Identidad WS-Federation (remoto)", - "nl": "WS-Federation Identity Provider (Remote)", - "sl": "WS-Federation Idp (Oddaljni)", - "da": "WS-Federation identitetsudbyder (remote)", - "hr": "WS-Federation autentifikacijski servis (udaljeni)", - "hu": "WS-Federation alkalmaz\u00e1sszolg\u00e1ltat\u00f3 (t\u00e1voli)", - "pt-br": "WS-Federation Identity Provider (Remoto)", - "pt": "Fornecedor de identidade (IdP) WS-Federation (Remoto)", - "pl": "WS-Federation Dostawca To\u017csamo\u015bci (Zdalny)", - "cs": "WS-Federation Identity Provider (Remote - vzd\u00e1len\u00fd)", - "tr": "WS-Federasyon Kimlik Sa\u011flay\u0131c\u0131 (Uzak sistemde sunulan)", - "de": "WS-Federation Identity Provider (entfernt)", - "fr": "Fournisseur d'identit\u00e9 Shib 1.3 distant", - "it": "WS-Federation Identity Provider (Remoto)", - "ja": "WS-Federation\u30a2\u30a4\u30c7\u30f3\u30c6\u30a3\u30c6\u30a3\u30d7\u30ed\u30d0\u30a4\u30c0(\u30ea\u30e2\u30fc\u30c8)", - "lt": "WS-Federacijos Paslaugos teik\u0117jas (nutol\u0119s)", - "zh-tw": "WS-Federation \u9a57\u8b49\u63d0\u4f9b\u8005 (\u9060\u7aef)", - "et": "WS-Federation identiteedipakkuja (kaug)", - "he": "\u05e1\u05e4\u05e7 \u05d6\u05d4\u05d5\u05ea \u05de\u05e8\u05d5\u05d7\u05e7 \u05de\u05e1\u05d5\u05d2 \u05d0\u05d9\u05d7\u05d5\u05d3-WS", - "zh": "WS-Federation \u8eab\u4efd\u63d0\u4f9b\u8005\uff08\u8fdc\u7a0b\uff09", - "ar": "\u0645\u0642\u062f\u0645 \u062e\u062f\u0645\u0629 WS-\u0627\u0644\u0641\u062f\u0631\u0627\u0644\u064a\u0629 \u0627\u0644\u0628\u0639\u064a\u062f", - "lv": "WS-Federation servisa pieg\u0101d\u0101t\u0101js (att\u0101lin\u0101ts)", - "id": "Identity Provider WS-Federation (Remote)", - "sr": "WS-Federation Davalac Servisa (udaljeni)", - "ro": "Furnizor de servicii federa\u021bie WS (distant)", - "ru": "\u041f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 WS-Federation (\u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435)", - "eu": "WS-Federation Identitate hornitzailea (Urrunekoa)", - "el": "\u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 WS-Federation (\u0391\u03c0\u03bf\u03bc\u03b1\u03ba\u03c1\u03c5\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2)" + "eu": "Shib 1.3 Identitate hornitzailea (Urrunekoa)", + "ca": "Proveïdor d'identitat Shib 1.3 (remot)" }, "metaconv_title": { "no": "Metadata parser", @@ -984,11 +945,13 @@ "ro": "Analizor de metadate", "ru": "\u0421\u0440\u0435\u0434\u0441\u0442\u0432\u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445", "eu": "Metadatuak aztertu", - "el": "\u0391\u03bd\u03b1\u03bb\u03c5\u03c4\u03ae\u03c2 (parser) \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd" + "el": "\u0391\u03bd\u03b1\u03bb\u03c5\u03c4\u03ae\u03c2 (parser) \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd", + "ca": "Analitzador de metadades" }, "metaconv_selectfile": { "zh-tw": "\u6216\u9078\u64c7\u4e00\u500b\u6a94\u6848\uff1a", - "el": "\u03ae \u03b5\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf" + "el": "\u03ae \u03b5\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf", + "ca": "o seleccioneu un fitxer:" }, "metaconv_xmlmetadata": { "no": "XML metadata", @@ -1021,7 +984,8 @@ "ro": "Metadate XML", "ru": "XML \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435", "eu": "XML metadatuak", - "el": "\u0391\u03bd\u03b1\u03bb\u03c5\u03c4\u03ae\u03c2 \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd XML" + "el": "\u0391\u03bd\u03b1\u03bb\u03c5\u03c4\u03ae\u03c2 \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd XML", + "ca": "Metadades XML" }, "metaconv_parse": { "no": "Pars", @@ -1054,7 +1018,8 @@ "ro": "Analizeaz\u0103", "ru": "\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437", "eu": "Aztertu", - "el": "\u0391\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7" + "el": "\u0391\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7", + "ca": "Analitzar" }, "metaconv_converted": { "no": "Konvertert metadata", @@ -1087,7 +1052,8 @@ "ro": "Metadate convertite", "ru": "\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435", "eu": "Bihurtutako metadatuak", - "el": "\u039c\u03b5\u03c4\u03b1\u03c4\u03c1\u03b1\u03c0\u03ad\u03bd\u03c4\u03b1 \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1" + "el": "\u039c\u03b5\u03c4\u03b1\u03c4\u03c1\u03b1\u03c0\u03ad\u03bd\u03c4\u03b1 \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1", + "ca": "Metadades convertides" }, "metadata_saml20-sp": { "no": "SAML 2.0 SP metadata", @@ -1119,7 +1085,8 @@ "sr": "SAML 2.0 SP metapodaci", "ro": "Metadate furnizor de servicii (SP) SAML 2.0", "ru": "\u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 SAML 2.0 SP", - "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd SAML 2.0" + "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd SAML 2.0", + "ca": "Metadades SAML 2.0 SP" }, "metadata_saml20-idp": { "no": "SAML 2.0 IdP metadata", @@ -1152,7 +1119,8 @@ "ro": "Metadate furnizor de identitate (IdP) SAML 2.0", "ru": "\u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 SAML 2.0 IdP", "eu": "SAML 2.0 IdP Metadatuak ", - "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 SAML 2.0" + "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 SAML 2.0", + "ca": "Metadades SAML 2.0 IdP" }, "metadata_shib13-sp": { "no": "Shib 1.3 SP metadata", @@ -1185,7 +1153,8 @@ "ro": "Metadate furnizor de servicii (SP) Shib 1.3", "ru": "\u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 Shib 1.3 SP", "eu": "Shib 1.3 SP Metadatuak ", - "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd Shib 1.3" + "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd Shib 1.3", + "ca": "Metadades Shib 1.3 SP" }, "metadata_shib13-idp": { "no": "Shib 1.3 IdP metadata", @@ -1218,7 +1187,8 @@ "ro": "Metadate furnizor de identitate (IdP) Shib 1.3", "ru": "\u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 Shib 1.3 IdP", "eu": "Shib 1.3 IdP Metadatuak ", - "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 Shib 1.3" + "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 Shib 1.3", + "ca": "Metadades Shib 1.3 IdP" }, "metadata_intro": { "no": "Her er metadata som SimpleSAMLphp har generert for deg. Du m\u00e5 utveksle metadata med de partene du stoler p\u00e5 for \u00e5 sette opp en f\u00f8derasjon.", @@ -1251,7 +1221,8 @@ "ro": "Acestea sunt metadate generate de SimpleSAMLphp. Metadatele pot fi trimise c\u0103tre parteneri de \u00eencredere pentru a configura o federa\u021bie de \u00eencredere.", "ru": "\u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435, \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0432\u0430\u0441 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e SimpleSAMLphp. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0441 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u043c \u043f\u0430\u0440\u0442\u043d\u0435\u0440\u0430\u043c \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0435\u0434\u0435\u0440\u0430\u0446\u0438\u0438.", "eu": "Hona hemen SimpleSAMLphp-ak zuretzat sortu dituen metadatuak. Metadatuen dokumentu hau konfidantzazko zure kideei bidal diezaiekezu federazio bat konfiguratzeko.", - "el": "\u0391\u03c5\u03c4\u03ac \u03b5\u03af\u03bd\u03b1\u03b9 \u03c4\u03b1 \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03c0\u03bf\u03c5 \u03ad\u03c7\u03bf\u03c5\u03bd \u03c0\u03b1\u03c1\u03b1\u03c7\u03b8\u03b5\u03af \u03b1\u03c0\u03cc \u03c4\u03bf \u0053\u0069\u006d\u0070\u006c\u0065\u0053\u0041\u004d\u004c\u0070\u0068\u0070 \u03b3\u03b9\u03b1 \u03b5\u03c3\u03ac\u03c2. \u039c\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03c4\u03b1 \u03c3\u03c4\u03b5\u03af\u03bb\u03b5\u03c4\u03b5 \u03c3\u03b5 \u03bf\u03bd\u03c4\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2 \u03c0\u03bf\u03c5 \u03b5\u03bc\u03c0\u03b9\u03c3\u03c4\u03b5\u03cd\u03b5\u03c3\u03c4\u03b5 \u03c0\u03c1\u03bf\u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5 \u03bd\u03b1 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03ae\u03c3\u03b5\u03c4\u03b5 \u03bf\u03bc\u03bf\u03c3\u03c0\u03bf\u03bd\u03b4\u03af\u03b1." + "el": "\u0391\u03c5\u03c4\u03ac \u03b5\u03af\u03bd\u03b1\u03b9 \u03c4\u03b1 \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03c0\u03bf\u03c5 \u03ad\u03c7\u03bf\u03c5\u03bd \u03c0\u03b1\u03c1\u03b1\u03c7\u03b8\u03b5\u03af \u03b1\u03c0\u03cc \u03c4\u03bf \u0053\u0069\u006d\u0070\u006c\u0065\u0053\u0041\u004d\u004c\u0070\u0068\u0070 \u03b3\u03b9\u03b1 \u03b5\u03c3\u03ac\u03c2. \u039c\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03c4\u03b1 \u03c3\u03c4\u03b5\u03af\u03bb\u03b5\u03c4\u03b5 \u03c3\u03b5 \u03bf\u03bd\u03c4\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2 \u03c0\u03bf\u03c5 \u03b5\u03bc\u03c0\u03b9\u03c3\u03c4\u03b5\u03cd\u03b5\u03c3\u03c4\u03b5 \u03c0\u03c1\u03bf\u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5 \u03bd\u03b1 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03ae\u03c3\u03b5\u03c4\u03b5 \u03bf\u03bc\u03bf\u03c3\u03c0\u03bf\u03bd\u03b4\u03af\u03b1.", + "ca": "Aqu\u00ed hi ha les metadades que SimpleSAMLphp ha generat per a vost\u00e8. Podeu enviar aquest document de metadades a clients/proveïdors de confian\u00e7a per configurar una federaci\u00f3 de confian\u00e7a." }, "metadata_xmlurl": { "no": "Du kan n\u00e5 <a href=\"%METAURL%\">metadata i XML-format p\u00e5 en dedikert URL<\/a>:", @@ -1284,7 +1255,8 @@ "ro": "Pute\u021bi accesa <a href=\"%METAURL%\">metadatele xml de la un URL dedicat<\/a>:", "ru": "\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435<a href=\"%METAURL%\"> \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c xml \u0444\u0430\u0439\u043b \u0441 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 URL<\/a>:", "eu": "<a href=\"%METAURL%\">xml metadatuekin URL bat<\/a> eskura dezakezu:", - "el": "\u0394\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 <a href=\"%METAURL%\">\u03bb\u03ae\u03c8\u03b7\u03c2<\/a> \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd:" + "el": "\u0394\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 <a href=\"%METAURL%\">\u03bb\u03ae\u03c8\u03b7\u03c2<\/a> \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd:", + "ca": "Podeu <a href=\"%METAURL%\"> obtenir una URL amb les metadades en XML <\/a>:" }, "metadata_simplesamlformat": { "no": "I SimpleSAMLphp format - bruk denne dersom du benytter SimpleSAMLphp i den andre enden:", @@ -1316,7 +1288,8 @@ "ro": "\u00cen format fi\u0219ier simplu SimpleSAMLphp - utiliza\u021bi aceast\u0103 variant\u0103 dac\u0103 \u00een cap\u0103tul cel\u0103lalt folosi\u021bi o entitate SimpleSAMLphp:", "ru": "\u0424\u043e\u0440\u043c\u0430\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e SimpleSAMLphp \u0444\u0430\u0439\u043b\u0430", "eu": "SimpleSAMLphp formatuko fitxategi batean - beste muturrean SimpleSAMLphp entitate bat erabiltzen ariz gero, erabil ezazu aukera hau:", - "el": "\u03a3\u03b5 \u03bc\u03bf\u03c1\u03c6\u03ae \u03b1\u03c0\u03bb\u03bf\u03cd \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 SimpleSAMLphp - \u03bc\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c4\u03b5\u03af\u03bb\u03b5\u03c4\u03b5 \u03c4\u03b1 \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03ae \u03c4\u03b7 \u03bc\u03bf\u03c1\u03c6\u03ae \u03b1\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9 \u03bf\u03bd\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1 \u0053\u0069\u006d\u0070\u006c\u0065\u0053\u0041\u004d\u004c\u0070\u0068\u0070 \u03c3\u03c4\u03b7\u03bd \u03ac\u03bb\u03bb\u03b7 \u03c0\u03bb\u03b5\u03c5\u03c1\u03ac:" + "el": "\u03a3\u03b5 \u03bc\u03bf\u03c1\u03c6\u03ae \u03b1\u03c0\u03bb\u03bf\u03cd \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 SimpleSAMLphp - \u03bc\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c4\u03b5\u03af\u03bb\u03b5\u03c4\u03b5 \u03c4\u03b1 \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03ae \u03c4\u03b7 \u03bc\u03bf\u03c1\u03c6\u03ae \u03b1\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9 \u03bf\u03bd\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1 \u0053\u0069\u006d\u0070\u006c\u0065\u0053\u0041\u004d\u004c\u0070\u0068\u0070 \u03c3\u03c4\u03b7\u03bd \u03ac\u03bb\u03bb\u03b7 \u03c0\u03bb\u03b5\u03c5\u03c1\u03ac:", + "ca": "En un fitxer de format SimpleSAMLphp: utilitzeu aquesta opci\u00f3 si utilitzeu una entitat SimpleSAMLphp en l'altre extrem:" }, "debug_sending_message_title": { "no": "Sender melding", @@ -1349,7 +1322,8 @@ "sr": "\u0160aljem poruku", "ro": "Se trimite mesajul", "ru": "\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f", - "el": "\u0391\u03c0\u03bf\u03c3\u03c4\u03bf\u03bb\u03ae \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5" + "el": "\u0391\u03c0\u03bf\u03c3\u03c4\u03bf\u03bb\u03ae \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5", + "ca": "S'est\u00e0 enviant el missatge" }, "debug_sending_message_text_button": { "no": "Du er i ferd med \u00e5 sende en melding. Trykk knappen \u00abSend melding\u00bb for \u00e5 fortsette.", @@ -1381,7 +1355,8 @@ "sr": "Kliknite na dugme \"Po\u0161alji poruku\" da biste poslali poruku.", "ro": "Mesajul este preg\u0103tit pentru a fi trimis. Ap\u0103sa\u021bi butonul de trimitere pentru a continua.", "ru": "\u0412\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0435\u0441\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435. \u041a\u043b\u0438\u043a\u043d\u0438\u0442\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u0443 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u044f.", - "el": "\u03a0\u03c1\u03cc\u03ba\u03b5\u03b9\u03c4\u03b1\u03b9 \u03bd\u03b1 \u03c3\u03c4\u03b5\u03af\u03bb\u03b5\u03c4\u03b5 \u03ad\u03bd\u03b1 \u03bc\u03ae\u03bd\u03c5\u03bc\u03b1. \u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u00ab\u03a5\u03c0\u03bf\u03b2\u03bf\u03bb\u03ae \u03bc\u03b7\u03bd\u03cd\u03bc\u03b1\u03c4\u03bf\u03c2\u00bb \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b5\u03c7\u03af\u03c3\u03b5\u03c4\u03b5." + "el": "\u03a0\u03c1\u03cc\u03ba\u03b5\u03b9\u03c4\u03b1\u03b9 \u03bd\u03b1 \u03c3\u03c4\u03b5\u03af\u03bb\u03b5\u03c4\u03b5 \u03ad\u03bd\u03b1 \u03bc\u03ae\u03bd\u03c5\u03bc\u03b1. \u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u00ab\u03a5\u03c0\u03bf\u03b2\u03bf\u03bb\u03ae \u03bc\u03b7\u03bd\u03cd\u03bc\u03b1\u03c4\u03bf\u03c2\u00bb \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b5\u03c7\u03af\u03c3\u03b5\u03c4\u03b5.", + "ca": "Esteu a punt d'enviar un missatge. Premeu el bot\u00f3 d'enviar el missatge per continuar." }, "debug_disable_debug_mode": { "no": "Do kan skru av debug modus i den globale SimpleSAMLphp konfigurasjonsfila <tt>config\/config.php<\/tt>.", @@ -1414,7 +1389,8 @@ "ro": "Se poate opri modul de depanare \u00een fi\u0219ierul de configurare SimpleSAMLphp <tt>config\/config.php<\/tt>.", "ru": "\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 global SimpleSAMLphp -<tt>config\/config.php<\/tt>. ", "eu": "Arazketa modua desaktibatu daiteke SimpleSAMLphp <tt>config\/config.php<\/tt> konfigurazio orokorreko fitxategian.", - "el": "\u039c\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03b1\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b7 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03b5\u03bd\u03c4\u03bf\u03c0\u03b9\u03c3\u03bc\u03bf\u03cd \u03c3\u03c6\u03b1\u03bb\u03bc\u03ac\u03c4\u03c9\u03bd (debug) \u03c3\u03c4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd \u03c4\u03bf\u03c5 SimpleSAMLphp <tt>config\/config.php<\/tt>." + "el": "\u039c\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03b1\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b7 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03b5\u03bd\u03c4\u03bf\u03c0\u03b9\u03c3\u03bc\u03bf\u03cd \u03c3\u03c6\u03b1\u03bb\u03bc\u03ac\u03c4\u03c9\u03bd (debug) \u03c3\u03c4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd \u03c4\u03bf\u03c5 SimpleSAMLphp <tt>config\/config.php<\/tt>.", + "ca": "Podeu desactivar el mode de depuraci\u00f3 al fitxer de configuraci\u00f3 global de SimpleSAMLphp <tt>config\/config.php<\/tt>." }, "metaover_group_metadata.saml20-sp-hosted": { "no": "SAML 2.0 tjenesteleverand\u00f8r (intern)", @@ -1447,7 +1423,8 @@ "ro": "Furnizor de servicii SAML 2.0 (g\u0103zduit)", "ru": "\u0421\u0435\u0440\u0432\u0438\u0441 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440 SAML 2.0 (\u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435)", "eu": "SAML 2.0 Zerbitzu hornitzailea (Anfitrioia)", - "el": "\u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd SAML 2.0 (\u03a6\u03b9\u03bb\u03bf\u03be\u03b5\u03bd\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf\u03c2)" + "el": "\u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd SAML 2.0 (\u03a6\u03b9\u03bb\u03bf\u03be\u03b5\u03bd\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf\u03c2)", + "ca": "Proveïdor de serveis SAML 2.0 (allotjat)" }, "cfg_check_notices": { "no": "Notiser", @@ -1480,7 +1457,8 @@ "sr": "Napomene", "ro": "Note\/Observa\u021bii", "eu": "Oharrak", - "el": "\u0395\u03b9\u03b4\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03b9\u03c2" + "el": "\u0395\u03b9\u03b4\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03b9\u03c2", + "ca": "Avisos" }, "metadata_cert": { "nl": "Certificaten", @@ -1508,7 +1486,8 @@ "no": "Sertifikater", "eu": "Ziurtagiriak", "zh-tw": "\u6191\u8b49", - "el": "\u03a0\u03b9\u03c3\u03c4\u03bf\u03c0\u03bf\u03b9\u03b7\u03c4\u03b9\u03ba\u03ac" + "el": "\u03a0\u03b9\u03c3\u03c4\u03bf\u03c0\u03bf\u03b9\u03b7\u03c4\u03b9\u03ba\u03ac", + "ca": "Certificats" }, "metadata_cert_intro": { "nl": "Download de X509-certificaten in PEM-formaat.", @@ -1536,7 +1515,8 @@ "no": "Last ned X509-sertifikatene som PEM-filer.", "eu": "X509 ziurtagiriak PEM formatuan deskargatu.", "zh-tw": "\u4e0b\u8f09 PEM \u683c\u5f0f\u4e4b X.509 \u6191\u8b49\u6a94\u6848", - "el": "\u039b\u03ae\u03c8\u03b7 \u03c0\u03b9\u03c3\u03c4\u03bf\u03c0\u03bf\u03b9\u03b7\u03c4\u03b9\u03ba\u03ce\u03bd X.509 \u03c3\u03b5 \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 PEM." + "el": "\u039b\u03ae\u03c8\u03b7 \u03c0\u03b9\u03c3\u03c4\u03bf\u03c0\u03bf\u03b9\u03b7\u03c4\u03b9\u03ba\u03ce\u03bd X.509 \u03c3\u03b5 \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 PEM.", + "ca": "Baixeu els certificats X509 en format PEM." }, "metaover_group_metadata.adfs-sp-remote": { "es": "Proveedor de Servicio ADFS (remoto)", @@ -1544,7 +1524,8 @@ "zh-tw": "ADFS \u670d\u52d9\u63d0\u4f9b\u8005 (\u9060\u7aef)", "nl": "ADFS Service Provider (Remote)", "da": "ADFS tjenesteudbyder (remote)", - "el": "\u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd ADFS (\u0391\u03c0\u03bf\u03bc\u03b1\u03ba\u03c1\u03c5\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2)" + "el": "\u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd ADFS (\u0391\u03c0\u03bf\u03bc\u03b1\u03ba\u03c1\u03c5\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2)", + "ca": "Proveïdor de serveis ADFS (remot)" }, "metaover_group_metadata.adfs-idp-hosted": { "es": "Proveedor de Identidad ADFS (local)", @@ -1552,7 +1533,8 @@ "zh-tw": "ADFS \u9a57\u8b49\u63d0\u4f9b\u8005 (\u672c\u5730)", "nl": "ADFS Identity Provider (Hosted)", "da": "ADFS identitetsudbyder (hosted)", - "el": "\u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 ADFS (\u03a6\u03b9\u03bb\u03bf\u03be\u03b5\u03bd\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf\u03c2)" + "el": "\u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 ADFS (\u03a6\u03b9\u03bb\u03bf\u03be\u03b5\u03bd\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf\u03c2)", + "ca": "Proveïdor de serveis ADFS (allotjat)" }, "metadata_adfs-sp": { "es": "Metadatos SP ADFS", @@ -1560,7 +1542,8 @@ "zh-tw": "ADFS \u670d\u52d9\u63d0\u4f9b\u8005 Metadata", "nl": "ADFS SP Metadata", "da": "ADFS tjenesteudbyder metadata", - "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd ADFS" + "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd ADFS", + "ca": "Metadades ADFS SP" }, "metadata_adfs-idp": { "es": "Metadatos IdP ADFS", @@ -1568,6 +1551,7 @@ "zh-tw": "ADFS \u9a57\u8b49\u63d0\u4f9b\u8005 Metadata", "nl": "ADFS IdP Metadata", "da": "ADFS identitetsudbyder metadata", - "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 ADFS" + "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 ADFS", + "ca": "Metadades ADFS IdP" } } diff --git a/vendor/simplesamlphp/simplesamlphp/dictionaries/attributes.translation.json b/vendor/simplesamlphp/simplesamlphp/dictionaries/attributes.translation.json index e0f652fa742e571245718ae422df41fc61b670e7..13db03b4def414e1b8e49aa45ed78c00e2e20be1 100644 --- a/vendor/simplesamlphp/simplesamlphp/dictionaries/attributes.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/dictionaries/attributes.translation.json @@ -33,11 +33,11 @@ "lv": "Pieder\u012bba", "ro": "Afiliere", "eu": "Afiliazioa", - "ca": "Afiliaci\u00f3", "af": "Affiliasie", "el": "\u0399\u03b4\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1\u002f\u03b5\u03c2", "xh": "Indima", - "zu": "Indima" + "zu": "Indima", + "ca": "Afiliació" }, "attribute_title": { "no": "Tittel", @@ -72,11 +72,11 @@ "id": "Gelar", "lv": "Amats", "ro": "Titlu\/titulatur\u0103", - "ca": "Tractament", "af": "Titel", "el": "\u03a4\u03af\u03c4\u03bb\u03bf\u03c2", "xh": "Isibizo", - "zu": "Isiqu" + "zu": "Isiqu", + "ca": "Tractament" }, "attribute_uid": { "no": "Bruker-ID", @@ -112,11 +112,11 @@ "id": "User ID", "lv": "Lietot\u0101ja ID", "ro": "ID utilizator", - "ca": "Identificador d'usuari", "af": "Gebruikers ID", "el": "\u0391\u03bd\u03b1\u03b3\u03bd\u03c9\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03cc \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7", "xh": "I-ID yomsebenzisi", - "zu": "I-ID yomsebenzisi" + "zu": "I-ID yomsebenzisi", + "ca": "Identificador d'usuari" }, "attribute_sn": { "no": "Etternavn", @@ -152,11 +152,11 @@ "id": "Nama Keluaga", "lv": "Uzv\u0101rds", "ro": "Nume de familie", - "ca": "Cognoms", "af": "Van", "el": "\u0395\u03c0\u03ce\u03bd\u03c5\u03bc\u03bf", "zu": "Isibongo", - "xh": "Ifani" + "xh": "Ifani", + "ca": "Cognoms" }, "attribute_givenname": { "no": "Fornavn", @@ -192,11 +192,11 @@ "lv": "V\u0101rds", "ro": "Prenume", "eu": "Izena", - "ca": "Nom", "af": "Voornaam", "el": "\u038c\u03bd\u03bf\u03bc\u03b1", "xh": "Igama elinikiweyo", - "zu": "Igama lokuzalwa" + "zu": "Igama lokuzalwa", + "ca": "Nom" }, "attribute_cn": { "no": "Fullt navn", @@ -232,11 +232,11 @@ "lv": "V\u0101rds", "ro": "Nume comun", "eu": "Izen arrunta (CN)", - "ca": "Nom com\u00fa (CN)", "af": "Algemene naam", "el": "\u039a\u03bf\u03b9\u03bd\u03cc \u03cc\u03bd\u03bf\u03bc\u03b1 (CN)", "zu": "Igama elivamile", - "xh": "Igama eliqhelekileyo" + "xh": "Igama eliqhelekileyo", + "ca": "Nom comú (CN)" }, "attribute_mail": { "no": "E-post", @@ -272,11 +272,11 @@ "id": "Mail", "lv": "Pasts", "ro": "Mail", - "ca": "Correu electr\u00f2nic", "af": "E-pos", "el": "Email", "zu": "Imeyili", - "xh": "Iposi" + "xh": "Iposi", + "ca": "Adreça de correu electrònic" }, "attribute_mobile": { "no": "Mobiltelefon", @@ -312,11 +312,11 @@ "id": "Handphone", "lv": "Mobilais telefons", "ro": "Mobil", - "ca": "Tel\u00e8fon m\u00f2bil", "af": "Selfoon", "el": "\u039a\u03b9\u03bd\u03b7\u03c4\u03cc \u03c4\u03b7\u03bb\u03ad\u03c6\u03c9\u03bd\u03bf", "zu": "Imobhayili", - "xh": "Imobhayili" + "xh": "Imobhayili", + "ca": "Telèfon mòbil" }, "attribute_preferredlanguage": { "no": "Foretrukket spr\u00e5k", @@ -352,11 +352,11 @@ "lv": "V\u0113lam\u0101 valoda", "ro": "Limba preferat\u0103", "eu": "Hizkuntza lehenetsia", - "ca": "Idioma preferit", "af": "Taal voorkeur", "el": "\u03a0\u03c1\u03bf\u03c4\u03b9\u03bc\u03ce\u03bc\u03b5\u03bd\u03b7 \u03b3\u03bb\u03ce\u03c3\u03c3\u03b1", "xh": "Ulwimi olukhethayo", - "zu": "Ulimi oluncanyelwayo" + "zu": "Ulimi oluncanyelwayo", + "ca": "Idioma preferit" }, "attribute_noredupersonnin": { "no": "F\u00f8dselsnummer", @@ -392,11 +392,11 @@ "lv": "Publisko autorit\u0101\u0161u pie\u0161\u0137irtais identit\u0101tes numurs", "ro": "Num\u0103r de identitate atribuit de autorit\u0103\u021bi publice", "eu": "Gizarte-segurantzako zenbakia", - "ca": "N\u00famero de la Seguretat Social", "af": "Identiteitsnommer", "el": "\u0391\u03c1\u03b9\u03b8\u03bc\u03cc\u03c2 \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 \u03b1\u03c0\u03cc \u03b4\u03b7\u03bc\u03cc\u03c3\u03b9\u03b1 \u03b1\u03c1\u03c7\u03ae", "xh": "Inombolo yesazisi eyabelwe ngamagunya oluntu", - "zu": "Inombolo kamazisi eyabelwe amagunya omphakathi" + "zu": "Inombolo kamazisi eyabelwe amagunya omphakathi", + "ca": "Número de la Seguretat Social" }, "attribute_schachomeorganization": { "no": "Unik ID for organisasjon", @@ -431,11 +431,11 @@ "sr": "Domen mati\u010dne institucije", "ro": "Njumele de domeniu pentru institu\u021bia de origine", "eu": "Jatorrizko erakundearen domeinu izena", - "ca": "Identificador \u00fanic de l'organitzaci\u00f3 d'origen", "af": "Tuis Organisasie domein naam", "el": "\u038c\u03bd\u03bf\u03bc\u03b1 \u03c0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ae\u03c2 (domain) \u03bf\u03b9\u03ba\u03b5\u03af\u03bf\u03c5 \u03bf\u03c1\u03b3\u03b1\u03bd\u03b9\u03c3\u03bc\u03bf\u03cd", "zu": "Igama lesizinda senhlangano yasekhaya", - "xh": "Igama ledomeyini yombutho wekhaya" + "xh": "Igama ledomeyini yombutho wekhaya", + "ca": "Identificador únic de l’organització principal" }, "attribute_organisationname": { "no": "Navn p\u00e5 organisasjon", @@ -471,11 +471,11 @@ "id": "Organization name", "lv": "Organiz\u0101cijas nosaukums", "ro": "Denumirea institu\u021biei", - "ca": "Nom de l'organitzaci\u00f3", "af": "Organisasie naam", "el": "\u038c\u03bd\u03bf\u03bc\u03b1 \u03bf\u03c1\u03b3\u03b1\u03bd\u03b9\u03c3\u03bc\u03bf\u03cd", "xh": "Igama lombutho", - "zu": "Igama lenhlangano" + "zu": "Igama lenhlangano", + "ca": "Nom de l'organització" }, "attribute_edupersonentitlement": { "no": "Rettighet", @@ -511,11 +511,11 @@ "id": "Hak mengenai layanan ini", "ro": "Drepturi relativ la acest serviciu", "eu": "Zerbitzuari dagokion eskubidea", - "ca": "Dret relatiu al servei", "af": "Reg mbt. die diens", "el": "\u0394\u03b9\u03ba\u03b1\u03b9\u03ce\u03bc\u03b1\u03c4\u03b1 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2 \u03c3\u03c4\u03b7\u03bd \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1", "zu": "Ilungelo eliphathelene nesevisi", - "xh": "Ilungelo ngokuphathelele inkonzo" + "xh": "Ilungelo ngokuphathelele inkonzo", + "ca": "Drets relatiu al servei" }, "attribute_edupersonscopedaffiliation": { "no": "Gruppetilh\u00f8righet", @@ -551,11 +551,11 @@ "id": "Afiliasi di organisasi asal", "ro": "Afiliere \u00een cadrul institu\u021biei de origine", "eu": "Afiliazioa jatorrizko erakundean", - "ca": "Afiliaci\u00f3 a l'organitzaci\u00f3 d'origen", "af": "Affiliasie by Tuis organisasie", "el": "\u0399\u03b4\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1 \u03b1\u03bd\u03ac \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03ae \u03c0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ae (administrative domain)", "zu": "Indima enhlanganweni yasekhaya", - "xh": "Indima kumbutho wasekhaya" + "xh": "Indima kumbutho wasekhaya", + "ca": "Afiliació a l’organització principal" }, "attribute_edupersontargetedid": { "no": "Persistent anonym ID", @@ -590,14 +590,15 @@ "id": "Persistent pseudonymous ID", "ro": "ID pseudonim persistent", "eu": "Goitizen ID etengabea", - "ca": "Identificador pseud\u00f2nim persistent", "af": "Aanhoudende anonieme ID", "el": "\u0391\u03b4\u03b9\u03b1\u03c6\u03b1\u03bd\u03ad\u03c2 \u03b1\u03bd\u03b1\u03b3\u03bd\u03c9\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03cc \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03bc\u03b1\u03ba\u03c1\u03ac\u03c2 \u03b4\u03b9\u03ac\u03c1\u03ba\u03b5\u03b9\u03b1\u03c2", "zu": "Isibizo esingashintshi esiqondene nesevisi", - "xh": "Igama elingelolakhe elingatshintshiyo elingqale kwinkonzo" + "xh": "Igama elingelolakhe elingatshintshiyo elingqale kwinkonzo", + "ca": "Identificació anònima persistent" }, "attribute_pairwise_id": { - "de": "Service-spezifische pseudonyme ID bei der Heimorganisation" + "de": "Service-spezifische pseudonyme ID bei der Heimorganisation", + "ca": "Identificació aònima específica del servei a l'organització principal" }, "attribute_edupersonprincipalname": { "no": "Personlig ID hos organisasjonen", @@ -633,27 +634,30 @@ "id": "Nama kepala pada organisasi asal", "ro": "Numele de identificare a persoanei la institu\u021bia de origine (de forma nume_utilizator@domeniu.ro)", "eu": "Jatorrizko erakundean pertsonak duen izen nagusia", - "ca": "Identificador \u00fanic de la persona a la seva organitzaci\u00f3 d'origen", "af": "Persoonlike ID by tuis organisasie", "el": "\u0391\u03bd\u03b1\u03b3\u03bd\u03c9\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03cc \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03c3\u03c4\u03bf\u03bd \u03bf\u03b9\u03ba\u03b5\u03af\u03bf \u03bf\u03c1\u03b3\u03b1\u03bd\u03b9\u03c3\u03bc\u03cc", "xh": "Igama elingundoqo lomntu kwinkampani yekhaya", - "zu": "Igama eliyinhloko lomuntu enhlanganweni yasekhaya" + "zu": "Igama eliyinhloko lomuntu enhlanganweni yasekhaya", + "ca": "Identificador \u00fanic de la persona a l'organitzaci\u00f3 principal" }, "attribute_edupersonuniqueid": { "zh-tw": "\u500b\u4eba\u7121\u6cd5\u91cd\u65b0\u8a2d\u7f6e\uff0c\u65bc\u6240\u5c6c\u7d44\u7e54\u7684\u6c38\u4e45\u533f\u540d ID", "el": "\u039c\u03cc\u03bd\u03b9\u03bc\u03bf, \u03b1\u03b4\u03b9\u03b1\u03c6\u03b1\u03bd\u03ad\u03c2 \u03b1\u03bd\u03b1\u03b3\u03bd\u03c9\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03cc \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03c3\u03c4\u03bf\u03bd \u03bf\u03b9\u03ba\u03b5\u03af\u03bf \u03bf\u03c1\u03b3\u03b1\u03bd\u03b9\u03c3\u03bc\u03cc", "zu": "I-ID yesibizo ephikelelayo, engakwazi ukwabelwa kabusha yomuntu yenhlangano yasekhaya", - "xh": "I-ID yomntu enganakuphinda yabelwe, ebhalwe ngegama lobuxoki eqhubekayo kwinkampani yekhaya" + "xh": "I-ID yomntu enganakuphinda yabelwe, ebhalwe ngegama lobuxoki eqhubekayo kwinkampani yekhaya", + "ca": "Identificació anònima persistent i no reasignable de la persona a l'organització principal" }, "attribute_subject_id": { - "de": "Pseudonyme ID bei der Heimorganisation" + "de": "Pseudonyme ID bei der Heimorganisation", + "ca": "Identificació pseudònima en l'organització principal" }, "attribute_edupersonorcid": { "zh-tw": "ORCID \u7814\u7a76\u8005\u8b58\u5225\u78bc", "el": "\u0391\u03bd\u03b1\u03b3\u03bd\u03c9\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03ac \u03b5\u03c1\u03b5\u03c5\u03bd\u03b7\u03c4\u03ae ORCID", "af": "ORCID identifiseerder", "zu": "Isihlonzi se-ORCID", - "xh": "Isazisi se-ORCID" + "xh": "Isazisi se-ORCID", + "ca": "Identificador d'investigador ORCID" }, "attribute_o": { "no": "Navn p\u00e5 organisasjon", @@ -688,11 +692,11 @@ "lv": "Organiz\u0101cijas nosaukums", "id": "Nama organisasi", "ro": "Denumirea institu\u021biei", - "ca": "Nom de l'organitzaci\u00f3", "af": "Organisasie naam", "el": "\u038c\u03bd\u03bf\u03bc\u03b1 \u03bf\u03c1\u03b3\u03b1\u03bd\u03b9\u03c3\u03bc\u03bf\u03cd", "zu": "Igama lenhlangano", - "xh": "Igama lombutho" + "xh": "Igama lombutho", + "ca": "Nom de l'organització" }, "attribute_dc": { "no": "Navneledd (DC)", @@ -727,11 +731,11 @@ "id": "Domain component(DC)", "ro": "Componenta de domeniu (DC)", "eu": "Domeinuaren osagaia (DC)", - "ca": "Component de domini (DC)", "af": "Domein komponent (DC)", "el": "\u03a3\u03c5\u03c3\u03c4\u03b1\u03c4\u03b9\u03ba\u03cc \u03a4\u03bf\u03bc\u03ad\u03b1 (DC)", "zu": "Ingxenye yesizinda (I-DC)", - "xh": "Ikhomponenti yedomeyin (DC)" + "xh": "Ikhomponenti yedomeyin (DC)", + "ca": "Component de domini (DC)" }, "attribute_displayname": { "no": "Navn som normalt vises", @@ -766,11 +770,11 @@ "sr": "Ime za prikaz", "ro": "Nume afi\u0219at", "eu": "Bistaratzeko izena", - "ca": "Nom de visualitzaci\u00f3", "af": "Vertoon naam", "el": "\u0395\u03bc\u03c6\u03b1\u03bd\u03b9\u03b6\u03cc\u03bc\u03b5\u03bd\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1", "zu": "Igama lesibonisi", - "xh": "Igama lomboniso" + "xh": "Igama lomboniso", + "ca": "Nom a mostrar" }, "attribute_facsimiletelephonenumber": { "no": "Faksnummer", @@ -805,11 +809,11 @@ "lv": "Fakss", "id": "No Fax", "ro": "Num\u0103r de fax", - "ca": "N\u00famero de fax", "af": "Faksnommer", "el": "Fax", "zu": "Inombolo yefeksi", - "xh": "Inombolo yefeksi" + "xh": "Inombolo yefeksi", + "ca": "Número de fax" }, "attribute_homephone": { "no": "Hjemmetelefon", @@ -844,11 +848,11 @@ "lv": "Telefons", "id": "Telepon rumah", "ro": "Telefon acas\u0103", - "ca": "Tel\u00e8fon del domicili", "af": "Tuistelefoon", "el": "\u03a4\u03b7\u03bb\u03ad\u03c6\u03c9\u03bd\u03bf \u03bf\u03b9\u03ba\u03af\u03b1\u03c2", "xh": "Umnxeba wasekhaya", - "zu": "Ucingo lwasekhaya" + "zu": "Ucingo lwasekhaya", + "ca": "Telèfon fix particular" }, "attribute_homepostaladdress": { "no": "Postadresse hjemme", @@ -883,11 +887,11 @@ "id": "Alamat pos rumah", "ro": "Adresa po\u0219tal\u0103 de acas\u0103", "eu": "Etxeko helbidea", - "ca": "Adre\u00e7a del domicili", "af": "Tuis posadres", "el": "\u03a4\u03b1\u03c7\u03c5\u03b4\u03c1\u03bf\u03bc\u03b9\u03ba\u03ae \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 \u03bf\u03b9\u03ba\u03af\u03b1\u03c2", "zu": "Ikheli leposi lasekhaya", - "xh": "Idilesi yeposi yasekhaya" + "xh": "Idilesi yeposi yasekhaya", + "ca": "Adreça particular" }, "attribute_jpegphoto": { "no": "JPEG-foto", @@ -922,11 +926,11 @@ "lv": "JPEG fotogr\u0101fija", "id": "Foto JPEG", "ro": "Fotografie JPEG", - "ca": "Fotografia en JPEG", "af": "JPEG Foto", "el": "\u03a6\u03c9\u03c4\u03bf\u03b3\u03c1\u03b1\u03c6\u03af\u03b1 \u03c3\u03b5 \u03bc\u03bf\u03c1\u03c6\u03ae JPEG", "xh": "Ifoto ye-JPEG", - "zu": "Isithombe se-JPEG" + "zu": "Isithombe se-JPEG", + "ca": "Fotografia en JPEG" }, "attribute_l": { "no": "Sted", @@ -961,11 +965,11 @@ "id": "Lokalitas", "ro": "Localitate", "eu": "Herria", - "ca": "Localitat", "af": "Ligging", "el": "\u03a4\u03bf\u03c0\u03bf\u03b8\u03b5\u03c3\u03af\u03b1", "zu": "Indawo", - "xh": "Indawo" + "xh": "Indawo", + "ca": "Localitat" }, "attribute_labeleduri": { "no": "URI med valgfri tilleggskommentar", @@ -1000,11 +1004,11 @@ "id": "Berlabel URL", "ro": "URI etichetat", "eu": "URI etiketatua", - "ca": "URI etiquetat", "af": "URI", "el": "\u0395\u03c0\u03b9\u03c3\u03b7\u03bc\u03b1\u03c3\u03bc\u03ad\u03bd\u03b1 URI", "xh": "I-URI eneleyibheli", - "zu": "I-URI Enelebula" + "zu": "I-URI Enelebula", + "ca": "URI etiquetat" }, "attribute_ou": { "no": "Organisasjonsenhet", @@ -1039,11 +1043,11 @@ "id": "Organizational unit", "ro": "Unitate organiza\u021bional\u0103", "eu": "Antolamendu-unitatea", - "ca": "Unitat organitzativa", "af": "Organisasie eenheid", "el": "\u039f\u03c1\u03b3\u03b1\u03bd\u03c9\u03c4\u03b9\u03ba\u03ae \u03bc\u03bf\u03bd\u03ac\u03b4\u03b1", "zu": "Iyunithi yenhlangano", - "xh": "Iyunithi yombutho" + "xh": "Iyunithi yombutho", + "ca": "Unitat organitzativa" }, "attribute_postaladdress": { "no": "Postadresse", @@ -1078,11 +1082,11 @@ "lv": "Pasta adrese", "id": "Alamat pos", "ro": "Adresa po\u0219tal\u0103", - "ca": "Adre\u00e7a postal", "af": "Posadres", "el": "\u03a4\u03b1\u03c7\u03c5\u03b4\u03c1\u03bf\u03bc\u03b9\u03ba\u03ae \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7", "xh": "Idilesi yeposi", - "zu": "Ikheli leposi" + "zu": "Ikheli leposi", + "ca": "Adreça postal" }, "attribute_postalcode": { "no": "Postnummer", @@ -1117,11 +1121,11 @@ "lv": "Pasta kods", "id": "Kode pos", "ro": "Cod po\u0219tal", - "ca": "Codi postal", "af": "Poskode", "el": "\u03a4\u03b1\u03c7\u03c5\u03b4\u03c1\u03bf\u03bc\u03b9\u03ba\u03cc\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2", "zu": "Ikhodi yeposi", - "xh": "Ikhowudi yeposi" + "xh": "Ikhowudi yeposi", + "ca": "Codi Postal" }, "attribute_postofficebox": { "no": "Postboks", @@ -1156,11 +1160,11 @@ "lv": "Pasta kaste", "id": "PO Box", "ro": "Cutie po\u0219tal\u0103", - "ca": "Apartat de correus", "af": "Posbus", "el": "\u03a4\u03b1\u03c7\u03c5\u03b4\u03c1\u03bf\u03bc\u03b9\u03ba\u03ae \u03b8\u03c5\u03c1\u03af\u03b4\u03b1", "zu": "Ibhokisi lehhovisi leposi", - "xh": "Ibhokisi yaseposini" + "xh": "Ibhokisi yaseposini", + "ca": "Apartat de correus" }, "attribute_street": { "no": "Gate", @@ -1195,11 +1199,11 @@ "lv": "Iela", "id": "Jalan", "ro": "Strada", - "ca": "Carrer", "af": "Straat", "el": "\u039f\u03b4\u03cc\u03c2", "xh": "Istrato", - "zu": "Umgwaqo" + "zu": "Umgwaqo", + "ca": "Carrer" }, "attribute_telephonenumber": { "no": "Telefon", @@ -1234,11 +1238,11 @@ "lv": "Telefons", "id": "No Telepon", "ro": "Num\u0103r de telefon", - "ca": "N\u00famero de tel\u00e8fon", "af": "Telefoon nommer", "el": "\u03a4\u03b7\u03bb\u03ad\u03c6\u03c9\u03bd\u03bf", "zu": "Inombolo yocingo", - "xh": "Inombolo yomnxeba" + "xh": "Inombolo yomnxeba", + "ca": "Número de telèfon" }, "attribute_eduorghomepageuri": { "no": "Organisasjonens hjemmeside", @@ -1273,11 +1277,11 @@ "id": "Homepage organisasi", "ro": "Pagina web a institutu\u021biei", "eu": "Erakundearen hasiera-orria", - "ca": "P\u00e0gina inicial de l'organitzaci\u00f3", "af": "Organisasie tuisblad", "el": "\u0394\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 \u03b1\u03c1\u03c7\u03b9\u03ba\u03ae\u03c2 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1\u03c2 \u03bf\u03b9\u03ba\u03b5\u03af\u03bf\u03c5 \u03bf\u03c1\u03b3\u03b1\u03bd\u03b9\u03c3\u03bc\u03bf\u03cd", "xh": "Ikhasi lekhaya Lenkampani", - "zu": "Ikhasi lasekhaya lenhlangano" + "zu": "Ikhasi lasekhaya lenhlangano", + "ca": "Pàgina principal de l'organització" }, "attribute_eduorglegalname": { "no": "Foretaksnavn", @@ -1312,11 +1316,11 @@ "id": "Nama legal Organisasi", "ro": "Denumirea legal\u0103 a institu\u021biei", "eu": "Erakundearen izen legala", - "ca": "Nom legal de l'organitzaci\u00f3", "af": "Wettige naam", "el": "\u0395\u03c0\u03af\u03c3\u03b7\u03bc\u03b7 \u03b5\u03c0\u03c9\u03bd\u03c5\u03bc\u03af\u03b1 \u03bf\u03b9\u03ba\u03b5\u03af\u03bf\u03c5 \u03bf\u03c1\u03b3\u03b1\u03bd\u03b9\u03c3\u03bc\u03bf\u03cd", "zu": "Igama elisemthethweni lenhlangano", - "xh": "Igama elisemthethweni lenkampani" + "xh": "Igama elisemthethweni lenkampani", + "ca": "Nom legal de l'organització" }, "attribute_edupersonnickname": { "no": "Kallenavn", @@ -1351,11 +1355,11 @@ "lv": "Niks", "id": "Nama panggilan", "ro": "Porecl\u0103", - "ca": "\u00c0lies", "af": "Bynaam", "el": "\u03a8\u03b5\u03c5\u03b4\u03ce\u03bd\u03c5\u03bc\u03bf \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7", "xh": "Isiteketiso", - "zu": "Isidlaliso" + "zu": "Isidlaliso", + "ca": "Sobrenom" }, "attribute_edupersonorgdn": { "no": "Entydig navn (DN) for brukerens vertsorganisasjon", @@ -1390,11 +1394,11 @@ "id": "Distinguished name (DN) of person's home organization", "ro": "Nume distincitv (DN) al institu\u021bie de origine a persoanei", "eu": "Pertsonaren jatorrizko erakundearen izen osatua (DN)", - "ca": "Nom distingit (DN) de l'organitzaci\u00f3 d'origen", "af": "Kenmerkende naam (DN) van die person se tuisorganisasie", "el": "\u0394\u03b9\u03b1\u03ba\u03b5\u03ba\u03c1\u03b9\u03bc\u03ad\u03bd\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 (DN) \u03bf\u03b9\u03ba\u03b5\u03af\u03bf\u03c5 \u03bf\u03c1\u03b3\u03b1\u03bd\u03b9\u03c3\u03bc\u03bf\u03cd", "xh": "Igama elahlukileyo (DN) lenkampani yekhaya yomntu", - "zu": "Igama elihloniphekile (I-DN) lenhlangano yasekhaya yomuntu" + "zu": "Igama elihloniphekile (I-DN) lenhlangano yasekhaya yomuntu", + "ca": "Nom distingit (DN) de l'organització principal de la persona" }, "attribute_edupersonorgunitdn": { "no": "Entydig navn (DN) for brukerens organisasjonsenhet", @@ -1429,11 +1433,11 @@ "id": "Distinguished name (DN) of the person's home organizational unit", "ro": "Nume distincitv (DN) al unit\u0103\u021bii organiza\u021bionale de origine a persoanei", "eu": "Pertsonaren jatorrizko erakundeko antolamendu-unitatearen izen osatua (DN)", - "ca": "Nom distingit (DN) de la Unitat Organitzativa (OU) de l'organitzaci\u00f3 d'origen", "af": "Kenmerkende naam (DN) van die persoon se organisatoriese afdeling", "el": "\u0394\u03b9\u03b1\u03ba\u03b5\u03ba\u03c1\u03b9\u03bc\u03ad\u03bd\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 (DN) \u03bf\u03b9\u03ba\u03b5\u03af\u03b1\u03c2 \u03bf\u03c1\u03b3\u03b1\u03bd\u03c9\u03c4\u03b9\u03ba\u03ae\u03c2 \u03bc\u03bf\u03bd\u03ac\u03b4\u03b1\u03c2", "xh": "Igama elahlukileyo (DN) leyunithi yenkampani yekhaya yomntu", - "zu": "Igama elihloniphekile (I-DN) leyunithi yenhlangano yasekhaya yomuntu" + "zu": "Igama elihloniphekile (I-DN) leyunithi yenhlangano yasekhaya yomuntu", + "ca": "Nom distingit (DN) de la unitat organitzativa (OU) de l'organització principal de la persona" }, "attribute_edupersonprimaryaffiliation": { "no": "Prim\u00e6r tilknytning til organisasjon", @@ -1468,11 +1472,11 @@ "id": "Afiliasi utama", "ro": "Afiliere primar\u0103", "eu": "Lehen afiliazioa", - "ca": "Afiliaci\u00f3 prim\u00e0ria", "af": "Prim\u00eare affiliasie", "el": "\u039a\u03cd\u03c1\u03b9\u03b1 \u03b9\u03b4\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1", "xh": "Indima eyintloko", - "zu": "Indima eyinhloko" + "zu": "Indima eyinhloko", + "ca": "Afiliació primària" }, "attribute_noreduorgnin": { "no": "Organisasjonsnummer", @@ -1507,11 +1511,11 @@ "et": "Registrikood", "ro": "Num\u0103r organiza\u021bional", "eu": "Erakundearen zenbakia", - "ca": "N\u00famero de l'organitzaci\u00f3", "af": "Organisasie nommer", "el": "\u0391\u03c1\u03b9\u03b8\u03bc\u03cc\u03c2 \u03bf\u03b9\u03ba\u03b5\u03af\u03bf\u03c5 \u03bf\u03c1\u03b3\u03b1\u03bd\u03b9\u03c3\u03bc\u03bf\u03cd", "zu": "Inombolo yenhlangano", - "xh": "Inombolo yenkampani" + "xh": "Inombolo yenkampani", + "ca": "Número de l’organització" }, "attribute_noredupersonbirthdate": { "no": "F\u00f8dselsdato", @@ -1546,11 +1550,11 @@ "lv": "Dzim\u0161anas datums", "id": "Tanggal lahir", "ro": "Data na\u0219terii", - "ca": "Data de naixement", "af": "Geboorte datum", "el": "\u0397\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03af\u03b1 \u03b3\u03ad\u03bd\u03bd\u03b7\u03c3\u03b7\u03c2", "zu": "Usuku lokuzalwa", - "xh": "Umhla wokuzalwa" + "xh": "Umhla wokuzalwa", + "ca": "Data de naixement" }, "attribute_noredupersonlin": { "no": "Lokalt ID-nummer", @@ -1585,11 +1589,11 @@ "id": "Nomor identitas lokal", "ro": "Num\u0103r de identificare local", "eu": "Tokiko zenbaki identifikatzailea", - "ca": "N\u00famero d'identificaci\u00f3 local", "af": "Identiteitsnommer", "el": "\u0391\u03c1\u03b9\u03b8\u03bc\u03cc\u03c2 \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2", "zu": "Inombolo kamazisi yasendaweni", - "xh": "Inombolo yesazisi yasekuhlaleni" + "xh": "Inombolo yesazisi yasekuhlaleni", + "ca": "Número d'identitat local" }, "attribute_manager": { "no": "Overordnet", @@ -1624,11 +1628,11 @@ "id": "Manager", "ro": "Director\/Manager", "eu": "Kudeatzailea", - "ca": "Gestor", "af": "Bestuurder", "el": "\u0394\u03b9\u03b1\u03ba\u03b5\u03ba\u03c1\u03b9\u03bc\u03ad\u03bd\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 (DN) \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae", "xh": "Umanejala", - "zu": "Umphathi" + "zu": "Umphathi", + "ca": "Gestor" }, "attribute_userpassword": { "no": "Hash av brukerens passord", @@ -1662,11 +1666,11 @@ "id": "Hash password user", "ro": "Parola utilizatorului \u00een format <i>hash<\/i>", "eu": "Erabiltzailearen pasahitzaren hash-a", - "ca": "Clau o contrasenya i m\u00e8tode d'encriptaci\u00f3 usat", "af": "Gebruikerswagwoord", "el": "\u039a\u03c1\u03c5\u03c0\u03c4\u03bf\u03b3\u03c1\u03b1\u03c6\u03b7\u03bc\u03ad\u03bd\u03bf\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2", "xh": "Iheshi yephaswedi yomsebenzisi", - "zu": "Uheshi wephasiwedi yomsebenzisi" + "zu": "Uheshi wephasiwedi yomsebenzisi", + "ca": "Clau o contrasenya i mètode d'encriptació utilitzat" }, "attribute_edupersonprimaryorgunitdn": { "no": "Entydig navn for organisasjonsenheten som brukeren prim\u00e6rt er tilknyttet", @@ -1698,11 +1702,11 @@ "id": "Distinguished name (DN) of person's primary Organizational Unit", "ro": "Nume distincitv (DN) al unit\u0103\u021bii organiza\u021bionale primare a persoanei", "eu": "Pertsonaren antolamendu-unitatearen izen osatua (DN)", - "ca": "Nom distingit (DN) de l'entrada del directori que representa l'identificador", "af": "Kenmerkende naam (DN) van die persoon se prim\u00eare organisatoriese afdeling", "el": "\u0394\u03b9\u03b1\u03ba\u03b5\u03ba\u03c1\u03b9\u03bc\u03ad\u03bd\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 (DN) \u03ba\u03cd\u03c1\u03b9\u03b1\u03c2 \u03bf\u03c1\u03b3\u03b1\u03bd\u03c9\u03c4\u03b9\u03ba\u03ae\u03c2 \u03bc\u03bf\u03bd\u03ac\u03b4\u03b1\u03c2", "xh": "Igama elahlukileyo (DN) leYunithi Yenkampani yokuqala yomntu", - "zu": "Igama elihloniphekile (I-DN) Leyunithi Yenhlangano eyinhloko yomuntu" + "zu": "Igama elihloniphekile (I-DN) Leyunithi Yenhlangano eyinhloko yomuntu", + "ca": "Nom distingit (DN) de l'entrada del directori que representa l'identificador" }, "attribute_schacuserprivateattribute": { "no": "Private informasjonselement", @@ -1734,12 +1738,12 @@ "id": "Elemen-elemen informasi personal", "ro": "Informa\u021bii private", "eu": "Informazio pribatuaren elementuak", - "ca": "Elements d'informaci\u00f3 privada", "fi": "Yksil\u00f6iv\u00e4t tunnisteet", "af": "Private informasie elemente", "el": "\u0391\u03c0\u03cc\u03c1\u03c1\u03b7\u03c4\u03b1 \u03c0\u03c1\u03bf\u03c3\u03c9\u03c0\u03b9\u03ba\u03ac \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03b1", "zu": "Izingxenye zolwazi oluyimfihlo", - "xh": "Iimpawu zenkcazelo yangasese" + "xh": "Iimpawu zenkcazelo yangasese", + "ca": "Elements d'informació privada" }, "attribute_noredupersonlegalname": { "no": "Folkeregistrert navn", @@ -1769,12 +1773,12 @@ "cs": "Pr\u00e1vn\u00ed jm\u00e9no", "ro": "Nume legal", "eu": "Izen legala", - "ca": "Nom legal", "fi": "Virallinen nimi", "af": "Wettige naam", "el": "\u0395\u03c0\u03af\u03c3\u03b7\u03bc\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1", "xh": "Igama elisemthethweni", - "zu": "Igama elisemthethweni" + "zu": "Igama elisemthethweni", + "ca": "Nom legal" }, "attribute_edupersonassurance": { "no": "Tillitsniv\u00e5 for autentisering", @@ -1802,11 +1806,11 @@ "cs": "Poskytovatel identifika\u010dn\u00edho profilu", "ro": "Profilul de asigurare a identit\u0103\u021bii", "eu": "Bermearen profilaren identifikatzailea", - "ca": "Identificador del perfil de garantia", "af": "Identiteitsversekerings profiel", "el": "\u0395\u03c0\u03af\u03c0\u03b5\u03b4\u03bf \u03b1\u03be\u03b9\u03bf\u03c0\u03b9\u03c3\u03c4\u03af\u03b1\u03c2 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2", "zu": "Iphrofayela yokuqinisekisa umazisi", - "xh": "Iprofayile yokuqinisekisa isazisi" + "xh": "Iprofayile yokuqinisekisa isazisi", + "ca": "Identificador del perfil de garantia" }, "attribute_ismemberof": { "es": "Membres\u00eda a grupos", @@ -1818,6 +1822,7 @@ "af": "Groeplidmaatskap", "el": "\u03a3\u03c5\u03bc\u03bc\u03b5\u03c4\u03bf\u03c7\u03ae \u03c3\u03b5 \u03bf\u03bc\u03ac\u03b4\u03b5\u03c2", "xh": "Ubulungu beqela", - "zu": "Ubulungu beqembu" + "zu": "Ubulungu beqembu", + "ca": "Pertinença al grup" } } diff --git a/vendor/simplesamlphp/simplesamlphp/dictionaries/disco.translation.json b/vendor/simplesamlphp/simplesamlphp/dictionaries/disco.translation.json index 9f17c1a3e4cf6c243060174c0dfd6e60640f49b6..f65d7650de975bce6ff7ba40c4ae24794886a519 100644 --- a/vendor/simplesamlphp/simplesamlphp/dictionaries/disco.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/dictionaries/disco.translation.json @@ -34,7 +34,8 @@ "af": "Kies jou identiteits verskaffer", "el": "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03bf\u03b9\u03ba\u03b5\u03af\u03bf\u03c5 \u03c6\u03bf\u03c1\u03ad\u03b1", "xh": "Khetha umboneleli wesazisi wakho", - "zu": "Khetha umhlinzeki wakho kamazisi" + "zu": "Khetha umhlinzeki wakho kamazisi", + "ca": "Seleccioneu el vostre proveïdor d'identitat" }, "selectidp_full": { "no": "Vennligst velg hvilken identitetsleverand\u00f8r du vil bruke for \u00e5 logge inn:", @@ -71,7 +72,8 @@ "af": "Kies asb. jou identiteits verskaffer waar jy wil verifieer:", "el": "\u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03bf\u03b9\u03ba\u03b5\u03af\u03bf \u03c6\u03bf\u03c1\u03ad\u03b1 \u03c0\u03bf\u03c5 \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03c0\u03b9\u03c3\u03c4\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03b9 \u03c4\u03b7\u03bd \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03ac \u03c3\u03b1\u03c2", "zu": "Sicela ukhethe umhlinzeki kamazisi lapho ofuna ukuqinisekisa khona:", - "xh": "Nceda ukhethe umboneleli wesazisi apho ufuna ukungqinisisa:" + "xh": "Nceda ukhethe umboneleli wesazisi apho ufuna ukungqinisisa:", + "ca": "Seleccioneu el proveïdor d’identitat on vulgueu autenticar:" }, "select": { "no": "Velg", @@ -108,7 +110,8 @@ "af": "Kies", "el": "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae", "zu": "Khetha", - "xh": "Khetha" + "xh": "Khetha", + "ca": "Seleccioneu" }, "remember": { "no": "Husk mitt valg", @@ -145,7 +148,8 @@ "af": "Onthou my keuse", "el": "\u039d\u03b1 \u03b8\u03c5\u03bc\u03ac\u03c3\u03b1\u03b9 \u03c4\u03b7\u03bd \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03bc\u03bf\u03cd", "zu": "Khumbula ukukhetha kwami", - "xh": "Khumbula ukhetho lwam" + "xh": "Khumbula ukhetho lwam", + "ca": "Recorda la meva elecció" }, "icon_prefered_idp": { "no": "[Foretrukket valg]", @@ -182,7 +186,8 @@ "af": "[Verkies]", "el": "[\u0391\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03bc\u03ad\u03bd\u03b7 \u03c0\u03c1\u03bf\u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae]", "xh": "[Ukhetho olukhethwayo]", - "zu": "[Ukukhetha okuncanyelwayo]" + "zu": "[Ukukhetha okuncanyelwayo]", + "ca": "[Opció preferida]" }, "previous_auth": { "no": "Du har tidligere valg \u00e5 autentisere deg hos", @@ -218,7 +223,8 @@ "af": "Jy het voorheen gekies om te verifieer deur:", "el": "\u0391\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03bc\u03ad\u03bd\u03b7 \u03c0\u03c1\u03bf\u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03bf\u03b9\u03ba\u03b5\u03af\u03bf\u03c5 \u03c6\u03bf\u03c1\u03ad\u03b1:", "zu": "Ngaphambilini ukhethe ukuqinisekisa kokuthi", - "xh": "Kwixesha elidlulileyo ukhethe ukungqinisisa ngo-" + "xh": "Kwixesha elidlulileyo ukhethe ukungqinisisa ngo-", + "ca": "Abans heu escollit autenticar-vos a" }, "login_at": { "no": "Logg inn hos", @@ -254,6 +260,7 @@ "af": "Meld aan by", "el": "\u0395\u03af\u03c3\u03bf\u03b4\u03bf\u03c2 \u0040", "zu": "Ngena kokuthi", - "xh": "Ungeno ngo-" + "xh": "Ungeno ngo-", + "ca": "Inicieu sessió a" } } diff --git a/vendor/simplesamlphp/simplesamlphp/dictionaries/errors.translation.json b/vendor/simplesamlphp/simplesamlphp/dictionaries/errors.translation.json index dafc78c7645a9c476782647cede72bd9c88a43a3..62377c73f1e9cd0791e9f2a51a46c2d1916925eb 100644 --- a/vendor/simplesamlphp/simplesamlphp/dictionaries/errors.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/dictionaries/errors.translation.json @@ -35,7 +35,8 @@ "af": "SimpleSAMLphp-fout", "el": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03c4\u03bf\u03c5 SimpleSAMLphp", "zu": "Iphutha le-SimpleSAMLphp", - "xh": "Impazamo ye-SimpleSAMLphp" + "xh": "Impazamo ye-SimpleSAMLphp", + "ca": "Error de SimpleSAMLphp" }, "report_trackid": { "no": "Hvis vil rapportere denne feilen, send ogs\u00e5 med dette sporingsnummeret. Det gj\u00f8r det enklere for systemadministratorene \u00e5 finne ut hva som gikk galt:", @@ -73,7 +74,8 @@ "af": "Waneer jy die fout rapporteer, verskaf asb. ook die 'tracking'\/verwysings nommer wat dit moontlik maak vir die sisteem administrateur om jou sessie in die logs op te spoor:", "el": "\u0391\u03bd \u03b1\u03bd\u03b1\u03c6\u03ad\u03c1\u03b5\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1\u002c \u03c0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03bf\u03cd\u03bc\u03b5 \u03bd\u03b1 \u03c3\u03c5\u03bc\u03c0\u03b5\u03c1\u03b9\u03bb\u03ac\u03b2\u03b5\u03c4\u03b5 \u03c3\u03c4\u03b7\u03bd \u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac \u03c3\u03b1\u03c2 \u03b1\u03c5\u03c4\u03cc\u03bd \u03c4\u03bf\u03bd \u03b1\u03c1\u03b9\u03b8\u03bc\u03cc \u03c0\u03c1\u03bf\u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5 \u03bd\u03b1 \u03b4\u03b9\u03b5\u03c5\u03ba\u03bf\u03bb\u03cd\u03bd\u03b5\u03c4\u03b5 \u03c4\u03b7 \u03b4\u03b9\u03b1\u03b4\u03b9\u03ba\u03b1\u03c3\u03af\u03b1 \u03b5\u03bd\u03c4\u03bf\u03c0\u03b9\u03c3\u03bc\u03bf\u03cd \u03ba\u03b1\u03b9 \u03b5\u03c0\u03af\u03bb\u03c5\u03c3\u03b7\u03c2 \u03c4\u03bf\u03c5 \u03c0\u03c1\u03bf\u03b2\u03bb\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2:", "zu": "Uma ubika leli phutha, sicela futhi ubike le nombolo yokulandelela eyenza kube nokwenzeka ukuthola iseshini yakho kumalogi atholakalayo kumlawuli wesistimu:", - "xh": "Ukuba ngaba uchaza le mpazamo, nceda kananjalo uchaze le nombolo yolandelelo eyenza kube lula ukufumana iseshoni yakho kwiincwadi ezifumaneka kumlawuli wesistim:" + "xh": "Ukuba ngaba uchaza le mpazamo, nceda kananjalo uchaze le nombolo yolandelelo eyenza kube lula ukufumana iseshoni yakho kwiincwadi ezifumaneka kumlawuli wesistim:", + "ca": "Si informeu d’aquest error, notifiqueu també aquest número de seguiment que permet localitzar la vostra sessió als registres disponibles per a l’administrador del sistema:" }, "debuginfo_header": { "no": "Detaljer for feils\u00f8king", @@ -111,7 +113,8 @@ "af": "Ontleed informasie", "el": "\u03a0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 \u03b5\u03bd\u03c4\u03bf\u03c0\u03b9\u03c3\u03bc\u03bf\u03cd \u03c3\u03c6\u03b1\u03bb\u03bc\u03ac\u03c4\u03c9\u03bd", "xh": "Inkcazelo yokulungisa", - "zu": "Ulwazi lokususwa kwephutha" + "zu": "Ulwazi lokususwa kwephutha", + "ca": "Informació de depuració" }, "debuginfo_text": { "no": "Detaljene nedenfor kan v\u00e6re av interesse for administratoren \/ brukerst\u00f8tte:", @@ -149,7 +152,8 @@ "af": "Die onderstaande informasie mag van hulp wees vir die stelsel administrateur \/ hulplyn.", "el": "\u039f\u03b9 \u03c0\u03b1\u03c1\u03b1\u03ba\u03ac\u03c4\u03c9 \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03b4\u03b9\u03b5\u03c5\u03ba\u03bf\u03bb\u03cd\u03bd\u03bf\u03c5\u03bd \u03c4\u03b7 \u03b4\u03b9\u03b1\u03b4\u03b9\u03ba\u03b1\u03c3\u03af\u03b1 \u03b5\u03bd\u03c4\u03bf\u03c0\u03b9\u03c3\u03bc\u03bf\u03cd \u03ba\u03b1\u03b9 \u03b5\u03c0\u03af\u03bb\u03c5\u03c3\u03b7\u03c2 \u03c3\u03c6\u03b1\u03bb\u03bc\u03ac\u03c4\u03c9\u03bd.", "xh": "Inkcazelo yokulungisa engezantsi isenokuba ibangela umdla kumlawuli / idesika yoncedo:", - "zu": "Ulwazi lokususwa kwephutha olungezansi lungase lukhange kumlawuli / ideski losizo:" + "zu": "Ulwazi lokususwa kwephutha olungezansi lungase lukhange kumlawuli / ideski losizo:", + "ca": "La informació de depuració següent pot ser d’interès per l’administrador \/ centre d'atenció a l'usuari:" }, "report_header": { "no": "Rapporter feil", @@ -187,7 +191,8 @@ "af": "Rapporteer foute", "el": "\u0391\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1\u03c4\u03bf\u03c2", "zu": "Amaphutha ombiko", - "xh": "Chaza iimpazamo" + "xh": "Chaza iimpazamo", + "ca": "Informeu de l’error" }, "report_text": { "no": "Hvis du \u00f8nsker at brukerst\u00f8tte skal kunne kontakte deg igjen i forbindelse med denne feilen, m\u00e5 du oppgi e-postadressen din nedenfor:", @@ -225,7 +230,8 @@ "af": "Voeg opsioneel jou epos adres in vir die administrateurs om jou te kontak vir meer inligting m.b.t jou probleem:", "el": "\u03a0\u03c1\u03bf\u03b1\u03b9\u03c1\u03b5\u03c4\u03b9\u03ba\u03ac\u002c \u03b5\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03c4\u03b7 \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 \u03b7\u03bb\u03b5\u03ba\u03c4\u03c1\u03bf\u03bd\u03b9\u03ba\u03bf\u03cd \u03c4\u03b1\u03c7\u03c5\u03b4\u03c1\u03bf\u03bc\u03b5\u03af\u03bf\u03c5 \u03c3\u03b1\u03c2 \u03ce\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03b5\u03af\u03bc\u03b1\u03c3\u03c4\u03b5 \u03c3\u03b5 \u03b8\u03ad\u03c3\u03b7 \u03bd\u03b1 \u03ad\u03c1\u03b8\u03bf\u03c5\u03bc\u03b5 \u03c3\u03b5 \u03b5\u03c0\u03b1\u03c6\u03ae \u03bc\u03b1\u03b6\u03af \u03c3\u03b1\u03c2 \u03b3\u03b9\u03b1 \u03c0\u03b5\u03c1\u03b1\u03b9\u03c4\u03ad\u03c1\u03c9 \u03b5\u03c1\u03c9\u03c4\u03ae\u03c3\u03b5\u03b9\u03c2 \u03c3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ac \u03bc\u03b5 \u03c4\u03bf \u03b8\u03ad\u03bc\u03b1 \u03c3\u03b1\u03c2:", "xh": "Unokhetho lokuthumela idilesi yeimeyile yakho, ukuze abalawuli bakwazi ukukuqhagamshela ukuba banemibuzo engakumbi malunga nomba wakho:", - "zu": "Faka ngokuzithandela ikheli lakho le-imeyili, ukuze abalawuli bakwazi ukukuthinta ngemibuzo eyengeziwe mayelana nenkinga yakho:" + "zu": "Faka ngokuzithandela ikheli lakho le-imeyili, ukuze abalawuli bakwazi ukukuthinta ngemibuzo eyengeziwe mayelana nenkinga yakho:", + "ca": "Opcionalment, introduïu la vostra adreça de correu electrònic, per a que els administradors puguin contactar amb vosaltres per obtenir més detalls del problema:" }, "report_email": { "no": "E-postadresse:", @@ -264,7 +270,8 @@ "af": "Epos adres:", "el": "Email:", "xh": "Idilesi ye-imeyile:", - "zu": "Ikheli le-imeyili:" + "zu": "Ikheli le-imeyili:", + "ca": "Adreça de correu electrònic:" }, "report_explain": { "no": "Forklar hva du gjorde da feilen oppsto...", @@ -302,7 +309,8 @@ "af": "Verduidelik wat jy gedoen het toe jy die probleem ervaar...", "el": "\u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03ac\u03c8\u03c4\u03b5 \u03c4\u03b9\u03c2 \u03b5\u03bd\u03ad\u03c1\u03b3\u03b5\u03b9\u03ad\u03c2 \u03c3\u03b1\u03c2 \u03cc\u03c4\u03b1\u03bd \u03c3\u03c5\u03bd\u03ad\u03b2\u03b7 \u03c4\u03bf \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1...", "xh": "Cacisa ukuba wenze ntoni xa bekusenzeka le mpazamo...", - "zu": "Chaza ukuthi yini oyenzile ngenkathi kuvela leli phutha..." + "zu": "Chaza ukuthi yini oyenzile ngenkathi kuvela leli phutha...", + "ca": "Expliqueu què heu fet quan es va produir aquest error..." }, "report_submit": { "no": "Send feilrapport", @@ -340,7 +348,8 @@ "af": "Stuur die fout verslag", "el": "\u0391\u03c0\u03bf\u03c3\u03c4\u03bf\u03bb\u03ae \u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac\u03c2", "zu": "Thumela umbiko wephutha", - "xh": "Thumela ingxelo yempazamo" + "xh": "Thumela ingxelo yempazamo", + "ca": "Envia informe d'error" }, "howto_header": { "no": "Hvordan f\u00e5 hjelp", @@ -378,7 +387,8 @@ "af": "Hoe om hulp te verkry", "el": "\u03a0\u03ce\u03c2 \u03bd\u03b1 \u03bb\u03ac\u03b2\u03b5\u03c4\u03b5 \u03b2\u03bf\u03ae\u03b8\u03b5\u03b9\u03b1", "zu": "Indlela yokuthola usizo", - "xh": "Indlela yokufumana uncedo" + "xh": "Indlela yokufumana uncedo", + "ca": "Com obtenir ajuda" }, "howto_text": { "no": "Denne feilen skyldes sannsynligvis feil i oppsettet av SimpleSAMLphp eller den er en f\u00f8lge av en uforutsett hendelse. Kontakt administratoren av denne tjenesten og rapporter s\u00e5 mye som mulig ang\u00e5ende feilen.", @@ -416,7 +426,8 @@ "af": "Die fout is moontlik te danke aan onverwagte gedrag of weens inkorrekte instellings in SimpleSAMLphp. Kontak die administrateur in beheer van die aanmeld diens en stuur die bostaande fout boodskap aan.", "el": "\u0391\u03c5\u03c4\u03cc \u03c4\u03bf \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03c0\u03b9\u03b8\u03b1\u03bd\u03cc\u03c4\u03b1\u03c4\u03b1 \u03bf\u03c6\u03b5\u03af\u03bb\u03b5\u03c4\u03b1\u03b9 \u03c3\u03b5 \u03ba\u03ac\u03c0\u03bf\u03b9\u03b1 \u03b1\u03c0\u03c1\u03bf\u03c3\u03b4\u03cc\u03ba\u03b7\u03c4\u03b7 \u03c3\u03c5\u03bc\u03c0\u03b5\u03c1\u03b9\u03c6\u03bf\u03c1\u03ac \u03ae \u03b5\u03c3\u03c6\u03b1\u03bb\u03bc\u03ad\u03bd\u03b7 \u03c1\u03cd\u03b8\u03bc\u03b9\u03c3\u03b7 \u03c4\u03bf\u03c5 SimpleSAMLphp. \u0395\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03ae\u03c3\u03c4\u03b5 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae \u03b1\u03c5\u03c4\u03ae\u03c2 \u03c4\u03b7\u03c2 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1\u03c2 \u03c3\u03c5\u03bc\u03c0\u03b5\u03c1\u03b9\u03bb\u03b1\u03bc\u03b2\u03ac\u03bd\u03bf\u03bd\u03c4\u03b1\u03c2 \u03c4\u03bf \u03c0\u03b1\u03c1\u03b1\u03c0\u03ac\u03bd\u03c9 \u03bc\u03ae\u03bd\u03c5\u03bc\u03b1 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1\u03c4\u03bf\u03c2.", "zu": "Leli phutha kungenzeka ukuthi libangelwa indlela yokuziphatha engalindelwe noma umiso olungafanele lwe-SimpleSAMLphp. Thinta umlawuli wale sevisi yokungena, bese umthumela umlayezo wephutha ongenhla.", - "xh": "Le mpazamo kusenokwenzeka ingenxa yendlela yokwenza engalindelekanga okanye ulungiselelo olungachanekanga lwe-SimpleSAMLphp. Qhagamshelana nomlawuli wale nkonzo yokungena, uze umthumele umyalezo wempazamo ongentla." + "xh": "Le mpazamo kusenokwenzeka ingenxa yendlela yokwenza engalindelekanga okanye ulungiselelo olungachanekanga lwe-SimpleSAMLphp. Qhagamshelana nomlawuli wale nkonzo yokungena, uze umthumele umyalezo wempazamo ongentla.", + "ca": "Segurament aquest error es deu a un comportament inesperat o a una configuració incorrecta de SimpleSAMLphp. Poseu-vos en contacte amb l’administrador d’aquest servei i envieu-li el missatge d’error anterior." }, "title_CREATEREQUEST": { "no": "Feil i laging av foresp\u00f8rselen", @@ -454,7 +465,8 @@ "af": "Fout met skepping van nuwe versoek", "el": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03b1\u03b9\u03c4\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2", "xh": "Impazamo nokuyila isicelo", - "zu": "Iphutha lokwakha isicelo" + "zu": "Iphutha lokwakha isicelo", + "ca": "S'ha produït un error en crear la sol·licitud" }, "descr_CREATEREQUEST": { "no": "En feil oppstod da SAML-foresp\u00f8rselen skulle lages.", @@ -492,7 +504,8 @@ "af": "Daar was 'n fout met die skepping van die SAML versoek.", "el": "\u03a0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03c4\u03bf\u03c5 \u03b1\u03b9\u03c4\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2 SAML.", "xh": "Kwenzeke impazamo xa kuzanywa ukuyilwa isicelo se-SAML.", - "zu": "Kuvele iphutha ngenkathi izama ukwakha isicelo se-SAML." + "zu": "Kuvele iphutha ngenkathi izama ukwakha isicelo se-SAML.", + "ca": "S'ha produït un error en intentar crear la sol·licitud SAML." }, "title_DISCOPARAMS": { "no": "Ugyldig foresp\u00f8rsel til SAML 2.0 Discovery-tjenesten", @@ -530,7 +543,8 @@ "af": "Toegangsfout by die ontdekkings diens", "el": "\u0395\u03c3\u03c6\u03b1\u03bb\u03bc\u03ad\u03bd\u03bf \u03b1\u03af\u03c4\u03b7\u03bc\u03b1 \u03c0\u03c1\u03bf\u03c2 \u03c4\u03b7\u03bd \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1 \u03b1\u03bd\u03b5\u03cd\u03c1\u03b5\u03c3\u03b7\u03c2 \u03c0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2", "zu": "Isicelo esingalungile sesevisi yokuthola", - "xh": "Isicelo esibi kwinkonzo yofumaniso" + "xh": "Isicelo esibi kwinkonzo yofumaniso", + "ca": "Sol·licitud incorrecta pel servei de descoberta" }, "descr_DISCOPARAMS": { "no": "Parametere sendt til discovery-tjenesten var ikke i korrekt format.", @@ -568,7 +582,8 @@ "af": "Die gestuurde parameters na die ontdekkings diens was not volgens die korrekte spesifikasies nie.", "el": "\u039f\u03b9 \u03c0\u03b1\u03c1\u03ac\u03bc\u03b5\u03c4\u03c1\u03bf\u03b9 \u03c0\u03bf\u03c5 \u03c3\u03c4\u03ac\u03bb\u03b8\u03b7\u03ba\u03b1\u03bd \u03c3\u03c4\u03b7\u03bd \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1 \u03b1\u03bd\u03b5\u03cd\u03c1\u03b5\u03c3\u03b7\u03c2 \u03c0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 \u03ae\u03c4\u03b1\u03bd \u03b5\u03c3\u03c6\u03b1\u03bb\u03bc\u03ad\u03bd\u03b5\u03c2.", "xh": "Iipharamitha ezithunyelwe kwinkonzo yofumaniso azihambelani neenkcukacha.", - "zu": "Amapharamitha athunyelwe kusevisi yokuthola abengavumelani nezici." + "zu": "Amapharamitha athunyelwe kusevisi yokuthola abengavumelani nezici.", + "ca": "Els paràmetres enviats al servei de descoberta no s'ajusten a les especificacions." }, "title_GENERATEAUTHNRESPONSE": { "no": "Fikk ikke svart p\u00e5 autentiserings-foresp\u00f8rsel", @@ -606,7 +621,8 @@ "af": "Kon nie 'n verifikasie versoek skep nie", "el": "\u0394\u03b5\u03bd \u03ae\u03c4\u03b1\u03bd \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03b1\u03c0\u03cc\u03ba\u03c1\u03b9\u03c3\u03b7\u03c2 \u03c3\u03c4\u03bf \u03b1\u03af\u03c4\u03b7\u03bc\u03b1 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2", "zu": "Ayikwazanga ukwakha impendulo yokuqinisekisa", - "xh": "Ayikwazanga ukuyila impendulo yongqinisiso" + "xh": "Ayikwazanga ukuyila impendulo yongqinisiso", + "ca": "No s’ha pogut crear la resposta d’autenticació" }, "descr_GENERATEAUTHNRESPONSE": { "no": "En feil oppsto da innloggingstjenesten pr\u00f8vde \u00e5 lage et svar p\u00e5 autentiserings-foresp\u00f8rselen.", @@ -644,7 +660,8 @@ "af": "Daar was 'n fout tydens die verifikasie skepping deur die Identiteits Verskaffer.", "el": "\u03a0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03b1\u03c0\u03cc\u03ba\u03c1\u03b9\u03c3\u03b7\u03c2 \u03b1\u03c0\u03cc \u03c4\u03bf\u03bd \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2.", "zu": "Ngenkathi lo mhlinzeki kamazisi ezama ukwakha impendulo yokuqinisekisa, kuvele iphutha.", - "xh": "Xa lo mboneleli wesazisi ezama ukuyila impendulo yongqinisiso, kwenzeke impazamo." + "xh": "Xa lo mboneleli wesazisi ezama ukuyila impendulo yongqinisiso, kwenzeke impazamo.", + "ca": "Quan el proveïdor d’identitat ha intentat crear una resposta d’autenticació, s’ha produït un error." }, "title_LDAPERROR": { "no": "LDAP-feil", @@ -682,7 +699,8 @@ "af": "LDAP Fout", "el": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 LDAP", "xh": "Impazamo ye-LDAP", - "zu": "Iphutha le-LDAP" + "zu": "Iphutha le-LDAP", + "ca": "Error LDAP" }, "descr_LDAPERROR": { "no": "LDAP er brukerkatalogen, og n\u00e5r du fors\u00f8ker \u00e5 logge inn pr\u00f8ver vi \u00e5 kontakten en LDAP-katalog. Da vi fors\u00f8kte det denne gangen, oppsto en feil.", @@ -720,7 +738,8 @@ "af": "LDAP is die gebruikers databasis en waneer jy probeer inteken moet ons die LDAP databasis kontak. Daar was 'n fout toe ons die slag probeer het.", "el": "\u03a0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03b5\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03af\u03b1 \u03bc\u03b5 \u03c4\u03b7\u03bd \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1 \u03ba\u03b1\u03c4\u03b1\u03bb\u03cc\u03b3\u03bf\u03c5 \u03c7\u03c1\u03b7\u03c3\u03c4\u03ce\u03bd (LDAP).", "xh": "I-LDAP ngumvimba wengcombolo yomsebenzisi, yaye xa uzame ukungena, kufuneka siqhagamshele uvimba wengcombolo we-LDAP. Kwenzeke impazamo xa besiyizama.", - "zu": "I-LDAP iyidathabheyisi yomsebenzisi, futhi lapho uzama ukungena, sidinga ukuthinta idathabheyisi ye-LDAP. Kuvele iphutha ngesikhathi siyizama ngalesi sikhathi." + "zu": "I-LDAP iyidathabheyisi yomsebenzisi, futhi lapho uzama ukungena, sidinga ukuthinta idathabheyisi ye-LDAP. Kuvele iphutha ngesikhathi siyizama ngalesi sikhathi.", + "ca": "LDAP és la base de dades d'usuaris i, quan intenteu iniciar la sessió, necessitem connectar amb una base de dades LDAP. S'ha produït un error quan hem provat d'accedir-hi." }, "title_LOGOUTREQUEST": { "no": "Feil i behandling av logout-foresp\u00f8rselen", @@ -758,7 +777,8 @@ "af": "Fout met die verwerking van die Afmeldings Versoek", "el": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7 \u03b4\u03b9\u03b1\u03b4\u03b9\u03ba\u03b1\u03c3\u03af\u03b1 \u03b1\u03c0\u03bf\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2", "xh": "Impazamo iprosesa iSicelo Sokuphuma", - "zu": "Iphutha lokucubungula Isicelo Sokuphuma" + "zu": "Iphutha lokucubungula Isicelo Sokuphuma", + "ca": "S'ha produït un error en processar la sol·licitud de desconnexió" }, "descr_LOGOUTREQUEST": { "no": "En feil oppsto i behandlingen av logout-foresp\u00f8rselen.", @@ -796,7 +816,8 @@ "af": "Daar was 'n probleem tydens die verwerking van die Afmelding Versoek", "el": "\u03a0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03b1\u03c3\u03c4\u03ae\u03ba\u03b5 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03c4\u03bf\u03c5 \u03b1\u03b9\u03c4\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2 \u03b1\u03c0\u03bf\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2.", "zu": "Kuvele iphutha ngenkathi izama ukucubungula Isicelo Sokuphuma.", - "xh": "Kwenzeke impazamo ngoxa kuproseswa isiCelo Sokuphuma." + "xh": "Kwenzeke impazamo ngoxa kuproseswa isiCelo Sokuphuma.", + "ca": "S'ha produït un error en intentar processar la sol·licitud de desconnexió." }, "title_METADATA": { "no": "Feil ved lasting av metadata", @@ -834,7 +855,8 @@ "af": "Fout met die laai van die metadata", "el": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7 \u03c6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7 \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd", "zu": "Iphutha lokulayisha imethadatha", - "xh": "Impazamo ilayisha imetadata" + "xh": "Impazamo ilayisha imetadata", + "ca": "S'ha produït un error en carregar les metadades" }, "descr_METADATA": { "no": "Det er en feil i oppsettet for din SimpleSAMLphp-installasjon. Hvis du er administrator for tjenesten, b\u00f8r du kontrollere at metadata er satt opp riktig.", @@ -872,7 +894,8 @@ "af": "Daar is fout met jou SimplSAMLphp installasie. Indien jy die administrateur is van di\u00e9 diens moet jy verseker dat jou metadata konfigurasie korrek is.", "el": "\u03a5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9 \u03ba\u03ac\u03c0\u03bf\u03b9\u03bf \u03c0\u03c1\u03cc\u03b2\u03bb\u03b7\u03bc\u03b1 \u03c3\u03c4\u03b9\u03c2 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2 \u03c4\u03bf\u03c5 SimpleSAMLphp. \u0395\u03ac\u03bd \u03b5\u03af\u03c3\u03c4\u03b5 \u03bf \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae\u03c2 \u03c4\u03b7\u03c2 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1\u03c2 \u03b1\u03c5\u03c4\u03ae\u03c2, \u03b2\u03b5\u03b2\u03b1\u03b9\u03c9\u03b8\u03b5\u03af\u03c4\u03b5 \u03cc\u03c4\u03b9 \u03c4\u03b1 \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03ad\u03c7\u03bf\u03c5\u03bd \u03c1\u03c5\u03b8\u03bc\u03b9\u03c3\u03c4\u03b5\u03af \u03c3\u03c9\u03c3\u03c4\u03ac.", "xh": "Kukho ulungiselelo olungachanekanga oluthile lofakelo lwakho lwe-SimpleSAMLphp. Ukuba ngaba ungumlawuli wale nkonzo, ufanele uqinisekise ulungiselelo lwakho lweempawu-ngcaciso zefayile lusetwe ngokuchanekileyo.", - "zu": "Kukhona umiso olungafanele kukufaka kwakho kwe-SimpleSAMLphp. Uma ungumlawuli wale sevisi, kufanele wenze isiqiniseko sokuthi umiso lwakho lwemethadatha lumiswe ngendlela efanele." + "zu": "Kukhona umiso olungafanele kukufaka kwakho kwe-SimpleSAMLphp. Uma ungumlawuli wale sevisi, kufanele wenze isiqiniseko sokuthi umiso lwakho lwemethadatha lumiswe ngendlela efanele.", + "ca": "Hi ha alguna configuració incorrecta a la vostra instal·lació de SimpleSAMLphp. Si sou l’administrador d’aquest servei, heu d’assegurar-vos que la configuració de les vostres metadades s’ha realitzat correctament." }, "title_NOACCESS": { "no": "Ingen tilgang", @@ -910,7 +933,8 @@ "af": "Geen toegang", "el": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7", "zu": "Akukho ukufinyelela", - "xh": "Akukho fikelelo" + "xh": "Akukho fikelelo", + "ca": "Sense accès" }, "descr_NOACCESS": { "no": "Dette endepunktet er ikke aktivert. Sjekk aktiveringsopsjonene i ditt SimpleSAMLphp-oppsett.", @@ -948,7 +972,8 @@ "af": "Die eindpunt is nie beskikbaar nie. Gaan die staat opsies in jou opset van SimpleSAMLphp na.", "el": "\u0391\u03c5\u03c4\u03cc \u03c4\u03bf \u03c4\u03b5\u03bb\u03b9\u03ba\u03cc \u03c3\u03b7\u03bc\u03b5\u03af\u03bf \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2 (endpoint) \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03bc\u03ad\u03bd\u03bf. \u0395\u03ac\u03bd \u03b5\u03af\u03c3\u03c4\u03b5 \u03bf \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae\u03c2 \u03c4\u03b7\u03c2 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1\u03c2, \u03b5\u03bb\u03ad\u03b3\u03be\u03c4\u03b5 \u03c4\u03b9\u03c2 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2 \u03c4\u03bf\u03c5 SimpleSAMLphp.", "xh": "Le ndawo yokuphela ayenziwanga yasebenza. Jonga ukhetho lokwenza isebenze kulungiselelo lwakho lwe-SimpleSAMLphp.", - "zu": "Lesi siphetho asivunyelwe. Hlola izinketho zokuvumela kumiso lwakho lwe-SimpleSAMLphp." + "zu": "Lesi siphetho asivunyelwe. Hlola izinketho zokuvumela kumiso lwakho lwe-SimpleSAMLphp.", + "ca": "Aquest punt final no està habilitat. Comproveu les opcions d’habilitació en la configuració de SimpleSAMLphp." }, "title_NORELAYSTATE": { "no": "Spesifikasjon av RelayState mangler", @@ -986,7 +1011,8 @@ "af": "Geen aflos staat('RelayState')", "el": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03c0\u03b1\u03c1\u03b1\u03bc\u03ad\u03c4\u03c1\u03bf\u03c5 'RelayState'", "zu": "Ayikho I-RelayState", - "xh": "Akukho RelayState" + "xh": "Akukho RelayState", + "ca": "Sense RelayState" }, "descr_NORELAYSTATE": { "no": "Kilden til denne foresp\u00f8rselen har ikke angitt noen RelayState-parameter som angir hvor vi skal fortsette etterp\u00e5.", @@ -1024,7 +1050,8 @@ "af": "Die inisieerder van hierdie versoek het nie 'n aflos staat('RelayState') parameter wat aandui waarheen om volgende te gaan nie.", "el": "\u0397 \u03c0\u03b1\u03c1\u03ac\u03bc\u03b5\u03c4\u03c1\u03bf\u03c2 'RelayState' \u03c4\u03bf\u03c5 \u03c0\u03c1\u03c9\u03c4\u03bf\u03ba\u03cc\u03bb\u03bb\u03bf\u03c5 SAML \u03b4\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b5 \u03ae \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b7 \u03bc\u03b5 \u03b1\u03c0\u03bf\u03c4\u03ad\u03bb\u03b5\u03c3\u03bc\u03b1 \u03bd\u03b1 \u03bc\u03b7\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03bc\u03b5\u03c4\u03ac\u03b2\u03b1\u03c3\u03b7 \u03c3\u03b5 \u03ba\u03ac\u03c0\u03bf\u03b9\u03bf\u03bd \u03c0\u03cc\u03c1\u03bf \u03c4\u03bf\u03c5 \u03c0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd0.", "xh": "Umqalisi wesi sicelo akanikelanga ngepharamitha ye-RelayState apho kufanele kuyiwe khona.", - "zu": "Umqalisi walesi sicelo akazange ahlinzeke ngepharamitha ye-RelayState ebonisa ukuthi kufanele uye kuphi ngokulandelayo." + "zu": "Umqalisi walesi sicelo akazange ahlinzeke ngepharamitha ye-RelayState ebonisa ukuthi kufanele uye kuphi ngokulandelayo.", + "ca": "L’iniciador d’aquesta sol·licitud no ha proporcionat un paràmetre de RelayState que indiqui on seguirà." }, "title_PROCESSASSERTION": { "no": "Feil i behandling av svar fra innloggingstjenesten", @@ -1062,7 +1089,8 @@ "af": "Fout in die Identiteits Verskaffer(IdP) versoek", "el": "\u0395\u03c3\u03c6\u03b1\u03bb\u03bc\u03ad\u03bd\u03b7 \u03b1\u03c0\u03cc\u03ba\u03c1\u03b9\u03c3\u03b7 \u03b1\u03c0\u03cc \u03c4\u03bf\u03bd \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2", "xh": "Impazamo iprosesa impendulo esuka kuMboneleli Wesazisi", - "zu": "Iphutha lokucubungula impendulo esuka Kumhlinzeki Kamazisi" + "zu": "Iphutha lokucubungula impendulo esuka Kumhlinzeki Kamazisi", + "ca": "S'ha produït un error en processar la resposta del proveïdor d’identitat" }, "descr_PROCESSASSERTION": { "no": "Svaret mottatt fra innloggingstjenesten kan ikke aksepteres.", @@ -1100,7 +1128,8 @@ "af": "Die antwoord vanaf die Indentiteits Verskaffer is nie aanvaar nie.", "el": "\u03a0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03c4\u03b7\u03c2 \u03b1\u03c0\u03ac\u03bd\u03c4\u03b7\u03c3\u03b7\u03c2 \u03b1\u03c0\u03cc \u03c4\u03bf\u03bd \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2.", "zu": "Asizange samukele impendulo ethunyelwe ukusuka Kumhlinzeki Kamazisi.", - "xh": "Asiyamkelanga impendulo ethunyelwe ukusuka kuMboneleli Wesazisi." + "xh": "Asiyamkelanga impendulo ethunyelwe ukusuka kuMboneleli Wesazisi.", + "ca": "La resposta enviada pel proveïdor d’identitat no ha estat acceptada." }, "title_PROCESSAUTHNREQUEST": { "no": "Feil ved behandling av foresp\u00f8rsel fra SP", @@ -1138,7 +1167,8 @@ "af": "Fout in Diens Verskaffer versoek proses", "el": "\u0395\u03c3\u03c6\u03b1\u03bb\u03bc\u03ad\u03bd\u03bf \u03b1\u03af\u03c4\u03b7\u03bc\u03b1 \u03b1\u03c0\u03cc \u03c4\u03bf\u03bd \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd", "xh": "Impazamo iprosesa isicelo esisuka kuMboneleli Wenkonzo", - "zu": "Iphutha lokucubungula isicelo esisuka Kumhlinzeki Wesevisi" + "zu": "Iphutha lokucubungula isicelo esisuka Kumhlinzeki Wesevisi", + "ca": "S'ha produït un error en processar la sol·licitud del proveïdor de serveis" }, "descr_PROCESSAUTHNREQUEST": { "no": "Innloggingstjenesten mottok en autentiserings-foresp\u00f8rsel fra en tjeneste, men en feil oppsto i behandling av foresp\u00f8rselen.", @@ -1176,7 +1206,8 @@ "af": "Die Identiteits Verskaffer het 'n Verifikasie Versoek ontvang vanaf 'n Diens Verskaffer maar 'n fout het voorgekom tydens die verwerking van die versoek.", "el": "\u03a0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03c4\u03bf\u03c5 \u03b1\u03b9\u03c4\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2 \u03c0\u03bf\u03c5 \u03ad\u03bb\u03b1\u03b2\u03b5 \u03bf \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 \u03b1\u03c0\u03cc \u03c4\u03bf\u03bd \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd.", "zu": "Lo Mhlinzeki Kamazisi uthole Isicelo Sokuqinisekisa ukusuka Kumhlinzeki Wesevisi, kodw,a kuvele iphutha ngenkathi ezama ukucubungula isicelo.", - "xh": "Lo Mboneleli Wesazisi ufumene Isicelo Songqinisiso esisuka kuMboneleli Wenkonzo, kodwa kwenzeke impazamo xa kuzanywa ukuprosesa isicelo." + "xh": "Lo Mboneleli Wesazisi ufumene Isicelo Songqinisiso esisuka kuMboneleli Wenkonzo, kodwa kwenzeke impazamo xa kuzanywa ukuprosesa isicelo.", + "ca": "Aquest proveïdor d’identitat ha rebut una sol·licitud d’autenticació d’un proveïdor de serveis, però s’ha produït un error en intentar processar la sol·licitud." }, "title_SLOSERVICEPARAMS": { "no": "Ingen SAML-melding angitt", @@ -1214,7 +1245,8 @@ "af": "Geen SAML boodskap gevind nie", "el": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03c3\u03c4\u03b7 \u03b4\u03b9\u03b5\u03c0\u03b1\u03c6\u03ae SingleLogoutService", "zu": "Awukho umlayezo we-SAML onikeziwe", - "xh": "Akukho myalezo we-SAML unikelweyo" + "xh": "Akukho myalezo we-SAML unikelweyo", + "ca": "No s’ha proporcionat cap missatge SAML" }, "descr_SLOSERVICEPARAMS": { "no": "Du brukte SingleLogoutService-grensesnittet uten \u00e5 angi enten en SAML LogoutRequest eller en LogoutResponse.", @@ -1252,7 +1284,8 @@ "af": "Jy het toegang verkry na die SingleLogoutService koppelvlak('interface'), maar het geen SAML LogoutRequest of LogoutResponse gestuur nie.", "el": "\u039a\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03ae \u03c3\u03b1\u03c2 \u03c3\u03c4\u03b7 \u03b4\u03b9\u03b5\u03c0\u03b1\u03c6\u03ae SingleLogoutService \u03c0\u03b1\u03c1\u03b1\u03bb\u03b5\u03af\u03c8\u03b1\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c5\u03bc\u03c0\u03b5\u03c1\u03b9\u03bb\u03ac\u03b2\u03b5\u03c4\u03b5 \u03bc\u03ae\u03bd\u03c5\u03bc\u03b1 LogoutRequest \u03ae LogoutResponse \u03c4\u03bf\u03c5 \u03c0\u03c1\u03c9\u03c4\u03bf\u03ba\u03cc\u03bb\u03bb\u03bf\u03c5 SAML. \u03a3\u03b7\u03bc\u03b5\u03b9\u03ce\u03c3\u03c4\u03b5 \u03cc\u03c4\u03b9 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c4\u03b5\u03bb\u03b9\u03ba\u03cc \u03c3\u03b7\u03bc\u03b5\u03af\u03bf (endpoint) \u03b4\u03b5\u03bd \u03c0\u03c1\u03bf\u03bf\u03c1\u03af\u03b6\u03b5\u03c4\u03b1\u03b9 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03ac\u03bc\u03b5\u03c3\u03b1 \u03c0\u03c1\u03bf\u03c3\u03b2\u03ac\u03c3\u03b9\u03bc\u03bf.", "zu": "Ufinyelele ukusebenzisana kwe-SingleLogoutService, kodwa awuzange uhlinzeke nge-SAML LogoutRequest noma i-LogoutResponse. Sicela uphawule ukuthi isiphetho asihloselwe ukufinyelelwa ngokuqondile.", - "xh": "Ufikelele i-intafeyisi ye-SingleLogoutService, kodwa awukhange unikele i-SAML LogoutRequest okanye i-LogoutResponse. Nceda uqaphele ukuba le ndawo yokuphela ayilungiselelwanga ukuba ifikelelwe ngokuthe ngqo." + "xh": "Ufikelele i-intafeyisi ye-SingleLogoutService, kodwa awukhange unikele i-SAML LogoutRequest okanye i-LogoutResponse. Nceda uqaphele ukuba le ndawo yokuphela ayilungiselelwanga ukuba ifikelelwe ngokuthe ngqo.", + "ca": "Heu accedit a la interfície de SingleLogoutService, però no heu proporcionat un missatge SAML de LogoutRequest ni LogoutResponse. Tingueu en compte que en aquest punt no s'hi pot accedir directament." }, "title_ACSPARAMS": { "no": "Ingen SAML-respons angitt", @@ -1290,7 +1323,8 @@ "af": "Geen SAML versoek gevind nie", "el": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03c3\u03c4\u03b7 \u03b4\u03b9\u03b5\u03c0\u03b1\u03c6\u03ae AssertionConsumerService", "zu": "Ayikho impendulo ye-SAML enikeziwe", - "xh": "Akukho mpendulo ye-SAML inikelweyo" + "xh": "Akukho mpendulo ye-SAML inikelweyo", + "ca": "No s’ha proporcionat cap resposta de SAML" }, "descr_ACSPARAMS": { "no": "Du brukte AssertionConsumerService-grensesnittet uten \u00e5 angi en SAML AuthenticationResponse.", @@ -1328,27 +1362,32 @@ "af": "Jy het aansoek gedoen vir toegang na die Assertion Consumer Service koppelvlak, maar geen SAML Verifikasie Versoek is saam gestuur nie.", "el": "\u039a\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03ae \u03c3\u03b1\u03c2 \u03c3\u03c4\u03b7 \u03b4\u03b9\u03b5\u03c0\u03b1\u03c6\u03ae AssertionConsumerService \u03c0\u03b1\u03c1\u03b1\u03bb\u03b5\u03af\u03c8\u03b1\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c5\u03bc\u03c0\u03b5\u03c1\u03b9\u03bb\u03ac\u03b2\u03b5\u03c4\u03b5 \u03b1\u03c0\u03ac\u03bd\u03c4\u03b7\u03c3\u03b7 \u03c3\u03b5 \u03b1\u03af\u03c4\u03b7\u03bc\u03b1 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2 \u03c4\u03bf\u03c5 \u03c0\u03c1\u03c9\u03c4\u03bf\u03ba\u03cc\u03bb\u03bb\u03bf\u03c5 SAML. \u03a3\u03b7\u03bc\u03b5\u03b9\u03ce\u03c3\u03c4\u03b5 \u03cc\u03c4\u03b9 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c4\u03b5\u03bb\u03b9\u03ba\u03cc \u03c3\u03b7\u03bc\u03b5\u03af\u03bf (endpoint) \u03b4\u03b5\u03bd \u03c0\u03c1\u03bf\u03bf\u03c1\u03af\u03b6\u03b5\u03c4\u03b1\u03b9 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03ac\u03bc\u03b5\u03c3\u03b1 \u03c0\u03c1\u03bf\u03c3\u03b2\u03ac\u03c3\u03b9\u03bc\u03bf.", "zu": "Ufinyelele ukusebenzisana Kwesevisi Yomthengi Yesimemezelo, kodwa awuzange uhlinzeke Ngempendulo Yokuqinisekisa ye-SAML. Sicela uphawule ukuthi isiphetho asihloselwe ukufinyelelwa ngokuqondile.", - "xh": "Ufikelele i-intafeyisi ye-Assertion Consumer Service, kodwa awukhange unikele iMpendulo Yongqinisiso ye-SAML. Nceda uqaphele ukuba le ndawo yokuphela ayilungiselelwanga ukuba ifikelelwe ngokuthe ngqo." + "xh": "Ufikelele i-intafeyisi ye-Assertion Consumer Service, kodwa awukhange unikele iMpendulo Yongqinisiso ye-SAML. Nceda uqaphele ukuba le ndawo yokuphela ayilungiselelwanga ukuba ifikelelwe ngokuthe ngqo.", + "ca": "Heu accedit a la interfície Assertion Consumer Service però no heu proporcionat una resposta d’autenticació SAML. Tingueu en compte que en aquest punt no s'hi pot accedir directament." }, "title_SSOPARAMS": { "zh-tw": "\u672a\u63d0\u4f9b SAML \u8acb\u6c42", "zu": "Asikho isicelo se-SAML esinikeziwe", - "xh": "Akukho sicelo se-SAML sinikelweyo" + "xh": "Akukho sicelo se-SAML sinikelweyo", + "ca": "No s’ha proporcionat cap sol·licitud SAML" }, "descr_SSOPARAMS": { "zh-tw": "\u60a8\u9023\u7d50\u55ae\u4e00\u7c3d\u5165\u670d\u52d9\u4ecb\u9762\uff0c\u4f46\u672a\u63d0\u4f9b\u4e00\u500b SAML \u9a57\u8b49\u8acb\u6c42\u3002\u8acb\u6ce8\u610f\uff0c\u8a72\u7aef\u9ede\u4e26\u975e\u76f4\u63a5\u9023\u7dda\u3002", "xh": "Ufikelele i-intafeyisi ye-Single Sign On Service, kodwa awukhange unikele iMpendulo Yongqinisiso ye-SAML. Nceda uqaphele ukuba le ndawo yokuphela ayilungiselelwanga ukuba ifikelelwe ngokuthe ngqo.", - "zu": "Ufinyelele ukusebenzisana Kwesevisi Yokubhalisa Okukodwa, kodwa awuzange uhlinzeke Ngempendulo Yokuqinisekisa ye-SAML. Sicela uphawule ukuthi isiphetho asihloselwe ukufinyelelwa ngokuqondile." + "zu": "Ufinyelele ukusebenzisana Kwesevisi Yokubhalisa Okukodwa, kodwa awuzange uhlinzeke Ngempendulo Yokuqinisekisa ye-SAML. Sicela uphawule ukuthi isiphetho asihloselwe ukufinyelelwa ngokuqondile.", + "ca": "Heu accedit a la interfície del servei d’inici de sessió únic, però no heu proporcionat una sol·licitud d’autenticació SAML. Tingueu en compte que en aquest punt no s'hi pot accedir directament." }, "title_ARSPARAMS": { "zh-tw": "\u672a\u63d0\u4f9b SAML \u8a0a\u606f", "zu": "Awukho umlayezo we-SAML onikeziwe", - "xh": "Akukho myalezo we-SAML unikelweyo" + "xh": "Akukho myalezo we-SAML unikelweyo", + "ca": "No s’ha proporcionat cap missatge SAML" }, "descr_ARSPARAMS": { "zh-tw": "\u60a8\u9023\u7d50\u4eba\u5de5\u8655\u7406\u670d\u52d9\u4ecb\u9762\uff0c\u4f46\u672a\u63d0\u4f9b SAML \u4eba\u5de5\u8655\u7406\u670d\u52d9\u8a0a\u606f\u3002\u8acb\u6ce8\u610f\uff0c\u8a72\u7aef\u9ede\u4e26\u975e\u76f4\u63a5\u9023\u7dda\u3002", "xh": "Ufikelele i-intafeyisi ye-Artifact Resolution Service, kodwa awukhange unikrele umyalezo we-SAML ArtifactResolve. Nceda uqaphele ukuba le ndawo yokuphela ayilungiselelwanga ukuba ifikelelwe ngokuthe ngqo.", - "zu": "Ufinyelele ukusebenzisana Kwesevisi Yokucaciswa Kobuciko, kodwa awuzange uhlinzeke umlayezo we-SAML ArtifactResolve. Sicela uphawule ukuthi isiphetho asihloselwe ukufinyelelwa ngokuqondile." + "zu": "Ufinyelele ukusebenzisana Kwesevisi Yokucaciswa Kobuciko, kodwa awuzange uhlinzeke umlayezo we-SAML ArtifactResolve. Sicela uphawule ukuthi isiphetho asihloselwe ukufinyelelwa ngokuqondile.", + "ca": "Heu accedit a la interfície del servei de resolució Artifact, però no heu proporcionat un missatge d’ArtifactResolve de SAML. Tingueu en compte que en aquest punt no s'hi pot accedir directament." }, "title_CASERROR": { @@ -1387,7 +1426,8 @@ "af": "CAS Fout", "el": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 CAS", "xh": "Impazamo ye-CAS", - "zu": "Iphutha Le-CAS" + "zu": "Iphutha Le-CAS", + "ca": "Error CAS" }, "descr_CASERROR": { "no": "Feil i kommunikasjonen med CAS-tjeneren.", @@ -1425,7 +1465,8 @@ "af": "Fout tydens kommunikasie met die CAS bediener.", "el": "\u03a0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03b5\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03af\u03b1 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03b5\u03be\u03c5\u03c0\u03b7\u03c1\u03b5\u03c4\u03b7\u03c4\u03ae CAS.", "zu": "Iphutha ngenkathi kuxhunyanwa neseva ye-CAS.", - "xh": "Impazamo xa kunxibelelwana neseva ye-CAS." + "xh": "Impazamo xa kunxibelelwana neseva ye-CAS.", + "ca": "S'ha produït un error al intentar connectar amb el servidor CAS." }, "title_CONFIG": { "no": "Feil i oppsettet", @@ -1463,7 +1504,8 @@ "af": "Instellings fout", "el": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd", "zu": "Iphutha lomiso", - "xh": "Impazamo yolungiselelo" + "xh": "Impazamo yolungiselelo", + "ca": "Error de configuració" }, "descr_CONFIG": { "no": "Det virker som det er en feil i oppsettet av SimpleSAMLphp.", @@ -1501,7 +1543,8 @@ "af": "SimpleSAMLphp is nie korrek ingestel nie", "el": "\u03a0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd \u03c4\u03bf\u03c5 SimpleSAMLphp. \u0395\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03ae\u03c3\u03c4\u03b5 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae \u03c4\u03b7\u03c2 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1\u03c2.", "xh": "I-SimpleSAMLphp ibonakala ingalungiselelwanga kakuhle.", - "zu": "I-SimpleSAMLphp ibonakala ingamisiwe ngendlela efanele." + "zu": "I-SimpleSAMLphp ibonakala ingamisiwe ngendlela efanele.", + "ca": "SimpleSAMLphp sembla estar mal configurat." }, "title_NOTSET": { "no": "Passordet er ikke satt", @@ -1539,7 +1582,8 @@ "af": "Wagwoord nie opgestel nie", "el": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2", "xh": "Iphaswedi ayisetwanga", - "zu": "Iphasiwedi ayisethiwe" + "zu": "Iphasiwedi ayisethiwe", + "ca": "No s'ha definit la contrasenya" }, "descr_NOTSET": { "no": "Admin passordet i konfigurasjonen (auth.adminpassword) er ikke satt til noe annet enn default verdien. Bytt passord i config.php.", @@ -1577,7 +1621,8 @@ "af": "Die wagwoord in die konfigurasie (auth.adminpassword) is nie aangepas nie. Redigeer asb die konfigurasie le\u00ebr.", "el": "\u03a7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b5\u03af\u03c4\u03b1\u03b9 \u03b7 \u03c0\u03c1\u03bf\u03ba\u03b1\u03b8\u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03b7 \u03c4\u03b9\u03bc\u03ae \u03c4\u03bf\u03c5 \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03bf\u03cd\u03bc\u03b5 \u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03c4\u03b5\u03af\u03c4\u03b5 \u03c4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd.", "xh": "Iphaswedi ekulungiselelo (auth.adminpassword) ayitshintshwanga ukusuka kwixabiso lesiseko. Nceda uhlele ifayile yolungiselelo.", - "zu": "Iphasiwedi kumiso (auth.adminpassword) ayishintshiwe kunani elizenzakalelayo. Sicela uhlele ifayela lomiso." + "zu": "Iphasiwedi kumiso (auth.adminpassword) ayishintshiwe kunani elizenzakalelayo. Sicela uhlele ifayela lomiso.", + "ca": "La contrasenya de la configuració (auth.adminpassword) no s'ha canviat del valor predeterminat. Editeu el fitxer de configuració." }, "title_NOTVALIDCERT": { "no": "Ugyldig sertifikat", @@ -1615,7 +1660,8 @@ "af": "Ongeldige sertifikaat", "el": "\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf \u03c0\u03b9\u03c3\u03c4\u03bf\u03c0\u03bf\u03b9\u03b7\u03c4\u03b9\u03ba\u03cc", "xh": "Isatifikethi esingasebenziyo", - "zu": "Isitifiketi esingalungile" + "zu": "Isitifiketi esingalungile", + "ca": "Certificat no vàlid" }, "descr_NOTVALIDCERT": { "no": "Du presenterte ikke et gyldig sertifikat", @@ -1653,7 +1699,8 @@ "af": "Jy het nie 'n geldige sertifikaat gestuur nie.", "el": "\u03a0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03bb\u03cc\u03b3\u03c9 \u03bc\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c5 \u03c0\u03b9\u03c3\u03c4\u03bf\u03c0\u03bf\u03b9\u03b7\u03c4\u03b9\u03ba\u03bf\u03cd.", "zu": "Awuzange wethule isitifiketi esilungile.", - "xh": "Awukhange uzise isatifikethi esisebenzayo." + "xh": "Awukhange uzise isatifikethi esisebenzayo.", + "ca": "No heu presentat un certificat vàlid." }, "errorreport_header": { "no": "Feilrapport sent", @@ -1690,7 +1737,8 @@ "af": "Foutmeldingsverslag gestuur", "el": "\u0397 \u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1\u03c4\u03bf\u03c2 \u03c3\u03c4\u03ac\u03bb\u03b8\u03b7\u03ba\u03b5", "zu": "Umbiko wephutha uthunyelwe", - "xh": "Ingxelo yempazamo ithunyelwe" + "xh": "Ingxelo yempazamo ithunyelwe", + "ca": "S'ha enviat un informe d'error" }, "errorreport_text": { "no": "Feilrapport er sent til administrator.", @@ -1727,7 +1775,8 @@ "af": "Die foutmeldings verslag is gestuur na die administrateurs.", "el": "\u0397 \u03b1\u03c0\u03bf\u03c3\u03c4\u03bf\u03bb\u03ae \u03c4\u03b7\u03c2 \u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac\u03c2 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1\u03c4\u03bf\u03c2 \u03c3\u03c4\u03bf\u03c5\u03c2 \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ad\u03c2 \u03bf\u03bb\u03bf\u03ba\u03bb\u03b7\u03c1\u03ce\u03b8\u03b7\u03ba\u03b5.", "xh": "Ingxelo yempazamo ithunyelwe kubalawuli.", - "zu": "Umbiko wephutha uthunyelwe kubalawuli." + "zu": "Umbiko wephutha uthunyelwe kubalawuli.", + "ca": "L’informe d’errors s’ha enviat als administradors." }, "title_LOGOUTINFOLOST": { "no": "Informasjon om utlogging er tapt", @@ -1764,7 +1813,8 @@ "af": "Afmelding informasie verlore", "el": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03b1\u03c0\u03bf\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2", "zu": "Ulwazi lokuphuma lulahlekile", - "xh": "Inkcazelo yokuphuma ilahlekile" + "xh": "Inkcazelo yokuphuma ilahlekile", + "ca": "S'ha perdut la informació del tancament de sessió" }, "descr_LOGOUTINFOLOST": { "no": "Informasjonen om den n\u00e5v\u00e6rende utloggingen har g\u00e5tt tapt. Du b\u00f8r g\u00e5 tilbake til den opprinnelige tjesesten og pr\u00f8ve \u00e5 logge ut p\u00e5 nytt. Informasjon om utloggingsoperasjoner er kun lagret i en begrenset tid - vanligvis noen timer. Dette er lengere tid enn en vanlig utlogging skal ta, s\u00e5 denne feilen kan tyde p\u00e5 at noe er galt med oppsettet. Ta kontakt med tjenesteyteren hvis problemet gjentar seg.", @@ -1801,7 +1851,8 @@ "af": "Die inligting vir die huidige uiteken sessie is verlore. Jy moet terugkeer na die diens waarvan jy probeer afmeld het en probeer om weer af te meld. Di\u00e9 fout kan voorkom weens verstreke afmelding inligting. Die afmelding inligting word gestoor vir 'n beperkte tydperk - gewoonlik 'n paar ure. Dit is langer as wat 'n normale afmelding sessie moet vat, so die fout mag 'n indikasie wees van 'n probleem met die stellings. Kontak jou diens verskaffer sou die probleem voortduur.", "el": "\u039f\u03b9 \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 \u03c3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ac \u03bc\u03b5 \u03c4\u03b7\u03bd \u03b1\u03c0\u03bf\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03ad\u03c7\u03bf\u03c5\u03bd \u03c7\u03b1\u03b8\u03b5\u03af. \u0398\u03b1 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03c0\u03b9\u03c3\u03c4\u03c1\u03ad\u03c8\u03b5\u03c4\u03b5 \u03c3\u03c4\u03b7\u03bd \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd \u03bf\u03c0\u03bf\u03af\u03b1 \u03c0\u03c1\u03bf\u03c3\u03c0\u03b1\u03b8\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03b1\u03c0\u03bf\u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03ba\u03b1\u03b9 \u03bd\u03b1 \u03c0\u03c1\u03bf\u03c3\u03c0\u03b1\u03b8\u03ae\u03c3\u03b5\u03c4\u03b5 \u03b5\u03ba \u03bd\u03ad\u03bf\u03c5. \u0391\u03c5\u03c4\u03cc \u03c4\u03bf \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03c0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03b1\u03c3\u03c4\u03b5\u03af \u03b1\u03bd \u03b7 \u03b9\u03c3\u03c7\u03cd\u03c2 \u03c4\u03c9\u03bd \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03b9\u03ce\u03bd \u03c3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ac \u03bc\u03b5 \u03c4\u03b7\u03bd \u03b1\u03c0\u03bf\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03ad\u03c7\u03b5\u03b9 \u03bb\u03ae\u03be\u03b5\u03b9. \u039f\u03b9 \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 \u03b1\u03c5\u03c4\u03ad\u03c2 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03cd\u03b5\u03c4\u03b1\u03b9 \u03b3\u03b9\u03b1 \u03c0\u03b5\u03c1\u03b9\u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf \u03c7\u03c1\u03bf\u03bd\u03b9\u03ba\u03cc \u03b4\u03b9\u03ac\u03c3\u03c4\u03b7\u03bc\u03b1 - \u03c3\u03c5\u03bd\u03ae\u03b8\u03c9\u03c2 \u03bc\u03b5\u03c1\u03b9\u03ba\u03ce\u03bd \u03c9\u03c1\u03ce\u03bd. \u0391\u03c5\u03c4\u03cc \u03c3\u03c5\u03bd\u03ae\u03b8\u03c9\u03c2 \u03b5\u03c0\u03b1\u03c1\u03ba\u03b5\u03af \u03b3\u03b9\u03b1 \u03bc\u03b9\u03b1 \u03ba\u03b1\u03bd\u03bf\u03bd\u03b9\u03ba\u03ae \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03b1\u03c0\u03bf\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2, \u03c3\u03c5\u03bd\u03b5\u03c0\u03ce\u03c2 \u03c3\u03c4\u03b7\u03bd \u03c0\u03c1\u03bf\u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03b7 \u03c0\u03b5\u03c1\u03af\u03c0\u03c4\u03c9\u03c3\u03b7 \u03c4\u03bf \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03c5\u03c0\u03bf\u03b4\u03b5\u03b9\u03ba\u03bd\u03cd\u03b5\u03b9 \u03ba\u03ac\u03c0\u03bf\u03b9\u03bf \u03ac\u03bb\u03bb\u03bf \u03b8\u03ad\u03bc\u03b1 \u03bc\u03b5 \u03c4\u03b9\u03c2 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2. \u0395\u03ac\u03bd \u03c4\u03bf \u03c0\u03c1\u03cc\u03b2\u03bb\u03b7\u03bc\u03b1 \u03c0\u03b1\u03c1\u03b1\u03bc\u03ad\u03bd\u03b5\u03b9, \u03b5\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03ae\u03c3\u03c4\u03b5 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd.", "zu": "Ulwazi olumayelana nomsebenzi wokuphuma wamanje lulahlekile. Kufanele ubuyele kusevisi obuzama ukuphuma kuyo futhi uzame ukuphuma futhi. Leli phutha lingabangelwa ukuphelelwa isikhathi kolwazi lokuphuma. Ulwazi lokuphuma lugcinwa isikhathi esilinganiselwe - ngokuvamile amahora ambalwa. Lokhu kude kunanoma yimuphi umsebenzi wokuphuma ovamile, ngakho leli phutha lingase libonise elinye iphutha ngomiso. Uma inkinga iphikelela, thinta umhlinzeki wakho wesevisi.", - "xh": "Inkcazelo malunga nomsebenzi wokuphuma wangoku ilahlekile. Ufanele ubuyele kwinkonzo ubuzama ukuphuma kuyo uzame ukuphuma kwakhona. Le mpazamo inokubangelwa kukuphelelwa kwenkcazelo yokuphuma. Inkcazelo yokuphuma igcinwa ixesha elithile - ngokuqhelekileyo iiyure eziliqela. Oku kuthatha ixesha elide kunawo nawuphi na umsebenzi wokuphuma ofanele ulithathe, ngoko le mpazamo isenokubonisa enye impazamo ngolungiselelo. Ukuba ingxaki iyaqhubeka, qhagamshela umboneleli wenkonzo wakho." + "xh": "Inkcazelo malunga nomsebenzi wokuphuma wangoku ilahlekile. Ufanele ubuyele kwinkonzo ubuzama ukuphuma kuyo uzame ukuphuma kwakhona. Le mpazamo inokubangelwa kukuphelelwa kwenkcazelo yokuphuma. Inkcazelo yokuphuma igcinwa ixesha elithile - ngokuqhelekileyo iiyure eziliqela. Oku kuthatha ixesha elide kunawo nawuphi na umsebenzi wokuphuma ofanele ulithathe, ngoko le mpazamo isenokubonisa enye impazamo ngolungiselelo. Ukuba ingxaki iyaqhubeka, qhagamshela umboneleli wenkonzo wakho.", + "ca": "S'ha perdut la informació sobre el tancament de sessió actual. Heu de tornar al servei del qual esteu intentant desconnectar i provar de sortir de nou. Aquest error pot ser causat per l’expiració de la informació del tancament de sessió. La informació de tancament de sessió s’emmagatzema per un període limitat de temps, normalment un nombre d'hores. Això és més llarg del que hauria de tenir qualsevol operació de tancament de sessió normal, de manera que aquest error pot indicar algun altre error amb la configuració. Si el problema continua, poseu-vos en contacte amb el vostre proveïdor de serveis." }, "title_UNHANDLEDEXCEPTION": { "no": "Uh\u00e5ndtert feil", @@ -1838,7 +1889,8 @@ "af": "Onverwagte foutmelding", "el": "\u0391\u03bd\u03b5\u03c0\u03af\u03bb\u03c5\u03c4\u03b7 \u03b5\u03be\u03b1\u03af\u03c1\u03b5\u03c3\u03b7", "xh": "Isinxaxhi esingasingathwanga", - "zu": "Okuhlukile okungasingathiwe" + "zu": "Okuhlukile okungasingathiwe", + "ca": "Excepció no controlada" }, "descr_UNHANDLEDEXCEPTION": { "no": "En uventet feilsituasjon oppstod", @@ -1875,7 +1927,8 @@ "af": "'n Onverwagte foutmelding is aangetoon", "el": "\u03a0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5 \u03b1\u03bd\u03b5\u03c0\u03af\u03bb\u03c5\u03c4\u03b7 \u03b5\u03be\u03b1\u03af\u03c1\u03b5\u03c3\u03b7", "xh": "Isinxaxhi esingasingathwanga silahliwe.", - "zu": "Okuhlukile okungasingathiwe kulahliwe." + "zu": "Okuhlukile okungasingathiwe kulahliwe.", + "ca": "S'ha enviat una excepció no controlada." }, "title_NOTFOUND": { "no": "Kan ikke finne siden", @@ -1912,7 +1965,8 @@ "af": "Bladsy nie gevind nie", "el": "\u0397 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1 \u03b4\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b5", "xh": "Ikhasi alifunyenwanga", - "zu": "Ikhasi alitholakali" + "zu": "Ikhasi alitholakali", + "ca": "Pàgina no trobada" }, "descr_NOTFOUND": { "no": "Den angitte siden finnes ike. URLen var: %URL%", @@ -1949,7 +2003,8 @@ "af": "Die bladsy bestaan nie. Die URL was: %URL%", "el": "\u0397 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1 \u03c0\u03bf\u03c5 \u03b6\u03b7\u03c4\u03ae\u03c3\u03b1\u03c4\u03b5 \u03c3\u03c4\u03b7 \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 %URL% \u03b4\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b5.", "zu": "Ikhasi elinikeziwe alitholakalanga. I-URL ibithi: %URL%", - "xh": "Ikhasi elinikelweyo alifunyenwanga. I-URL ngu: %URL%" + "xh": "Ikhasi elinikelweyo alifunyenwanga. I-URL ngu: %URL%", + "ca": "No s’ha trobat la pàgina indicada. L’URL és: %URL%" }, "title_NOTFOUNDREASON": { "no": "Kan ikke finne siden", @@ -1986,7 +2041,8 @@ "af": "Bladsy nie gevind nie", "el": "\u0397 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1 \u03b4\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b5", "xh": "Ikhasi alifunyenwanga", - "zu": "Ikhasi alitholakali" + "zu": "Ikhasi alitholakali", + "ca": "Pàgina no trobada" }, "descr_NOTFOUNDREASON": { "no": "Den angitte siden finnes ikke. Grunnen er: %REASON%. URLen var: %URL%", @@ -2023,7 +2079,8 @@ "af": "Die gegewe bladsy is nie gevind nie. Die rede was: %REASON%. Die URL was: %URL%", "el": "\u0397 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1 \u03c0\u03bf\u03c5 \u03b6\u03b7\u03c4\u03ae\u03c3\u03b1\u03c4\u03b5 \u03c3\u03c4\u03b7 \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 %URL% \u03b4\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b5: %REASON%", "zu": "Ikhasi elinikeziwe alitholakalanga. Isizathu besithi: %REASON% I-URL ibithi: %URL%", - "xh": "Ikhasi elinikelweyo alifunyenwanga. Isizathu sesi: %REASON% I-URL ngu: %URL%" + "xh": "Ikhasi elinikelweyo alifunyenwanga. Isizathu sesi: %REASON% I-URL ngu: %URL%", + "ca": "No s’ha trobat la pàgina indicada. El motiu és: %REASON%. L’URL és: %URL%" }, "title_BADREQUEST": { "no": "Feil foresp\u00f8rsel motatt", @@ -2060,7 +2117,8 @@ "af": "Foutiewe versoek ontvang", "el": "\u0395\u03c3\u03c6\u03b1\u03bb\u03bc\u03ad\u03bd\u03bf \u03b1\u03af\u03c4\u03b7\u03bc\u03b1", "zu": "Kutholwe umlayezo ongalungile", - "xh": "Kufunyenwe isicelo esibi" + "xh": "Kufunyenwe isicelo esibi", + "ca": "S'ha rebut una petició incorrecta" }, "descr_BADREQUEST": { "no": "En feil oppsto i foresp\u00f8rselen til denne siden. Grunnen var: %REASON%", @@ -2096,7 +2154,8 @@ "af": "Daar is 'n fout in die versoek na die bladsy. Die rede is: %REASON%", "el": "\u03a0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03c4\u03bf\u03c5 \u03b1\u03b9\u03c4\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2: %REASON%", "zu": "Kukhona iphutha kusicelo saleli khasi. Isizathu besithi: %REASON%", - "xh": "Kukho impazamo kwisicelo kweli khasi. Isizathu sesi: %REASON%" + "xh": "Kukho impazamo kwisicelo kweli khasi. Isizathu sesi: %REASON%", + "ca": "Hi ha un error en la sol·licitud d’aquesta pàgina. El motiu és: %REASON%" }, "title_WRONGUSERPASS": { "no": "Feil brukernavn og passord", @@ -2133,7 +2192,8 @@ "af": "Inkorrekte gebruikersnaam of wagwoord", "el": "\u03a4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03ae \u03bf \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03bb\u03ac\u03b8\u03bf\u03c2", "zu": "Igama lomsebenzisi elingalungile noma iphasiwedi", - "xh": "Igama lomsebenzisi okanye iphaswedi engachanekanga" + "xh": "Igama lomsebenzisi okanye iphaswedi engachanekanga", + "ca": "Nom d'usuari o contrasenya incorrecta" }, "descr_WRONGUSERPASS": { "no": "Enten var brukernavnet, eller kombinasjonen med brukernavn og passord feil. Sjekk brukernavn og passord og pr\u00f8v igjen.", @@ -2169,7 +2229,8 @@ "af": "Die gegewe gebruikersnaam bestaan nie, of die wagwoord wat jy verskaf het is verkeerd. Bevestig die gebruikersnaam en probeer weer.", "el": "\u039f \u03c3\u03c5\u03bd\u03b4\u03c5\u03b1\u03c3\u03bc\u03cc\u03c2 \u03bf\u03bd\u03cc\u03bc\u03b1\u03c4\u03bf\u03c2 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03ba\u03b1\u03b9 \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2 \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03c3\u03c9\u03c3\u03c4\u03cc\u03c2. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b5\u03bb\u03ad\u03b3\u03be\u03c4\u03b5 \u03c4\u03b7\u03bd \u03bf\u03c1\u03b8\u03cc\u03c4\u03b7\u03c4\u03b1 \u03c4\u03c9\u03bd \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03c9\u03bd \u03c3\u03b1\u03c2 \u03ba\u03b1\u03b9 \u03c0\u03c1\u03bf\u03c3\u03c0\u03b1\u03b8\u03ae\u03c3\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac.", "zu": "Kungenzeka ukuthi akekho umsebenzisi onegama lomsebenzisi otholiwe, noma iphasiwedi oyinikezile ayilungile. Sicela uhlole igama lomsebenzisi bese uzame futhi.", - "xh": "Kusenokwenzeka akukho msebenzisi unegama lomsebenzisi elinikelweyo ofunyenweyo, okanye iphaswedi oyinikeleyo ayichanekanga. Nceda ujonge igama lomsebenzisi uzame kwakhona." + "xh": "Kusenokwenzeka akukho msebenzisi unegama lomsebenzisi elinikelweyo ofunyenweyo, okanye iphaswedi oyinikeleyo ayichanekanga. Nceda ujonge igama lomsebenzisi uzame kwakhona.", + "ca": "No s’ha pogut trobar cap usuari amb el nom d’usuari donat, o la contrasenya no és correcta. Comproveu el nom d’usuari i torneu-ho a provar." }, "title_RESPONSESTATUSNOSUCCESS": { "no": "Feilmelding mottatt fra innloggingstjenesten", @@ -2206,7 +2267,8 @@ "af": "Foutmelding ontvang vanaf die Identiteits Verskaffer", "el": "\u039b\u03ae\u03c8\u03b7 \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1\u03c4\u03bf\u03c2 \u03b1\u03c0\u03cc \u03c4\u03bf\u03bd \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2", "zu": "Iphutha litholwe ukusuka Kumhlinzeki Kamazisi", - "xh": "Impazamo efunyenwe kuMboneleli Wesazisi" + "xh": "Impazamo efunyenwe kuMboneleli Wesazisi", + "ca": "S'ha rebut un error del proveïdor d’identitats" }, "descr_RESPONSESTATUSNOSUCCESS": { "no": "Innloggingstjenesten svarte med en feilmelding. (Statuskoden i SAML-svaret var noe annet enn OK)", @@ -2243,7 +2305,8 @@ "af": "Die Identiteits Verskaffer reageer met 'n fout. (Die status kode in die SAML reaksie was onsuksesvol)", "el": "\u039f \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7\u03c2 \u03c0\u03bf\u03c5 \u03c0\u03b5\u03c1\u03b9\u03ad\u03c7\u03b5\u03b9 \u03b7 \u03b1\u03c0\u03ac\u03bd\u03c4\u03b7\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03c0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 \u03c5\u03c0\u03bf\u03b4\u03b5\u03b9\u03ba\u03bd\u03cd\u03b5\u03b9 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1.", "xh": "Umboneleli Wesazisi uphendule ngempazamo. (Ikhowudi yobume kwiMpendulo ye-SAML ayiphumelelanga)", - "zu": "Umhlinzeki Womazisi uphendule ngephutha. (Ikhodi yesimo Sempendulo ye-SAML ayizange iphumelele)" + "zu": "Umhlinzeki Womazisi uphendule ngephutha. (Ikhodi yesimo Sempendulo ye-SAML ayizange iphumelele)", + "ca": "El proveïdor d’identitat ha respost amb un error (el codi d'estat de la resposta SAML no ha estat exitós)." }, "title_NOCERT": { "fr": "Aucun certificat pr\u00e9sent\u00e9", @@ -2278,7 +2341,8 @@ "af": "Geen sertifikaat", "el": "\u0394\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9 \u03c0\u03b9\u03c3\u03c4\u03bf\u03c0\u03bf\u03b9\u03b7\u03c4\u03b9\u03ba\u03cc", "xh": "Akukho satifikethi", - "zu": "Asikho isitifiketi" + "zu": "Asikho isitifiketi", + "ca": "Sense certificat" }, "descr_NOCERT": { "fr": "\u00c9chec de l'authentification : votre navigateur n'a pas pr\u00e9sent\u00e9 de certificat", @@ -2312,7 +2376,8 @@ "af": "Verifikasie het misluk: Jou webblaaier het geen sertifikaat gestuur nie", "el": "\u0397 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5: \u03a4\u03bf \u03c0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1 \u03c0\u03b5\u03c1\u03b9\u03ae\u03b3\u03b7\u03c3\u03b7\u03c2 \u03b9\u03c3\u03c4\u03bf\u03cd \u03c0\u03bf\u03c5 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b5\u03af\u03c4\u03b5 \u03b4\u03b5\u03bd \u03ad\u03c3\u03c4\u03b5\u03b9\u03bb\u03b5 \u03c0\u03b9\u03c3\u03c4\u03bf\u03c0\u03bf\u03b9\u03b7\u03c4\u03b9\u03ba\u03cc.", "zu": "Ukuqinisekisa kuhlulekile: isiphequluli sakho asizange sithumele noma yisiphi isitifiketi", - "xh": "Ungqinisiso lusilele: ibhrawuza yakho ayithumelanga nasiphi na isatifikethi" + "xh": "Ungqinisiso lusilele: ibhrawuza yakho ayithumelanga nasiphi na isatifikethi", + "ca": "Ha fallat l’autenticació: el navegador no ha enviat cap certificat" }, "title_INVALIDCERT": { "fr": "Certificat invalide", @@ -2347,7 +2412,8 @@ "af": "Ongeldige sertifikaat", "el": "\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf \u03c0\u03b9\u03c3\u03c4\u03bf\u03c0\u03bf\u03b9\u03b7\u03c4\u03b9\u03ba\u03cc", "xh": "Isatifikethi esingasebenziyo", - "zu": "Isifiketi esingalungile" + "zu": "Isifiketi esingalungile", + "ca": "Certificat no vàlid" }, "descr_INVALIDCERT": { "fr": "\u00c9chec de l'authentification : le certificat pr\u00e9sent\u00e9 par votre navigateur est invalide ou illisible", @@ -2381,7 +2447,8 @@ "af": "Verifikasie het misluk: Jou webblaaier het 'n ongeldige of korrupte sertifikaat gestuur", "el": "\u0397 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5: \u03a4\u03bf \u03c0\u03b9\u03c3\u03c4\u03bf\u03c0\u03bf\u03b9\u03b7\u03c4\u03b9\u03ba\u03cc \u03c0\u03bf\u03c5 \u03ad\u03c3\u03c4\u03b5\u03b9\u03bb\u03b5 \u03c4\u03bf \u03c0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1 \u03c0\u03b5\u03c1\u03b9\u03ae\u03b3\u03b7\u03c3\u03b7\u03c2 \u03b9\u03c3\u03c4\u03bf\u03cd \u03c0\u03bf\u03c5 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b5\u03af\u03c4\u03b5 \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf \u03ae \u03b4\u03b5\u03bd \u03ae\u03c4\u03b1\u03bd \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b1\u03bd\u03ac\u03b3\u03bd\u03c9\u03c3\u03ae \u03c4\u03bf\u03c5.", "xh": "Ungqinisiso lusilele: isatifikethi esithunyelwe yibhrawuza yakho asisebenzi okanye asikwazi ukufundwa", - "zu": "Ukuqinisekisa kuhlulekile: isitifiketi esithunyelwe isiphequluli sakho asivumelekile noma asikwazi ukufundwa" + "zu": "Ukuqinisekisa kuhlulekile: isitifiketi esithunyelwe isiphequluli sakho asivumelekile noma asikwazi ukufundwa", + "ca": "Ha fallat l’autenticació: el certificat que el navegador ha enviat no és vàlid o no es pot llegir" }, "title_UNKNOWNCERT": { "fr": "Certificat inconnu", @@ -2416,7 +2483,8 @@ "af": "Onbekende sertifikaat", "el": "\u0386\u03b3\u03bd\u03c9\u03c3\u03c4\u03bf \u03c0\u03b9\u03c3\u03c4\u03bf\u03c0\u03bf\u03b9\u03b7\u03c4\u03b9\u03ba\u03cc", "zu": "Isitifiketi esingaziwa", - "xh": "Isatifikethi esingaziwayo" + "xh": "Isatifikethi esingaziwayo", + "ca": "Certificat desconegut" }, "descr_UNKNOWNCERT": { "fr": "\u00c9chec de l'authentification : le certificat pr\u00e9sent\u00e9 par votre navigateur n'est pas connu", @@ -2450,7 +2518,8 @@ "af": "Verifikasie het misluk: die sertifikaat wat jou webblaaier gestuur het is onbekend", "el": "\u0397 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5: \u03a4\u03bf \u03c0\u03b9\u03c3\u03c4\u03bf\u03c0\u03bf\u03b9\u03b7\u03c4\u03b9\u03ba\u03cc \u03c0\u03bf\u03c5 \u03ad\u03c3\u03c4\u03b5\u03b9\u03bb\u03b5 \u03c4\u03bf \u03c0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1 \u03c0\u03b5\u03c1\u03b9\u03ae\u03b3\u03b7\u03c3\u03b7\u03c2 \u03b9\u03c3\u03c4\u03bf\u03cd \u03c0\u03bf\u03c5 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b5\u03af\u03c4\u03b5 \u03b4\u03b5\u03bd \u03ae\u03c4\u03b1\u03bd \u03b4\u03c5\u03bd\u03b1\u03c4\u03cc \u03bd\u03b1 \u03b1\u03bd\u03b1\u03b3\u03bd\u03c9\u03c1\u03b9\u03c3\u03c4\u03b5\u03af.", "zu": "Ukuqinisekisa kuhlulekile: isitifiketi esithunyelwe isiphequluli sakho asaziwa", - "xh": "Ungqinisiso lusilele: isatifikerthi esithunyelwe yibhrawuza yakho asaziwa" + "xh": "Ungqinisiso lusilele: isatifikerthi esithunyelwe yibhrawuza yakho asaziwa", + "ca": "Ha fallat l’autenticació: el certificat que el navegador ha enviat és desconegut" }, "title_USERABORTED": { "da": "Autentificering aubrudt", @@ -2484,7 +2553,8 @@ "af": "Verifikasie gestop", "el": "\u0397 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03bc\u03b1\u03c4\u03b1\u03b9\u03ce\u03b8\u03b7\u03ba\u03b5", "zu": "Ukuqinisekisa kuyekisiwe", - "xh": "Ungqinisiso luyekiwe" + "xh": "Ungqinisiso luyekiwe", + "ca": "S'ha avortat l’autenticació" }, "descr_USERABORTED": { "da": "Autentificering blev afbrudt af brugeren", @@ -2518,7 +2588,8 @@ "af": "Die verifikasie is gestop deur die gebruiker", "el": "\u0397 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03bc\u03b1\u03c4\u03b1\u03b9\u03ce\u03b8\u03b7\u03ba\u03b5 \u03b1\u03c0\u03cc \u03c4\u03bf\u03bd \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7.", "zu": "Ukuqinisekisa kuyekiswe umsebenzisi", - "xh": "Ungqinisiso luyekiswe ngumsebenzisi" + "xh": "Ungqinisiso luyekiswe ngumsebenzisi", + "ca": "L’usuari ha cancel·lat l’autenticació" }, "title_NOSTATE": { "da": "State information tabt", @@ -2552,7 +2623,8 @@ "pt-br": "Informa\u00e7\u00f5es de estado perdidas", "el": "\u0394\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b1\u03bd \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 \u03c3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ac \u03bc\u03b5 \u03c4\u03b7\u03bd \u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03b1\u03b9\u03c4\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2", "xh": "Inkcazelo yobume ilahlekile", - "zu": "Ulwazi lwesifunda lulahlekile" + "zu": "Ulwazi lwesifunda lulahlekile", + "ca": "Informació d'estat perduda" }, "descr_NOSTATE": { "da": "State information er tabt og der er ikke muligt at gentage forsp\u00f8rgelsen", @@ -2586,7 +2658,8 @@ "pt-br": "Informa\u00e7\u00f5es de estado perdidas, e n\u00e3o \u00e9 poss\u00edvel reiniciar a requisi\u00e7\u00e3o", "el": "\u0394\u03b5\u03bd \u03ae\u03c4\u03b1\u03bd \u03b4\u03c5\u03bd\u03b1\u03c4\u03cc \u03bd\u03b1 \u03b5\u03be\u03c5\u03c0\u03b7\u03c1\u03b5\u03c4\u03b7\u03b8\u03b5\u03af \u03c4\u03bf \u03b1\u03af\u03c4\u03b7\u03bc\u03ac \u03c3\u03b1\u03c2 \u03ba\u03b1\u03b8\u03ce\u03c2 \u03b4\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b1\u03bd \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 \u03c3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ac \u03bc\u03b5 \u03c4\u03b7\u03bd \u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03ae \u03c4\u03bf\u03c5", "xh": "Inkcazelo yobume ilahlekile, yaye akukho ndlela yokuqalisa isicelo", - "zu": "Ulwazi lwesifunda lulahlekile, futhi ayikho indlela yokuqala kabusha isicelo" + "zu": "Ulwazi lwesifunda lulahlekile, futhi ayikho indlela yokuqala kabusha isicelo", + "ca": "Infomració d'estat perduda, i no hi ha cap manera de reiniciar la sol·licitud" }, "title_METADATANOTFOUND": { "da": "Metadata ikke fundet", @@ -2620,7 +2693,8 @@ "pt-br": "Metadado n\u00e3o encontrado", "el": "\u0394\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b1\u03bd \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1", "zu": "Imethadatha ayitholakalanga", - "xh": "Imetadata ayifunyenwanga" + "xh": "Imetadata ayifunyenwanga", + "ca": "Metadades no trobades" }, "descr_METADATANOTFOUND": { "da": "Kan ikke finde metadata for %ENTITYID%", @@ -2654,7 +2728,8 @@ "pt-br": "N\u00e3o foi poss\u00edvel localizar os metadados de %ENTITYID%", "el": "\u0394\u03b5\u03bd \u03ae\u03c4\u03b1\u03bd \u03b4\u03c5\u03bd\u03b1\u03c4\u03cc \u03bd\u03b1 \u03b2\u03c1\u03b5\u03b8\u03bf\u03cd\u03bd \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03bf\u03bd\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1 %ENTITYID%", "xh": "Ayikwazi ukufumana iimpawu-ngcaciso zefayile ze-%ENTITYID%", - "zu": "Ayikwazi ukuthola imethadatha yokuthi %ENTITYID%" + "zu": "Ayikwazi ukuthola imethadatha yokuthi %ENTITYID%", + "ca": "No es poden localitzar les metadades per a %ENTITYID%" }, "title_AUTHSOURCEERROR": { "hr": "Gre\u0161ka u autentifikacijskom modulu", @@ -2688,7 +2763,8 @@ "pt-br": "Erro na fonte de autentica\u00e7\u00e3o", "el": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03bc\u03b5 \u03c4\u03b7\u03bd \u03c0\u03b7\u03b3\u03ae \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2", "zu": "Iphutha lomthombo wokuqinisekisa", - "xh": "Impazamo yomthombo wongqinisiso" + "xh": "Impazamo yomthombo wongqinisiso", + "ca": "Error en l’autenticació d'origen" }, "descr_AUTHSOURCEERROR": { "hr": "Do\u0161lo je do gre\u0161ke u autentifikacijskom modulu %AUTHSOURCE%. Razlog: %REASON%", @@ -2722,18 +2798,21 @@ "pt-br": "Erro de autentica\u00e7\u00e3o na origem %AUTHSOURCE%. O motivo foi:%REASON%", "el": "\u03a0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03b5\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03af\u03b1 \u03bc\u03b5 \u03c4\u03b7\u03bd \u03c0\u03b7\u03b3\u03ae \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2 %AUTHSOURCE%: %REASON%", "zu": "Iphutha lokuqinisekisa kumthombo othi %AUTHSOURCE%. Isizathu besithi: %REASON%", - "xh": "Impazamo yongqinisiso kumthombo %AUTHSOURCE%. Isizathu sesi: %REASON%" + "xh": "Impazamo yongqinisiso kumthombo %AUTHSOURCE%. Isizathu sesi: %REASON%", + "ca": "Error en l’autenticació d'origen %AUTHSOURCE%. El motiu és: %REASON%" }, "title_MEMCACHEDOWN": { "zh-tw": "\u7121\u6cd5\u53d6\u5f97\u9023\u7dda Session \u8cc7\u8a0a", "el": "\u0394\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b1\u03bd\u03ac\u03ba\u03c4\u03b7\u03c3\u03b7 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03c3\u03c5\u03bd\u03b5\u03b4\u03c1\u03af\u03b1\u03c2", "xh": "Ayikwazi ukubuyisela ingcombolo yeseshoni", - "zu": "Ayikwazi ukubuyisela idatha yeseshini" + "zu": "Ayikwazi ukubuyisela idatha yeseshini", + "ca": "No es poden recuperar les dades de la sessió" }, "descr_MEMCACHEDOWN": { "zh-tw": "\u60a8\u7684\u9023\u7dda Session \u8cc7\u8a0a\u56e0\u70ba\u6280\u8853\u56f0\u96e3\u73fe\u5728\u7121\u6cd5\u53d6\u5f97\uff0c\u8acb\u7a0d\u5f85\u5e7e\u5206\u9418\u5f8c\u518d\u91cd\u8a66", "el": "\u0394\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b1\u03bd\u03ac\u03ba\u03c4\u03b7\u03c3\u03b7 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03c3\u03c5\u03bd\u03b5\u03b4\u03c1\u03af\u03b1\u03c2 \u03bb\u03cc\u03b3\u03c9 \u03c4\u03b5\u03c7\u03bd\u03b9\u03ba\u03ce\u03bd \u03b4\u03c5\u03c3\u03ba\u03bf\u03bb\u03b9\u03ce\u03bd. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03bf\u03cd\u03bc\u03b5 \u03b4\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac \u03b1\u03c1\u03b3\u03cc\u03c4\u03b5\u03c1\u03b1", "zu": "Idatha yeseshini yakho ayikwazi ukubuyiswa njengamanje ngenxa yezinkinga zobuchwepheshe. Sicela uzame futhi emizuzwini embalwa.", - "xh": "Ingcombolo yeseshoni yakho ayikwazi ukubuyiselwa okwangoku ngenxa yeengxaki zobugcisa. Nceda uzame kwakhona kwimizuzu embalwa." + "xh": "Ingcombolo yeseshoni yakho ayikwazi ukubuyiselwa okwangoku ngenxa yeengxaki zobugcisa. Nceda uzame kwakhona kwimizuzu embalwa.", + "ca": "Les vostres dades de sessió no es poden recuperar ara mateix a causa de dificultats tècniques. Torneu-ho a provar d'aquí a uns minuts." } } diff --git a/vendor/simplesamlphp/simplesamlphp/dictionaries/general.translation.json b/vendor/simplesamlphp/simplesamlphp/dictionaries/general.translation.json index 299ea9f16c478f550032094612f617175dab567a..e8cb0c1a1cf284320e865ccd4e21b8069ddac0aa 100644 --- a/vendor/simplesamlphp/simplesamlphp/dictionaries/general.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/dictionaries/general.translation.json @@ -35,7 +35,8 @@ "af": "Ja", "el": "\u039d\u03b1\u03af", "zu": "Yebo", - "xh": "Ewe" + "xh": "Ewe", + "ca": "Sí" }, "no": { "no": "Nei", @@ -73,7 +74,8 @@ "af": "Nee", "el": "\u038c\u03c7\u03b9", "xh": "Hayi", - "zu": "Cha" + "zu": "Cha", + "ca": "No" }, "remember": { "no": "Godta ogs\u00e5 for fremtiden", @@ -111,7 +113,8 @@ "af": "Onthou", "el": "\u039d\u03b1 \u03b8\u03c5\u03bc\u03ac\u03c3\u03b1\u03b9 \u03c4\u03b7\u03bd \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03bc\u03bf\u03c5", "zu": "Khumbula", - "xh": "Khumbula" + "xh": "Khumbula", + "ca": "Recorda" }, "yes_continue": { "no": "Ja, fortsett", @@ -149,7 +152,8 @@ "af": "Ja, voortgaan", "el": "\u0391\u03c0\u03bf\u03b4\u03bf\u03c7\u03ae", "xh": "Ewe, qhubeka", - "zu": "Yebo, qhubeka" + "zu": "Yebo, qhubeka", + "ca": "Sí, continua" }, "no_cancel": { "no": "Nei, avbryt", @@ -187,7 +191,8 @@ "af": "Nee, kanselleer", "el": "\u0391\u03c0\u03cc\u03c1\u03c1\u03b9\u03c8\u03b7", "xh": "Hayi, rhoxisa", - "zu": "Cha, khansela" + "zu": "Cha, khansela", + "ca": "No, cancel·la" }, "service_provider": { "no": "Tjenesteleverand\u00f8r", @@ -225,6 +230,7 @@ "af": "Diens Verskaffer", "el": "\u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1\u03c2", "xh": "Umboneleli Wenkonzo", - "zu": "Umhlinzeki Wesevisi" + "zu": "Umhlinzeki Wesevisi", + "ca": "Proveïdor de servei" } } diff --git a/vendor/simplesamlphp/simplesamlphp/dictionaries/login.translation.json b/vendor/simplesamlphp/simplesamlphp/dictionaries/login.translation.json index fd7f860605e2cf47b9388ff31b89c4aef5a00295..59cf9c861e984b485ad678242858783cb02caa1b 100644 --- a/vendor/simplesamlphp/simplesamlphp/dictionaries/login.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/dictionaries/login.translation.json @@ -35,7 +35,8 @@ "af": "Fout", "el": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1", "zu": "Iphutha", - "xh": "Impazamo" + "xh": "Impazamo", + "ca": "Error" }, "user_pass_header": { "no": "Skriv inn brukernavn og passord", @@ -73,7 +74,8 @@ "xh": "Nceda ngenisa igama lakho lomsebenzisi kunye negama lokugqithisa", "af": "Voer jou gebruikersnaam en wagwoord in", "el": "\u0395\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03ba\u03b1\u03b9 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2", - "zu": "Faka igama lakho lomsebenzisi nephasiwedi" + "zu": "Faka igama lakho lomsebenzisi nephasiwedi", + "ca": "Introduïu el vostre nom d’usuari i contrasenya" }, "user_pass_text": { "no": "En tjeneste har bedt om bekreftelse p\u00e5 din identitet. Skriv inn ditt brukernavn og passord for \u00e5 autentisere deg.", @@ -111,7 +113,8 @@ "af": "'n Diens vereis dat jy jouself identifiseer. Voer jou gebruikersnaam en wagwoord in die onderstaande vorm in.", "el": "\u039c\u03b9\u03b1 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1 \u03ad\u03c7\u03b5\u03b9 \u03b6\u03b7\u03c4\u03ae\u03c3\u03b5\u03b9 \u03c4\u03b7\u03bd \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03ae \u03c3\u03b1\u03c2. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b5\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03ba\u03b1\u03b9 \u03c4\u03bf\u03bd \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03ae\u03c2 \u03c3\u03b1\u03c2 \u03c3\u03c4\u03b7\u03bd \u03c0\u03b1\u03c1\u03b1\u03ba\u03ac\u03c4\u03c9 \u03c6\u03cc\u03c1\u03bc\u03b1.", "zu": "Isevisi icele ukuthi uziqinisekise. Sicela ufake igama lakho lomsebenzisi nephasiwedi ngohlobo olungezansi.", - "xh": "Inkonzo icele ukuba uzingqinisise. Nceda ungenise igama lomsebenzisi nephaswedi yakho kwifomu ngezantsi." + "xh": "Inkonzo icele ukuba uzingqinisise. Nceda ungenise igama lomsebenzisi nephaswedi yakho kwifomu ngezantsi.", + "ca": "Un servei us ha demanat autenticar-vos. Introduïu el vostre nom d’usuari i contrasenya en el formulari següent." }, "login_button": { "no": "Logg inn", @@ -150,14 +153,16 @@ "xh": "Ngena", "af": "Meld aan", "el": "\u0395\u03af\u03c3\u03bf\u03b4\u03bf\u03c2", - "zu": "Ngena" + "zu": "Ngena", + "ca": "Inicia la sessió" }, "processing": { "es": "Procesando...", "sl": "Procesiranje...", "zh-tw": "\u8655\u7406\u4e2d...", "zu": "Iyacubungula...", - "xh": "Iyaprosesa..." + "xh": "Iyaprosesa...", + "ca": "Processant.." }, "username": { "no": "Brukernavn", @@ -196,7 +201,8 @@ "xh": "Igama lomsebenzisi", "af": "Gebruikersnaam", "el": "\u038c\u03bd\u03bf\u03bc\u03b1 \u03a7\u03c1\u03ae\u03c3\u03c4\u03b7", - "zu": "Igama lomsebenzisi" + "zu": "Igama lomsebenzisi", + "ca": "Nom d'usuari" }, "organization": { "no": "Organisasjon", @@ -235,7 +241,8 @@ "xh": "Umbutho", "af": "Organisasie", "el": "\u039f\u03c1\u03b3\u03b1\u03bd\u03b9\u03c3\u03bc\u03cc\u03c2", - "zu": "Inhlangano" + "zu": "Inhlangano", + "ca": "Organització" }, "password": { "no": "Passord", @@ -274,7 +281,8 @@ "xh": "Igama lokugqithisa", "af": "Wagwoord", "el": "\u039a\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2", - "zu": "Iphasiwedi" + "zu": "Iphasiwedi", + "ca": "Contrasenya" }, "help_header": { "no": "Hjelp! Jeg har glemt passordet mitt.", @@ -312,7 +320,8 @@ "af": "Hulp! Ek het nie my wagwoord onthou nie.", "el": "\u0392\u03bf\u03ae\u03b8\u03b5\u03b9\u03b1! \u0394\u03b5 \u03b8\u03c5\u03bc\u03ac\u03bc\u03b1\u03b9 \u03c4\u03bf\u03bd \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03bc\u03bf\u03c5.", "zu": "Siza! Angiyikhumbuli iphasiwedi yami.", - "xh": "Ncedani! Andiyikhumbuli iphaswedi yam." + "xh": "Ncedani! Andiyikhumbuli iphaswedi yam.", + "ca": "Ajuda! No recordo la meva contrasenya." }, "help_text": { "no": "Synd! - Uten riktig brukernavn og passord kan du ikke autentisere deg. Det kan v\u00e6re noen som kan hjelpe deg. Fors\u00f8k \u00e5 kontakt brukerst\u00f8tte ved din vertsorganisasjon.", @@ -350,7 +359,8 @@ "af": "Jammer! - Sonder jou gebruikersnaam en wagwoord kan jy jouself nie vir toegang tot die diens identifiseer nie. Dalk is daar iemand wat jou kan help. Raadpleeg die hulplyn by jou organisasie!", "el": "\u039b\u03c5\u03c0\u03bf\u03cd\u03bc\u03b1\u03c3\u03c4\u03b5. \u03a7\u03c9\u03c1\u03af\u03c2 \u03c4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03ba\u03b1\u03b9 \u03c4\u03bf\u03bd \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03c3\u03b1\u03c2, \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03b5\u03af\u03c4\u03b5 \u03ce\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03b1\u03c0\u03bf\u03ba\u03c4\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03c3\u03c4\u03b7\u03bd \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1. \u03a3\u03c5\u03bc\u03b2\u03bf\u03c5\u03bb\u03b5\u03c5\u03c4\u03b5\u03af\u03c4\u03b5 \u03c4\u03b7\u03bd \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1 \u03b1\u03c1\u03c9\u03b3\u03ae\u03c2 \u03c7\u03c1\u03b7\u03c3\u03c4\u03ce\u03bd \u0028\u0068\u0065\u006c\u0070 \u0064\u0065\u0073\u006b\u0029 \u03c4\u03bf\u03c5 \u03bf\u03c1\u03b3\u03b1\u03bd\u03b9\u03c3\u03bc\u03bf\u03cd \u03c3\u03b1\u03c2.", "xh": "Ngaphandle kwegama lomsebenzisi nephaswedi yakho awukwazi ukuzingqinisisa ukuze ufumane ufikelelo kwinkonzo. Kusenokuba ukho umntu onokukunceda. Qhagamshelana nedesika yoncedo kumbutho wakho!", - "zu": "Ngaphandle kwegama lakho lomsebenzisi nephasiwedi awukwazi ukuziqinisekisa ukuze ufinyelele isevisi. Kungase kube khona ozokusiza. Thinta ideski losizo enhlanganweni yakho!" + "zu": "Ngaphandle kwegama lakho lomsebenzisi nephasiwedi awukwazi ukuziqinisekisa ukuze ufinyelele isevisi. Kungase kube khona ozokusiza. Thinta ideski losizo enhlanganweni yakho!", + "ca": "Sense el vostre nom d'usuari i contrasenya, no podeu autenticar-vos per accedir al servei. Pot ser que algú us pugui ajudar. Poseu-vos en contacte amb el centre d'atenció a l'usuari" }, "error_nopassword": { "no": "Du kontaktet loginsiden, men passordet ble ikke sendt med. Fors\u00f8k igjen.", @@ -388,7 +398,8 @@ "af": "Jy het probeer aanmeld maar jou wagwoord is nie verstuur nie, probeer asb. weer.", "el": "\u039f \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2 \u03b4\u03b5\u03bd \u03b5\u03c3\u03c4\u03ac\u03bb\u03b7. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce, \u03c0\u03c1\u03bf\u03c3\u03c0\u03b1\u03b8\u03ae\u03c3\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac.", "zu": "Uthumele okuthile ekhasini lokungena, kodwa ngasizathu simbe iphasiwedi ayizange ithunyelwe. Sicela uzame futhi.", - "xh": "Uthumele into kwikhasi lokungena, kodwa ngesizathu esithile iphaswedi ayithunyelwanga. Nceda uzame kwakhona." + "xh": "Uthumele into kwikhasi lokungena, kodwa ngesizathu esithile iphaswedi ayithunyelwanga. Nceda uzame kwakhona.", + "ca": "Heu enviat alguna cosa a la pàgina d’inici de sessió, però per alguna raó la contrasenya no s’ha enviat. Torneu-ho a provar." }, "error_wrongpassword": { "no": "Feil brukernavn eller passord.", @@ -427,7 +438,8 @@ "xh": "Awungenanga ngoba igama olisebenzisayo okanye isigqithisi asifakwanga kakuhle.", "af": "Verkeerde gebruikersnaam of wagwoord.", "el": "\u03a4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03ae \u03bf \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03bb\u03ac\u03b8\u03bf\u03c2.", - "zu": "Igama lomsebenzisi noma iphasiwedi engalungile." + "zu": "Igama lomsebenzisi noma iphasiwedi engalungile.", + "ca": "Nom d'usuari o contrasenya incorrecta." }, "contact_info": { "no": "Kontaktinformasjon:", @@ -464,7 +476,8 @@ "af": "Kontak detail:", "el": "\u03a3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03b1 \u03b5\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03af\u03b1\u03c2:", "zu": "Ulwazi lokuxhumana:", - "xh": "Inkcazelo yoqhagamshelwano:" + "xh": "Inkcazelo yoqhagamshelwano:", + "ca": "Informació de contacte:" }, "select_home_org": { "no": "Velg vertsorganisasjon", @@ -501,7 +514,8 @@ "af": "Kies jou tuisorganisasie", "el": "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03bf\u03b9\u03ba\u03b5\u03af\u03bf\u03c5 \u03c6\u03bf\u03c1\u03ad\u03b1", "xh": "Khetha umbutho wakho wekhaya", - "zu": "Khetha inhlangano yakho yasekhaya" + "zu": "Khetha inhlangano yakho yasekhaya", + "ca": "Trieu la vostra organització principal" }, "change_home_org_title": { "no": "Endre din vertsorganisasjon", @@ -538,7 +552,8 @@ "af": "Verander jou tuisorganisasie", "el": "\u0391\u03bb\u03bb\u03b1\u03b3\u03ae \u03bf\u03b9\u03ba\u03b5\u03af\u03bf\u03c5 \u03c6\u03bf\u03c1\u03ad\u03b1", "xh": "Tshintsha umbutho wakho wekhaya", - "zu": "Shintsha inhlangano yakho yasekhaya" + "zu": "Shintsha inhlangano yakho yasekhaya", + "ca": "Canvieu la vostra organització principal" }, "change_home_org_text": { "no": "Du har valgt <b>%HOMEORG%<\/b> som din vertsorganisasjon. Dersom dette er feil kan du velge en annen.", @@ -575,7 +590,8 @@ "af": "Jy het <b>%HOMEORG%<\/b> gekies as jou tuisorganisasie. As dit is verkeerd jy kan 'n ander een te kies.", "el": "\u0395\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03bf\u03c2 \u03bf\u03b9\u03ba\u03b5\u03af\u03bf\u03c2 \u03c6\u03bf\u03c1\u03ad\u03b1\u03c2: <b>%HOMEORG%<\/b>.", "zu": "Ukhethe okuthi <b>%HOMEORG%</b> njengenhlangano yakho yasekhaya. Uma lokhu kungalungile ungase ukhethe enye.", - "xh": "Uye wakhetha u-<b>%HOMEORG%</b> njengombutho wakho wekhaya. Ukuba oku akuchanekanga usenokukhetha omnye." + "xh": "Uye wakhetha u-<b>%HOMEORG%</b> njengombutho wakho wekhaya. Ukuba oku akuchanekanga usenokukhetha omnye.", + "ca": "Heu triat <b>%HOMEORG%<\/b> com la vostra organització principal. Si això no és correcte, podeu triar-ne una altra." }, "change_home_org_button": { "no": "Velg vertsorganisasjon", @@ -612,7 +628,8 @@ "af": "Kies tuisorganisasie", "el": "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03bf\u03b9\u03ba\u03b5\u03af\u03bf\u03c5 \u03c6\u03bf\u03c1\u03ad\u03b1", "xh": "Khetha umbutho wekhaya", - "zu": "Khetha inhlangano yasekhaya" + "zu": "Khetha inhlangano yasekhaya", + "ca": "Escull la teva organització principal" }, "help_desk_link": { "no": "Hjemmesiden til brukerst\u00f8tte", @@ -649,7 +666,8 @@ "af": "Hulplyn-tuisblad", "el": "\u03a3\u03b5\u03bb\u03af\u03b4\u03b1 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1\u03c2 \u03b1\u03c1\u03c9\u03b3\u03ae\u03c2 \u03c7\u03c1\u03b7\u03c3\u03c4\u03ce\u03bd", "zu": "Ikhasi lasekhaya ledeski losizo", - "xh": "Ikhasi lekhaya ledesika yoncedo" + "xh": "Ikhasi lekhaya ledesika yoncedo", + "ca": "Pàgina d'inici del centre d'atenció a l'usuari" }, "help_desk_email": { "no": "Send e-post til brukerst\u00f8tte", @@ -686,7 +704,8 @@ "af": "Stuur e-pos aan hulplyn", "el": "\u0391\u03c0\u03bf\u03c3\u03c4\u03bf\u03bb\u03ae \u0065\u006d\u0061\u0069\u006c \u03c3\u03c4\u03b7\u03bd \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1 \u03b1\u03c1\u03c9\u03b3\u03ae\u03c2 \u03c7\u03c1\u03b7\u03c3\u03c4\u03ce\u03bd", "xh": "Thumela i-imeyile kwidesika yoncedo", - "zu": "Thumela i-imeyili edeskini losizo" + "zu": "Thumela i-imeyili edeskini losizo", + "ca": "Envia un correu electrònic el centre d'atenció a l'usuari" }, "next": { "no": "Fortsett", @@ -723,10 +742,12 @@ "xh": "Olandelayo", "af": "Volgende", "el": "\u0395\u03c0\u03cc\u03bc\u03b5\u03bd\u03bf", - "zu": "Okulandelayo" + "zu": "Okulandelayo", + "ca": "Següent" }, "remember_username": { "es": "Recordar mi nombre de usuario", + "de": "Nutzername merken", "hu": "Eml\u00e9kezzen a felhaszn\u00e1l\u00f3nevemre", "ru": "\u0417\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043c\u043e\u0451 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f", "zh-tw": "\u8a18\u4f4f\u6211\u7684\u4f7f\u7528\u8005\u540d\u7a31", @@ -737,10 +758,12 @@ "el": "\u039d\u03b1 \u03b8\u03c5\u03bc\u03ac\u03c3\u03b1\u03b9 \u03c4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7", "zu": "Khumbula igama lami lomsebenzisi", "xh": "Khumbula igama lomsebenzisi lam", - "sl": "Zapomni si moje uporabniško ime" + "sl": "Zapomni si moje uporabniško ime", + "ca": "Recorda el meu nom d’usuari" }, "remember_me": { "es": "Recordarme", + "de": "Angemeldet bleiben", "hu": "Eml\u00e9kezzen r\u00e1m", "ru": "\u0417\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043c\u0435\u043d\u044f", "zh-tw": "\u8a18\u4f4f\u6211", @@ -751,6 +774,10 @@ "el": "\u039d\u03b1 \u03bc\u03b5 \u03b8\u03c5\u03bc\u03ac\u03c3\u03b1\u03b9", "xh": "Ndikhumbule", "zu": "Ngikhumbule", - "sl": "Zapomni si me" - } + "sl": "Zapomni si me", + "ca": "Recorda'm" + }, + "remember_organization": { + "ca": "Recorda la meva organització principal" + } } diff --git a/vendor/simplesamlphp/simplesamlphp/dictionaries/logout.translation.json b/vendor/simplesamlphp/simplesamlphp/dictionaries/logout.translation.json index d17a234a88c2b4bd6b618f7aac4efc2503cfd30c..9f25790e6c4db509f8e64a3bed51a90fa53f6f0b 100644 --- a/vendor/simplesamlphp/simplesamlphp/dictionaries/logout.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/dictionaries/logout.translation.json @@ -34,7 +34,8 @@ "af": "Afgemeld", "el": "\u0391\u03c0\u03bf\u03c3\u03c5\u03bd\u03b4\u03b5\u03b4\u03b5\u03bc\u03ad\u03bd\u03bf\u03c2/\u03b7", "xh": "Uphumile", - "zu": "Uphume ngemvume" + "zu": "Uphume ngemvume", + "ca": "Desconnectat" }, "logged_out_text": { "no": "Du er n\u00e5 utlogget.", @@ -71,7 +72,8 @@ "af": "Jy is afgemeld.", "el": "\u0388\u03c7\u03b5\u03c4\u03b5 \u03b1\u03c0\u03bf\u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af.", "zu": "Usuphumile.", - "xh": "Uphumile." + "xh": "Uphumile.", + "ca": "Us heu desconnectat." }, "default_link_text": { "no": "G\u00e5 tilbake til SimpleSAMLphp installasjonen sin startside.", @@ -108,7 +110,8 @@ "af": "Gaan terug na die SimpleSAMLphp installasie bladsy", "el": "\u0395\u03c0\u03b9\u03c3\u03c4\u03c1\u03bf\u03c6\u03ae \u03c3\u03c4\u03b7\u03bd \u03b1\u03c1\u03c7\u03b9\u03ba\u03ae \u03c3\u03b5\u03bb\u03af\u03b4\u03b1", "xh": "Buyela emva kwikhasi lofakelo le-SimpleSAMLphp", - "zu": "Buyela emuva ekhasini lokufaka le-SimpleSAMLphp" + "zu": "Buyela emuva ekhasini lokufaka le-SimpleSAMLphp", + "ca": "Torneu a la pàgina d’instal·lació de SimpleSAMLphp" }, "hold": { "no": "P\u00e5 vent", @@ -145,7 +148,8 @@ "af": "Hou die verbinding", "el": "\u03a3\u03b5 \u03b1\u03bd\u03b1\u03bc\u03bf\u03bd\u03ae", "xh": "Ibanjiwe", - "zu": "Imisiwe" + "zu": "Imisiwe", + "ca": "En espera" }, "completed": { "no": "Fullf\u00f8rt", @@ -182,7 +186,8 @@ "af": "Voltooid", "el": "\u039f\u03bb\u03bf\u03ba\u03bb\u03b7\u03c1\u03ce\u03b8\u03b7\u03ba\u03b5", "xh": "Igqityiwe", - "zu": "Kuqedile" + "zu": "Kuqedile", + "ca": "Completat" }, "progress": { "no": "Logger ut...", @@ -219,7 +224,8 @@ "af": "Besig om af te meld?", "el": "\u0393\u03af\u03bd\u03b5\u03c4\u03b1\u03b9 \u03b1\u03c0\u03bf\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7...", "zu": "Iyaphuma...", - "xh": "Iyaphuma..." + "xh": "Iyaphuma...", + "ca": "Tancant la sessió..." }, "failed": { "no": "Utlogging feilet", @@ -256,7 +262,8 @@ "af": "Afmelding misluk", "el": "\u0397 \u03b1\u03c0\u03bf\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5", "xh": "Ukuphuma kusilele", - "zu": "Ukuphuma kuhlulekile" + "zu": "Ukuphuma kuhlulekile", + "ca": "Ha fallat el tancament de sessió" }, "return": { "no": "Tilbake til tjenesten", @@ -293,7 +300,8 @@ "af": "Terug na diens", "el": "\u0395\u03c0\u03b9\u03c3\u03c4\u03c1\u03bf\u03c6\u03ae \u03c3\u03c4\u03b7\u03bd \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1", "xh": "Buyela kwinkonzo", - "zu": "Buyela kusevisi" + "zu": "Buyela kusevisi", + "ca": "Tornar al servei" }, "success": { "no": "Du har nå logget ut fra alle tjenestene listet ovenfor.", @@ -330,7 +338,8 @@ "af": "Jy het suksesvol afgemeld.", "el": "\u0388\u03c7\u03b5\u03c4\u03b5 \u03b1\u03c0\u03bf\u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af \u03bc\u03b5 \u03b5\u03c0\u03b9\u03c4\u03c5\u03c7\u03af\u03b1 \u03b1\u03c0\u03cc \u03cc\u03bb\u03b5\u03c2 \u03c4\u03b9\u03c2 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b5\u03c2 \u03c0\u03bf\u03c5 \u03b1\u03bd\u03b1\u03c6\u03ad\u03c1\u03bf\u03bd\u03c4\u03b1\u03b9 \u03c0\u03b1\u03c1\u03b1\u03c0\u03ac\u03bd\u03c9.", "xh": "Uphume ngokuyimpumelelo kuzo zonke iinkonzo ezidweliswe ngasentla.", - "zu": "Uphume ngempumelelo kuwo wonke amasevisi abhalwe ngenhla." + "zu": "Uphume ngempumelelo kuwo wonke amasevisi abhalwe ngenhla.", + "ca": "Heu sortit correctament de tots els serveis esmentats anteriorment." }, "loggedoutfrom": { "no": "Du er n\u00e5 logget ut fra %SP%.", @@ -367,7 +376,8 @@ "af": "Jy is suksesvol afgemeld van %SP% af.", "el": "\u0388\u03c7\u03b5\u03c4\u03b5 \u03b1\u03c0\u03bf\u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af \u03bc\u03b5 \u03b5\u03c0\u03b9\u03c4\u03c5\u03c7\u03af\u03b1 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1 %SP%.", "xh": "Ngoku uphume ngokuyimpumelelo kwi-%SP%.", - "zu": "Usuphume ngempumelelo kokuthi %SP%." + "zu": "Usuphume ngempumelelo kokuthi %SP%.", + "ca": "S’ha tancat la sessió amb èxit de %SP%." }, "also_from": { "no": "Du er ogs\u00e5 logget inn p\u00e5 disse tjenestene:", @@ -404,7 +414,8 @@ "af": "Jy is ook by di\u00e9 dienste aangemeld:", "el": "\u0395\u03af\u03c3\u03c4\u03b5 \u03b5\u03c0\u03af\u03c3\u03b7\u03c2 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b4\u03b5\u03bc\u03ad\u03bd\u03bf\u03c2 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03ad\u03c2 \u03c4\u03b9\u03c2 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b5\u03c2:", "zu": "Ungenile futhi kulawa masevisi:", - "xh": "Kananjalo ungene kwezi nkonzo:" + "xh": "Kananjalo ungene kwezi nkonzo:", + "ca": "També heu iniciat la sessió en aquests serveis:" }, "logout_all_question": { "no": "Vil du logge ut fra alle tjenestene ovenfor?", @@ -441,7 +452,8 @@ "af": "Wil jy van alle bogenoemde dienste afmeld?", "el": "\u0395\u03c0\u03b9\u03b8\u03c5\u03bc\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03b1\u03c0\u03bf\u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03b5\u03af\u03c4\u03b5 \u03b1\u03c0\u03cc \u03cc\u03bb\u03b5\u03c2 \u03c4\u03b9\u03c2 \u03c0\u03b1\u03c1\u03b1\u03c0\u03ac\u03bd\u03c9 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b5\u03c2\u003b", "xh": "Ngaba ufuna ukuphuma kuzo zonke iinkonzo ezingasentla?", - "zu": "Ingabe ufuna ukuphuma kuwo wonke amasevisi angenhla?" + "zu": "Ingabe ufuna ukuphuma kuwo wonke amasevisi angenhla?", + "ca": "Voleu sortir de tots els serveis següents?" }, "logout_all": { "no": "Ja, alle tjenestene over", @@ -478,7 +490,8 @@ "af": "Ja, alle dienste", "el": "\u039d\u03b1\u03b9, \u03cc\u03bb\u03b5\u03c2 \u03c4\u03b9\u03c2 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b5\u03c2", "zu": "Yebo, wonke amasevisi", - "xh": "Ewe, zonke iinkonzo" + "xh": "Ewe, zonke iinkonzo", + "ca": "Sí, tots els serveis" }, "logout_only": { "no": "Nei, bare %SP%", @@ -515,7 +528,8 @@ "af": "Nee, net %SP%", "el": "\u038c\u03c7\u03b9, \u03bc\u03cc\u03bd\u03bf \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1 %SP%", "zu": "Cha, ku-%SP% kuphela", - "xh": "Hayi, kuphela %SP%" + "xh": "Hayi, kuphela %SP%", + "ca": "No, només %SP%" }, "incapablesps": { "no": "En eller flere av tjenestene du er logget inn p\u00e5 <i>st\u00f8tter ikke logout<\/i>. Lukk nettleseren, dersom du \u00f8nsker \u00e5 logge ut fra disse tjenestene.", @@ -552,7 +566,8 @@ "af": "Een of meerdere dienste waarby jy aangemeld het, <i>ondersteun nie afmelding nie<\/i>. Om seker te wees datal jou sessies afgesluit word, is dit beter om jou <i>webblaaier toe te maak<\/i>.", "el": "\u039c\u03af\u03b1 \u03ae \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03b5\u03c2 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b5\u03c2 \u03bc\u03b5 \u03c4\u03b9\u03c2 \u03bf\u03c0\u03bf\u03af\u03b5\u03c2 \u03b5\u03af\u03c3\u03c4\u03b5 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b4\u03b5\u03bc\u03ad\u03bd\u03bf\u03c2\u002f\u03b7 \u03b4\u03b5\u03bd \u03c5\u03c0\u03bf\u03c3\u03c4\u03b7\u03c1\u03af\u03b6\u03bf\u03c5\u03bd \u03b1\u03c0\u03bf\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u002e \u0393\u03b9\u03b1 \u03c4\u03bf \u03ba\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf \u03cc\u03bb\u03c9\u03bd \u03c4\u03c9\u03bd \u03c3\u03c5\u03bd\u03b5\u03b4\u03c1\u03b9\u03ce\u03bd \u03c3\u03b1\u03c2 (sessions), \u03c3\u03b1\u03c2 \u03c3\u03c5\u03bd\u03b9\u03c3\u03c4\u03bf\u03cd\u03bc\u03b5 \u03bd\u03b1 <i>\u03ba\u03bb\u03b5\u03af\u03c3\u03b5\u03c4\u03b5<\/i> \u03c4\u03bf \u03c0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1 \u03c0\u03bb\u03bf\u03ae\u03b3\u03b7\u03c3\u03b7\u03c2 (web browser).", "zu": "Isevisi eyodwa noma ngaphezulu ongene kuyo <i>ayikusekeli ukuphuma</i>. Ukuze wenze isiqiniseko sokuthi wonke amaseshini akho avaliwe, ukhuthazwa ukuthi <i>uvale isiphequluli sakho sewebhu</i>.", - "xh": "Inkonzo enye okanye ezingakumbi ongeneyo kuzo <i>azikuxhasi ukuphuma</i>. Ukuqinisekisa zonke iiseshoni zakho zivaliwe, ukhuthazwa <i>uvale ibhrawuza yewebhu</i>." + "xh": "Inkonzo enye okanye ezingakumbi ongeneyo kuzo <i>azikuxhasi ukuphuma</i>. Ukuqinisekisa zonke iiseshoni zakho zivaliwe, ukhuthazwa <i>uvale ibhrawuza yewebhu</i>.", + "ca": "Un o més dels serveis que heu accedit a <i>no admeten tancar la sessió<\/i>. Per assegurar-vos que totes les vostres sessions estan tancades, us animem a <i>tancar el vostre navegador web<\/i>." }, "no": { "no": "Nei", @@ -589,7 +604,8 @@ "af": "Nee", "el": "\u038c\u03c7\u03b9", "xh": "Hayi", - "zu": "Cha" + "zu": "Cha", + "ca": "No" }, "logging_out_from": { "sl": "Odjava iz naslednjih storitev:", @@ -625,7 +641,8 @@ "af": "Afmelding van die volgende dienste:", "el": "Γίνεται αποσύνδεση από τις ακόλουθες υπηρεσίες:", "zu": "Iyaphuma kumasevisi alandelayo:", - "xh": "Iphuma kwezi nkonzo zilandelayo:" + "xh": "Iphuma kwezi nkonzo zilandelayo:", + "ca": "Sortida dels serveis següents:" }, "failedsps": { "sl": "Odjava z ene ali ve\u010d storitev ni uspela. Odjavo dokon\u010dajte tako, da <i>zaprete spletni brskalnik<\/i>.", @@ -660,6 +677,7 @@ "af": "Dit was nie moontlik om van een of meer dienste af te meld nie. Om seker te wees dat al jou sessies afgesluit word, is dit beter om jou <i>webblaaier toe te maak<\/i>.", "el": "\u0394\u03b5\u03bd \u03ae\u03c4\u03b1\u03bd \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b1\u03c0\u03bf\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03b1\u03c0\u03cc \u03bc\u03af\u03b1 \u03ae \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03b5\u03c2 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b5\u03c2\u002e \u0393\u03b9\u03b1 \u03c4\u03bf \u03ba\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf \u03cc\u03bb\u03c9\u03bd \u03c4\u03c9\u03bd \u03c3\u03c5\u03bd\u03b5\u03b4\u03c1\u03b9\u03ce\u03bd \u03c3\u03b1\u03c2 (sessions), \u03c3\u03b1\u03c2 \u03c3\u03c5\u03bd\u03b9\u03c3\u03c4\u03bf\u03cd\u03bc\u03b5 \u03bd\u03b1 <i>\u03ba\u03bb\u03b5\u03af\u03c3\u03b5\u03c4\u03b5<\/i> \u03c4\u03bf \u03c0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1 \u03c0\u03bb\u03bf\u03ae\u03b3\u03b7\u03c3\u03b7\u03c2 (web browser).", "xh": "Awukwazi ukuphuma kwinkonzo enye okanye ezingakumbi. Ukuqinisekisa zonke iiseshoni zakho zivaliwe, ukhuthazwa <i>uvale ibhrawuza yewebhu</i>.", - "zu": "Ayikwazi ukuphuma kusevisi eyodwa noma ngaphezulu. Ukuze wenze isiqiniseko sokuthi wonke amaseshini akho avaliwe, ukhuthazwa ukuthi <i>uvale isiphequluli sakho sewebhu</i>." + "zu": "Ayikwazi ukuphuma kusevisi eyodwa noma ngaphezulu. Ukuze wenze isiqiniseko sokuthi wonke amaseshini akho avaliwe, ukhuthazwa ukuthi <i>uvale isiphequluli sakho sewebhu</i>.", + "ca": "No es pot tancar la sessió d'un o més serveis. Per assegurar-vos que totes les vostres sessions estan tancades, us animem a <i>tancar el vostre navegador web<\/i>." } } diff --git a/vendor/simplesamlphp/simplesamlphp/dictionaries/status.definition.json b/vendor/simplesamlphp/simplesamlphp/dictionaries/status.definition.json index a82c97fcbe51e94ed24241089cac7efe86b9a226..4a92ab3b91e5bc7d3da4d27ce8eb8f17de93c2c7 100644 --- a/vendor/simplesamlphp/simplesamlphp/dictionaries/status.definition.json +++ b/vendor/simplesamlphp/simplesamlphp/dictionaries/status.definition.json @@ -5,9 +5,6 @@ "header_shib": { "en": "Shibboleth demo" }, - "header_wsfed": { - "en": "WS-Fed SP Demo Example" - }, "header_diagnostics": { "en": "SimpleSAMLphp Diagnostics" }, diff --git a/vendor/simplesamlphp/simplesamlphp/dictionaries/status.translation.json b/vendor/simplesamlphp/simplesamlphp/dictionaries/status.translation.json index 8131661d8551ad56ba3a44ba3ddaccb79513e8c3..7b558557edbd077bb3a74792b73ae93e474b7212 100644 --- a/vendor/simplesamlphp/simplesamlphp/dictionaries/status.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/dictionaries/status.translation.json @@ -33,7 +33,8 @@ "ru": "\u0414\u0435\u043c\u043e \u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u0435\u0440\u0432\u0438\u0441 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 SAML 2.0 SP", "el": "\u0394\u03bf\u03ba\u03b9\u03bc\u03b1\u03c3\u03c4\u03b9\u03ba\u03cc\u03c2 \u03a0\u03b1\u03c1\u03bf\u03c7\u03ad\u03b1\u03c2 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd SAML 2.0", "zu": "Isampula Ledemo Ye-SAML 2.0 SP", - "xh": "Umzekelo weDemo we-SAML 2.0 SP" + "xh": "Umzekelo weDemo we-SAML 2.0 SP", + "ca": "Exemple de demostració SAML 2.0 SP" }, "header_shib": { "no": "Shibboleth Demo", @@ -69,43 +70,8 @@ "ru": "Shibboleth \u0434\u0435\u043c\u043e", "el": "\u0394\u03bf\u03ba\u03b9\u03bc\u03b1\u03c3\u03c4\u03b9\u03ba\u03cc\u03c2 \u03a0\u03b1\u03c1\u03bf\u03c7\u03ad\u03b1\u03c2 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd Shibboleth", "xh": "Idemo ye-Shibboleth", - "zu": "Idemo ye-Shibboleth" - }, - "header_wsfed": { - "no": "WS-Fed SP Demo Eksempel", - "nn": "Demonstrasjon av WS-Federation SP", - "sv": "WS-Fed SP demoexempel", - "es": "Ejemplo WS-Fed SP", - "fr": "Exemple de d\u00e9monstration de WS-Fed SP", - "de": "WS-Fed SP Demo Beispiel", - "nl": "WS-Fed SP Demo", - "sl": "WS-Fed SP demo primer", - "da": "WS-Federation tjenesteudbyder-demo", - "hr": "Primjer WS-Fed davatelja usluge", - "hu": "WS-Fed SP pr\u00f3ba p\u00e9lda", - "fi": "WS-FED SP esimerkki", - "pt-br": "WS-Fed SP Exemplo", - "pt": "Exemplo de demonstra\u00e7\u00e3o do SP WS-Fed", - "pl": "Przyk\u0142adowe Demo WS-Fed SP", - "cs": "WS-Fed SP Demo", - "eu": "WS-Fed SP Adibidea", - "tr": "WS-Fed SP Demo \u00d6rne\u011fi", - "it": "Demo di WS-Fed SP", - "lt": "WS-Fed SP Demonstracin\u0117s versijos Pavyzdys", - "ja": "WS-Fed SP \u30c7\u30e2\u4f8b", - "zh-tw": "WS-Fed SP Demo \u7bc4\u4f8b", - "et": "WS-Fed SP demon\u00e4ide", - "he": "\u05d4\u05d3\u05d2\u05de\u05ea \u05d3\u05d5\u05d2\u05de\u05d4 \u05dc\u05e1\"\u05e9 \u05de\u05e1\u05d5\u05d2 WS-Fed", - "zh": "WS-Fed SP \u6f14\u793a\u6848\u4f8b", - "ar": "\u0627\u0633\u062a\u0639\u0631\u0627\u0636 \u0645\u062b\u0627\u0644 \u0644 WS-Fed", - "lv": "WS-Fed SP demonstr\u0101cijas piem\u0113rs", - "id": "Contoh Demo WS-Fed SP", - "sr": "WS-Fed SP Demo Primer", - "ro": "Exemplu demonstrativ de WS-Fed", - "ru": "\u0414\u0435\u043c\u043e \u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u0435\u0440\u0432\u0438\u0441 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 WS-Fed SP", - "el": "\u0394\u03bf\u03ba\u03b9\u03bc\u03b1\u03c3\u03c4\u03b9\u03ba\u03cc\u03c2 \u03a0\u03b1\u03c1\u03bf\u03c7\u03ad\u03b1\u03c2 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd WS-Fed", - "zu": "Isibonelo Sedemo ye-WS-Fed SP", - "xh": "Umzekelo weDemo we-WS-Fed SP" + "zu": "Idemo ye-Shibboleth", + "ca": "Exemple de demostració Shibboleth" }, "header_diagnostics": { "no": "SimpleSAMLphp diagnostikk", @@ -141,7 +107,8 @@ "ru": "\u0414\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430 SimpleSAMLphp", "el": "\u0394\u03b9\u03b1\u03b3\u03bd\u03c9\u03c3\u03c4\u03b9\u03ba\u03ac SimpleSAMLphp", "zu": "Ukuhlonzwa Kwe-SimpleSAMLphp", - "xh": "Uhlalutyo lwe-SimpleSAMLphp" + "xh": "Uhlalutyo lwe-SimpleSAMLphp", + "ca": "Diagnòstic SimpleSAMLphp" }, "some_error_occurred": { "no": "En feil har oppst\u00e5tt", @@ -177,7 +144,8 @@ "ru": "\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430", "el": "\u03a3\u03c5\u03bd\u03ad\u03b2\u03b7 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1", "zu": "Kuvele iphutha elithile", - "xh": "Kwenzeke impazamo ethile" + "xh": "Kwenzeke impazamo ethile", + "ca": "S'ha produït un error" }, "intro": { "no": "Hei, dette er en statusside p\u00e5 SimpleSAMLphp. Her kan du se om sesjonen din er timet ut, hvor lenge det er til den timer ut og attributter som er knyttet til din sesjon.", @@ -213,7 +181,8 @@ "eu": "Kaixo, hau SimpleSAMLphp-ren egoera orria da. Hemendik ikus dezakezu zure saioa iraungi den, zenbat denbora geratzen den hau gerta dadin eta zure saioan dauden atributu guztiak.", "el": "\u03a7\u03b1\u03af\u03c1\u03b5\u03c4\u03b5, \u03b1\u03c5\u03c4\u03ae \u03b5\u03af\u03bd\u03b1\u03b9 \u03b7 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1 \u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7\u03c2 \u03c4\u03bf\u03c5 SimpleSAMLphp. \u0395\u03b4\u03ce \u03bc\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03b4\u03b5\u03af\u03c4\u03b5 \u03b1\u03bd \u03b7 \u03c3\u03c5\u03bd\u03b5\u03b4\u03c1\u03af\u03b1 \u03c3\u03b1\u03c2 \u0028\u0073\u0065\u0073\u0073\u0069\u006f\u006e\u0029 \u03ad\u03c7\u03b5\u03b9 \u03bb\u03ae\u03be\u03b5\u03b9\u002c \u03c4\u03bf \u03c7\u03c1\u03bf\u03bd\u03b9\u03ba\u03cc \u03b4\u03b9\u03ac\u03c3\u03c4\u03b7\u03bc\u03b1 \u03c0\u03bf\u03c5 \u03b4\u03b9\u03b1\u03c1\u03ba\u03b5\u03af \u03ad\u03c9\u03c2 \u03cc\u03c4\u03bf\u03c5 \u03bb\u03ae\u03be\u03b5\u03b9\u002c \u03ba\u03b1\u03b8\u03ce\u03c2 \u03ba\u03b1\u03b9 \u03cc\u03bb\u03b5\u03c2 \u03c4\u03b9\u03c2 \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 \u03c0\u03bf\u03c5 \u03c3\u03c5\u03bd\u03b4\u03ad\u03bf\u03bd\u03c4\u03b1\u03b9 \u03bc\u03b5 \u03c4\u03b7 \u03c3\u03c5\u03bd\u03b5\u03b4\u03c1\u03af\u03b1 \u03c3\u03b1\u03c2.", "zu": "Sawubona, leli ikhasi lesimo se-SimpleSAMLphp. Lapha ungakwazi ukubona ukuthi iseshini yakho iphelelwe isikhathi yini, ukuthi ihlala isikhathi eside kangakanani ngaphambi kokuthi iphelelwe isikhathi kanye nazo zonke izici ezihambisana neseshini yakho.", - "xh": "Molo, eli likhasi lobume be-SimpleSAMLphp. Apha ungabona ukuba ngaba iseshoni yakho iphelelwe lixesha, iza kuhlala ixesha elide kangakanani ngaphambi kokuba iphelelwe nazo zonke iimpawu ezincanyathiselweyo kwiseshoni yakho." + "xh": "Molo, eli likhasi lobume be-SimpleSAMLphp. Apha ungabona ukuba ngaba iseshoni yakho iphelelwe lixesha, iza kuhlala ixesha elide kangakanani ngaphambi kokuba iphelelwe nazo zonke iimpawu ezincanyathiselweyo kwiseshoni yakho.", + "ca": "Hola, aquesta és la pàgina d'estat de SimpleSAMLphp. Aquí podeu veure si la vostra sessió ha caducat, quant de temps dura fins que finalitza el temps i tots els atributs que s'adjunten a la vostra sessió." }, "validfor": { "no": "Din sesjon er gyldig i %SECONDS% sekunder fra n\u00e5.", @@ -249,7 +218,8 @@ "eu": "Zure saioa %SECONDS% segundoz izango da baliagarri.", "el": "\u0391\u03c0\u03bf\u03bc\u03ad\u03bd\u03bf\u03c5\u03bd %SECONDS% \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1 \u03bc\u03ad\u03c7\u03c1\u03b9 \u03c4\u03b7 \u03bb\u03ae\u03be\u03b7 \u03c4\u03b7\u03c2 \u03c3\u03c5\u03bd\u03b5\u03b4\u03c1\u03af\u03b1\u03c2 \u03c3\u03b1\u03c2.", "xh": "Iseshoni yakho iza kusebenza kangangemizuzu e-%SECONDS% ukususela ngoku.", - "zu": "Iseshini yakho isebenza imizuzwana engu-%SECONDS% ukusuka manje." + "zu": "Iseshini yakho isebenza imizuzwana engu-%SECONDS% ukusuka manje.", + "ca": "La vostra sessió és vàlida durant %SECONDS% segons des d’ara." }, "sessionsize": { "no": "Sesjons st\u00f8rrelse: %SIZE%", @@ -285,7 +255,8 @@ "ro": "Dimensiunea sesiunii: %SIZE%", "el": "\u039c\u03ad\u03b3\u03b5\u03b8\u03bf\u03c2 \u03c3\u03c5\u03bd\u03b5\u03b4\u03c1\u03af\u03b1\u03c2: %SIZE%", "xh": "Ubukhulu beseshoni: %SIZE%", - "zu": "Usayizi weseshini: %SIZE%" + "zu": "Usayizi weseshini: %SIZE%", + "ca": "Mida de la sessió: %SIZE%" }, "attributes_header": { "no": "Dine attributter", @@ -321,7 +292,8 @@ "ro": "Atributele dumneavoastr\u0103", "el": "\u03a0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2", "zu": "Izici zakho", - "xh": "Iimpawu zakho" + "xh": "Iimpawu zakho", + "ca": "Els teus atributs" }, "logout": { "no": "Logg ut", @@ -357,7 +329,8 @@ "ro": "Deautentificare", "el": "\u0391\u03c0\u03bf\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7", "xh": "Phuma", - "zu": "Phuma" + "zu": "Phuma", + "ca": "Tancar sessió" }, "subject_header": { "es": "Identificador SAML", @@ -367,7 +340,8 @@ "da": "SAML emne", "el": "\u03a5\u03c0\u03bf\u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03bf (subject) SAML", "zu": "Isihloko Se-SAML", - "xh": "Umbandela we-SAML" + "xh": "Umbandela we-SAML", + "ca": "Assumpte SAML" }, "subject_notset": { "es": "sin valor", @@ -377,7 +351,8 @@ "da": "ikke angivet", "el": "\u03b4\u03b5\u03bd \u03ad\u03c7\u03b5\u03b9 \u03bf\u03c1\u03b9\u03c3\u03c4\u03b5\u03af", "xh": "ayikasetwa", - "zu": "akusethiwe" + "zu": "akusethiwe", + "ca": "no establert" }, "subject_format": { "es": "Formato", @@ -387,14 +362,17 @@ "da": "Format", "el": "\u039c\u03bf\u03c1\u03c6\u03ae (format)", "zu": "Ifomethi", - "xh": "Ufomatho" + "xh": "Ufomatho", + "ca": "Format" }, "authData_header": { "xh": "Ungqinisiso lweNgcombolo", - "zu": "I-AuthData" + "zu": "I-AuthData", + "ca": "AuthData" }, "authData_summary": { "xh": "Cofa ukuze ubone uNgqinisiso lweNgcombolo", - "zu": "Qhafaza ukuze ubuke i-AuthData" + "zu": "Qhafaza ukuze ubuke i-AuthData", + "ca": "Feu clic per veure AuthData" } } diff --git a/vendor/simplesamlphp/simplesamlphp/docs/index.md b/vendor/simplesamlphp/simplesamlphp/docs/index.md index c7df4fe4c5a74be5e098793e0c0d077e6c55239d..995e952477213e1183ccd2932e58c22a0d071a4c 100644 --- a/vendor/simplesamlphp/simplesamlphp/docs/index.md +++ b/vendor/simplesamlphp/simplesamlphp/docs/index.md @@ -2,6 +2,7 @@ SimpleSAMLphp Documentation =========================== * [Installing SimpleSAMLphp](simplesamlphp-install) + * [Upgrade notes for version 1.18](simplesamlphp-upgrade-notes-1.18) * [Upgrade notes for version 1.17](simplesamlphp-upgrade-notes-1.17) * [Upgrade notes for version 1.16](simplesamlphp-upgrade-notes-1.16) * [Upgrade notes for version 1.15](simplesamlphp-upgrade-notes-1.15) @@ -30,7 +31,7 @@ SimpleSAMLphp Documentation * [Configuring HTTP-Artifact](./simplesamlphp-artifact-idp) * [Identity Provider Advanced Topics](simplesamlphp-idp-more) * [Holder-of-Key profile](simplesamlphp-hok-idp) - * [Automated Metadata Management](simplesamlphp-automated_metadata) + * [Automated Metadata Management](https://github.com/simplesamlphp/simplesamlphp-module-metarefresh/blob/master/docs/simplesamlphp-automated_metadata.md) * [Maintenance and configuration](simplesamlphp-maintenance) - covers session handling, php configuration etc. * [Authentication Processing Filters](simplesamlphp-authproc) - attribute filtering, attribute mapping, consent, group generation etc. * [Advanced features](simplesamlphp-advancedfeatures) - covers bridging protocols, attribute filtering, etc. @@ -48,7 +49,7 @@ Documentation on specific SimpleSAMLphp modules: * [Consent module](./consent:consent) * [Installing and configuring the consentAdmin module](./consentAdmin:consentAdmin) * [Authorization](./authorize:authorize) - * [autotest Module](./autotest:test) + * [autotest Module](https://github.com/simplesamlphp/simplesamlphp-module-autotest/blob/v1.0/README.md) * [Statistics](./statistics:statistics) Documentation for SimpleSAMLphp developers: diff --git a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-advancedfeatures.md b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-advancedfeatures.md index a1ee444dd36a5da77d1f6e681b21999a94ec7cad..69ddf67c4c87e581eab6935cf4c81609727e674c 100644 --- a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-advancedfeatures.md +++ b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-advancedfeatures.md @@ -60,7 +60,7 @@ Automatic update of SAML 2.0 Metadata XML from HTTPS ---------------------------------------------------- The `metarefresh` module is the preferred method for doing this. -Please see the [metarefresh documentation](simplesamlphp-automated_metadata). +Please see the [metarefresh documentation](https://github.com/simplesamlphp/simplesamlphp-module-metarefresh/blob/master/docs/simplesamlphp-automated_metadata.md). diff --git a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-authproc.md b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-authproc.md index 20c1eb53b45fb78228f389b9d7b0f67b5388af0a..2dc34990f7f04fc00dca3cfdb9c3e135ff840207 100644 --- a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-authproc.md +++ b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-authproc.md @@ -27,7 +27,7 @@ Be aware that Authentication Proccessing Filters do replace some of the previous * `attributemap` * `attributealter` - * attribute filter + * `attribute filter` Later in this document, we will desribe in detail the alternative Authentication Proccessing Filters that will replicate these functionalities. @@ -124,14 +124,13 @@ Auth Proc Filters included in the SimpleSAMLphp distribution The following filters are included in the SimpleSAMLphp distribution: -- [`authorize:Authorize`](./authorize:authorize): Access control based on regular expressions. -- [`consent:Consent`](./consent:consent): Ask the user for consent before transmitting attributes. - [`core:AttributeAdd`](./core:authproc_attributeadd): Add attributes to the response. - [`core:AttributeCopy`](./core:authproc_attributecopy): Copy existing attributes to the response. - [`core:AttributeAlter`](./core:authproc_attributealter): Do search-and-replace on attributevalues. - [`core:AttributeLimit`](./core:authproc_attributelimit): Limit the attributes in the response. - [`core:AttributeMap`](./core:authproc_attributemap): Change the name of the attributes. - [`core:AttributeRealm`](./core:authproc_attributerealm): (deprecated) Create an attribute with the realm of the user. +- [`core:AttributeValueMap`](./core:authproc_attributevaluemap): Map attribute values to new values and attribute name. - [`core:Cardinality`](./core:authproc_cardinality): Ensure the number of attribute values is within the specified multiplicity. - [`core:CardinalitySingle`](./core:authproc_cardinalitysingle): Ensure the correct cardinality of single-valued attributes. - [`core:GenerateGroups`](./core:authproc_generategroups): Generate a `group` attribute for the user. @@ -142,7 +141,6 @@ The following filters are included in the SimpleSAMLphp distribution: - [`core:StatisticsWithAttribute`](./core:authproc_statisticswithattribute): Create a statistics logentry. - [`core:TargetedID`](./core:authproc_targetedid): Generate the `eduPersonTargetedID` attribute. - [`core:WarnShortSSOInterval`](./core:authproc_warnshortssointerval): Give a warning if the user logs into the same SP twice within a few seconds. -- [`expirycheck:ExpiryDate`](./expirycheck:expirycheck): Block access to accounts that have expired. - [`saml:AttributeNameID`](./saml:nameid): Generate custom NameID with the value of an attribute. - [`saml:AuthnContextClassRef`](./saml:authproc_authncontextclassref): Set the authentication context in the response. - [`saml:ExpectedAuthnContextClassRef`](./saml:authproc_expectedauthncontextclassref): Verify the user's authentication context. @@ -151,7 +149,6 @@ The following filters are included in the SimpleSAMLphp distribution: - [`saml:PersistentNameID`](./saml:nameid): Generate persistent NameID from an attribute. - [`saml:PersistentNameID2TargetedID`](./saml:nameid): Store persistent NameID as eduPersonTargetedID. - [`saml:TransientNameID`](./saml:nameid): Generate transient NameID. -- [`smartattributes:SmartID`](./smartattributes:smartattributes): Generate user ID attribute based on several attributes. See the [Third-party modules](https://simplesamlphp.org/modules) page on the SimpleSAMLphp website for externally hosted modules that may provide a processing filter. diff --git a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-changelog.md b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-changelog.md index 940d49ff65f330a1412031636540b34f29418559..41156939df89ceeaee1e4c951dd343cacd71fdda 100644 --- a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-changelog.md +++ b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-changelog.md @@ -6,17 +6,126 @@ SimpleSAMLphp changelog This document lists the changes between versions of SimpleSAMLphp. See the upgrade notes for specific information about upgrading. -## Version 1.17.8 +## Version 1.18.7 -Released 2019-11-20 +Released 2020-05-12 + * Fix spurious warnings when session_create_id() fails to create ID (#1291) + * Fix inconsistency in the way PATH_INFO is being used (#1227). + * Fix a potential security issue [CVE-2020-11022](https://nvd.nist.gov/vuln/detail/CVE-2020-11022) by updating jQuery. If any of your custom modules rely on jQuery, + * make sure you read the following [update notes](https://jquery.com/upgrade-guide/3.5/), since jQuery has solved this in a non-BC way (#1321). + * Fix incorrect Polish translations (#1311). + * Fix a broken migration query in the LogoutStore (#1324). + * Fix an issue with the SameSite cookie parameter when running on PHP versions older than 7.3 (#1320). + +### adfs + * Fixed a broken link to one of the assets (v0.9.6). + +### ldap + * Handle binary attributes in a generic way (v0.9.5). + +### oauth + * Fix PHP 7.4 incompatibility (v0.9.2). + +### preprodwarning + * Fix Dutch translations (v0.9.2). + +### sanitycheck + * Fix broken HTML (v0.9.1). + +### saml + * Fix several issues in the saml:NameIDAttribute authproc filter (#1325). + +### saml2 library + * fixed a standards compliance issue regarding ContactPerson EMail addresses (v3.4.4). + * fixed an issue parsing very large metadata files (v3.4.3). + +## Version 1.18.6 + +Released 2020-04-17 + + * Fix source code disclosure on case-insensitive file systems. See + [SSPSA 202004-01](https://simplesamlphp.org/security/202004-01). + * Fix spurious error in logs when using a custom theme (#1312). + * Fix broken metadata converter (#1305). + +## Version 1.18.5 + +Released 2020-03-19 + + * Make the URLs for the cron module work again (#1248). + * Email error reports now include metadata again (#1269). + * Fix exampleauth module when using the legacy UI (#1275). + * Fix authorize module when using custom reject message. + * Documentation improvements. + * Fix connection persistence for deployments that switched to memcached. + +## Version 1.18.4 + +Released 2020-01-24 + + * Resolved a security issue in email reports. See + [SSPSA 202001-01](https://simplesamlphp.org/security/202001-01). + * Resolved a security issue with the logging system. See + [SSPSA 202001-02](https://simplesamlphp.org/security/202001-02). + * Fixed SQL store index creation for PostgreSQL. + * Handle case where cookie 'domain' parameter was not set. + * Update versions of included JavaScript dependencies. + +## Version 1.18.3 + +Released 2019-12-09 + + * Fixed an issue with several modules being enabled by default (#1257). + * Fixed an issue with metadata generation for trusted entities (#1247, #1251). + +### ldap + * Fixed an issue affecting the installation in case-insensitive file systems (#1253). + +## Version 1.18.2 + +Released 2019-11-26 + + * Fixed an issue with the `ldap` module that prevented installing SimpleSAMLphp from the repository (#1241). + +## Version 1.18.1 + +Released 2019-11-26 + + * Fixed an issue that prevented custom themes from working (#1240). + * Fixed an issue with translations in the discovery service (#1244). + * Fixed an issue with schema validation. + +## Version 1.18.0 + +Released 2019-11-19 + + * Fixed an issue with warnings being logged when using PHP 7.2 or newer (#1168). + * Fixed an issue with web server aliases or rewritten URLs not working (#1023, #1093). + * Fixed an issue that prevented errors to be logged if the log file was not writeable (#1194). + * Fixed an issue with old-style NameIDPolicy configurations that disallowed creating new NameIDs (#1230). * Resolved a security issue that exposed host information to unauthenticated users. See [SSPSA 201911-02](https://simplesamlphp.org/security/201911-02). + * Replaced custom Email class with the phpmailer library. + * Allow logging to STDERR in the `logging.handler` option by setting it to `stderr`. + * Allow use of stream wrappers (e.g. s3://) in paths. + * Improved 'update or insert' handling for different SQL drivers. + * The default algorithm within the TimeLimitedToken class has been bumped from SHA-1 to SHA-256 + as announced by deprecation notice in 1.15. + * Most modules have been externalized. They will not be included in our future releases by default, + but will be easily installable using composer. For now, they are still included in the package. + * Minor fixes to code, CSS and documentation. -### consentAdmin +### metarefresh + * The algorithm to compute the fingerprint of the certificate that signed + metadata can be specified with the new `validateFingerprintAlgorithm` + configuration option. - * Fixed an issue with CSS and Javascript not loading for the module in the new user - interface. +### saml + * Make the id of the generated signed metadata change only when metadata content changes. + * New SP metadata configuration options `AssertionConsumerService` and `SingleLogoutServiceLocation` + to allow overriding the default URL paths. + * Added support for per-IDP configurable `AuthnContextClassRef`/`AuthnContextComparison`. ## Version 1.17.7 @@ -512,7 +621,7 @@ Released 2017-04-27 * Resolved a security issue with unauthenticated encryption in the SimpleSAML\Utils\Crypto class. See [SSPSA 201704-01](https://simplesamlphp.org/security/201704-01). * Added requirement for the Multibyte String PHP extension and the corresponding checks. * Set a default name for SimpleSAMLphp sessions in the configuration template for the PHP session handler. - + ## Version 1.14.12 Released 2017-03-30 @@ -903,7 +1012,7 @@ Released 2013-06-05. * Workaround for SSL SNI extension not being correctly set. * New language cookie and parameter config options. * Add 'module.enable' configuration option for enabling/disabling modules. - * Check for existence of memcache extension. + * Check for existence of memcache extension. * Initial support for limiting redirects to trusted hosts. * Demo example now shows both friendly and canonical name of the attributes. * Other minor fixes for bugs and typos. @@ -1695,8 +1804,8 @@ Updates to `config.php`. Please check for updates in your local modified configu * Documentation update. New authencation source API now default and documented. * New authentication source (new API): * LDAP - * LDAPMulti - * YubiKey authentication source. (Separate module) + * LDAPMulti + * YubiKey authentication source. (Separate module) * Facebook authentication source. (Separate module) * New Authentication Processing Filter: * AttributeAlter @@ -1719,7 +1828,7 @@ Updates to `config.php`. Please check for updates in your local modified configu * New module: Aggregator: Aggregates metadata. Used in Kalmar Union. * New module: Metarefresh, download, parses and consumes metadata. * New module: SanityCheck. Checks if things looks good and reports bad configuration etc. - * New module: Cron. Will perform tasks regularly. + * New module: Cron. Will perform tasks regularly. * Module: SAML2.0. SAML 2.0 SP implemented as an module. Yet not documented how to use, but all SAML 2.0 SP functionality may be moved out to this module for better modularization. * New module: statistics. Parses STAT log files, and aggregates based on a generic rule system. Output is stored in aggregated text files, and a frontend is included to present statistics with tables and graphs. Used sanitycheck and cron. * Added support for IdP initiated SSO. @@ -1745,7 +1854,7 @@ Updates to `config.php`. Please check for updates in your local modified configu * Added notes about how to aggregate and consume metadata. Just a start. * Large improvements to Configuration class, and config helper functions. * STAT logging is moved into separate authenticaion processing filter. - * Fix for NoPassive responses to Google Apps with alternative NameIDFormats. + * Fix for NoPassive responses to Google Apps with alternative NameIDFormats. * LDAP module allows to search multiple searchbases. * All documentation is converted from docbook to markdown format. * Added headers to not allow google to index pages. @@ -1759,7 +1868,7 @@ Updates to `config.php`. Please check for updates in your local modified configu * Improved UI on default theme * Fix for session duration in the Conditions element in the Assertion (SAML 2.0). * Updated with new Feide IdP metadata in metadata-templates - + ## Version 1.3 diff --git a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-customauth.md b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-customauth.md index ac9b04e2456248c8ab91e7667136b500b1ee069c..8e6ee8d2575cd7b32cdcb7835dfd4992377ada1d 100644 --- a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-customauth.md +++ b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-customauth.md @@ -1,7 +1,7 @@ Implementing custom username/password authentication ==================================================== -This is a step-by-step guide for creating a custom username/password [authentication source](./simplesamlphp-authsource.md) for SimpleSAMLphp. +This is a step-by-step guide for creating a custom username/password [authentication source](./simplesamlphp-authsource) for SimpleSAMLphp. An authentication source is responsible for authenticating the user, typically by getting a username and password, and looking it up in some sort of database. <!-- {{TOC}} --> @@ -9,7 +9,7 @@ An authentication source is responsible for authenticating the user, typically b Create a custom module ---------------------- -All custom code for SimpleSAMLphp should be contained in a [module](./simplesamlphp-modules.md). +All custom code for SimpleSAMLphp should be contained in a [module](./simplesamlphp-modules). This ensures that you can upgrade your SimpleSAMLphp installation without overwriting your own code. In this example, we will call the module `mymodule`. It will be located under `modules/mymodule`. @@ -40,6 +40,8 @@ To begin with, we will create a very simple authentication source, where the use Create the file `modules/mymodule/lib/Auth/Source/MyAuth.php` with the following contents: <?php + namespace SimpleSAML\Module\mymodule\Auth\Source; + class MyAuth extends \SimpleSAML\Module\core\Auth\UserPassBase { protected function login($username, $password) { if ($username !== 'theusername' || $password !== 'thepassword') { @@ -58,7 +60,7 @@ Some things to note: - The classname is `\SimpleSAML\Module\mymodule\Auth\Source\MyAuth`. This tells SimpleSAMLphp to look for the class in `modules/mymodule/lib/Auth/Source/MyAuth.php`. - - Our authentication source subclassese `\SimpleSAML\Module\core\Auth\UserPassBase`. + - Our authentication source subclasses `\SimpleSAML\Module\core\Auth\UserPassBase`. This is a helper-class that implements much of the common code needed for username/password authentication. - The `login` function receives the username and password the user enters. @@ -214,7 +216,7 @@ Note that we have updated the username & password to "theconfigusername" and "th A more complete example - custom database authentication -------------------------------------------------------- -The [sqlauth:SQL](../modules/sqlauth/docs/sql.md) authentication source can do simple authentication against SQL databases. +The [sqlauth:SQL](./sqlauth:sql) authentication source can do simple authentication against SQL databases. However, in some cases it cannot be used, for example because the database layout is too complex, or because the password validation routines cannot be implemented in SQL. What follows is an example of an authentication source that fetches an user from a database, and validates the password using a custom function. diff --git a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-errorhandling.md b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-errorhandling.md index f7251550b6ccc801c6d7ed25c504217099b2b4fb..ddefac164874fca8a905af5e2478ab1ddb42986e 100644 --- a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-errorhandling.md +++ b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-errorhandling.md @@ -147,7 +147,7 @@ There are two methods in this class that deals with exceptions: #### `throwException` This method delivers the exception to the code that initialized the exception handling in the authentication state. -That would be `\SimpleSAML\Auth\DefaultAuth` for authtentication sources, and `www/saml2/idp/SSOService.php` for processing filters. +That would be `www/saml2/idp/SSOService.php` for processing filters. To configure how and where the exception should be delivered, there are two fields in the state-array which can be set: * `\SimpleSAML\Auth\State::EXCEPTION_HANDLER_FUNC`, in which case the exception will be delivered by a function call to the function specified in that field. @@ -173,17 +173,6 @@ The following code illustrates this behaviour: } -### `\SimpleSAML\Auth\DefaultAuth` - -This class accepts an `$errorURL` parameter to the `initLogin()` function. -This parameter is stored in the `\SimpleSAML\Auth\State::EXCEPTION_HANDLER_URL` of the state array. -Exceptions thrown by the authentication source will be delivered to that URL. - -It also wraps the call to the `authenticate()` function inside a try-catch block. -Any exceptions thrown during that function call will be delivered to the URL specified in the `$errorURL` parameter. -This is done for consistency, since `\SimpleSAML\Auth\DefaultAuth` never transfers control back to the caller by returning. - - ### `\SimpleSAML\Auth\ProcessingChain` This class requires the caller to add the error handler to the state array before calling the `processState()` function. diff --git a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-idp.md b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-idp.md index 2a8cd83ff87368b36d574283537278a98db7978b..48547ba31f59f64586b43bedc58008fb2be035a3 100644 --- a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-idp.md +++ b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-idp.md @@ -110,7 +110,7 @@ In this setup, this file should contain a single entry: ], ]; -This configuration creates two users - `student` and `employee`, with the passwords `studentpass` and `employeepass`. The username and password is stored in the array index (`student:studentpass` for the `student`-user. The attributes for each user is configured in the array referenced by the index. For the student user, these are: +This configuration creates two users - `student` and `employee`, with the passwords `studentpass` and `employeepass`. The username and password are stored in the array index (`student:studentpass` for the `student`-user). The attributes for each user are configured in the array referenced by the index. So for the student user, these are: [ 'uid' => ['student'], @@ -120,10 +120,10 @@ This configuration creates two users - `student` and `employee`, with the passwo The attributes will be returned by the IdP when the user logs on. -Creating a SSL self signed certificate --------------------------------------- +Creating a self signed certificate +---------------------------------- -Here is an example of an `openssl`-command which can be used to generate a new private key key and the corresponding self-signed certificate. +The IdP needs a certificate to sign its SAML assertions with. Here is an example of an `openssl`-command which can be used to generate a new private key key and the corresponding self-signed certificate. The private key and certificate go into the directory defined in the certdir setting (defaults to `cert/`) This key and certificate can be used to sign SAML messages: diff --git a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-install.md b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-install.md index 231d27cf920359fc11599b35b59d1e45723a243c..0334ba41528cdf8228830cd997d15c04fe0d8e36 100644 --- a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-install.md +++ b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-install.md @@ -27,7 +27,7 @@ Prerequisites ------------- * A web server capable of executing PHP scripts. - * PHP version >= 5.5.0. + * PHP version >= 5.6.0. * Support for the following PHP extensions: * Always required: `date`, `dom`, `hash`, `libxml`, `openssl`, `pcre`, `SPL`, `zlib`, `json`, `mbstring` * When automatically checking for latest versions, and used by some modules: `cURL` @@ -130,7 +130,7 @@ one possible configuration. Find the Apache configuration file for the virtual hosts where you want to run SimpleSAMLphp. The configuration may look like this: -```apacheconfig +``` <VirtualHost *> ServerName service.example.com DocumentRoot /var/www/service.example.com @@ -140,15 +140,7 @@ look like this: Alias /simplesaml /var/simplesamlphp/www <Directory /var/simplesamlphp/www> - <IfModule !mod_authz_core.c> - # For Apache 2.2: - Order allow,deny - Allow from all - </IfModule> - <IfModule mod_authz_core.c> - # For Apache 2.4: Require all granted - </IfModule> </Directory> </VirtualHost> ``` @@ -158,10 +150,10 @@ Note the `Alias` directive, which gives control to SimpleSAMLphp for all urls ma them are accessible through the `www` subdirectory of your SimpleSAMLphp installation. You can name the alias whatever you want, but the name must be specified in the `baseurlpath` configuration option in the `config.php` file of SimpleSAMLphp as described in -[the section called “SimpleSAMLphp configuration: config.php”](#sect.config "SimpleSAMLphp configuration: config.php"). +[the section called “SimpleSAMLphp configuration: config.php”](#section_6 "SimpleSAMLphp configuration: config.php"). Here is an example of how this configuration may look like in `config.php`: -```php +``` $config = [ [...] 'baseurlpath' => 'simplesaml/', @@ -179,7 +171,7 @@ directory too, use the `metadatadir` configuration option to specify the locatio This is just the basic configuration to get things working. For a checklist further completing your documentation, please see -[Maintenance and configuration: Apache](simplesamlphp-maintenance.md#apache-configuration). +[Maintenance and configuration: Apache](simplesamlphp-maintenance#section_5). Configuring Nginx @@ -203,20 +195,17 @@ look like this: ssl_certificate /etc/pki/tls/certs/idp.example.com.crt; ssl_certificate_key /etc/pki/tls/private/idp.example.com.key; - ssl_protocols TLSv1.1 TLSv1.2; - ssl_ciphers HIGH:!aNULL:!MD5; + ssl_protocols TLSv1.3 TLSv1.2; + ssl_ciphers EECDH+AESGCM:EDH+AESGCM; location ^~ /simplesaml { alias /var/simplesamlphp/www; - location ~ \.php(/|$) { - root /var/simplesamlphp/www; - fastcgi_pass 127.0.0.1:9000; - fastcgi_index index.php; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - fastcgi_split_path_info ^(.+?\.php)(/.*)$; - fastcgi_param PATH_INFO $fastcgi_path_info; + location ~ ^(?<prefix>/simplesaml)(?<phpfile>.+?\.php)(?<pathinfo>/.*)?$ { include fastcgi_params; + fastcgi_pass $fastcgi_pass; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param SCRIPT_NAME /simplesaml$phpfile; } } } @@ -230,7 +219,7 @@ There are a few steps that you should complete in the main configuration file, ` - Set the `baseurlpath` configuration option. Make it point to the canonical URL of your deployment, where SimpleSAMLphp can be reached: - ```php + ``` 'baseurlpath' => 'https://your.canonical.host.name/simplesaml/', ``` @@ -242,10 +231,10 @@ There are a few steps that you should complete in the main configuration file, ` - Set an administrator password. This is needed to access some of the pages in your SimpleSAMLphp installation web interface. - Hashed passwords can also be used here. See the [`authcrypt`](../modules/authcrypt/docs/authcrypt.md) documentation + Hashed passwords can also be used here. See the [`authcrypt`](./authcrypt:authcrypt) documentation for more information. - ```php + ``` 'auth.adminpassword' => 'setnewpasswordhere', ``` @@ -259,7 +248,7 @@ There are a few steps that you should complete in the main configuration file, ` Here is an example of the configuration option: - ```php + ``` 'secretsalt' => 'randombytesinsertedhere', ``` @@ -276,7 +265,7 @@ There are a few steps that you should complete in the main configuration file, ` - Set technical contact information. This information will be available in the generated metadata. The e-mail address will also be used for receiving error reports sent automatically by SimpleSAMLphp. Here is an example: - ```php + ``` 'technicalcontact_name' => 'John Smith', 'technicalcontact_email' => 'john.smith@example.com', ``` @@ -284,13 +273,13 @@ There are a few steps that you should complete in the main configuration file, ` - If you use SimpleSAMLphp in a country where English is not widespread, you may want to change the default language from English to something else: - ```php + ``` 'language.default' => 'no', ``` - Set your timezone - ```php + ``` 'timezone' => 'Europe/Oslo', ``` @@ -302,11 +291,12 @@ Configuring PHP ### Sending e-mails from PHP -Some parts of SimpleSAMLphp will allow you to send e-mails. For example, sending error reports to technical admin. If +Some parts of SimpleSAMLphp will allow you to send e-mails. For example, sending error reports to the technical admin. If you want to make use of this functionality, you should make sure your PHP installation is configured to be able to -send e-mails. It's a common problem that PHP is not configured to send e-mails properly. The configuration differs -from system to system. On UNIX, PHP is using sendmail, on Windows SMTP. +send e-mails. +By default SimpleSAMLphp uses the PHP `mail()` function, which you can configure via `php.ini`. +For more advanced configuration, including using a remote SMTP server, see the `mail.*` options in `config.php`. Enabling and disabling modules ------------------------------ @@ -314,7 +304,7 @@ Enabling and disabling modules If you want to enable some of the modules that are installed with SimpleSAMLphp, but are disabled by default, you can do that in the configuration: -```php +``` 'module.enable' => [ 'exampleauth' => true, // Setting to TRUE enables. 'saml' => false, // Setting to FALSE disables. @@ -381,7 +371,7 @@ in a separate document. + [Remote SP reference](simplesamlphp-reference-sp-remote) + [Setting up an IdP for G Suite (Google Apps)](simplesamlphp-googleapps) + [Advanced Topics](simplesamlphp-idp-more) - - [Automated Metadata Management](simplesamlphp-automated_metadata) + - [Automated Metadata Management](https://github.com/simplesamlphp/simplesamlphp-module-metarefresh/blob/master/docs/simplesamlphp-automated_metadata.md) - [Maintenance and configuration](simplesamlphp-maintenance) @@ -413,7 +403,7 @@ The SimpleSAMLphp package contains one folder named `simplesamlphp-x.y.z` (where this folder there are a lot of subfolders for library, metadata, configuration, etc. One of these folders is named `www`. **Only this folder should be exposed on the web**. The recommended configuration is to put the whole `simplesamlphp` folder outside the web root, and then link to the `www` folder by using the `Alias` directive, as -described in [the section called “Configuring Apache”](#sect.apacheconfig "Configuring Apache"). This is not the only +described in [the section called “Configuring Apache”](#section_4 "Configuring Apache"). This is not the only possible way, though. As an example, let's see how you can install SimpleSAMLphp in your home directory on a shared hosting server. @@ -436,8 +426,8 @@ As an example, let's see how you can install SimpleSAMLphp in your home director 3. Next, you need to set the `baseurlpath` configuration option with the URL pointing to the `simplesaml` link you just created in your `public_html` directory. For example, if your home directory is reachable in `https://host.example/~myaccount/`, set the base URL path accordingly: - - ```php + + ``` 'baseurlpath' => 'https://host.example/~myaccount/simplesaml/', ``` @@ -467,13 +457,13 @@ Now, we need to make a few configuration changes. First, let's edit `~/public_ht Change the two lines from: -```php +``` require_once(dirname(dirname(__FILE__)) . '/lib/_autoload.php'); ``` to something like: -```php +``` require_once(dirname(dirname(dirname(__FILE__))) . '/lib/_autoload.php'); ``` diff --git a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-metadata-extensions-attributes.md b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-metadata-extensions-attributes.md index 832bc9c7d99106362f7cf65d34ccddb118524338..aac564cea888853d3f5703295f60a4e81a0cd34f 100644 --- a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-metadata-extensions-attributes.md +++ b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-metadata-extensions-attributes.md @@ -1,5 +1,5 @@ -SAML V2.0 Metadata Extensions for Login and Discovery User Interface -============================= +SAML V2.0 Metadata Attribute Extensions +======================================= <!-- This file is written in Markdown syntax. @@ -7,16 +7,16 @@ SAML V2.0 Metadata Extensions for Login and Discovery User Interface http://daringfireball.net/projects/markdown/syntax --> - * Author: Timothy Ace [tace@synacor.com](mailto:tace@synacor.com) - <!-- {{TOC}} --> -This is a reference for the SimpleSAMLphp implemenation of the [SAML +This is a reference for the SimpleSAMLphp implementation of the [SAML V2.0 Attribute Extensions](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-attribute-ext.pdf) -defined by OASIS. +defined by OASIS. A common use case is adding entity attributes +to the generated metadata. -The `metadata/saml20-idp-hosted.php` entries are used to define the -metadata extension items. An example of this is: +For an IdP `metadata/saml20-idp-hosted.php` entries are used to define the +metadata extension items; for an SP they can be added to `config/authsources.php`. +An example of this is: <?php $metadata['entity-id-1'] = [ @@ -29,13 +29,13 @@ metadata extension items. An example of this is: ]; The OASIS specification primarily defines how to include arbitrary -`Attribute` and `Assertion` elements within the metadata for an IdP. +`Attribute` and `Assertion` elements within the metadata for an entity. *Note*: SimpleSAMLphp does not support `Assertion` elements within the metadata at this time. Defining Attributes --------------- +------------------- The `EntityAttributes` key is used to define the attributes in the metadata. Each item in the `EntityAttributes` array defines a new @@ -71,8 +71,8 @@ This generates: When the curly braces are omitted, the NameFormat is automatically set to "urn:oasis:names:tc:SAML:2.0:attrname-format:uri". -Generated XML Metadata Examples ----------------- +Examples +-------- If given the following configuration... @@ -110,3 +110,33 @@ If given the following configuration... <ds:X509Data> ... + +An example configuration to declare Géant Data Protection Code of Conduct +entity category support for a service provider in `authsources.php`: + + 'saml:SP' => [ + ... + 'EntityAttributes' => [ + 'http://macedir.org/entity-category' => [ + 'http://www.geant.net/uri/dataprotection-code-of-conduct/v1' + ] + ], + 'UIInfo' =>[ + 'DisplayName' => [ + 'en' => 'English name', + 'es' => 'Nombre en Español', + ], + 'Description' => [ + 'en' => 'English description', + 'es' => 'Descripción en Español', + ], + 'InformationURL' => [ + 'en' => 'http://example.com/info/en', + 'es' => 'http://example.com/info/es', + ], + 'PrivacyStatementURL' => [ + 'en' => 'http://example.com/privacy/en', + 'es' => 'http://example.com/privacy/es', + ], + ] + ], diff --git a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-reference-idp-hosted.md b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-reference-idp-hosted.md index 276d9b7f66c5bb354a9ad3b141ad11eb210af78a..3a6b47934b868487996c680f56b6ff66b96d0ffd 100644 --- a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-reference-idp-hosted.md +++ b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-reference-idp-hosted.md @@ -35,12 +35,6 @@ Common options `auth` : Which authentication module should be used to authenticate users on this IdP. -<!-- -`authority` -: Who is authorized to create sessions for this IdP. Can be - `login` for LDAP login module, or `saml2` for SAML 2.0 SP. - Specifying this parameter is highly recommended. ---> `authproc` : Used to manipulate attributes, and limit access for each SP. See @@ -129,6 +123,8 @@ Common options any value in the SP-remote metadata overrides the one configured in the IdP metadata. +: *Note*: **deprecated** Will be removed in a future release; use the MDUI-extension instead + `privatekey` : Name of private key file for this IdP, in PEM format. The filename is relative to the `cert/`-directory. @@ -148,13 +144,9 @@ Common options the user. This attribute is used if SimpleSAMLphp needs to generate a persistent unique identifier for the user. This option can be set in both the IdP-hosted and the SP-remote metadata. The value in the - sp-remote metadata has the highest priority. The default value is + SP-remote metadata has the highest priority. The default value is `eduPersonPrincipalName`. -: Note that this option also exists in the SP-remote metadata, and - any value in the SP-remote metadata overrides the one configured - in the IdP metadata. - SAML 2.0 options ---------------- @@ -167,6 +159,25 @@ The following SAML 2.0 options are available: : Note that this option can be set for each SP in the SP-remote metadata. +`attributeencodings` +: What encoding should be used for the different attributes. This is + an array which maps attribute names to attribute encodings. There + are three different encodings: + +: - `string`: Will include the attribute as a normal string. This is + the default. + +: - `base64`: Store the attribute as a base64 encoded string. This + is the default when the `base64attributes`-option is set to + `TRUE`. + +: - `raw`: Store the attribute without any modifications. This + makes it possible to include raw XML in the response. + +: Note that this option also exists in the SP-remote metadata, and + any value in the SP-remote metadata overrides the one configured + in the IdP metadata. + `attributes.NameFormat` : What value will be set in the Format field of attribute statements. This parameter can be configured multiple places, and @@ -253,12 +264,6 @@ The following SAML 2.0 options are available: : Allows to specify information about the registrar of this SP. Please refer to the [MDRPI extension](./simplesamlphp-metadata-extensions-rpi) document for further information. -`saml20.sendartifact` -: Set to `TRUE` to enable the IdP to send responses with the HTTP-Artifact binding. - Defaults to `FALSE`. - -: Note that this requires a configured memcache server. - `saml20.ecp` : Set to `true` to enable the IdP to recieve authnrequests and send responses according the Enhanced Client or Proxy (ECP) Profile. Note: authentication filters that require interaction with the user will not work with ECP. Defaults to `false`. @@ -267,22 +272,39 @@ The following SAML 2.0 options are available: : Set to `TRUE` to enable the IdP to send responses according the [Holder-of-Key Web Browser SSO Profile](./simplesamlphp-hok-idp). Defaults to `FALSE`. -`saml20.sign.response` -: Whether `<samlp:Response>` messages should be signed. +`saml20.sendartifact` +: Set to `TRUE` to enable the IdP to send responses with the HTTP-Artifact binding. + Defaults to `FALSE`. + +: Note that this requires a configured memcache server. + +`saml20.sign.assertion` +: Whether `<saml:Assertion>` elements should be signed. Defaults to `TRUE`. : Note that this option also exists in the SP-remote metadata, and any value in the SP-remote metadata overrides the one configured in the IdP metadata. -`saml20.sign.assertion` -: Whether `<saml:Assertion>` elements should be signed. +`saml20.sign.response` +: Whether `<samlp:Response>` messages should be signed. Defaults to `TRUE`. : Note that this option also exists in the SP-remote metadata, and any value in the SP-remote metadata overrides the one configured in the IdP metadata. +`signature.algorithm` +: The algorithm to use when signing any message generated by this identity provider. Defaults to RSA-SHA256. +: Possible values: + + * `http://www.w3.org/2000/09/xmldsig#rsa-sha1` + *Note*: the use of SHA1 is **deprecated** and will be disallowed in the future. + * `http://www.w3.org/2001/04/xmldsig-more#rsa-sha256` + The default. + * `http://www.w3.org/2001/04/xmldsig-more#rsa-sha384` + * `http://www.w3.org/2001/04/xmldsig-more#rsa-sha512` + `sign.logout` : Whether to sign logout messages sent from this IdP. @@ -332,17 +354,6 @@ The following SAML 2.0 options are available: specified will be kept in the metadata, making the first binding the default one. -`signature.algorithm` -: The algorithm to use when signing any message generated by this identity provider. Defaults to RSA-SHA256. -: Possible values: - - * `http://www.w3.org/2000/09/xmldsig#rsa-sha1` - *Note*: the use of SHA1 is **deprecated** and will be disallowed in the future. - * `http://www.w3.org/2001/04/xmldsig-more#rsa-sha256` - The default. - * `http://www.w3.org/2001/04/xmldsig-more#rsa-sha384` - * `http://www.w3.org/2001/04/xmldsig-more#rsa-sha512` - `validate.authnrequest` : Whether we require signatures on authentication requests sent to this IdP. diff --git a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-reference-idp-remote.md b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-reference-idp-remote.md index 0859495d56af5809a89ddede4c4e5f59f03a3638..95b4eda3e9d0b049267cf551a5d9b04f32986a60 100644 --- a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-reference-idp-remote.md +++ b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-reference-idp-remote.md @@ -44,6 +44,18 @@ The following options are common between both the SAML 2.0 protocol and Shibbole `icon` : A logo which will be shown next to this IdP in the discovery service. +`name` +: The name of this IdP. Will be used by various modules when they need to show a name of the SP to the user. + +: If this option is unset, the organization name will be used instead (if it is available). + +: This option can be translated into multiple languages by specifying the value as an array of language-code to translated name: + + 'name' => [ + 'en' => 'A service', + 'no' => 'En tjeneste', + ], + `OrganizationName` : The name of the organization responsible for this SPP. This name does not need to be suitable for display to end users. @@ -73,18 +85,6 @@ The following options are common between both the SAML 2.0 protocol and Shibbole : *Note*: If you specify this option, you must also specify the `OrganizationName` option. -`name` -: The name of this IdP. Will be used by various modules when they need to show a name of the SP to the user. - -: If this option is unset, the organization name will be used instead (if it is available). - -: This option can be translated into multiple languages by specifying the value as an array of language-code to translated name: - - 'name' => [ - 'en' => 'A service', - 'no' => 'En tjeneste', - ], - `scope` : An array with scopes valid for this IdP. The IdP will send scopes in scoped attributes, that is, attributes containing a value with an `@` sign and a domain name @@ -104,6 +104,26 @@ SAML 2.0 options The following SAML 2.0 options are available: +`AuthnContextClassRef` +: The AuthnContextClassRef that will be sent in the login request. + +: Note that this option also exists in the SP configuration. This + entry in the IdP-remote metadata overrides the option in the + [SP configuration](./saml:sp). + +`AuthnContextComparison` + +: The Comparison attribute of the AuthnContext that will be sent in the login request. This parameter won't be used unless AuthnContextClassRef is set and contains one or more values. Possible values: + + SAML2\Constants::COMPARISON_EXACT (default) + SAML2\Constants::COMPARISON_BETTER + SAML2\Constants::COMPARISON_MINIMUM + SAML2\Constants::COMPARISON_MAXIMUM + +: Note that this option also exists in the SP configuration. This + entry in the IdP-remote metadata overrides the option in the + [SP configuration](./saml:sp). + `disable_scoping` : Whether sending of samlp:Scoping elements in authentication requests should be suppressed. The default value is `FALSE`. When set to `TRUE`, no scoping elements will be sent. This does not comply with the SAML2 specification, but allows @@ -149,6 +169,19 @@ The following SAML 2.0 options are available: : For compatibility purposes, `null` is equivalent to Transient and a format can be defined as a string instead of an array. These variants are deprecated. +`signature.algorithm` +: The algorithm to use when signing any message sent to this specific identity provider. Defaults to RSA-SHA256. +: Note that this option also exists in the SP configuration. + This value in the IdP remote metadata overrides the value in the SP configuration. +: Possible values: + + * `http://www.w3.org/2000/09/xmldsig#rsa-sha1` + *Note*: the use of SHA1 is **deprecated** and will be disallowed in the future. + * `http://www.w3.org/2001/04/xmldsig-more#rsa-sha256` + The default. + * `http://www.w3.org/2001/04/xmldsig-more#rsa-sha384` + * `http://www.w3.org/2001/04/xmldsig-more#rsa-sha512` + `sign.authnrequest` : Whether to sign authentication requests sent to this IdP. @@ -169,19 +202,6 @@ The following SAML 2.0 options are available: `SingleLogoutServiceResponse` : Endpoint URL for logout responses. Overrides the `SingleLogoutService`-option for responses. -`signature.algorithm` -: The algorithm to use when signing any message sent to this specific identity provider. Defaults to RSA-SHA256. -: Note that this option also exists in the SP configuration. - This value in the IdP remote metadata overrides the value in the SP configuration. -: Possible values: - - * `http://www.w3.org/2000/09/xmldsig#rsa-sha1` - *Note*: the use of SHA1 is **deprecated** and will be disallowed in the future. - * `http://www.w3.org/2001/04/xmldsig-more#rsa-sha256` - The default. - * `http://www.w3.org/2001/04/xmldsig-more#rsa-sha384` - * `http://www.w3.org/2001/04/xmldsig-more#rsa-sha512` - `SPNameQualifier` : This corresponds to the SPNameQualifier in the SAML 2.0 specification. It allows to give subjects a SP specific namespace. This option is rarely used, so if you don't need it, leave it out. When left out, SimpleSAMLphp assumes the entityID of your SP as the SPNameQualifier. diff --git a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-reference-sp-remote.md b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-reference-sp-remote.md index 6d858beb9c5bbc02ae78a00184c4cf799fa007c3..423df7b37f76366b4aa64cae63ba016b75b509e8 100644 --- a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-reference-sp-remote.md +++ b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-reference-sp-remote.md @@ -98,18 +98,16 @@ and Shibboleth 1.3 protocol: entry in the SP-remote metadata overrides the option in the IdP-hosted metadata. +: *Note*: **deprecated** Will be removed in a future release; use the MDUI-extension instead + `userid.attribute` : The attribute name of an attribute which uniquely identifies the user. This attribute is used if SimpleSAMLphp needs to generate a persistent unique identifier for the user. This option can be set in both the IdP-hosted and the SP-remote metadata. The value in the - sp-remote metadata has the highest priority. The default value is + SP-remote metadata has the highest priority. The default value is `eduPersonPrincipalName`. -: Note that this option also exists in the IdP-hosted metadata. This - entry in the SP-remote metadata overrides the option in the - IdP-hosted metadata. - SAML 2.0 options ---------------- @@ -123,6 +121,21 @@ The following SAML 2.0 options are available: : The value of this option is specified in one of several [endpoint formats](./simplesamlphp-metadata-endpoints). +`attributeencodings` +: What encoding should be used for the different attributes. This is + an array which maps attribute names to attribute encodings. There + are three different encodings: + +: - `string`: Will include the attribute as a normal string. This is + the default. + +: - `base64`: Store the attribute as a base64 encoded string. This + is the default when the `base64attributes`-option is set to + `TRUE`. + +: - `raw`: Store the attribute without any modifications. This + makes it possible to include raw XML in the response. + `attributes.NameFormat` : What value will be set in the Format field of attribute statements. This parameter can be configured multiple places, and @@ -155,6 +168,16 @@ The following SAML 2.0 options are available: : (This option was previously named `AttributeNameFormat`.) +`certData` +: The base64 encoded certificate for this SP. This is an alternative to storing the certificate in a file on disk and specifying the filename in the `certificate`-option. + +`certificate` +: Name of certificate file for this SP. The certificate is used to + verify the signature of messages received from the SP (if + `redirect.validate`is set to `TRUE`), and to encrypting assertions + (if `assertion.encryption` is set to TRUE and `sharedkey` is + unset.) + `encryption.blacklisted-algorithms` : Blacklisted encryption algorithms. This is an array containing the algorithm identifiers. @@ -197,33 +220,6 @@ The following SAML 2.0 options are available: entry in the SP-remote metadata overrides the option in the [IdP-hosted metadata](./simplesamlphp-reference-idp-hosted). -`SingleLogoutService` -: The URL of the SingleLogoutService endpoint for this SP. - This option is required if you want to implement single logout for - this SP. If the option isn't specified, this SP will not be logged - out automatically when a single logout operation is initialized. - -: The value of this option is specified in one of several [endpoint formats](./simplesamlphp-metadata-endpoints). - -`SingleLogoutServiceResponse` -: The URL logout responses to this SP should be sent. If this option - is unspecified, the `SingleLogoutService` endpoint will be used as - the recipient of logout responses. - -`SPNameQualifier` -: SP NameQualifier for this SP. If not set, the IdP will set the - SPNameQualifier to be the SP entity ID. - -`certData` -: The base64 encoded certificate for this SP. This is an alternative to storing the certificate in a file on disk and specifying the filename in the `certificate`-option. - -`certificate` -: Name of certificate file for this SP. The certificate is used to - verify the signature of messages received from the SP (if - `redirect.validate`is set to `TRUE`), and to encrypting assertions - (if `assertion.encryption` is set to TRUE and `sharedkey` is - unset.) - `saml20.sign.response` : Whether `<samlp:Response>` messages should be signed. Defaults to `TRUE`. @@ -263,6 +259,12 @@ The following SAML 2.0 options are available: : Certificate file included by IdP for KeyInfo within the signature for the SP, in PEM format. The filename is relative to the cert/-directory. : If `signature.privatekey` is present and `signature.certificate` is left blank, X509Certificate will not be included with the signature. +`sign.logout` +: Whether to sign logout messages sent to this SP. + +: Note that this option also exists in the IdP-hosted metadata. + The value in the SP-remote metadata overrides the value in the IdP-hosted metadata. + `simplesaml.nameidattribute` : When the value of the `NameIDFormat`-option is set to either `email` or `persistent`, this is the name of the attribute which @@ -280,26 +282,22 @@ The following SAML 2.0 options are available: : Whether the SP should receive any attributes from the IdP. The default value is `TRUE`. -`attributeencodings` -: What encoding should be used for the different attributes. This is - an array which maps attribute names to attribute encodings. There - are three different encodings: - -: - `string`: Will include the attribute as a normal string. This is - the default. - -: - `base64`: Store the attribute as a base64 encoded string. This - is the default when the `base64attributes`-option is set to - `TRUE`. +`SingleLogoutService` +: The URL of the SingleLogoutService endpoint for this SP. + This option is required if you want to implement single logout for + this SP. If the option isn't specified, this SP will not be logged + out automatically when a single logout operation is initialized. -: - `raw`: Store the attribute without any modifications. This - makes it possible to include raw XML in the response. +: The value of this option is specified in one of several [endpoint formats](./simplesamlphp-metadata-endpoints). -`sign.logout` -: Whether to sign logout messages sent to this SP. +`SingleLogoutServiceResponse` +: The URL logout responses to this SP should be sent. If this option + is unspecified, the `SingleLogoutService` endpoint will be used as + the recipient of logout responses. -: Note that this option also exists in the IdP-hosted metadata. - The value in the SP-remote metadata overrides the value in the IdP-hosted metadata. +`SPNameQualifier` +: SP NameQualifier for this SP. If not set, the IdP will set the + SPNameQualifier to be the SP entity ID. `validate.authnrequest` : Whether we require signatures on authentication requests sent from this SP. @@ -387,6 +385,11 @@ Shibboleth 1.3 options The following options for Shibboleth 1.3 SP's are avaiblable: +`audience` +: The value which should be given in the `<Audience>`-element in the + `<AudienceRestrictionCondition>`-element in the response. The + default value is the entity ID of the SP. + `AssertionConsumerService` : The URL of the AssertionConsumerService endpoint for this SP. This endpoint must accept the SAML responses encoded with the @@ -401,11 +404,6 @@ The following options for Shibboleth 1.3 SP's are avaiblable: `<NameIdentifier>`-element should be. The default value is the entity ID of the SP. -`audience` -: The value which should be given in the `<Audience>`-element in the - `<AudienceRestrictionCondition>`-element in the response. The - default value is the entity ID of the SP. - `scopedattributes` : Array with names of attributes which should be scoped. Scoped attributes will receive a `Scope`-attribute on the diff --git a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-sp-api.md b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-sp-api.md index 07c851f9d2c73a46daafead3f5b79cf474273a50..ad049224065d7f198f5a047126dc5d34f7882816 100644 --- a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-sp-api.md +++ b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-sp-api.md @@ -6,6 +6,19 @@ SimpleSAMLphp SP API reference This document describes the \SimpleSAML\Auth\Simple API. This is the preferred API for integrating SimpleSAMLphp with other applications. +### Note on PHP sessions and SimpleSAMLphp API calls + +Some SimpleSAMLphp calls replace the current active PHP session. If you previously started a session and wish to write to it, then you must cleanup the SimpleSAMLphp session before you can write to your session. If you do not need to modify your own session, then you can leave the cleanup call out; however, forgetting to call cleanup is a common source of hard to find bugs. + + session_start(); + // ... + $auth = new \SimpleSAML\Auth\Simple('default-sp'); + $auth->isAuthenticated(); // Replaces our session with the SimpleSAMLphp one + // $_SESSION['key'] = 'value'; // This would save to the SimpleSAMLphp session which isn't what we want + \SimpleSAML\Session::getSessionFromRequest()->cleanup(); // Reverts to our PHP session + // Save to our session + $_SESSION['key'] = 'value'; + Constructor ----------- @@ -34,11 +47,11 @@ Check whether the user is authenticated with this authentication source. ### Example if (!$auth->isAuthenticated()) { + \SimpleSAML\Session::getSessionFromRequest()->cleanup(); /* Show login link. */ print('<a href="/login">Login</a>'); } - `requireAuth` ------------- @@ -57,6 +70,7 @@ See the documentation for the `login`-function for a description of the paramete ### Example 1 $auth->requireAuth(); + \SimpleSAML\Session::getSessionFromRequest()->cleanup(); print("Hello, authenticated user!"); ### Example 2 @@ -69,6 +83,7 @@ See the documentation for the `login`-function for a description of the paramete 'ReturnTo' => 'https://sp.example.org/', 'KeepPost' => FALSE, ]); + \SimpleSAML\Session::getSessionFromRequest()->cleanup(); print("Hello, authenticated user!"); @@ -112,7 +127,7 @@ The [`saml:SP`](./saml:sp) authentication source also defines some parameters. 'isPassive' => TRUE, 'ErrorURL' => 'https://.../error_handler.php', ]); - + \SimpleSAML\Session::getSessionFromRequest()->cleanup(); `logout` -------- @@ -144,6 +159,7 @@ This function never returns. Logout, and redirect to the specified URL. $auth->logout('https://sp.example.org/logged_out.php'); + \SimpleSAML\Session::getSessionFromRequest()->cleanup(); ### Example 2 @@ -154,6 +170,7 @@ Same as the previous, but check the result of the logout operation afterwards. 'ReturnStateParam' => 'LogoutState', 'ReturnStateStage' => 'MyLogoutState', ]); + \SimpleSAML\Session::getSessionFromRequest()->cleanup(); And in logged_out.php: diff --git a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-sp.md b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-sp.md index 7fc47ee94129d3cf845d9b1a93eb356b7bf6a8e8..365289f49eae4104c30cb06cd23d44df496d194a 100644 --- a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-sp.md +++ b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-sp.md @@ -122,7 +122,7 @@ directory. If you intend to add your SP to a federation, the procedure for managing trust in federations differ, but the common part is that you would need to provide the *SAML 2.0 metadata of your SP*, and register that with the federation administration. You will probably be required too to consume the federation metadata periodically. Read more about -[automated metadata management](simplesamlphp-automated_metadata) to learn more about that. +[automated metadata management](https://github.com/simplesamlphp/simplesamlphp-module-metarefresh/blob/master/docs/simplesamlphp-automated_metadata.md) to learn more about that. Test the SP @@ -197,6 +197,26 @@ your own session after calling SimpleSAMLphp, you can do so by cleaning up the s If you don't cleanup SimpleSAMLphp's session and try to use $_SESSION afterwards, you won't be using your own session and all your data is likely to get lost or inaccessible. +Note that if your application uses a [custom session handler](https://www.php.net/manual/en/function.session-set-save-handler.php), SimpleSAMLphp will use it as well. This can lead to problems because SimpleSAMLphp's stand-alone web UI uses the default PHP session handlers. Therefore, you may need to unset the custom handler before making any calls to SimpleSAMLphp: + + // use custom save handler + session_set_save_handler($handler); + session_start(); + + // close session and restore default handler + session_write_close(); + session_set_save_handler(new SessionHandler(), true); + + // use SimpleSAML\Session + $session = \SimpleSAML\Session::getSessionFromRequest(); + $session->cleanup(); + session_write_close(); + + // back to custom save handler + session_set_save_handler($handler); + session_start(); + + Support ------- diff --git a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-theming.md b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-theming.md index 51cbe65b5bdfd7d3bdea78d37b78c888e3c7fdc0..89ea7a572b9ebb1bde08b52876562898ca44913a 100644 --- a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-theming.md +++ b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-theming.md @@ -99,6 +99,7 @@ You can put resource files within the www folder of your module, to make your mo ``` modules └───mymodule + └───lib └───themes └───www └───logo.png @@ -106,13 +107,13 @@ modules ``` Reference these resources in your custom PHP templates under `themes/fancytheme` by using a generator for the URL: -```php +``` <?php echo SimpleSAML\Module::getModuleURL('mymodule/logo.png'); ?> ``` Example for a custom CSS stylesheet file: -```html -<link rel="stylesheet" type="text/css" href="<?php echo SimpleSAML\Module::getModuleURL('mymodule/style.css'); ?>" /> +``` +<link rel="stylesheet" href="<?php echo SimpleSAML\Module::getModuleURL('mymodule/style.css'); ?>"> ``` Migrating to Twig templates @@ -130,6 +131,15 @@ If you need to make more extensive customizations to the base template, you shou Any references to `$this->data['baseurlpath']` in old-style templates can be replaced with `{{baseurlpath}}` in Twig templates. Likewise, references to `\SimpleSAML\Module::getModuleURL()` can be replaced with `{{baseurlpath}}module.php/mymodule/...` +Within templates each module is defined as a separate namespace matching the module name. This allows one template to reference templates from other modules using Twig's `@namespace_name/template_path` notation. For instance, a template in `mymodule` can include the widget template from the `yourmodule` module using the notation `@yourmodule/widget.twig`. A special namespace, `__parent__`, exists to allow theme developers to more easily extend a module's stock template. + +Even more advanced changes can be made by defining a theme controller in `config.php`: + + 'theme.controller' => '\SimpleSAML\Module\mymodule\FancyThemeController', + +This requires you to implement `\SimpleSAML\XHTML\TemplateControllerInterface.php` in your module's `lib`-directory. +The class can then modify the Twig Environment and the variables passed to the theme's templates. In short, this allows you to set additional global variables and to write your own Twig filters and functions. + See the [Twig documentation](https://twig.symfony.com/doc/1.x/templates.html) for more information on using variables and expressions in Twig templates, and the SimpleSAMLphp wiki for [our conventions](https://github.com/simplesamlphp/simplesamlphp/wiki/Twig-conventions). The wiki also includes some information on [migrating translations](https://github.com/simplesamlphp/simplesamlphp/wiki/Migrating-translation-in-Twig) and [migrating templates](https://github.com/simplesamlphp/simplesamlphp/wiki/Twig:-Migrating-templates). diff --git a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-upgrade-notes-1.14.md b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-upgrade-notes-1.14.md index 9931225c49e46085c52f80ee5a5037862d537059..fdabcdb247f102d9e4538295ff2d3b26b233e3c9 100644 --- a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-upgrade-notes-1.14.md +++ b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-upgrade-notes-1.14.md @@ -19,7 +19,7 @@ The jQuery version in use has been bumped to the latest 1.8.X version. Service Providers using the eduPersonTargetedID attribute, will get a DOMNodeList object instead of the NameID value. In order to process the NameID, a SAML2_XML_saml_NameID object can be used: -```php +``` $attributes = $as->getAttributes(); $eptid = $attributes['eduPersonTargetedID'][0]->item(0); $nameID = new SAML2_XML_saml_NameID($eptid); diff --git a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-upgrade-notes-1.17.md b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-upgrade-notes-1.17.md index 0a07a7c26aa11fce9a831632ff7a734751929780..376f081c6d2b1144adc26ce6ac1b061ddc993605 100644 --- a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-upgrade-notes-1.17.md +++ b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-upgrade-notes-1.17.md @@ -3,18 +3,18 @@ Upgrade notes for SimpleSAMLphp 1.17 The minimum PHP version required is now PHP 5.5. -All (remaining) classes have been changed to use namespaces. There are mappings -from the legacy names so calling code should keep working. Custom code -(e.g. modules) that test for class names explicitly, e.g. when catching specific +All (remaining) classes have been changed to namespaces. There are mappings +from the legacy names so calling code should remain working. Custom code +(e.g. modules) that test for class names, e.g. when catching specific exceptions, may need to be changed. -The possibility to omit sending a NameIDPolicy in authentication requests has -been reintroduced by setting `NameIDPolicy` to `false`. The preferred way is +The possibility has been reintroduced to omit the NameIdPolicy from SP +AuthnRequests by setting NameIDPolicy to `false`. The prefered way is to configure it as an array `[ 'Format' => format, 'AllowCreate' => true/false ]`, which is now also the format used in the `saml:NameIDPolicy` variable -in the state array. +in `$state`. -Code, config and documentation have switched to using the modern PHP +The code, config and documentation have switched to using the modern PHP array syntax. This should not have an impact as both will remain working equally, but the code examples and config templates look slightly different. The following are equivalent: @@ -34,16 +34,3 @@ The following are equivalent: ], 'other example' => 1 ]; - -Finally, a new experimental user interface has been introduced. The interface -is split in two: - -* A user interface targeted at end users, which allows them to authenticate and - see their information, as well as manage any options relevant to them. -* An admin interface with most of the pages in the current web interface. This - new interface is implemented in an admin module that can be disabled, effectively - removing the administrator interface completely. - -In order to test this new user interface, a temporary configuration option -`usenewui` needs to be set to `true`. This configuration option will disappear -in SimpleSAMLphp 2.0, where the new user interface will be the only one available. \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-upgrade-notes-1.18.md b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-upgrade-notes-1.18.md new file mode 100644 index 0000000000000000000000000000000000000000..785563c8ebd00d94c2fe1c8ab0a9a929d35d8df0 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-upgrade-notes-1.18.md @@ -0,0 +1,26 @@ +Upgrade notes for SimpleSAMLphp 1.18 +==================================== + +The minimum PHP version required is now PHP 5.6. + +### Deprecations + +* The use of the PHP `memcache` extension was deprecated in favour of `memcached`. +In order to keep using memcache functionality you have to move to the PHP `memcached` extension, +which is available from PECL; see https://pecl.php.net/package/memcached. The former is considered abandoned +and it's safe use can no longer be guaranteed. + + There are a few options here: + - Depending on your distribution, the package may just be available for you to install + - You could use the package from the REMI repository if you're on RHEL; https://rpms.remirepo.net/ + - Download the source from https://pecl.php.net/package/memcached and compile the source as a PHP-extension manually; + https://www.php.net/manual/en/install.pecl.phpize.php + +* Support for SAML1.1 / Shibboleth 1.3 will be discontinued in a future release. +* The class `SimpleSAML\Auth\TimeLimitedToken` is now deprecated and will be removed in a future release + If your custom module relies on this class, be sure to make a copy into your repository and + make sure to also copy the unit tests that come along. +* Setting `privacypolicy` in metadata files will be removed in a future release. It was only used + by the consent module, which supports `UIInfo`'s `PrivacyStatementURL`. + See https://simplesamlphp.org/docs/stable/simplesamlphp-metadata-extensions-ui on how to configure this. + diff --git a/vendor/simplesamlphp/simplesamlphp/extra/auth_memcookie.conf b/vendor/simplesamlphp/simplesamlphp/extra/auth_memcookie.conf deleted file mode 100644 index c387a85dc9c12f9d6d03f3fa1af2678fcea4e19a..0000000000000000000000000000000000000000 --- a/vendor/simplesamlphp/simplesamlphp/extra/auth_memcookie.conf +++ /dev/null @@ -1,38 +0,0 @@ -<Location /> - # This is a list of memcache servers which Auth MemCookie - # should use. It is a ','-separated list of - # host:port-pairs. - # Note that this list must list the same servers as the - # 'authmemcookie.servers'-option in config.php in the - # configuration for simpleSAMLphp. - Auth_memCookie_Memcached_AddrPort "127.0.0.1:11211" - - # This must be set to 'on' to enable Auth MemCookie for - # this directory. - Auth_memCookie_Authoritative on - - # This adjusts the maximum number of data elements in the - # session data. The default is 10, which can be to low. - Auth_memCookie_SessionTableSize "40" - - # These two commands are required to enable access control - # in Apache. - AuthType Cookie - AuthName "My Login" - - # This command causes apache to redirect to the given - # URL when we receive a '401 Authorization Required' - # error. We redirect to "/simplesaml/authmemcookie.php", - # which initializes a login to the IdP. - ErrorDocument 401 "/simplesaml/authmemcookie.php" - -</Location> - -<Location /secret> - # This allows all authenticated users to access the - # directory. To learn more about the 'Require' command, - # please look at: - # http://httpd.apache.org/docs/2.0/mod/core.html#require - Require valid-user -</Location> - diff --git a/vendor/simplesamlphp/simplesamlphp/extra/simplesamlphp.spec b/vendor/simplesamlphp/simplesamlphp/extra/simplesamlphp.spec index 996258f76eef3748e834a7975a32addba1ed6705..1f25819ef30f34d809709e957a43a19610810644 100644 --- a/vendor/simplesamlphp/simplesamlphp/extra/simplesamlphp.spec +++ b/vendor/simplesamlphp/simplesamlphp/extra/simplesamlphp.spec @@ -1,6 +1,6 @@ %define name simplesamlphp %define summary SAML IDP/SP written in PHP -%define version 1.17.8 +%define version 1.18.7 %define release 1 %define license LGPL 2.1 %define group Networking/WWW @@ -70,7 +70,6 @@ tar cf - . | (cd %{buildroot}%{_prefix}simplesamlphp; tar xfp -) /var/lib/simplesamlphp/ %dir %attr(0750, root,apache) /var/lib/simplesamlphp/config %config(noreplace) %attr(0640, root,apache) /var/lib/simplesamlphp/config/acl.php -%config(noreplace) %attr(0640, root,apache) /var/lib/simplesamlphp/config/authmemcookie.php %config(noreplace) %attr(0640, root,apache) /var/lib/simplesamlphp/config/authsources.php %config(noreplace) %attr(0640, root,apache) /var/lib/simplesamlphp/config/config.php %dir %attr(0750, root,apache) /var/lib/simplesamlphp/metadata @@ -83,8 +82,6 @@ tar cf - . | (cd %{buildroot}%{_prefix}simplesamlphp; tar xfp -) %config(noreplace) %attr(0640, root,apache) /var/lib/simplesamlphp/metadata/shib13-idp-remote.php %config(noreplace) %attr(0640, root,apache) /var/lib/simplesamlphp/metadata/shib13-sp-hosted.php %config(noreplace) %attr(0640, root,apache) /var/lib/simplesamlphp/metadata/shib13-sp-remote.php -%config(noreplace) %attr(0640, root,apache) /var/lib/simplesamlphp/metadata/wsfed-idp-remote.php -%config(noreplace) %attr(0640, root,apache) /var/lib/simplesamlphp/metadata/wsfed-sp-hosted.php %dir %attr(0770, root, apache) /var/lib/simplesamlphp/log %dir %attr(0770, root, apache) /var/lib/simplesamlphp/data %dir %attr(0750, root, apache) /var/lib/simplesamlphp/cert diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/AuthenticationFactory.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/AuthenticationFactory.php index 7335bc2d5643ba76e6d76c5a524ce9af444fe53c..25dc18307d22f0494d4bf7b527e88aafab6eb34e 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/AuthenticationFactory.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/AuthenticationFactory.php @@ -2,12 +2,14 @@ namespace SimpleSAML\Auth; +use SimpleSAML\Configuration; +use SimpleSAML\Session; + /** * Factory class to get instances of \SimpleSAML\Auth\Simple for a given authentication source. */ class AuthenticationFactory { - /** @var \SimpleSAML\Configuration */ protected $config; @@ -15,7 +17,7 @@ class AuthenticationFactory protected $session; - public function __construct(\SimpleSAML\Configuration $config, \SimpleSAML\Session $session) + public function __construct(Configuration $config, Session $session) { $this->config = $config; $this->session = $session; @@ -34,4 +36,4 @@ public function create($as) { return new Simple($as, $this->config, $this->session); } -} \ No newline at end of file +} diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/Default.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/DefaultAuth.php similarity index 78% rename from vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/Default.php rename to vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/DefaultAuth.php index 86c7465cd51706c59d2b46c3bbc51de9da27eb23..4a2a5da54915ac3a7bf70b006ac1eaca17cece4e 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/Default.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/DefaultAuth.php @@ -2,6 +2,10 @@ namespace SimpleSAML\Auth; +use SimpleSAML\Module\saml\Auth\Source\SP; +use SimpleSAML\Session; +use SimpleSAML\Utils; + /** * Implements the default behaviour for authentication. * @@ -18,6 +22,11 @@ class DefaultAuth { /** * @deprecated This method will be removed in SSP 2.0. Use Source::initLogin() instead. + * @param string $authId + * @param string $return + * @param string|null $errorURL + * @param array $params + * @return void */ public static function initLogin( $authId, @@ -34,6 +43,8 @@ public static function initLogin( /** * @deprecated This method will be removed in SSP 2.0. Please use * State::getPersistentAuthData() instead. + * @param array &$state + * @return array */ public static function extractPersistentAuthState(array &$state) { @@ -43,6 +54,8 @@ public static function extractPersistentAuthState(array &$state) /** * @deprecated This method will be removed in SSP 2.0. Please use Source::loginCompleted() instead. + * @param array $state + * @return void */ public static function loginCompleted($state) { @@ -52,13 +65,16 @@ public static function loginCompleted($state) /** * @deprecated This method will be removed in SSP 2.0. + * @param string $returnURL + * @param string $authority + * @return void */ public static function initLogoutReturn($returnURL, $authority) { assert(is_string($returnURL)); assert(is_string($authority)); - $session = \SimpleSAML\Session::getSessionFromRequest(); + $session = Session::getSessionFromRequest(); $state = $session->getAuthData($authority, 'LogoutState'); $session->doLogout($authority); @@ -78,6 +94,9 @@ public static function initLogoutReturn($returnURL, $authority) /** * @deprecated This method will be removed in SSP 2.0. + * @param string $returnURL + * @param string $authority + * @return void */ public static function initLogout($returnURL, $authority) { @@ -86,24 +105,28 @@ public static function initLogout($returnURL, $authority) self::initLogoutReturn($returnURL, $authority); - \SimpleSAML\Utils\HTTP::redirectTrustedURL($returnURL); + Utils\HTTP::redirectTrustedURL($returnURL); } /** * @deprecated This method will be removed in SSP 2.0. + * @param array $state + * @return void */ public static function logoutCompleted($state) { assert(is_array($state)); assert(array_key_exists('\SimpleSAML\Auth\DefaultAuth.ReturnURL', $state)); - \SimpleSAML\Utils\HTTP::redirectTrustedURL($state['\SimpleSAML\Auth\DefaultAuth.ReturnURL']); + Utils\HTTP::redirectTrustedURL($state['\SimpleSAML\Auth\DefaultAuth.ReturnURL']); } /** * @deprecated This method will be removed in SSP 2.0. Please use Source::logoutCallback() instead. + * @param array $state + * @return void */ public static function logoutCallback($state) { @@ -114,10 +137,14 @@ public static function logoutCallback($state) /** * @deprecated This method will be removed in SSP 2.0. Please use * \SimpleSAML\Module\saml\Auth\Source\SP::handleUnsolicitedAuth() instead. + * @param string $authId + * @param array $state + * @param string $redirectTo + * @return void */ public static function handleUnsolicitedAuth($authId, array $state, $redirectTo) { - \SimpleSAML\Module\saml\Auth\Source\SP::handleUnsolicitedAuth($authId, $state, $redirectTo); + SP::handleUnsolicitedAuth($authId, $state, $redirectTo); } @@ -132,7 +159,7 @@ private static function getAuthSource($id) { $as = Source::getById($id); if ($as === null) { - throw new \Exception('Invalid authentication source: '.$id); + throw new \Exception('Invalid authentication source: ' . $id); } return $as; } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/LDAP.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/LDAP.php index c83d221f9c73d69869edf334a97e77f16a96121a..f8bb3de4c15326f1a5e4d46c841ba5c0a08d7fcb 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/LDAP.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/LDAP.php @@ -2,839 +2,13 @@ namespace SimpleSAML\Auth; -use SimpleSAML\Error; -use SimpleSAML\Logger; +\SimpleSAML\Logger::warning("The class \SimpleSAML\Auth\LDAP has been moved to the ldap module, please use \SimpleSAML\Module\saml\Auth\Ldap instead."); /** - * Constants defining possible errors + * @deprecated To be removed in 2.0 */ - -define('ERR_INTERNAL', 1); -define('ERR_NO_USER', 2); -define('ERR_WRONG_PW', 3); -define('ERR_AS_DATA_INCONSIST', 4); -define('ERR_AS_INTERNAL', 5); -define('ERR_AS_ATTRIBUTE', 6); - -// not defined in earlier PHP versions -if (!defined('LDAP_OPT_DIAGNOSTIC_MESSAGE')) { - define('LDAP_OPT_DIAGNOSTIC_MESSAGE', 0x0032); -} - -/** - * The LDAP class holds helper functions to access an LDAP database. - * - * @author Andreas Aakre Solberg, UNINETT AS. <andreas.solberg@uninett.no> - * @author Anders Lund, UNINETT AS. <anders.lund@uninett.no> - * @package SimpleSAMLphp - */ - -class LDAP -{ - /** - * LDAP link identifier. - * - * @var resource - */ - protected $ldap = null; - - /** - * LDAP user: authz_id if SASL is in use, binding dn otherwise - */ - protected $authz_id = null; - - /** - * Timeout value, in seconds. - * - * @var int - */ - protected $timeout = 0; - - /** - * Private constructor restricts instantiation to getInstance(). - * - * @param string $hostname - * @param bool $enable_tls - * @param bool $debug - * @param int $timeout - * @param int $port - * @param bool $referrals - */ - public function __construct( - $hostname, - $enable_tls = true, - $debug = false, - $timeout = 0, - $port = 389, - $referrals = true - ) { - // Debug - Logger::debug('Library - LDAP __construct(): Setup LDAP with '. - 'host=\''.$hostname. - '\', tls='.var_export($enable_tls, true). - ', debug='.var_export($debug, true). - ', timeout='.var_export($timeout, true). - ', referrals='.var_export($referrals, true)); - - /* - * Set debug level before calling connect. Note that this passes - * NULL to ldap_set_option, which is an undocumented feature. - * - * OpenLDAP 2.x.x or Netscape Directory SDK x.x needed for this option. - */ - if ($debug && !ldap_set_option(null, LDAP_OPT_DEBUG_LEVEL, 7)) { - Logger::warning('Library - LDAP __construct(): Unable to set debug level (LDAP_OPT_DEBUG_LEVEL) to 7'); - } - - /* - * Prepare a connection for to this LDAP server. Note that this function - * doesn't actually connect to the server. - */ - $resource = @ldap_connect($hostname, $port); - if ($resource === false) { - throw $this->makeException( - 'Library - LDAP __construct(): Unable to connect to \''.$hostname.'\'', - ERR_INTERNAL - ); - } - $this->ldap = $resource; - - // Enable LDAP protocol version 3 - if (!@ldap_set_option($this->ldap, LDAP_OPT_PROTOCOL_VERSION, 3)) { - throw $this->makeException( - 'Library - LDAP __construct(): Failed to set LDAP Protocol version (LDAP_OPT_PROTOCOL_VERSION) to 3', - ERR_INTERNAL - ); - } - - // Set referral option - if (!@ldap_set_option($this->ldap, LDAP_OPT_REFERRALS, $referrals)) { - throw $this->makeException( - 'Library - LDAP __construct(): Failed to set LDAP Referrals (LDAP_OPT_REFERRALS) to '.$referrals, - ERR_INTERNAL - ); - } - - // Set timeouts, if supported - // (OpenLDAP 2.x.x or Netscape Directory SDK x.x needed) - $this->timeout = $timeout; - if ($timeout > 0) { - if (!@ldap_set_option($this->ldap, LDAP_OPT_NETWORK_TIMEOUT, $timeout)) { - Logger::warning( - 'Library - LDAP __construct(): Unable to set timeouts (LDAP_OPT_NETWORK_TIMEOUT) to '.$timeout - ); - } - if (!@ldap_set_option($this->ldap, LDAP_OPT_TIMELIMIT, $timeout)) { - Logger::warning( - 'Library - LDAP __construct(): Unable to set timeouts (LDAP_OPT_TIMELIMIT) to '.$timeout - ); - } - } - - // Enable TLS, if needed - if (stripos($hostname, "ldaps:") === false && $enable_tls) { - if (!@ldap_start_tls($this->ldap)) { - throw $this->makeException('Library - LDAP __construct():'. - ' Unable to force TLS', ERR_INTERNAL); - } - } - } - - - /** - * Convenience method to create an LDAPException as well as log the - * description. - * - * @param string $description - * The exception's description - * @return \Exception - */ - private function makeException($description, $type = null) - { - $errNo = 0x00; - - // Log LDAP code and description, if possible - if (empty($this->ldap)) { - Logger::error($description); - } else { - $errNo = @ldap_errno($this->ldap); - } - - // Decide exception type and return - if ($type) { - if ($errNo !== 0) { - // Only log real LDAP errors; not success - Logger::error($description.'; cause: \''.ldap_error($this->ldap).'\' (0x'.dechex($errNo).')'); - } else { - Logger::error($description); - } - - switch ($type) { - case ERR_INTERNAL:// 1 - ExInternal - return new Error\Exception($description, $errNo); - case ERR_NO_USER:// 2 - ExUserNotFound - return new Error\UserNotFound($description, $errNo); - case ERR_WRONG_PW:// 3 - ExInvalidCredential - return new Error\InvalidCredential($description, $errNo); - case ERR_AS_DATA_INCONSIST:// 4 - ExAsDataInconsist - return new Error\AuthSource('ldap', $description); - case ERR_AS_INTERNAL:// 5 - ExAsInternal - return new Error\AuthSource('ldap', $description); - } - } else { - if ($errNo !== 0) { - $description .= '; cause: \''.ldap_error($this->ldap).'\' (0x'.dechex($errNo).')'; - if (@ldap_get_option($this->ldap, LDAP_OPT_DIAGNOSTIC_MESSAGE, $extendedError) - && !empty($extendedError) - ) { - $description .= '; additional: \''.$extendedError.'\''; - } - } - switch ($errNo) { - case 0x20://LDAP_NO_SUCH_OBJECT - Logger::warning($description); - return new Error\UserNotFound($description, $errNo); - case 0x31://LDAP_INVALID_CREDENTIALS - Logger::info($description); - return new Error\InvalidCredential($description, $errNo); - case -1://NO_SERVER_CONNECTION - Logger::error($description); - return new Error\AuthSource('ldap', $description); - default: - Logger::error($description); - return new Error\AuthSource('ldap', $description); - } - } - return new \Exception('Unknown LDAP error.'); - } - - - /** - * Search for DN from a single base. - * - * @param string $base - * Indication of root of subtree to search - * @param string|array $attribute - * The attribute name(s) to search for. - * @param string $value - * The attribute value to search for. - * Additional search filter - * @param string|null $searchFilter - * The scope of the search - * @param string $scope - * @return string - * The DN of the resulting found element. - * @throws Error\Exception if: - * - Attribute parameter is wrong type - * @throws Error\AuthSource if: - * - Not able to connect to LDAP server - * - False search result - * - Count return false - * - Searche found more than one result - * - Failed to get first entry from result - * - Failed to get DN for entry - * @throws Error\UserNotFound if: - * - Zero entries were found - */ - private function search($base, $attribute, $value, $searchFilter = null, $scope = "subtree") - { - // Create the search filter - $attribute = self::escape_filter_value($attribute, false); - $value = self::escape_filter_value($value, true); - $filter = ''; - foreach ($attribute as $attr) { - $filter .= '('.$attr.'='.$value.')'; - } - $filter = '(|'.$filter.')'; - - // Append LDAP filters if defined - if ($searchFilter !== null) { - $filter = "(&".$filter."".$searchFilter.")"; - } - - // Search using generated filter - Logger::debug('Library - LDAP search(): Searching base ('.$scope.') \''.$base.'\' for \''.$filter.'\''); - if ($scope === 'base') { - $result = @ldap_read($this->ldap, $base, $filter, [], 0, 0, $this->timeout, LDAP_DEREF_NEVER); - } elseif ($scope === 'onelevel') { - $result = @ldap_list($this->ldap, $base, $filter, [], 0, 0, $this->timeout, LDAP_DEREF_NEVER); - } else { - $result = @ldap_search($this->ldap, $base, $filter, [], 0, 0, $this->timeout, LDAP_DEREF_NEVER); - } - - if ($result === false) { - throw $this->makeException( - 'Library - LDAP search(): Failed search on base \''.$base.'\' for \''.$filter.'\'' - ); - } - - // Sanity checks on search results - $count = @ldap_count_entries($this->ldap, $result); - if ($count === false) { - throw $this->makeException('Library - LDAP search(): Failed to get number of entries returned'); - } elseif ($count > 1) { - // More than one entry is found. External error - throw $this->makeException( - 'Library - LDAP search(): Found '.$count.' entries searching base \''.$base.'\' for \''.$filter.'\'', - ERR_AS_DATA_INCONSIST - ); - } elseif ($count === 0) { - // No entry is fond => wrong username is given (or not registered in the catalogue). User error - throw $this->makeException( - 'Library - LDAP search(): Found no entries searching base \''.$base.'\' for \''.$filter.'\'', - ERR_NO_USER - ); - } - - - // Resolve the DN from the search result - $entry = @ldap_first_entry($this->ldap, $result); - if ($entry === false) { - throw $this->makeException( - 'Library - LDAP search(): Unable to retrieve result after searching base \''. - $base.'\' for \''.$filter.'\'' - ); - } - $dn = @ldap_get_dn($this->ldap, $entry); - if ($dn === false) { - throw $this->makeException( - 'Library - LDAP search(): Unable to get DN after searching base \''.$base.'\' for \''.$filter.'\'' - ); - } - return $dn; - } - - - /** - * Search for a DN. - * - * @param string|array $base - * The base, or bases, which to search from. - * @param string|array $attribute - * The attribute name(s) searched for. - * @param string $value - * The attribute value searched for. - * @param bool $allowZeroHits - * Determines if the method will throw an exception if no hits are found. - * Defaults to FALSE. - * @param string|null $searchFilter - * Additional searchFilter to be added to the (attribute=value) filter - * @param string $scope - * The scope of the search - * @return string - * The DN of the matching element, if found. If no element was found and - * $allowZeroHits is set to FALSE, an exception will be thrown; otherwise - * NULL will be returned. - * @throws Error\AuthSource if: - * - LDAP search encounter some problems when searching cataloge - * - Not able to connect to LDAP server - * @throws Error\UserNotFound if: - * - $allowZeroHits is FALSE and no result is found - * - */ - public function searchfordn( - $base, - $attribute, - $value, - $allowZeroHits = false, - $searchFilter = null, - $scope = 'subtree' - ) { - // Traverse all search bases, returning DN if found - $bases = \SimpleSAML\Utils\Arrays::arrayize($base); - foreach ($bases as $current) { - try { - // Single base search - $result = $this->search($current, $attribute, $value, $searchFilter, $scope); - - // We don't hawe to look any futher if user is found - if (!empty($result)) { - return $result; - } - // If search failed, attempt the other base DNs - } catch (Error\UserNotFound $e) { - // Just continue searching - } - } - // Decide what to do for zero entries - Logger::debug('Library - LDAP searchfordn(): No entries found'); - if ($allowZeroHits) { - // Zero hits allowed - return null; - } else { - // Zero hits not allowed - throw $this->makeException('Library - LDAP searchfordn(): LDAP search returned zero entries for'. - ' filter \'('.join(' | ', $attribute).' = '.$value.')\' on base(s) \'('.join(' & ', $bases).')\'', 2); - } - } - - - /** - * This method was created specifically for the ldap:AttributeAddUsersGroups->searchActiveDirectory() - * method, but could be used for other LDAP search needs. It will search LDAP and return all the entries. - * - * @throws \Exception - * @param string|array $bases - * @param string|array $filters Array of 'attribute' => 'values' to be combined into the filter, - * or a raw filter string - * @param string|array $attributes Array of attributes requested from LDAP - * @param bool $and If multiple filters defined, then either bind them with & or | - * @param bool $escape Weather to escape the filter values or not - * @param string $scope The scope of the search - * @return array - */ - public function searchformultiple( - $bases, - $filters, - $attributes = [], - $and = true, - $escape = true, - $scope = 'subtree' - ) { - // Escape the filter values, if requested - if ($escape) { - $filters = $this->escape_filter_value($filters, false); - } - - // Build search filter - $filter = ''; - if (is_array($filters)) { - foreach ($filters as $attribute => $value) { - $filter .= "($attribute=$value)"; - } - if (count($filters) > 1) { - $filter = ($and ? '(&' : '(|').$filter.')'; - } - } elseif (is_string($filters)) { - $filter = $filters; - } - - // Verify filter was created - if ($filter == '' || $filter == '(=)') { - throw $this->makeException('ldap:LdapConnection->search_manual : No search filters defined', ERR_INTERNAL); - } - - // Verify at least one base was passed - $bases = (array) $bases; - if (empty($bases)) { - throw $this->makeException('ldap:LdapConnection->search_manual : No base DNs were passed', ERR_INTERNAL); - } - - // Search each base until result is found - $result = false; - foreach ($bases as $base) { - if ($scope === 'base') { - $result = @ldap_read($this->ldap, $base, $filter, $attributes, 0, 0, $this->timeout); - } elseif ($scope === 'onelevel') { - $result = @ldap_list($this->ldap, $base, $filter, $attributes, 0, 0, $this->timeout); - } else { - $result = @ldap_search($this->ldap, $base, $filter, $attributes, 0, 0, $this->timeout); - } - - if ($result !== false && @ldap_count_entries($this->ldap, $result) > 0) { - break; - } - } - - // Verify that a result was found in one of the bases - if ($result === false) { - throw $this->makeException( - 'ldap:LdapConnection->search_manual : Failed to search LDAP using base(s) ['. - implode('; ', $bases).'] with filter ['.$filter.']. LDAP error ['. - ldap_error($this->ldap).']' - ); - } elseif (@ldap_count_entries($this->ldap, $result) < 1) { - throw $this->makeException( - 'ldap:LdapConnection->search_manual : No entries found in LDAP using base(s) ['. - implode('; ', $bases).'] with filter ['.$filter.']', - ERR_NO_USER - ); - } - - // Get all results - $results = ldap_get_entries($this->ldap, $result); - if ($results === false) { - throw $this->makeException( - 'ldap:LdapConnection->search_manual : Unable to retrieve entries from search results' - ); - } - - // parse each entry and process its attributes - for ($i = 0; $i < $results['count']; $i++) { - $entry = $results[$i]; - - // iterate over the attributes of the entry - for ($j = 0; $j < $entry['count']; $j++) { - $name = $entry[$j]; - $attribute = $entry[$name]; - - // decide whether to base64 encode or not - for ($k = 0; $k < $attribute['count']; $k++) { - // base64 encode binary attributes - if (strtolower($name) === 'jpegphoto' || strtolower($name) === 'objectguid') { - $results[$i][$name][$k] = base64_encode($attribute[$k]); - } - } - } - } - - // Remove the count and return - unset($results['count']); - return $results; - } - - - /** - * Bind to LDAP with a specific DN and password. Simple wrapper around - * ldap_bind() with some additional logging. - * - * @param string $dn - * The DN used. - * @param string $password - * The password used. - * @param array $sasl_args - * Array of SASL options for SASL bind - * @return bool - * Returns TRUE if successful, FALSE if - * LDAP_INVALID_CREDENTIALS, LDAP_X_PROXY_AUTHZ_FAILURE, - * LDAP_INAPPROPRIATE_AUTH, LDAP_INSUFFICIENT_ACCESS - * @throws Error\Exception on other errors - */ - public function bind($dn, $password, array $sasl_args = null) - { - if ($sasl_args != null) { - if (!function_exists('ldap_sasl_bind')) { - $ex_msg = 'Library - missing SASL support'; - throw $this->makeException($ex_msg); - } - - // SASL Bind, with error handling - $authz_id = $sasl_args['authz_id']; - $error = @ldap_sasl_bind( - $this->ldap, - $dn, - $password, - $sasl_args['mech'], - $sasl_args['realm'], - $sasl_args['authc_id'], - $sasl_args['authz_id'], - $sasl_args['props'] - ); - } else { - // Simple Bind, with error handling - $authz_id = $dn; - $error = @ldap_bind($this->ldap, $dn, $password); - } - - if ($error === true) { - // Good - $this->authz_id = $authz_id; - Logger::debug('Library - LDAP bind(): Bind successful with DN \''.$dn.'\''); - return true; - } - - /* Handle errors - * LDAP_INVALID_CREDENTIALS - * LDAP_INSUFFICIENT_ACCESS */ - switch (ldap_errno($this->ldap)) { - case 32: // LDAP_NO_SUCH_OBJECT - // no break - case 47: // LDAP_X_PROXY_AUTHZ_FAILURE - // no break - case 48: // LDAP_INAPPROPRIATE_AUTH - // no break - case 49: // LDAP_INVALID_CREDENTIALS - // no break - case 50: // LDAP_INSUFFICIENT_ACCESS - return false; - default: - break; - } - - // Bad - throw $this->makeException('Library - LDAP bind(): Bind failed with DN \''.$dn.'\''); - } - - - /** - * Applies an LDAP option to the current connection. - * - * @throws Exception - * @param $option - * @param $value - * @return void - */ - public function setOption($option, $value) - { - // Attempt to set the LDAP option - if (!@ldap_set_option($this->ldap, $option, $value)) { - throw $this->makeException( - 'ldap:LdapConnection->setOption : Failed to set LDAP option ['. - $option.'] with the value ['.$value.'] error: '.ldap_error($this->ldap), - ERR_INTERNAL - ); - } - - // Log debug message - Logger::debug( - 'ldap:LdapConnection->setOption : Set the LDAP option ['. - $option.'] with the value ['.$value.']' - ); - } - - - /** - * Search a given DN for attributes, and return the resulting associative - * array. - * - * @param string $dn - * The DN of an element. - * @param string|array $attributes - * The names of the attribute(s) to retrieve. Defaults to NULL; that is, - * all available attributes. Note that this is not very effective. - * @param int $maxsize - * The maximum size of any attribute's value(s). If exceeded, the attribute - * will not be returned. - * @return array - * The array of attributes and their values. - * @see http://no.php.net/manual/en/function.ldap-read.php - */ - public function getAttributes($dn, $attributes = null, $maxsize = null) - { - // Preparations, including a pretty debug message... - $description = 'all attributes'; - if (is_array($attributes)) { - $description = '\''.join(',', $attributes).'\''; - } else { - // Get all attributes... - // TODO: Verify that this originally was the intended behaviour. Could $attributes be a string? - $attributes = []; - } - Logger::debug('Library - LDAP getAttributes(): Getting '.$description.' from DN \''.$dn.'\''); - - // Attempt to get attributes - // TODO: Should aliases be dereferenced? - $result = @ldap_read($this->ldap, $dn, 'objectClass=*', $attributes, 0, 0, $this->timeout); - if ($result === false) { - throw $this->makeException('Library - LDAP getAttributes(): Failed to get attributes from DN \''.$dn.'\''); - } - $entry = @ldap_first_entry($this->ldap, $result); - if ($entry === false) { - throw $this->makeException('Library - LDAP getAttributes(): Could not get first entry from DN \''.$dn.'\''); - } - $attributes = @ldap_get_attributes($this->ldap, $entry); // Recycling $attributes... Possibly bad practice. - if ($attributes === false) { - throw $this->makeException( - 'Library - LDAP getAttributes(): Could not get attributes of first entry from DN \''.$dn.'\'' - ); - } - - // Parsing each found attribute into our result set - $result = []; // Recycling $result... Possibly bad practice. - for ($i = 0; $i < $attributes['count']; $i++) { - // Ignore attributes that exceed the maximum allowed size - $name = $attributes[$i]; - $attribute = $attributes[$name]; - - // Deciding whether to base64 encode - $values = []; - for ($j = 0; $j < $attribute['count']; $j++) { - $value = $attribute[$j]; - - if (!empty($maxsize) && strlen($value) > $maxsize) { - // Ignoring and warning - Logger::warning('Library - LDAP getAttributes(): Attribute \''. - $name.'\' exceeded maximum allowed size by '.(strlen($value) - $maxsize)); - continue; - } - - // Base64 encode binary attributes - if (strtolower($name) === 'jpegphoto' - || strtolower($name) === 'objectguid' - || strtolower($name) === 'ms-ds-consistencyguid' - ) { - $values[] = base64_encode($value); - } else { - $values[] = $value; - } - } - - // Adding - $result[$name] = $values; - } - - // We're done - Logger::debug('Library - LDAP getAttributes(): Found attributes \'('.join(',', array_keys($result)).')\''); - return $result; - } - - - /** - * Enter description here... - * - * @param array $config - * @param string $username - * @param string $password - * @return array|bool - */ - public function validate($config, $username, $password = null) - { - /* Escape any characters with a special meaning in LDAP. The following - * characters have a special meaning (according to RFC 2253): - * ',', '+', '"', '\', '<', '>', ';', '*' - * These characters are escaped by prefixing them with '\'. - */ - $username = addcslashes($username, ',+"\\<>;*'); - - if (isset($config['priv_user_dn'])) { - $this->bind($config['priv_user_dn'], $config['priv_user_pw']); - } - if (isset($config['dnpattern'])) { - $dn = str_replace('%username%', $username, $config['dnpattern']); - } else { - $dn = $this->searchfordn($config['searchbase'], $config['searchattributes'], $username); - } - - if ($password !== null) { - // checking users credentials ... assuming below that she may read her own attributes ... - // escape characters with a special meaning, also in the password - $password = addcslashes($password, ',+"\\<>;*'); - if (!$this->bind($dn, $password)) { - Logger::info( - 'Library - LDAP validate(): Failed to authenticate \''.$username.'\' using DN \''.$dn.'\'' - ); - return false; - } - } - - /* - * Retrieve attributes from LDAP - */ - $attributes = $this->getAttributes($dn, $config['attributes']); - return $attributes; - } - - - /** - * Borrowed function from PEAR:LDAP. - * - * Escapes the given VALUES according to RFC 2254 so that they can be safely used in LDAP filters. - * - * Any control characters with an ACII code < 32 as well as the characters with special meaning in - * LDAP filters "*", "(", ")", and "\" (the backslash) are converted into the representation of a - * backslash followed by two hex digits representing the hexadecimal value of the character. - * - * @static - * @param string|array $values Array of values to escape - * @return array Array $values, but escaped - */ - public static function escape_filter_value($values = [], $singleValue = true) - { - // Parameter validation - $values = \SimpleSAML\Utils\Arrays::arrayize($values); - - foreach ($values as $key => $val) { - // Escaping of filter meta characters - $val = str_replace('\\', '\5c', $val); - $val = str_replace('*', '\2a', $val); - $val = str_replace('(', '\28', $val); - $val = str_replace(')', '\29', $val); - - // ASCII < 32 escaping - $val = self::asc2hex32($val); - - if (null === $val) { - $val = '\0'; // apply escaped "null" if string is empty - } - - $values[$key] = $val; - } - if ($singleValue) { - return $values[0]; - } - return $values; - } - - - /** - * Borrowed function from PEAR:LDAP. - * - * Converts all ASCII chars < 32 to "\HEX" - * - * @param string $string String to convert - * - * @static - * @return string - */ - public static function asc2hex32($string) - { - for ($i = 0; $i < strlen($string); $i++) { - $char = substr($string, $i, 1); - if (ord($char) < 32) { - $hex = dechex(ord($char)); - if (strlen($hex) == 1) { - $hex = '0'.$hex; - } - $string = str_replace($char, '\\'.$hex, $string); - } - } - return $string; - } - - /** - * Convert SASL authz_id into a DN - */ - private function authzidToDn($searchBase, $searchAttributes, $authz_id) - { - if (preg_match("/^dn:/", $authz_id)) { - return preg_replace("/^dn:/", "", $authz_id); - } - - if (preg_match("/^u:/", $authz_id)) { - return $this->searchfordn( - $searchBase, - $searchAttributes, - preg_replace("/^u:/", "", $authz_id) - ); - } - return $authz_id; - } - - /** - * ldap_exop_whoami accessor, if available. Use requested authz_id - * otherwise. - * - * ldap_exop_whoami() has been provided as a third party patch that - * waited several years to get its way upstream: - * http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/databases/php-ldap/files - * - * When it was integrated into PHP repository, the function prototype - * was changed, The new prototype was used in third party patch for - * PHP 7.0 and 7.1, hence the version test below. - */ - public function whoami($searchBase, $searchAttributes) - { - $authz_id = ''; - if (function_exists('ldap_exop_whoami')) { - if (version_compare(phpversion(), '7', '<')) { - if (ldap_exop_whoami($this->ldap, $authz_id) !== true) { - throw $this->makeException('LDAP whoami exop failure'); - } - } else { - if (($authz_id = ldap_exop_whoami($this->ldap)) === false) { - throw $this->makeException('LDAP whoami exop failure'); - } - } - } else { - $authz_id = $this->authz_id; - } - - $dn = $this->authzidToDn($searchBase, $searchAttributes, $authz_id); - - if (!isset($dn) || ($dn == '')) { - throw $this->makeException('Cannot figure userID'); - } - - return $dn; - } +if (class_exists('\SimpleSAML\Module\ldap\Auth\Ldap')) { + class_alias(\SimpleSAML\Module\ldap\Auth\Ldap::class, 'SimpleSAML\Auth\LDAP'); +} else { + throw new \Exception('The ldap module is either missing or disabled'); } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/ProcessingChain.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/ProcessingChain.php index a82d51334a2efa2ae2a7a0a07b8592975df7f407..d160928a8fbbdb440c49b15316d277c12f8444d8 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/ProcessingChain.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/ProcessingChain.php @@ -2,6 +2,12 @@ namespace SimpleSAML\Auth; +use SimpleSAML\Configuration; +use SimpleSAML\Error; +use SimpleSAML\Logger; +use SimpleSAML\Module; +use SimpleSAML\Utils; + /** * Class for implementing authentication processing chains for IdPs. * @@ -46,6 +52,7 @@ class ProcessingChain * * @param array $idpMetadata The metadata for the IdP. * @param array $spMetadata The metadata for the SP. + * @param string $mode */ public function __construct($idpMetadata, $spMetadata, $mode = 'idp') { @@ -54,8 +61,8 @@ public function __construct($idpMetadata, $spMetadata, $mode = 'idp') $this->filters = []; - $config = \SimpleSAML\Configuration::getInstance(); - $configauthproc = $config->getArray('authproc.'.$mode, null); + $config = Configuration::getInstance(); + $configauthproc = $config->getArray('authproc.' . $mode, null); if (!empty($configauthproc)) { $configfilters = self::parseFilterList($configauthproc); @@ -72,8 +79,8 @@ public function __construct($idpMetadata, $spMetadata, $mode = 'idp') self::addFilters($this->filters, $spFilters); } - \SimpleSAML\Logger::debug('Filter config for '.$idpMetadata['entityid'].'->'. - $spMetadata['entityid'].': '.str_replace("\n", '', var_export($this->filters, true))); + Logger::debug('Filter config for ' . $idpMetadata['entityid'] . '->' . + $spMetadata['entityid'] . ': ' . str_replace("\n", '', var_export($this->filters, true))); } @@ -84,6 +91,7 @@ public function __construct($idpMetadata, $spMetadata, $mode = 'idp') * * @param array &$target Target filter list. This list must be sorted. * @param array $src Source filters. May be unsorted. + * @return void */ private static function addFilters(&$target, $src) { @@ -124,7 +132,7 @@ private static function parseFilterList($filterSrc) } if (!is_array($filter)) { - throw new \Exception('Invalid authentication processing filter configuration: '. + throw new \Exception('Invalid authentication processing filter configuration: ' . 'One of the filters wasn\'t a string or an array.'); } @@ -141,7 +149,7 @@ private static function parseFilterList($filterSrc) * @param array $config Array with the authentication processing filter configuration. * @param int $priority The priority of the current filter, (not included in the filter * definition.) - * @return ProcessingFilter The parsed filter. + * @return \SimpleSAML\Auth\ProcessingFilter The parsed filter. */ private static function parseFilter($config, $priority) { @@ -151,13 +159,15 @@ private static function parseFilter($config, $priority) throw new \Exception('Authentication processing filter without name given.'); } - $className = \SimpleSAML\Module::resolveClass( + $className = Module::resolveClass( $config['class'], 'Auth\Process', '\SimpleSAML\Auth\ProcessingFilter' ); $config['%priority'] = $priority; unset($config['class']); + + /** @var \SimpleSAML\Auth\ProcessingFilter */ return new $className($config, null); } @@ -181,6 +191,9 @@ private static function parseFilter($config, $priority) * @see State::EXCEPTION_HANDLER_FUNC * * @param array &$state The state we are processing. + * @throws \SimpleSAML\Error\Exception + * @throws \SimpleSAML\Error\UnserializableException + * @return void */ public function processState(&$state) { @@ -201,7 +214,7 @@ public function processState(&$state) $filter = array_shift($state[self::FILTERS_INDEX]); $filter->process($state); } - } catch (\SimpleSAML\Error\Exception $e) { + } catch (Error\Exception $e) { // No need to convert the exception throw $e; } catch (\Exception $e) { @@ -209,7 +222,7 @@ public function processState(&$state) * To be consistent with the exception we return after an redirect, * we convert this exception before returning it. */ - throw new \SimpleSAML\Error\UnserializableException($e); + throw new Error\UnserializableException($e); } // Completed @@ -226,6 +239,7 @@ public function processState(&$state) * to whatever exception handler is defined in the state array. * * @param array $state The state we are processing. + * @return void */ public static function resumeProcessing($state) { @@ -235,10 +249,10 @@ public static function resumeProcessing($state) $filter = array_shift($state[self::FILTERS_INDEX]); try { $filter->process($state); - } catch (\SimpleSAML\Error\Exception $e) { + } catch (Error\Exception $e) { State::throwException($state, $e); } catch (\Exception $e) { - $e = new \SimpleSAML\Error\UnserializableException($e); + $e = new Error\UnserializableException($e); State::throwException($state, $e); } } @@ -255,7 +269,7 @@ public static function resumeProcessing($state) * in $state['ReturnURL']. */ $id = State::saveState($state, self::COMPLETED_STAGE); - \SimpleSAML\Utils\HTTP::redirectTrustedURL($state['ReturnURL'], [self::AUTHPARAM => $id]); + Utils\HTTP::redirectTrustedURL($state['ReturnURL'], [self::AUTHPARAM => $id]); } else { /* Pass the state to the function defined in $state['ReturnCall']. */ @@ -280,6 +294,7 @@ public static function resumeProcessing($state) * This function will only return if processing completes. * * @param array &$state The state we are processing. + * @return void */ public function processStatePassive(&$state) { @@ -302,10 +317,10 @@ public function processStatePassive(&$state) $filter = array_shift($state[self::FILTERS_INDEX]); try { $filter->process($state); - } catch (\SimpleSAML\Error\NoPassive $e) { + } catch (Error\NoPassive $e) { // @deprecated will be removed in 2.0 // Ignore \SimpleSAML\Error\NoPassive exceptions - } catch (\SimpleSAML\Module\saml\Error\NoPassive $e) { + } catch (Module\saml\Error\NoPassive $e) { // Ignore \SimpleSAML\Module\saml\Error\NoPassive exceptions } } @@ -316,7 +331,7 @@ public function processStatePassive(&$state) * * @param string $id The state identifier. * @see State::parseStateID() - * @return array The state referenced by the $id parameter. + * @return array|null The state referenced by the $id parameter. */ public static function fetchProcessedState($id) { @@ -328,6 +343,8 @@ public static function fetchProcessedState($id) /** * @deprecated This method will be removed in SSP 2.0. + * @param array &$state + * @return void */ private static function addUserID(&$state) { @@ -336,10 +353,10 @@ private static function addUserID(&$state) if (isset($state['Destination']['userid.attribute'])) { $attributeName = $state['Destination']['userid.attribute']; - \SimpleSAML\Logger::debug("The 'userid.attribute' option has been deprecated."); + Logger::debug("The 'userid.attribute' option has been deprecated."); } elseif (isset($state['Source']['userid.attribute'])) { $attributeName = $state['Source']['userid.attribute']; - \SimpleSAML\Logger::debug("The 'userid.attribute' option has been deprecated."); + Logger::debug("The 'userid.attribute' option has been deprecated."); } else { // Default attribute $attributeName = 'eduPersonPrincipalName'; @@ -351,12 +368,12 @@ private static function addUserID(&$state) $uid = $state['Attributes'][$attributeName]; if (count($uid) === 0) { - \SimpleSAML\Logger::warning('Empty user id attribute ['.$attributeName.'].'); + Logger::warning('Empty user id attribute [' . $attributeName . '].'); return; } if (count($uid) > 1) { - \SimpleSAML\Logger::warning('Multiple attribute values for user id attribute ['.$attributeName.'].'); + Logger::warning('Multiple attribute values for user id attribute [' . $attributeName . '].'); return; } @@ -364,7 +381,7 @@ private static function addUserID(&$state) $uid = $uid[0]; if (empty($uid)) { - \SimpleSAML\Logger::warning('Empty value in attribute '.$attributeName.". on user. Cannot set UserID."); + Logger::warning('Empty value in attribute ' . $attributeName . ". on user. Cannot set UserID."); return; } $state['UserID'] = $uid; diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/ProcessingFilter.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/ProcessingFilter.php index 8c01b1d7b8dcf4e9d5db1494b65bd7facd7c93e0..baeb5834b68dc81dd8c2f3e1f35cbde829a40663 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/ProcessingFilter.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/ProcessingFilter.php @@ -50,7 +50,7 @@ public function __construct(&$config, $reserved) if (array_key_exists('%priority', $config)) { $this->priority = $config['%priority']; if (!is_int($this->priority)) { - throw new \Exception('Invalid priority: '.var_export($this->priority, true)); + throw new \Exception('Invalid priority: ' . var_export($this->priority, true)); } unset($config['%priority']); } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/Simple.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/Simple.php index ffaa0cc92a2921fcd53cc9f472cde8fba3a64dbf..5ad7ca2cac063ba32ef1bad7f1fb9e62261c4dd3 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/Simple.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/Simple.php @@ -2,11 +2,11 @@ namespace SimpleSAML\Auth; -use \SimpleSAML\Configuration; -use \SimpleSAML\Error\AuthSource as AuthSourceError; -use \SimpleSAML\Module; -use \SimpleSAML\Session; -use \SimpleSAML\Utils\HTTP; +use SimpleSAML\Configuration; +use SimpleSAML\Error; +use SimpleSAML\Module; +use SimpleSAML\Session; +use SimpleSAML\Utils; /** * Helper class for simple authentication applications. @@ -45,7 +45,7 @@ public function __construct($authSource, Configuration $config = null, Session $ $config = Configuration::getInstance(); } $this->authSource = $authSource; - $this->app_config = $config->getConfigItem('application', null); + $this->app_config = $config->getConfigItem('application'); if ($session === null) { $session = Session::getSessionFromRequest(); @@ -59,13 +59,13 @@ public function __construct($authSource, Configuration $config = null, Session $ * * @return Source The authentication source. * - * @throws AuthSourceError If the requested auth source is unknown. + * @throws \SimpleSAML\Error\AuthSource If the requested auth source is unknown. */ public function getAuthSource() { $as = Source::getById($this->authSource); if ($as === null) { - throw new AuthSourceError($this->authSource, 'Unknown authentication source.'); + throw new Error\AuthSource($this->authSource, 'Unknown authentication source.'); } return $as; } @@ -97,6 +97,7 @@ public function isAuthenticated() * method for a description. * * @param array $params Various options to the authentication request. See the documentation. + * @return void */ public function requireAuth(array $params = []) { @@ -122,6 +123,7 @@ public function requireAuth(array $params = []) * Please note: this function never returns. * * @param array $params Various options to the authentication request. + * @return void */ public function login(array $params = []) { @@ -137,12 +139,12 @@ public function login(array $params = []) if (array_key_exists('ReturnCallback', $params)) { $returnTo = (array) $params['ReturnCallback']; } else { - $returnTo = HTTP::getSelfURL(); + $returnTo = Utils\HTTP::getSelfURL(); } } if (is_string($returnTo) && $keepPost && $_SERVER['REQUEST_METHOD'] === 'POST') { - $returnTo = HTTP::getPOSTRedirectURL($returnTo, $_POST); + $returnTo = Utils\HTTP::getPOSTRedirectURL($returnTo, $_POST); } if (array_key_exists('ErrorURL', $params)) { @@ -181,13 +183,14 @@ public function login(array $params = []) * * @param string|array|null $params Either the URL the user should be redirected to after logging out, or an array * with parameters for the logout. If this parameter is null, we will return to the current page. + * @return void */ public function logout($params = null) { assert(is_array($params) || is_string($params) || $params === null); if ($params === null) { - $params = HTTP::getSelfURL(); + $params = Utils\HTTP::getSelfURL(); } if (is_string($params)) { @@ -229,6 +232,7 @@ public function logout($params = null) * This function never returns. * * @param array $state The state after the logout. + * @return void */ public static function logoutCompleted($state) { @@ -245,7 +249,7 @@ public static function logoutCompleted($state) $stateID = State::saveState($state, $state['ReturnStateStage']); $params[$state['ReturnStateParam']] = $stateID; } - HTTP::redirectTrustedURL($state['ReturnTo'], $params); + Utils\HTTP::redirectTrustedURL($state['ReturnTo'], $params); } } @@ -317,7 +321,7 @@ public function getLoginURL($returnTo = null) assert($returnTo === null || is_string($returnTo)); if ($returnTo === null) { - $returnTo = HTTP::getSelfURL(); + $returnTo = Utils\HTTP::getSelfURL(); } $login = Module::getModuleURL('core/as_login.php', [ @@ -342,7 +346,7 @@ public function getLogoutURL($returnTo = null) assert($returnTo === null || is_string($returnTo)); if ($returnTo === null) { - $returnTo = HTTP::getSelfURL(); + $returnTo = Utils\HTTP::getSelfURL(); } $logout = Module::getModuleURL('core/as_logout.php', [ @@ -367,33 +371,28 @@ public function getLogoutURL($returnTo = null) protected function getProcessedURL($url = null) { if ($url === null) { - $url = HTTP::getSelfURL(); + $url = Utils\HTTP::getSelfURL(); } $scheme = parse_url($url, PHP_URL_SCHEME); - $host = parse_url($url, PHP_URL_HOST) ? : HTTP::getSelfHost(); + $host = parse_url($url, PHP_URL_HOST) ? : Utils\HTTP::getSelfHost(); $port = parse_url($url, PHP_URL_PORT) ? : ( - $scheme ? '' : trim(HTTP::getServerPort(), ':') + $scheme ? '' : ltrim(Utils\HTTP::getServerPort(), ':') ); - $scheme = $scheme ? : (HTTP::getServerHTTPS() ? 'https' : 'http'); + $scheme = $scheme ? : (Utils\HTTP::getServerHTTPS() ? 'https' : 'http'); $path = parse_url($url, PHP_URL_PATH) ? : '/'; $query = parse_url($url, PHP_URL_QUERY) ? : ''; $fragment = parse_url($url, PHP_URL_FRAGMENT) ? : ''; - $port = !empty($port) ? ':'.$port : ''; + $port = !empty($port) ? ':' . $port : ''; if (($scheme === 'http' && $port === ':80') || ($scheme === 'https' && $port === ':443')) { $port = ''; } - if (is_null($this->app_config)) { - // nothing more we can do here - return $scheme.'://'.$host.$port.$path.($query ? '?'.$query : '').($fragment ? '#'.$fragment : ''); - } - $base = trim($this->app_config->getString( 'baseURL', - $scheme.'://'.$host.$port + $scheme . '://' . $host . $port ), '/'); - return $base.$path.($query ? '?'.$query : '').($fragment ? '#'.$fragment : ''); + return $base . $path . ($query ? '?' . $query : '') . ($fragment ? '#' . $fragment : ''); } } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/Source.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/Source.php index d24f6e774fe841b6c37acf973d38e08845f41f33..36b7e28c6dae3c7efba60b531e9c3efabaa4bed1 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/Source.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/Source.php @@ -2,6 +2,13 @@ namespace SimpleSAML\Auth; +use SimpleSAML\Configuration; +use SimpleSAML\Error; +use SimpleSAML\Logger; +use SimpleSAML\Module; +use SimpleSAML\Session; +use SimpleSAML\Utils; + /** * This class defines a base class for authentication source. * @@ -47,13 +54,13 @@ public function __construct($info, &$config) * @param string $type The type of the authentication source. * * @return Source[] Array of \SimpleSAML\Auth\Source objects of the specified type. - * @throws Exception If the authentication source is invalid. + * @throws \Exception If the authentication source is invalid. */ public static function getSourcesOfType($type) { assert(is_string($type)); - $config = \SimpleSAML\Configuration::getConfig('authsources.php'); + $config = Configuration::getConfig('authsources.php'); $ret = []; @@ -98,6 +105,7 @@ public function getAuthId() * information about the user, and call completeAuth with the state array. * * @param array &$state Information about the current authentication. + * @return void */ abstract public function authenticate(&$state); @@ -109,14 +117,19 @@ abstract public function authenticate(&$state); * interact with the user even in the case when the user is already authenticated. * * @param array &$state Information about the current authentication. + * @return void */ public function reauthenticate(array &$state) { assert(isset($state['ReturnCallback'])); // the default implementation just copies over the previous authentication data - $session = \SimpleSAML\Session::getSessionFromRequest(); + $session = Session::getSessionFromRequest(); $data = $session->getAuthState($this->authId); + if ($data === null) { + throw new Error\NoState(); + } + foreach ($data as $k => $v) { $state[$k] = $v; } @@ -131,6 +144,7 @@ public function reauthenticate(array &$state) * but should instead be passed to the top-level exception handler. * * @param array &$state Information about the current authentication. + * @return void */ public static function completeAuth(&$state) { @@ -159,6 +173,7 @@ public static function completeAuth(&$state) * check it by calling \SimpleSAML\Utils\HTTP::checkURLAllowed(). * @param array $params Extra information about the login. Different authentication requestors may provide different * information. Optional, will default to an empty array. + * @return void */ public function initLogin($return, $errorURL = null, array $params = []) { @@ -191,10 +206,10 @@ public function initLogin($return, $errorURL = null, array $params = []) try { $this->authenticate($state); - } catch (\SimpleSAML\Error\Exception $e) { + } catch (Error\Exception $e) { State::throwException($state, $e); } catch (\Exception $e) { - $e = new \SimpleSAML\Error\UnserializableException($e); + $e = new Error\UnserializableException($e); State::throwException($state, $e); } self::loginCompleted($state); @@ -207,6 +222,7 @@ public function initLogin($return, $errorURL = null, array $params = []) * This method never returns. * * @param array $state The state after the login has completed. + * @return void */ public static function loginCompleted($state) { @@ -219,13 +235,13 @@ public static function loginCompleted($state) $return = $state['\SimpleSAML\Auth\Source.Return']; // save session state - $session = \SimpleSAML\Session::getSessionFromRequest(); + $session = Session::getSessionFromRequest(); $authId = $state['\SimpleSAML\Auth\Source.id']; $session->doLogin($authId, State::getPersistentAuthData($state)); if (is_string($return)) { // redirect... - \SimpleSAML\Utils\HTTP::redirectTrustedURL($return); + Utils\HTTP::redirectTrustedURL($return); } else { call_user_func($return, $state); } @@ -245,6 +261,7 @@ public static function loginCompleted($state) * showing the user a page, or redirecting, this function should return. * * @param array &$state Information about the current logout operation. + * @return void */ public function logout(&$state) { @@ -261,6 +278,7 @@ public function logout(&$state) * but should instead be passed to the top-level exception handler. * * @param array &$state Information about the current authentication. + * @return void */ public static function completeLogout(&$state) { @@ -286,7 +304,7 @@ public static function completeLogout(&$state) * @param string $authId The authentication source identifier. * @param array $config The configuration. * - * @return Source The parsed authentication source. + * @return \SimpleSAML\Auth\Source The parsed authentication source. * @throws \Exception If the authentication source is invalid. */ private static function parseAuthSource($authId, $config) @@ -304,21 +322,22 @@ private static function parseAuthSource($authId, $config) try { // Check whether or not there's a factory responsible for instantiating our Auth Source instance - $factoryClass = \SimpleSAML\Module::resolveClass( + $factoryClass = Module::resolveClass( $id, 'Auth\Source\Factory', '\SimpleSAML\Auth\SourceFactory' ); /** @var SourceFactory $factory */ - $factory = new $factoryClass; + $factory = new $factoryClass(); $authSource = $factory->create($info, $config); } catch (\Exception $e) { // If not, instantiate the Auth Source here - $className = \SimpleSAML\Module::resolveClass($id, 'Auth\Source', '\SimpleSAML\Auth\Source'); + $className = Module::resolveClass($id, 'Auth\Source', '\SimpleSAML\Auth\Source'); $authSource = new $className($info, $config); } + /** @var \SimpleSAML\Auth\Source */ return $authSource; } @@ -335,9 +354,9 @@ private static function parseAuthSource($authId, $config) * authentication source of a different type is found, an exception will be thrown. * * @param string $authId The authentication source identifier. - * @param string|NULL $type The type of authentication source. If NULL, any type will be accepted. + * @param string|null $type The type of authentication source. If NULL, any type will be accepted. * - * @return Source|NULL The AuthSource object, or NULL if no authentication + * @return \SimpleSAML\Auth\Source|null The AuthSource object, or NULL if no authentication * source with the given identifier is found. * @throws \SimpleSAML\Error\Exception If no such authentication source is found or it is invalid. */ @@ -347,14 +366,14 @@ public static function getById($authId, $type = null) assert($type === null || is_string($type)); // for now - load and parse config file - $config = \SimpleSAML\Configuration::getConfig('authsources.php'); + $config = Configuration::getConfig('authsources.php'); $authConfig = $config->getArray($authId, null); if ($authConfig === null) { if ($type !== null) { - throw new \SimpleSAML\Error\Exception( - 'No authentication source with id '. - var_export($authId, true).' found.' + throw new Error\Exception( + 'No authentication source with id ' . + var_export($authId, true) . ' found.' ); } return null; @@ -367,10 +386,10 @@ public static function getById($authId, $type = null) } // the authentication source doesn't have the correct type - throw new \SimpleSAML\Error\Exception( - 'Invalid type of authentication source '. - var_export($authId, true).'. Was '.var_export(get_class($ret), true). - ', should be '.var_export($type, true).'.' + throw new Error\Exception( + 'Invalid type of authentication source ' . + var_export($authId, true) . '. Was ' . var_export(get_class($ret), true) . + ', should be ' . var_export($type, true) . '.' ); } @@ -379,6 +398,7 @@ public static function getById($authId, $type = null) * Called when the authentication source receives an external logout request. * * @param array $state State array for the logout operation. + * @return void */ public static function logoutCallback($state) { @@ -387,10 +407,10 @@ public static function logoutCallback($state) $source = $state['\SimpleSAML\Auth\Source.logoutSource']; - $session = \SimpleSAML\Session::getSessionFromRequest(); + $session = Session::getSessionFromRequest(); if (!$session->isValid($source)) { - \SimpleSAML\Logger::warning( - 'Received logout from an invalid authentication source '. + Logger::warning( + 'Received logout from an invalid authentication source ' . var_export($source, true) ); @@ -411,6 +431,7 @@ public static function logoutCallback($state) * * @param string $assoc The identifier for this logout association. * @param array $state The state array passed to the authenticate-function. + * @return void */ protected function addLogoutCallback($assoc, $state) { @@ -429,19 +450,19 @@ protected function addLogoutCallback($assoc, $state) $callbackState = []; } - $id = strlen($this->authId).':'.$this->authId.$assoc; + $id = strlen($this->authId) . ':' . $this->authId . $assoc; $data = [ 'callback' => $callback, 'state' => $callbackState, ]; - $session = \SimpleSAML\Session::getSessionFromRequest(); + $session = Session::getSessionFromRequest(); $session->setData( '\SimpleSAML\Auth\Source.LogoutCallbacks', $id, $data, - \SimpleSAML\Session::DATA_TIMEOUT_SESSION_END + Session::DATA_TIMEOUT_SESSION_END ); } @@ -455,14 +476,15 @@ protected function addLogoutCallback($assoc, $state) * This function always returns. * * @param string $assoc The logout association which should be called. + * @return void */ protected function callLogoutCallback($assoc) { assert(is_string($assoc)); - $id = strlen($this->authId).':'.$this->authId.$assoc; + $id = strlen($this->authId) . ':' . $this->authId . $assoc; - $session = \SimpleSAML\Session::getSessionFromRequest(); + $session = Session::getSessionFromRequest(); $data = $session->getData('\SimpleSAML\Auth\Source.LogoutCallbacks', $id); if ($data === null) { @@ -491,7 +513,7 @@ protected function callLogoutCallback($assoc) */ public static function getSources() { - $config = \SimpleSAML\Configuration::getOptionalConfig('authsources.php'); + $config = Configuration::getOptionalConfig('authsources.php'); return $config->getOptions(); } @@ -504,12 +526,13 @@ public static function getSources() * @param string $id The auth source identifier. * * @throws \Exception If the first element of $source is not an identifier for the auth source. + * @return void */ protected static function validateSource($source, $id) { if (!array_key_exists(0, $source) || !is_string($source[0])) { throw new \Exception( - 'Invalid authentication source \''.$id. + 'Invalid authentication source \'' . $id . '\': First element must be a string which identifies the authentication source.' ); } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/State.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/State.php index 6afd183ca158412d38a884956cb49289efcce473..ac915cbd3161194b72a70e8067e7c843703a2897 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/State.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/State.php @@ -2,6 +2,12 @@ namespace SimpleSAML\Auth; +use SimpleSAML\Configuration; +use SimpleSAML\Error; +use SimpleSAML\Logger; +use SimpleSAML\Session; +use SimpleSAML\Utils; + /** * This is a helper class for saving and loading state information. * @@ -24,7 +30,8 @@ * By defining an exception handler when creating the state array, users of the state * array can call throwException with the state and the exception. This exception will * be passed to the handler defined by the EXCEPTION_HANDLER_URL or EXCEPTION_HANDLER_FUNC - * elements of the state array. + * elements of the state array. Note that internally this uses the request parameter name + * defined in EXCEPTION_PARAM, which, for technical reasons, cannot contain a ".". * * @author Olav Morken, UNINETT AS. * @package SimpleSAMLphp @@ -150,7 +157,7 @@ public static function getStateId(&$state, $rawId = false) assert(is_bool($rawId)); if (!array_key_exists(self::ID, $state)) { - $state[self::ID] = \SimpleSAML\Utils\Random::generateID(); + $state[self::ID] = Utils\Random::generateID(); } $id = $state[self::ID]; @@ -161,7 +168,7 @@ public static function getStateId(&$state, $rawId = false) } // We have a restart URL. Return the ID with that URL. - return $id.':'.$state[self::RESTART]; + return $id . ':' . $state[self::RESTART]; } @@ -173,7 +180,7 @@ public static function getStateId(&$state, $rawId = false) private static function getStateTimeout() { if (self::$stateTimeout === null) { - $globalConfig = \SimpleSAML\Configuration::getInstance(); + $globalConfig = Configuration::getInstance(); self::$stateTimeout = $globalConfig->getInteger('session.state.timeout', 60 * 60); } @@ -207,10 +214,10 @@ public static function saveState(&$state, $stage, $rawId = false) // Save state $serializedState = serialize($state); - $session = \SimpleSAML\Session::getSessionFromRequest(); + $session = Session::getSessionFromRequest(); $session->setData('\SimpleSAML\Auth\State', $id, $serializedState, self::getStateTimeout()); - \SimpleSAML\Logger::debug('Saved state: '.var_export($return, true)); + Logger::debug('Saved state: ' . var_export($return, true)); return $return; } @@ -233,9 +240,9 @@ public static function cloneState(array $state) $clonedState[self::CLONE_ORIGINAL_ID] = $state[self::ID]; unset($clonedState[self::ID]); - \SimpleSAML\Logger::debug('Cloned state: '.var_export($state[self::ID], true)); + Logger::debug('Cloned state: ' . var_export($state[self::ID], true)); } else { - \SimpleSAML\Logger::debug('Cloned state with undefined id.'); + Logger::debug('Cloned state with undefined id.'); } return $clonedState; @@ -256,18 +263,18 @@ public static function cloneState(array $state) * @throws \SimpleSAML\Error\NoState If we couldn't find the state and there's no URL defined to redirect to. * @throws \Exception If the stage of the state is invalid and there's no URL defined to redirect to. * - * @return array|NULL State information, or null if the state is missing and $allowMissing is true. + * @return array|null State information, or NULL if the state is missing and $allowMissing is true. */ public static function loadState($id, $stage, $allowMissing = false) { assert(is_string($id)); assert(is_string($stage)); assert(is_bool($allowMissing)); - \SimpleSAML\Logger::debug('Loading state: '.var_export($id, true)); + Logger::debug('Loading state: ' . var_export($id, true)); $sid = self::parseStateID($id); - $session = \SimpleSAML\Session::getSessionFromRequest(); + $session = Session::getSessionFromRequest(); $state = $session->getData('\SimpleSAML\Auth\State', $sid['id']); if ($state === null) { @@ -277,10 +284,10 @@ public static function loadState($id, $stage, $allowMissing = false) } if ($sid['url'] === null) { - throw new \SimpleSAML\Error\NoState(); + throw new Error\NoState(); } - \SimpleSAML\Utils\HTTP::redirectUntrustedURL($sid['url']); + Utils\HTTP::redirectUntrustedURL($sid['url']); } $state = unserialize($state); @@ -295,16 +302,16 @@ public static function loadState($id, $stage, $allowMissing = false) * request if that is possible. If not, show an error. */ - $msg = 'Wrong stage in state. Was \''.$state[self::STAGE]. - '\', should be \''.$stage.'\'.'; + $msg = 'Wrong stage in state. Was \'' . $state[self::STAGE] . + '\', should be \'' . $stage . '\'.'; - \SimpleSAML\Logger::warning($msg); + Logger::warning($msg); if ($sid['url'] === null) { throw new \Exception($msg); } - \SimpleSAML\Utils\HTTP::redirectUntrustedURL($sid['url']); + Utils\HTTP::redirectUntrustedURL($sid['url']); } return $state; @@ -317,6 +324,7 @@ public static function loadState($id, $stage, $allowMissing = false) * This function deletes the given state to prevent the user from reusing it later. * * @param array &$state The state which should be deleted. + * @return void */ public static function deleteState(&$state) { @@ -327,9 +335,9 @@ public static function deleteState(&$state) return; } - \SimpleSAML\Logger::debug('Deleting state: '.var_export($state[self::ID], true)); + Logger::debug('Deleting state: ' . var_export($state[self::ID], true)); - $session = \SimpleSAML\Session::getSessionFromRequest(); + $session = Session::getSessionFromRequest(); $session->deleteData('\SimpleSAML\Auth\State', $state[self::ID]); } @@ -341,8 +349,9 @@ public static function deleteState(&$state) * @param \SimpleSAML\Error\Exception $exception The exception. * * @throws \SimpleSAML\Error\Exception If there is no exception handler defined, it will just throw the $exception. + * @return void */ - public static function throwException($state, \SimpleSAML\Error\Exception $exception) + public static function throwException($state, Error\Exception $exception) { assert(is_array($state)); @@ -352,7 +361,7 @@ public static function throwException($state, \SimpleSAML\Error\Exception $excep $id = self::saveState($state, self::EXCEPTION_STAGE); // Redirect to the exception handler - \SimpleSAML\Utils\HTTP::redirectTrustedURL( + Utils\HTTP::redirectTrustedURL( $state[self::EXCEPTION_HANDLER_URL], [self::EXCEPTION_PARAM => $id] ); @@ -369,15 +378,16 @@ public static function throwException($state, \SimpleSAML\Error\Exception $excep */ throw $exception; } + throw new \Exception(); // This should never happen } /** * Retrieve an exception state. * - * @param string|NULL $id The exception id. Can be NULL, in which case it will be retrieved from the request. + * @param string|null $id The exception id. Can be NULL, in which case it will be retrieved from the request. * - * @return array|NULL The state array with the exception, or NULL if no exception was thrown. + * @return array|null The state array with the exception, or NULL if no exception was thrown. */ public static function loadExceptionState($id = null) { @@ -391,6 +401,7 @@ public static function loadExceptionState($id = null) $id = $_REQUEST[self::EXCEPTION_PARAM]; } + /** @var array $state */ $state = self::loadState($id, self::EXCEPTION_STAGE); assert(array_key_exists(self::EXCEPTION_DATA, $state)); diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/TimeLimitedToken.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/TimeLimitedToken.php index eb6620d5ec039213f25ba8acee90b7a8b9350a48..ac5846dec9eb9c308086cd8d5406db8dc4312c6a 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/TimeLimitedToken.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/TimeLimitedToken.php @@ -2,8 +2,12 @@ namespace SimpleSAML\Auth; +use SimpleSAML\Utils; + /** * A class that generates and verifies time-limited tokens. + * + * @deprecated This class was deprecated in 1.18 and will be removed in a future release */ class TimeLimitedToken @@ -32,23 +36,21 @@ class TimeLimitedToken /** * Create a new time-limited token. * - * Please note that the default algorithm will change in SSP 1.15.0 to SHA-256 instead of SHA-1. - * * @param int $lifetime Token lifetime in seconds. Defaults to 900 (15 min). * @param string $secretSalt A random and unique salt per installation. Defaults to the salt in the configuration. * @param int $skew The allowed time skew (in seconds) to correct clock deviations. Defaults to 1 second. - * @param string $algo The hash algorithm to use to generate the tokens. Defaults to SHA-1. + * @param string $algo The hash algorithm to use to generate the tokens. Defaults to SHA-256. * * @throws \InvalidArgumentException if the given parameters are invalid. */ - public function __construct($lifetime = 900, $secretSalt = null, $skew = 1, $algo = 'sha1') + public function __construct($lifetime = 900, $secretSalt = null, $skew = 1, $algo = 'sha256') { if ($secretSalt === null) { - $secretSalt = \SimpleSAML\Utils\Config::getSecretSalt(); + $secretSalt = Utils\Config::getSecretSalt(); } if (!in_array($algo, hash_algos(), true)) { - throw new \InvalidArgumentException('Invalid hash algorithm "'.$algo.'"'); + throw new \InvalidArgumentException('Invalid hash algorithm "' . $algo . '"'); } $this->secretSalt = $secretSalt; @@ -66,10 +68,11 @@ public function __construct($lifetime = 900, $secretSalt = null, $skew = 1, $alg * not only the same data must be added, but also in the same order. * * @param string $data The data to incorporate into the current token. + * @return void */ public function addVerificationData($data) { - $this->secretSalt .= '|'.$data; + $this->secretSalt .= '|' . $data; } @@ -89,7 +92,7 @@ private function calculateTokenValue($offset, $time = null) // a secret salt that should be randomly generated for each installation return hash( $this->algo, - $offset.':'.floor(($time - $offset) / ($this->lifetime + $this->skew)).':'.$this->secretSalt + $offset . ':' . floor(($time - $offset) / ($this->lifetime + $this->skew)) . ':' . $this->secretSalt ); } @@ -103,13 +106,14 @@ public function generate() { $time = time(); $current_offset = ($time - $this->skew) % ($this->lifetime + $this->skew); - return dechex($current_offset).'-'.$this->calculateTokenValue($current_offset, $time); + return dechex($current_offset) . '-' . $this->calculateTokenValue($current_offset, $time); } /** * @see generate * @deprecated This method will be removed in SSP 2.0. Use generate() instead. + * @return string */ public function generate_token() { @@ -122,7 +126,7 @@ public function generate_token() * * @param string $token The token to validate. * - * @return boolean True if the given token is currently valid, false otherwise. + * @return bool True if the given token is currently valid, false otherwise. */ public function validate($token) { @@ -139,6 +143,8 @@ public function validate($token) /** * @see validate * @deprecated This method will be removed in SSP 2.0. Use validate() instead. + * @param string $token + * @return bool */ public function validate_token($token) { diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Bindings/Shib13/Artifact.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Bindings/Shib13/Artifact.php index 3ce30d977fbb3d902817729e0a071af86eb85864..09703ec99d15dc3dd0dddfc1645d1de38858f555 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Bindings/Shib13/Artifact.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Bindings/Shib13/Artifact.php @@ -4,18 +4,15 @@ * Implementation of the Shibboleth 1.3 Artifact binding. * * @package SimpleSAMLphp + * @deprecated This class will be removed in a future release */ namespace SimpleSAML\Bindings\Shib13; use SAML2\DOMDocumentFactory; +use SimpleSAML\Configuration; use SimpleSAML\Error; -use SimpleSAML\Utils\Config; -use SimpleSAML\Utils\HTTP; -use SimpleSAML\Utils\Random; -use SimpleSAML\Utils\System; -use SimpleSAML\Utils\Time; -use SimpleSAML\Utils\XML; +use SimpleSAML\Utils; class Artifact { @@ -61,9 +58,9 @@ private static function buildRequest(array $artifacts) $msg = '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">'. '<SOAP-ENV:Body>'. '<samlp:Request xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol"'. - ' RequestID="'.Random::generateID().'"'. + ' RequestID="'.Utils\Random::generateID().'"'. ' MajorVersion="1" MinorVersion="1"'. - ' IssueInstant="'.Time::generateTimestamp().'"'. + ' IssueInstant="'.Utils\Time::generateTimestamp().'"'. '>'; foreach ($artifacts as $a) { @@ -96,18 +93,18 @@ private static function extractResponse($soapResponse) } $soapEnvelope = $doc->firstChild; - if (!XML::isDOMNodeOfType($soapEnvelope, 'Envelope', 'http://schemas.xmlsoap.org/soap/envelope/')) { + if (!Utils\XML::isDOMNodeOfType($soapEnvelope, 'Envelope', 'http://schemas.xmlsoap.org/soap/envelope/')) { throw new Error\Exception('Expected artifact response to contain a <soap:Envelope> element.'); } - $soapBody = XML::getDOMChildren($soapEnvelope, 'Body', 'http://schemas.xmlsoap.org/soap/envelope/'); + $soapBody = Utils\XML::getDOMChildren($soapEnvelope, 'Body', 'http://schemas.xmlsoap.org/soap/envelope/'); if (count($soapBody) === 0) { throw new Error\Exception('Couldn\'t find <soap:Body> in <soap:Envelope>.'); } $soapBody = $soapBody[0]; - $responseElement = XML::getDOMChildren($soapBody, 'Response', 'urn:oasis:names:tc:SAML:1.0:protocol'); + $responseElement = Utils\XML::getDOMChildren($soapBody, 'Response', 'urn:oasis:names:tc:SAML:1.0:protocol'); if (count($responseElement) === 0) { throw new Error\Exception('Couldn\'t find <saml1p:Response> in <soap:Body>.'); } @@ -133,13 +130,14 @@ private static function extractResponse($soapResponse) * @return string The <saml1p:Response> element, as an XML string. * @throws Error\Exception */ - public static function receive(\SimpleSAML\Configuration $spMetadata, \SimpleSAML\Configuration $idpMetadata) + public static function receive(Configuration $spMetadata, Configuration $idpMetadata) { $artifacts = self::getArtifacts(); $request = self::buildRequest($artifacts); - XML::debugSAMLMessage($request, 'out'); + Utils\XML::debugSAMLMessage($request, 'out'); + /** @var array $url */ $url = $idpMetadata->getDefaultEndpoint( 'ArtifactResolutionService', ['urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding'] @@ -157,12 +155,12 @@ public static function receive(\SimpleSAML\Configuration $spMetadata, \SimpleSAM "-----END CERTIFICATE-----\n"; } - $file = System::getTempDir().DIRECTORY_SEPARATOR.sha1($certData).'.crt'; + $file = Utils\System::getTempDir().DIRECTORY_SEPARATOR.sha1($certData).'.crt'; if (!file_exists($file)) { - System::writeFile($file, $certData); + Utils\System::writeFile($file, $certData); } - $spKeyCertFile = Config::getCertPath($spMetadata->getString('privatekey')); + $spKeyCertFile = Utils\Config::getCertPath($spMetadata->getString('privatekey')); $opts = [ 'ssl' => [ @@ -181,9 +179,9 @@ public static function receive(\SimpleSAML\Configuration $spMetadata, \SimpleSAM ]; // Fetch the artifact - $response = HTTP::fetch($url, $opts); /** @var string $response */ - XML::debugSAMLMessage($response, 'in'); + $response = Utils\HTTP::fetch($url, $opts); + Utils\XML::debugSAMLMessage($response, 'in'); // Find the response in the SOAP message $response = self::extractResponse($response); diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Bindings/Shib13/HTTPPost.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Bindings/Shib13/HTTPPost.php index 893682c1b8569bb0eb2e619f4f38a1b453e79c73..d7c38700a9e96abb1824a7d4c726a7fcd87b6434 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Bindings/Shib13/HTTPPost.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Bindings/Shib13/HTTPPost.php @@ -6,14 +6,15 @@ * * @author Andreas Åkre Solberg, UNINETT AS. <andreas.solberg@uninett.no> * @package SimpleSAMLphp + * @deprecated This class will be removed in a future release */ namespace SimpleSAML\Bindings\Shib13; use SAML2\DOMDocumentFactory; -use SimpleSAML\Utils\Crypto; -use SimpleSAML\Utils\HTTP; -use SimpleSAML\Utils\XML; +use SimpleSAML\Configuration; +use SimpleSAML\Metadata\MetaDataStorageHandler; +use SimpleSAML\Utils; use SimpleSAML\XML\Shib13\AuthnResponse; use SimpleSAML\XML\Signer; @@ -22,12 +23,12 @@ class HTTPPost /** * @var \SimpleSAML\Configuration */ - private $configuration = null; + private $configuration; /** * @var \SimpleSAML\Metadata\MetaDataStorageHandler */ - private $metadata = null; + private $metadata; /** @@ -37,8 +38,8 @@ class HTTPPost * @param \SimpleSAML\Metadata\MetaDataStorageHandler $metadatastore A store where to find metadata. */ public function __construct( - \SimpleSAML\Configuration $configuration, - \SimpleSAML\Metadata\MetaDataStorageHandler $metadatastore + Configuration $configuration, + MetaDataStorageHandler $metadatastore ) { $this->configuration = $configuration; $this->metadata = $metadatastore; @@ -53,18 +54,19 @@ public function __construct( * @param \SimpleSAML\Configuration $spmd The metadata of the SP which is receiving the response. * @param string|null $relayState The relaystate for the SP. * @param string $shire The shire which should receive the response. + * @return void */ public function sendResponse( $response, - \SimpleSAML\Configuration $idpmd, - \SimpleSAML\Configuration $spmd, + Configuration $idpmd, + Configuration $spmd, $relayState, $shire ) { - XML::checkSAMLMessage($response, 'saml11'); + Utils\XML::checkSAMLMessage($response, 'saml11'); - $privatekey = Crypto::loadPrivateKey($idpmd, true); - $publickey = Crypto::loadPublicKey($idpmd, true); + $privatekey = Utils\Crypto::loadPrivateKey($idpmd, true); + $publickey = Utils\Crypto::loadPublicKey($idpmd, true); $responsedom = DOMDocumentFactory::fromString(str_replace("\r", "", $response)); @@ -101,7 +103,7 @@ public function sendResponse( if ($signResponse) { // sign the response - this must be done after encrypting the assertion // we insert the signature before the saml2p:Status element - $statusElements = XML::getDOMChildren($responseroot, 'Status', '@saml1p'); + $statusElements = Utils\XML::getDOMChildren($responseroot, 'Status', '@saml1p'); assert(count($statusElements) === 1); $signer->sign($responseroot, $responseroot, $statusElements[0]); } else { @@ -111,9 +113,9 @@ public function sendResponse( $response = $responsedom->saveXML(); - XML::debugSAMLMessage($response, 'out'); + Utils\XML::debugSAMLMessage($response, 'out'); - HTTP::submitPOSTData($shire, [ + Utils\HTTP::submitPOSTData($shire, [ 'TARGET' => $relayState, 'SAMLResponse' => base64_encode($response), ]); @@ -137,9 +139,9 @@ public function decodeResponse($post) $rawResponse = $post['SAMLResponse']; $samlResponseXML = base64_decode($rawResponse); - XML::debugSAMLMessage($samlResponseXML, 'in'); + Utils\XML::debugSAMLMessage($samlResponseXML, 'in'); - XML::checkSAMLMessage($samlResponseXML, 'saml11'); + Utils\XML::checkSAMLMessage($samlResponseXML, 'saml11'); $samlResponse = new AuthnResponse(); $samlResponse->setXML($samlResponseXML); diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Configuration.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Configuration.php index 7c575ff875eb9fd9c876edf711a0dfef73eb14f2..18a0bb91a4cd52ba4d3bd28af9d4f2a28f59cefa 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Configuration.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Configuration.php @@ -2,7 +2,9 @@ namespace SimpleSAML; -use SimpleSAML\Utils\System; +use SAML2\Constants; +use SimpleSAML\Error; +use SimpleSAML\Utils; /** * Configuration of SimpleSAMLphp @@ -188,6 +190,7 @@ private static function loadFromFile($filename, $required) * * @param string $path The directory which contains the configuration files. * @param string $configSet The configuration set. Defaults to 'simplesaml'. + * @return void */ public static function setConfigDir($path, $configSet = 'simplesaml') { @@ -206,6 +209,8 @@ public static function setConfigDir($path, $configSet = 'simplesaml') * @param \SimpleSAML\Configuration $config The configuration object to store * @param string $filename The name of the configuration file. * @param string $configSet The configuration set. Optional, defaults to 'simplesaml'. + * @return void + * @throws \Exception */ public static function setPreLoadedConfig( Configuration $config, @@ -217,14 +222,14 @@ public static function setPreLoadedConfig( if (!array_key_exists($configSet, self::$configDirs)) { if ($configSet !== 'simplesaml') { - throw new \Exception('Configuration set \''.$configSet.'\' not initialized.'); + throw new \Exception('Configuration set \'' . $configSet . '\' not initialized.'); } else { - self::$configDirs['simplesaml'] = dirname(dirname(dirname(__FILE__))).'/config'; + self::$configDirs['simplesaml'] = dirname(dirname(dirname(__FILE__))) . '/config'; } } $dir = self::$configDirs[$configSet]; - $filePath = $dir.'/'.$filename; + $filePath = $dir . '/' . $filename; self::$loadedConfigs[$filePath] = $config; } @@ -246,14 +251,14 @@ public static function getConfig($filename = 'config.php', $configSet = 'simples if (!array_key_exists($configSet, self::$configDirs)) { if ($configSet !== 'simplesaml') { - throw new \Exception('Configuration set \''.$configSet.'\' not initialized.'); + throw new \Exception('Configuration set \'' . $configSet . '\' not initialized.'); } else { self::$configDirs['simplesaml'] = Utils\Config::getConfigDir(); } } $dir = self::$configDirs[$configSet]; - $filePath = $dir.'/'.$filename; + $filePath = $dir . '/' . $filename; return self::loadFromFile($filePath, true); } @@ -276,14 +281,14 @@ public static function getOptionalConfig($filename = 'config.php', $configSet = if (!array_key_exists($configSet, self::$configDirs)) { if ($configSet !== 'simplesaml') { - throw new \Exception('Configuration set \''.$configSet.'\' not initialized.'); + throw new \Exception('Configuration set \'' . $configSet . '\' not initialized.'); } else { self::$configDirs['simplesaml'] = Utils\Config::getConfigDir(); } } $dir = self::$configDirs[$configSet]; - $filePath = $dir.'/'.$filename; + $filePath = $dir . '/' . $filename; return self::loadFromFile($filePath, false); } @@ -345,7 +350,7 @@ public static function getInstance($instancename = 'simplesaml') } throw new Error\CriticalConfigurationError( - 'Configuration with name '.$instancename.' is not initialized.' + 'Configuration with name ' . $instancename . ' is not initialized.' ); } @@ -358,6 +363,7 @@ public static function getInstance($instancename = 'simplesaml') * @param string $path * @param string $instancename * @param string $configfilename + * @return \SimpleSAML\Configuration * * @see setConfigDir() * @deprecated This function is superseeded by the setConfigDir function. @@ -378,7 +384,7 @@ public static function init($path, $instancename = 'simplesaml', $configfilename return self::$instance[$instancename]; } - self::$instance[$instancename] = self::loadFromFile($path.'/'.$configfilename, true); + self::$instance[$instancename] = self::loadFromFile($path . '/' . $configfilename, true); return self::$instance[$instancename]; } @@ -390,6 +396,7 @@ public static function init($path, $instancename = 'simplesaml', $configfilename * * @param string $instancename * @param string $filename + * @return \SimpleSAML\Configuration * * @see getConfig() * @deprecated This function is superseeded by the getConfig() function. @@ -407,7 +414,7 @@ public function copyFromBase($instancename, $filename) $dir = dirname($this->filename); - self::$instance[$instancename] = self::loadFromFile($dir.'/'.$filename, true); + self::$instance[$instancename] = self::loadFromFile($dir . '/' . $filename, true); return self::$instance[$instancename]; } @@ -419,7 +426,7 @@ public function copyFromBase($instancename, $filename) */ public function getVersion() { - return '1.17.8'; + return '1.18.7'; } @@ -441,7 +448,7 @@ public function getValue($name, $default = null) if (!array_key_exists($name, $this->configuration)) { if ($default === self::REQUIRED_OPTION) { throw new \Exception( - $this->location.': Could not retrieve the required option '. + $this->location . ': Could not retrieve the required option ' . var_export($name, true) ); } @@ -506,7 +513,7 @@ public function getBaseURL() } if (preg_match('/^\*(.*)$/D', $this->getString('baseurlpath', 'simplesaml/'), $matches)) { // deprecated behaviour, will be removed in the future - return Utils\HTTP::getFirstPathElement(false).$matches[1]; + return Utils\HTTP::getFirstPathElement(false) . $matches[1]; } return ltrim($this->getBasePath(), '/'); } @@ -531,13 +538,13 @@ public function getBasePath() // absolute URL without path return '/'; } - return '/'.rtrim($matches[1], '/')."/"; + return '/' . rtrim($matches[1], '/') . '/'; } elseif ($baseURL === '' || $baseURL === '/') { // root directory of site return '/'; } elseif (preg_match('#^/?((?:[^/\s]+/?)+)#', $baseURL, $matches)) { // local path only - return '/'.rtrim($matches[1], '/').'/'; + return '/' . rtrim($matches[1], '/') . '/'; } else { /* * Invalid 'baseurlpath'. We cannot recover from this, so throw a critical exception and try to be graceful @@ -546,8 +553,8 @@ public function getBasePath() $c = $this->toArray(); $c['baseurlpath'] = Utils\HTTP::guessBasePath(); throw new Error\CriticalConfigurationError( - 'Incorrect format for option \'baseurlpath\'. Value is: "'. - $this->getString('baseurlpath', 'simplesaml/').'". Valid format is in the form'. + 'Incorrect format for option \'baseurlpath\'. Value is: "' . + $this->getString('baseurlpath', 'simplesaml/') . '". Valid format is in the form' . ' [(http|https)://(hostname|fqdn)[:port]]/[path/to/simplesaml/].', $this->filename, $c @@ -574,7 +581,7 @@ public function resolvePath($path) assert(is_string($path)); - return System::resolvePath($path, $this->getBaseDir()); + return Utils\System::resolvePath($path, $this->getBaseDir()); } @@ -601,11 +608,12 @@ public function getPathValue($name, $default = null) $path = $this->configuration[$name]; } + $path = $this->resolvePath($path); if ($path === null) { return null; } - return $this->resolvePath($path).'/'; + return $path . '/'; } @@ -679,7 +687,7 @@ public function getBoolean($name, $default = self::REQUIRED_OPTION) if (!is_bool($ret)) { throw new \Exception( - $this->location.': The option '.var_export($name, true). + $this->location . ': The option ' . var_export($name, true) . ' is not a valid boolean value.' ); } @@ -717,7 +725,7 @@ public function getString($name, $default = self::REQUIRED_OPTION) if (!is_string($ret)) { throw new \Exception( - $this->location.': The option '.var_export($name, true). + $this->location . ': The option ' . var_export($name, true) . ' is not a valid string value.' ); } @@ -755,7 +763,7 @@ public function getInteger($name, $default = self::REQUIRED_OPTION) if (!is_int($ret)) { throw new \Exception( - $this->location.': The option '.var_export($name, true). + $this->location . ': The option ' . var_export($name, true) . ' is not a valid integer value.' ); } @@ -799,9 +807,9 @@ public function getIntegerRange($name, $minimum, $maximum, $default = self::REQU if ($ret < $minimum || $ret > $maximum) { throw new \Exception( - $this->location.': Value of option '.var_export($name, true). - ' is out of range. Value is '.$ret.', allowed range is [' - .$minimum.' - '.$maximum.']' + $this->location . ': Value of option ' . var_export($name, true) . + ' is out of range. Value is ' . $ret . ', allowed range is [' + . $minimum . ' - ' . $maximum . ']' ); } @@ -849,9 +857,9 @@ public function getValueValidate($name, $allowedValues, $default = self::REQUIRE $strValues = implode(', ', $strValues); throw new \Exception( - $this->location.': Invalid value given for the option '. - var_export($name, true).'. It should have one of the following values: '. - $strValues.'; but it had the following value: '.var_export($ret, true) + $this->location . ': Invalid value given for the option ' . + var_export($name, true) . '. It should have one of the following values: ' . + $strValues . '; but it had the following value: ' . var_export($ret, true) ); } @@ -887,7 +895,7 @@ public function getArray($name, $default = self::REQUIRED_OPTION) } if (!is_array($ret)) { - throw new \Exception($this->location.': The option '.var_export($name, true).' is not an array.'); + throw new \Exception($this->location . ': The option ' . var_export($name, true) . ' is not an array.'); } return $ret; @@ -953,7 +961,7 @@ public function getArrayizeString($name, $default = self::REQUIRED_OPTION) foreach ($ret as $value) { if (!is_string($value)) { throw new \Exception( - $this->location.': The option '.var_export($name, true). + $this->location . ': The option ' . var_export($name, true) . ' must be a string or an array of strings.' ); } @@ -973,33 +981,35 @@ public function getArrayizeString($name, $default = self::REQUIRED_OPTION) * is given. * * @param string $name The name of the option. - * @param mixed $default A default value which will be returned if the option isn't found. The option will be - * required if this parameter isn't given. The default value can be any value, including - * null. + * @param array|null $default A default value which will be used if the option isn't found. An empty Configuration + * object will be returned if this parameter isn't given and the option doesn't exist. + * This function will only return null if $default is set to null and the option + * doesn't exist. * * @return mixed The option with the given name, or $default if the option isn't found and $default is specified. * * @throws \Exception If the option is not an array. */ - public function getConfigItem($name, $default = self::REQUIRED_OPTION) + public function getConfigItem($name, $default = []) { assert(is_string($name)); $ret = $this->getValue($name, $default); - if ($ret === $default) { - // the option wasn't found, or it matches the default value. In any case, return this value - return $ret; + if ($ret === null) { + // the option wasn't found, or it is explicitly null + // do not instantiate a new Configuration instance, but just return null + return null; } if (!is_array($ret)) { throw new \Exception( - $this->location.': The option '.var_export($name, true). + $this->location . ': The option ' . var_export($name, true) . ' is not an array.' ); } - return self::loadFromArray($ret, $this->location.'['.var_export($name, true).']'); + return self::loadFromArray($ret, $this->location . '[' . var_export($name, true) . ']'); } @@ -1014,38 +1024,32 @@ public function getConfigItem($name, $default = self::REQUIRED_OPTION) * default value is given. * * @param string $name The name of the option. - * @param mixed $default A default value which will be returned if the option isn't found. The option will be - * required if this parameter isn't given. The default value can be any value, including - * null. * - * @return mixed The option with the given name, or $default if the option isn't found and $default is specified. + * @return array The array of \SimpleSAML\Configuration objects. * * @throws \Exception If the value of this element is not an array. + * + * @deprecated Very specific function, will be removed in a future release; use getConfigItem or getArray instead */ - public function getConfigList($name, $default = self::REQUIRED_OPTION) + public function getConfigList($name) { assert(is_string($name)); - $ret = $this->getValue($name, $default); - - if ($ret === $default) { - // the option wasn't found, or it matches the default value. In any case, return this value - return $ret; - } + $ret = $this->getValue($name, []); if (!is_array($ret)) { throw new \Exception( - $this->location.': The option '.var_export($name, true). + $this->location . ': The option ' . var_export($name, true) . ' is not an array.' ); } $out = []; foreach ($ret as $index => $config) { - $newLoc = $this->location.'['.var_export($name, true).']['. - var_export($index, true).']'; + $newLoc = $this->location . '[' . var_export($name, true) . '][' . + var_export($index, true) . ']'; if (!is_array($config)) { - throw new \Exception($newLoc.': The value of this element was expected to be an array.'); + throw new \Exception($newLoc . ': The value of this element was expected to be an array.'); } $out[$index] = self::loadFromArray($config, $newLoc); } @@ -1096,21 +1100,21 @@ private function getDefaultBinding($endpointType) assert(is_string($endpointType)); $set = $this->getString('metadata-set'); - switch ($set.':'.$endpointType) { + switch ($set . ':' . $endpointType) { case 'saml20-idp-remote:SingleSignOnService': case 'saml20-idp-remote:SingleLogoutService': case 'saml20-sp-remote:SingleLogoutService': - return \SAML2\Constants::BINDING_HTTP_REDIRECT; + return Constants::BINDING_HTTP_REDIRECT; case 'saml20-sp-remote:AssertionConsumerService': - return \SAML2\Constants::BINDING_HTTP_POST; + return Constants::BINDING_HTTP_POST; case 'saml20-idp-remote:ArtifactResolutionService': - return \SAML2\Constants::BINDING_SOAP; + return Constants::BINDING_SOAP; case 'shib13-idp-remote:SingleSignOnService': return 'urn:mace:shibboleth:1.0:profiles:AuthnRequest'; case 'shib13-sp-remote:AssertionConsumerService': return 'urn:oasis:names:tc:SAML:1.0:profiles:browser-post'; default: - throw new \Exception('Missing default binding for '.$endpointType.' in '.$set); + throw new \Exception('Missing default binding for ' . $endpointType . ' in ' . $set); } } @@ -1128,7 +1132,7 @@ public function getEndpoints($endpointType) { assert(is_string($endpointType)); - $loc = $this->location.'['.var_export($endpointType, true).']:'; + $loc = $this->location . '[' . var_export($endpointType, true) . ']:'; if (!array_key_exists($endpointType, $this->configuration)) { // no endpoints of the given type @@ -1141,12 +1145,12 @@ public function getEndpoints($endpointType) // for backwards-compatibility $eps = [$eps]; } elseif (!is_array($eps)) { - throw new \Exception($loc.': Expected array or string.'); + throw new \Exception($loc . ': Expected array or string.'); } foreach ($eps as $i => &$ep) { - $iloc = $loc.'['.var_export($i, true).']'; + $iloc = $loc . '[' . var_export($i, true) . ']'; if (is_string($ep)) { // for backwards-compatibility @@ -1154,37 +1158,37 @@ public function getEndpoints($endpointType) 'Location' => $ep, 'Binding' => $this->getDefaultBinding($endpointType), ]; - $responseLocation = $this->getString($endpointType.'Response', null); + $responseLocation = $this->getString($endpointType . 'Response', null); if ($responseLocation !== null) { $ep['ResponseLocation'] = $responseLocation; } } elseif (!is_array($ep)) { - throw new \Exception($iloc.': Expected a string or an array.'); + throw new \Exception($iloc . ': Expected a string or an array.'); } if (!array_key_exists('Location', $ep)) { - throw new \Exception($iloc.': Missing Location.'); + throw new \Exception($iloc . ': Missing Location.'); } if (!is_string($ep['Location'])) { - throw new \Exception($iloc.': Location must be a string.'); + throw new \Exception($iloc . ': Location must be a string.'); } if (!array_key_exists('Binding', $ep)) { - throw new \Exception($iloc.': Missing Binding.'); + throw new \Exception($iloc . ': Missing Binding.'); } if (!is_string($ep['Binding'])) { - throw new \Exception($iloc.': Binding must be a string.'); + throw new \Exception($iloc . ': Binding must be a string.'); } if (array_key_exists('ResponseLocation', $ep)) { if (!is_string($ep['ResponseLocation'])) { - throw new \Exception($iloc.': ResponseLocation must be a string.'); + throw new \Exception($iloc . ': ResponseLocation must be a string.'); } } if (array_key_exists('index', $ep)) { if (!is_int($ep['index'])) { - throw new \Exception($iloc.': index must be an integer.'); + throw new \Exception($iloc . ': index must be an integer.'); } } } @@ -1220,8 +1224,8 @@ public function getEndpointPrioritizedByBinding($endpointType, array $bindings, } if ($default === self::REQUIRED_OPTION) { - $loc = $this->location.'['.var_export($endpointType, true).']:'; - throw new \Exception($loc.'Could not find a supported '.$endpointType.' endpoint.'); + $loc = $this->location . '[' . var_export($endpointType, true) . ']:'; + throw new \Exception($loc . 'Could not find a supported ' . $endpointType . ' endpoint.'); } return $default; @@ -1236,9 +1240,9 @@ public function getEndpointPrioritizedByBinding($endpointType, array $bindings, * @param mixed $default The default value to return if no matching endpoint is found. If no default is provided, * an exception will be thrown. * - * @return array|null The default endpoint, or null if no acceptable endpoints are used. + * @return mixed The default endpoint, or the $default parameter if no acceptable endpoints are used. * - * @throws \Exception If no supported endpoint is found. + * @throws \Exception If no supported endpoint is found and no $default parameter is specified. */ public function getDefaultEndpoint($endpointType, array $bindings = null, $default = self::REQUIRED_OPTION) { @@ -1252,8 +1256,8 @@ public function getDefaultEndpoint($endpointType, array $bindings = null, $defau } if ($default === self::REQUIRED_OPTION) { - $loc = $this->location.'['.var_export($endpointType, true).']:'; - throw new \Exception($loc.'Could not find a supported '.$endpointType.' endpoint.'); + $loc = $this->location . '[' . var_export($endpointType, true) . ']:'; + throw new \Exception($loc . 'Could not find a supported ' . $endpointType . ' endpoint.'); } return $default; @@ -1269,7 +1273,7 @@ public function getDefaultEndpoint($endpointType, array $bindings = null, $defau * @param mixed $default The default value. If no default is given, and the option isn't found, an exception will * be thrown. * - * @return array Associative array with language => string pairs. + * @return mixed Associative array with language => string pairs, or the provided default value. * * @throws \Exception If the translation is not an array or a string, or its index or value are not strings. */ @@ -1283,22 +1287,22 @@ public function getLocalizedString($name, $default = self::REQUIRED_OPTION) return $ret; } - $loc = $this->location.'['.var_export($name, true).']'; + $loc = $this->location . '[' . var_export($name, true) . ']'; if (is_string($ret)) { $ret = ['en' => $ret]; } if (!is_array($ret)) { - throw new \Exception($loc.': Must be an array or a string.'); + throw new \Exception($loc . ': Must be an array or a string.'); } foreach ($ret as $k => $v) { if (!is_string($k)) { - throw new \Exception($loc.': Invalid language code: '.var_export($k, true)); + throw new \Exception($loc . ': Invalid language code: ' . var_export($k, true)); } if (!is_string($v)) { - throw new \Exception($loc.'['.var_export($v, true).']: Must be a string.'); + throw new \Exception($loc . '[' . var_export($v, true) . ']: Must be a string.'); } } @@ -1326,9 +1330,9 @@ public function getPublicKeys($use = null, $required = false, $prefix = '') assert(is_bool($required)); assert(is_string($prefix)); - if ($this->hasValue($prefix.'keys')) { + if ($this->hasValue($prefix . 'keys')) { $ret = []; - foreach ($this->getArray($prefix.'keys') as $key) { + foreach ($this->getArray($prefix . 'keys') as $key) { if ($use !== null && isset($key[$use]) && !$key[$use]) { continue; } @@ -1339,8 +1343,8 @@ public function getPublicKeys($use = null, $required = false, $prefix = '') $ret[] = $key; } return $ret; - } elseif ($this->hasValue($prefix.'certData')) { - $certData = $this->getString($prefix.'certData'); + } elseif ($this->hasValue($prefix . 'certData')) { + $certData = $this->getString($prefix . 'certData'); $certData = preg_replace('/\s+/', '', $certData); return [ [ @@ -1350,20 +1354,22 @@ public function getPublicKeys($use = null, $required = false, $prefix = '') 'X509Certificate' => $certData, ], ]; - } elseif ($this->hasValue($prefix.'certificate')) { - $file = $this->getString($prefix.'certificate'); + } elseif ($this->hasValue($prefix . 'certificate')) { + $file = $this->getString($prefix . 'certificate'); $file = Utils\Config::getCertPath($file); $data = @file_get_contents($file); if ($data === false) { - throw new \Exception($this->location.': Unable to load certificate/public key from file "'.$file.'".'); + throw new \Exception( + $this->location . ': Unable to load certificate/public key from file "' . $file . '".' + ); } // extract certificate data (if this is a certificate) $pattern = '/^-----BEGIN CERTIFICATE-----([^-]*)^-----END CERTIFICATE-----/m'; if (!preg_match($pattern, $data, $matches)) { throw new \SimpleSAML\Error\Exception( - $this->location.': Could not find PEM encoded certificate in "'.$file.'".' + $this->location . ': Could not find PEM encoded certificate in "' . $file . '".' ); } $certData = preg_replace('/\s+/', '', $matches[1]); @@ -1377,7 +1383,7 @@ public function getPublicKeys($use = null, $required = false, $prefix = '') ], ]; } elseif ($required === true) { - throw new \SimpleSAML\Error\Exception($this->location.': Missing certificate in metadata.'); + throw new \SimpleSAML\Error\Exception($this->location . ': Missing certificate in metadata.'); } else { return []; } @@ -1387,6 +1393,8 @@ public function getPublicKeys($use = null, $required = false, $prefix = '') * Clear any configuration information cached. * Allows for configuration files to be changed and reloaded during a given request. Most useful * when running phpunit tests and needing to alter config.php between test cases + * + * @return void */ public static function clearInternalState() { diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Database.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Database.php index 94c9b788f14ec3e53f0162cf8f5c0e210cfb3929..59b108f2e05a4fab75cc43a7e0e6e8c407ccd304 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Database.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Database.php @@ -2,6 +2,9 @@ namespace SimpleSAML; +use PDO; +use PDOException; + /** * This file implements functions to read and write to a group of database servers. * @@ -77,7 +80,7 @@ private function __construct($config) { $driverOptions = $config->getArray('database.driver_options', []); if ($config->getBoolean('database.persistent', true)) { - $driverOptions = [\PDO::ATTR_PERSISTENT => true]; + $driverOptions = [PDO::ATTR_PERSISTENT => true]; } // connect to the master @@ -144,12 +147,12 @@ private static function generateInstanceId($config) private function connect($dsn, $username, $password, $options) { try { - $db = new \PDO($dsn, $username, $password, $options); - $db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); + $db = new PDO($dsn, $username, $password, $options); + $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); return $db; - } catch (\PDOException $e) { - throw new \Exception("Database error: ".$e->getMessage()); + } catch (PDOException $e) { + throw new \Exception("Database error: " . $e->getMessage()); } } @@ -180,7 +183,7 @@ private function getSlave() */ public function applyPrefix($table) { - return $this->tablePrefix.$table; + return $this->tablePrefix . $table; } @@ -192,7 +195,7 @@ public function applyPrefix($table) * @param array $params Parameters * * @throws \Exception If an error happens while trying to execute the query. - * @return bool|\PDOStatement object + * @return \PDOStatement object */ private function query($db, $stmt, $params) { @@ -205,18 +208,18 @@ private function query($db, $stmt, $params) foreach ($params as $param => $value) { if (is_array($value)) { - $query->bindValue(":$param", $value[0], ($value[1]) ? $value[1] : \PDO::PARAM_STR); + $query->bindValue(":$param", $value[0], ($value[1]) ? $value[1] : PDO::PARAM_STR); } else { - $query->bindValue(":$param", $value, \PDO::PARAM_STR); + $query->bindValue(":$param", $value, PDO::PARAM_STR); } } $query->execute(); return $query; - } catch (\PDOException $e) { + } catch (PDOException $e) { $this->lastError = $db->errorInfo(); - throw new \Exception("Database error: ".$e->getMessage()); + throw new \Exception("Database error: " . $e->getMessage()); } } @@ -237,9 +240,9 @@ private function exec($db, $stmt) try { return $db->exec($stmt); - } catch (\PDOException $e) { + } catch (PDOException $e) { $this->lastError = $db->errorInfo(); - throw new \Exception("Database error: ".$e->getMessage()); + throw new \Exception("Database error: " . $e->getMessage()); } } @@ -250,7 +253,7 @@ private function exec($db, $stmt) * @param string $stmt Prepared SQL statement * @param array $params Parameters * - * @return int The number of rows affected by the query. + * @return int|false The number of rows affected by the query or false on error. */ public function write($stmt, $params = []) { @@ -258,7 +261,7 @@ public function write($stmt, $params = []) if (is_array($params)) { $obj = $this->query($db, $stmt, $params); - return $obj->rowCount(); + return ($obj === false) ? $obj : $obj->rowCount(); } else { return $this->exec($db, $stmt); } @@ -271,7 +274,7 @@ public function write($stmt, $params = []) * @param string $stmt Prepared SQL statement * @param array $params Parameters * - * @return \PDOStatement|bool object + * @return \PDOStatement object */ public function read($stmt, $params = []) { diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/Assertion.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/Assertion.php index c16f61164ceb5a1afb84f91bd9a7762b15e6449c..4a26240afa30d47ef0d012893210b3aba2056ee7 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/Assertion.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/Assertion.php @@ -30,7 +30,7 @@ public function __construct($assertion = null) { assert($assertion === null || is_string($assertion)); - $msg = 'Assertion failed: '.var_export($assertion, true); + $msg = 'Assertion failed: ' . var_export($assertion, true); parent::__construct($msg); $this->assertion = $assertion; @@ -53,13 +53,14 @@ public function getAssertion() * * This function will register this assertion handler. If will not enable assertions if they are * disabled. + * @return void */ public static function installHandler() { assert_options(ASSERT_WARNING, 0); assert_options(ASSERT_QUIET_EVAL, 0); - assert_options(ASSERT_CALLBACK, ['\SimpleSAML\Error\Assertion', 'onAssertion']); + assert_options(ASSERT_CALLBACK, [Assertion::class, 'onAssertion']); } @@ -71,6 +72,7 @@ public static function installHandler() * @param string $file The file assert was called from. * @param int $line The line assert was called from. * @param mixed $message The expression which was passed to the assert-function. + * @return void */ public static function onAssertion($file, $line, $message) { diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/AuthSource.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/AuthSource.php index e075aa7bc45a5036300550bdd440de478acaae1a..3f53115eca3b9d7a8f6ce88b9cfecf312d127dcf 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/AuthSource.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/AuthSource.php @@ -12,13 +12,15 @@ class AuthSource extends Error { /** - * Authsource module name. + * Authsource module name + * @var string */ private $authsource; /** * Reason why this request was invalid. + * @var string */ private $reason; @@ -28,6 +30,7 @@ class AuthSource extends Error * * @param string $authsource Authsource module name from where this error was thrown. * @param string $reason Description of the error. + * @param \Exception|null $cause */ public function __construct($authsource, $reason, $cause = null) { diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/BadRequest.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/BadRequest.php index 1deb08c0bf3e9c3d2b9982868454168fc76dc29a..418f184b4ff8b89748cf42efb3202a07c075e778 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/BadRequest.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/BadRequest.php @@ -16,6 +16,7 @@ class BadRequest extends Error { /** * Reason why this request was invalid. + * @var string */ private $reason; diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/ConfigurationError.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/ConfigurationError.php index 128093dad543d0991272cae7d353fc9156bfe442..044771574a2e50502f2c98860ac6d7d1beb08de4 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/ConfigurationError.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/ConfigurationError.php @@ -40,17 +40,17 @@ public function __construct($reason = null, $file = null, array $config = null) $params = ['CONFIG']; if ($file !== null) { $params['%FILE%'] = $file; - $basepath = dirname(dirname(dirname(dirname(__FILE__)))).'/'; - $file_str = '('.str_replace($basepath, '', $file).') '; + $basepath = dirname(dirname(dirname(dirname(__FILE__)))) . '/'; + $file_str = '(' . str_replace($basepath, '', $file) . ') '; } if ($reason !== null) { $params['%REASON%'] = $reason; - $reason_str = ': '.$reason; + $reason_str = ': ' . $reason; } $this->reason = $reason; $this->config_file = $file; parent::__construct($params); - $this->message = 'The configuration '.$file_str.'is invalid'.$reason_str; + $this->message = 'The configuration ' . $file_str . 'is invalid' . $reason_str; } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/CriticalConfigurationError.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/CriticalConfigurationError.php index d41367fbf051cd6800045888928c134a47551798..f078ee69579b3cf2108abc15025c72fcc28bc67b 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/CriticalConfigurationError.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/CriticalConfigurationError.php @@ -2,6 +2,10 @@ namespace SimpleSAML\Error; +use SimpleSAML\Configuration; +use SimpleSAML\Logger; +use SimpleSAML\Utils; + /** * This exception represents a configuration error that we cannot recover from. * @@ -30,7 +34,7 @@ class CriticalConfigurationError extends ConfigurationError */ private static $minimum_config = [ 'logging.handler' => 'errorlog', - 'logging.level' => \SimpleSAML\Logger::DEBUG, + 'logging.level' => Logger::DEBUG, 'errorreporting' => false, 'debug' => true, ]; @@ -47,10 +51,10 @@ public function __construct($reason = null, $file = null, $config = null) { if ($config === null) { $config = self::$minimum_config; - $config['baseurlpath'] = \SimpleSAML\Utils\HTTP::guessBasePath(); + $config['baseurlpath'] = Utils\HTTP::guessBasePath(); } - \SimpleSAML\Configuration::loadFromArray( + Configuration::loadFromArray( $config, '', 'simplesaml' @@ -60,7 +64,7 @@ public function __construct($reason = null, $file = null, $config = null) /** - * @param ConfigurationError $exception + * @param \Exception $exception * * @return CriticalConfigurationError */ diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/Error.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/Error.php index 615da09c01e8b816cfbd7c8a1b5ca4232bdbfa10..1a83f9580657c76b14b3e5a988a526cb8960d42d 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/Error.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/Error.php @@ -2,6 +2,12 @@ namespace SimpleSAML\Error; +use SimpleSAML\Configuration; +use SimpleSAML\Logger; +use SimpleSAML\Session; +use SimpleSAML\Utils; +use SimpleSAML\XHTML\Template; + /** * Class that wraps SimpleSAMLphp errors in exceptions. * @@ -91,15 +97,15 @@ public function __construct($errorCode, \Exception $cause = null, $httpCode = nu $this->dictDescr = ErrorCodes::getErrorCodeDescription($this->errorCode); if (!empty($this->parameters)) { - $msg = $this->errorCode.'('; + $msg = $this->errorCode . '('; foreach ($this->parameters as $k => $v) { if ($k === 0) { continue; } - $msg .= var_export($k, true).' => '.var_export($v, true).', '; + $msg .= var_export($k, true) . ' => ' . var_export($v, true) . ', '; } - $msg = substr($msg, 0, -2).')'; + $msg = substr($msg, 0, -2) . ')'; } else { $msg = $this->errorCode; } @@ -155,6 +161,7 @@ public function getDictDescr() * Set the HTTP return code for this error. * * This should be overridden by subclasses who want a different return code than 500 Internal Server Error. + * @return void */ protected function setHTTPCode() { @@ -174,10 +181,10 @@ protected function saveError() $etrace = implode("\n", $data); $reportId = bin2hex(openssl_random_pseudo_bytes(4)); - \SimpleSAML\Logger::error('Error report with id '.$reportId.' generated.'); + Logger::error('Error report with id ' . $reportId . ' generated.'); - $config = \SimpleSAML\Configuration::getInstance(); - $session = \SimpleSAML\Session::getSessionFromRequest(); + $config = Configuration::getInstance(); + $session = Session::getSessionFromRequest(); if (isset($_SERVER['HTTP_REFERER'])) { $referer = $_SERVER['HTTP_REFERER']; @@ -194,7 +201,7 @@ protected function saveError() 'exceptionTrace' => $etrace, 'reportId' => $reportId, 'trackId' => $session->getTrackID(), - 'url' => \SimpleSAML\Utils\HTTP::getSelfURLNoQuery(), + 'url' => Utils\HTTP::getSelfURLNoQuery(), 'version' => $config->getVersion(), 'referer' => $referer, ]; @@ -208,6 +215,7 @@ protected function saveError() * Display this error. * * This method displays a standard SimpleSAMLphp error page and exits. + * @return void */ public function show() { @@ -217,7 +225,7 @@ public function show() $this->logError(); $errorData = $this->saveError(); - $config = \SimpleSAML\Configuration::getInstance(); + $config = Configuration::getInstance(); $data = []; $data['showerrors'] = $config->getBoolean('showerrors', true); @@ -231,16 +239,17 @@ public function show() $data['clipboard.js'] = true; // check if there is a valid technical contact email address - if ($config->getBoolean('errorreporting', true) && - $config->getString('technicalcontact_email', 'na@example.org') !== 'na@example.org' + if ( + $config->getBoolean('errorreporting', true) + && $config->getString('technicalcontact_email', 'na@example.org') !== 'na@example.org' ) { // enable error reporting - $baseurl = \SimpleSAML\Utils\HTTP::getBaseURL(); - $data['errorReportAddress'] = $baseurl.'errorreport.php'; + $baseurl = Utils\HTTP::getBaseURL(); + $data['errorReportAddress'] = $baseurl . 'errorreport.php'; } $data['email'] = ''; - $session = \SimpleSAML\Session::getSessionFromRequest(); + $session = Session::getSessionFromRequest(); $authorities = $session->getAuthorities(); foreach ($authorities as $authority) { $attributes = $session->getAuthData($authority, 'Attributes'); @@ -256,10 +265,11 @@ public function show() call_user_func($show_function, $config, $data); assert(false); } else { - $t = new \SimpleSAML\XHTML\Template($config, 'error.php', 'errors'); + $t = new Template($config, 'error.php', 'errors'); + $translator = $t->getTranslator(); $t->data = array_merge($t->data, $data); - $t->data['dictTitleTranslated'] = $t->getTranslator()->t($t->data['dictTitle']); - $t->data['dictDescrTranslated'] = $t->getTranslator()->t($t->data['dictDescr'], $t->data['parameters']); + $t->data['dictTitleTranslated'] = $translator->t($t->data['dictTitle']); + $t->data['dictDescrTranslated'] = $translator->t($t->data['dictDescr'], $t->data['parameters']); $t->show(); } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/ErrorCodes.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/ErrorCodes.php index d15f8c46ff268d03933ec39b011f03f3547fac90..75e7f1b8567e211d91fd000d297de7ed50a96b04 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/ErrorCodes.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/ErrorCodes.php @@ -2,6 +2,8 @@ namespace SimpleSAML\Error; +use SimpleSAML\Locale\Translate; + /** * Class that maps SimpleSAMLphp error codes to translateable strings. * @@ -19,39 +21,39 @@ class ErrorCodes final public static function defaultGetAllErrorCodeTitles() { return [ - 'ACSPARAMS' => \SimpleSAML\Locale\Translate::noop('{errors:title_ACSPARAMS}'), - 'ARSPARAMS' => \SimpleSAML\Locale\Translate::noop('{errors:title_ARSPARAMS}'), - 'AUTHSOURCEERROR' => \SimpleSAML\Locale\Translate::noop('{errors:title_AUTHSOURCEERROR}'), - 'BADREQUEST' => \SimpleSAML\Locale\Translate::noop('{errors:title_BADREQUEST}'), - 'CASERROR' => \SimpleSAML\Locale\Translate::noop('{errors:title_CASERROR}'), - 'CONFIG' => \SimpleSAML\Locale\Translate::noop('{errors:title_CONFIG}'), - 'CREATEREQUEST' => \SimpleSAML\Locale\Translate::noop('{errors:title_CREATEREQUEST}'), - 'DISCOPARAMS' => \SimpleSAML\Locale\Translate::noop('{errors:title_DISCOPARAMS}'), - 'GENERATEAUTHNRESPONSE' => \SimpleSAML\Locale\Translate::noop('{errors:title_GENERATEAUTHNRESPONSE}'), - 'INVALIDCERT' => \SimpleSAML\Locale\Translate::noop('{errors:title_INVALIDCERT}'), - 'LDAPERROR' => \SimpleSAML\Locale\Translate::noop('{errors:title_LDAPERROR}'), - 'LOGOUTINFOLOST' => \SimpleSAML\Locale\Translate::noop('{errors:title_LOGOUTINFOLOST}'), - 'LOGOUTREQUEST' => \SimpleSAML\Locale\Translate::noop('{errors:title_LOGOUTREQUEST}'), - 'MEMCACHEDOWN' => \SimpleSAML\Locale\Translate::noop('{errors:title_MEMCACHEDOWN}'), - 'METADATA' => \SimpleSAML\Locale\Translate::noop('{errors:title_METADATA}'), - 'METADATANOTFOUND' => \SimpleSAML\Locale\Translate::noop('{errors:title_METADATANOTFOUND}'), - 'NOACCESS' => \SimpleSAML\Locale\Translate::noop('{errors:title_NOACCESS}'), - 'NOCERT' => \SimpleSAML\Locale\Translate::noop('{errors:title_NOCERT}'), - 'NORELAYSTATE' => \SimpleSAML\Locale\Translate::noop('{errors:title_NORELAYSTATE}'), - 'NOSTATE' => \SimpleSAML\Locale\Translate::noop('{errors:title_NOSTATE}'), - 'NOTFOUND' => \SimpleSAML\Locale\Translate::noop('{errors:title_NOTFOUND}'), - 'NOTFOUNDREASON' => \SimpleSAML\Locale\Translate::noop('{errors:title_NOTFOUNDREASON}'), - 'NOTSET' => \SimpleSAML\Locale\Translate::noop('{errors:title_NOTSET}'), - 'NOTVALIDCERT' => \SimpleSAML\Locale\Translate::noop('{errors:title_NOTVALIDCERT}'), - 'PROCESSASSERTION' => \SimpleSAML\Locale\Translate::noop('{errors:title_PROCESSASSERTION}'), - 'PROCESSAUTHNREQUEST' => \SimpleSAML\Locale\Translate::noop('{errors:title_PROCESSAUTHNREQUEST}'), - 'RESPONSESTATUSNOSUCCESS' => \SimpleSAML\Locale\Translate::noop('{errors:title_RESPONSESTATUSNOSUCCESS}'), - 'SLOSERVICEPARAMS' => \SimpleSAML\Locale\Translate::noop('{errors:title_SLOSERVICEPARAMS}'), - 'SSOPARAMS' => \SimpleSAML\Locale\Translate::noop('{errors:title_SSOPARAMS}'), - 'UNHANDLEDEXCEPTION' => \SimpleSAML\Locale\Translate::noop('{errors:title_UNHANDLEDEXCEPTION}'), - 'UNKNOWNCERT' => \SimpleSAML\Locale\Translate::noop('{errors:title_UNKNOWNCERT}'), - 'USERABORTED' => \SimpleSAML\Locale\Translate::noop('{errors:title_USERABORTED}'), - 'WRONGUSERPASS' => \SimpleSAML\Locale\Translate::noop('{errors:title_WRONGUSERPASS}'), + 'ACSPARAMS' => Translate::noop('{errors:title_ACSPARAMS}'), + 'ARSPARAMS' => Translate::noop('{errors:title_ARSPARAMS}'), + 'AUTHSOURCEERROR' => Translate::noop('{errors:title_AUTHSOURCEERROR}'), + 'BADREQUEST' => Translate::noop('{errors:title_BADREQUEST}'), + 'CASERROR' => Translate::noop('{errors:title_CASERROR}'), + 'CONFIG' => Translate::noop('{errors:title_CONFIG}'), + 'CREATEREQUEST' => Translate::noop('{errors:title_CREATEREQUEST}'), + 'DISCOPARAMS' => Translate::noop('{errors:title_DISCOPARAMS}'), + 'GENERATEAUTHNRESPONSE' => Translate::noop('{errors:title_GENERATEAUTHNRESPONSE}'), + 'INVALIDCERT' => Translate::noop('{errors:title_INVALIDCERT}'), + 'LDAPERROR' => Translate::noop('{errors:title_LDAPERROR}'), + 'LOGOUTINFOLOST' => Translate::noop('{errors:title_LOGOUTINFOLOST}'), + 'LOGOUTREQUEST' => Translate::noop('{errors:title_LOGOUTREQUEST}'), + 'MEMCACHEDOWN' => Translate::noop('{errors:title_MEMCACHEDOWN}'), + 'METADATA' => Translate::noop('{errors:title_METADATA}'), + 'METADATANOTFOUND' => Translate::noop('{errors:title_METADATANOTFOUND}'), + 'NOACCESS' => Translate::noop('{errors:title_NOACCESS}'), + 'NOCERT' => Translate::noop('{errors:title_NOCERT}'), + 'NORELAYSTATE' => Translate::noop('{errors:title_NORELAYSTATE}'), + 'NOSTATE' => Translate::noop('{errors:title_NOSTATE}'), + 'NOTFOUND' => Translate::noop('{errors:title_NOTFOUND}'), + 'NOTFOUNDREASON' => Translate::noop('{errors:title_NOTFOUNDREASON}'), + 'NOTSET' => Translate::noop('{errors:title_NOTSET}'), + 'NOTVALIDCERT' => Translate::noop('{errors:title_NOTVALIDCERT}'), + 'PROCESSASSERTION' => Translate::noop('{errors:title_PROCESSASSERTION}'), + 'PROCESSAUTHNREQUEST' => Translate::noop('{errors:title_PROCESSAUTHNREQUEST}'), + 'RESPONSESTATUSNOSUCCESS' => Translate::noop('{errors:title_RESPONSESTATUSNOSUCCESS}'), + 'SLOSERVICEPARAMS' => Translate::noop('{errors:title_SLOSERVICEPARAMS}'), + 'SSOPARAMS' => Translate::noop('{errors:title_SSOPARAMS}'), + 'UNHANDLEDEXCEPTION' => Translate::noop('{errors:title_UNHANDLEDEXCEPTION}'), + 'UNKNOWNCERT' => Translate::noop('{errors:title_UNKNOWNCERT}'), + 'USERABORTED' => Translate::noop('{errors:title_USERABORTED}'), + 'WRONGUSERPASS' => Translate::noop('{errors:title_WRONGUSERPASS}'), ]; } @@ -77,39 +79,39 @@ public static function getAllErrorCodeTitles() final public static function defaultGetAllErrorCodeDescriptions() { return [ - 'ACSPARAMS' => \SimpleSAML\Locale\Translate::noop('{errors:descr_ACSPARAMS}'), - 'ARSPARAMS' => \SimpleSAML\Locale\Translate::noop('{errors:descr_ARSPARAMS}'), - 'AUTHSOURCEERROR' => \SimpleSAML\Locale\Translate::noop('{errors:descr_AUTHSOURCEERROR}'), - 'BADREQUEST' => \SimpleSAML\Locale\Translate::noop('{errors:descr_BADREQUEST}'), - 'CASERROR' => \SimpleSAML\Locale\Translate::noop('{errors:descr_CASERROR}'), - 'CONFIG' => \SimpleSAML\Locale\Translate::noop('{errors:descr_CONFIG}'), - 'CREATEREQUEST' => \SimpleSAML\Locale\Translate::noop('{errors:descr_CREATEREQUEST}'), - 'DISCOPARAMS' => \SimpleSAML\Locale\Translate::noop('{errors:descr_DISCOPARAMS}'), - 'GENERATEAUTHNRESPONSE' => \SimpleSAML\Locale\Translate::noop('{errors:descr_GENERATEAUTHNRESPONSE}'), - 'INVALIDCERT' => \SimpleSAML\Locale\Translate::noop('{errors:descr_INVALIDCERT}'), - 'LDAPERROR' => \SimpleSAML\Locale\Translate::noop('{errors:descr_LDAPERROR}'), - 'LOGOUTINFOLOST' => \SimpleSAML\Locale\Translate::noop('{errors:descr_LOGOUTINFOLOST}'), - 'LOGOUTREQUEST' => \SimpleSAML\Locale\Translate::noop('{errors:descr_LOGOUTREQUEST}'), - 'MEMCACHEDOWN' => \SimpleSAML\Locale\Translate::noop('{errors:descr_MEMCACHEDOWN}'), - 'METADATA' => \SimpleSAML\Locale\Translate::noop('{errors:descr_METADATA}'), - 'METADATANOTFOUND' => \SimpleSAML\Locale\Translate::noop('{errors:descr_METADATANOTFOUND}'), - 'NOACCESS' => \SimpleSAML\Locale\Translate::noop('{errors:descr_NOACCESS}'), - 'NOCERT' => \SimpleSAML\Locale\Translate::noop('{errors:descr_NOCERT}'), - 'NORELAYSTATE' => \SimpleSAML\Locale\Translate::noop('{errors:descr_NORELAYSTATE}'), - 'NOSTATE' => \SimpleSAML\Locale\Translate::noop('{errors:descr_NOSTATE}'), - 'NOTFOUND' => \SimpleSAML\Locale\Translate::noop('{errors:descr_NOTFOUND}'), - 'NOTFOUNDREASON' => \SimpleSAML\Locale\Translate::noop('{errors:descr_NOTFOUNDREASON}'), - 'NOTSET' => \SimpleSAML\Locale\Translate::noop('{errors:descr_NOTSET}'), - 'NOTVALIDCERT' => \SimpleSAML\Locale\Translate::noop('{errors:descr_NOTVALIDCERT}'), - 'PROCESSASSERTION' => \SimpleSAML\Locale\Translate::noop('{errors:descr_PROCESSASSERTION}'), - 'PROCESSAUTHNREQUEST' => \SimpleSAML\Locale\Translate::noop('{errors:descr_PROCESSAUTHNREQUEST}'), - 'RESPONSESTATUSNOSUCCESS' => \SimpleSAML\Locale\Translate::noop('{errors:descr_RESPONSESTATUSNOSUCCESS}'), - 'SLOSERVICEPARAMS' => \SimpleSAML\Locale\Translate::noop('{errors:descr_SLOSERVICEPARAMS}'), - 'SSOPARAMS' => \SimpleSAML\Locale\Translate::noop('{errors:descr_SSOPARAMS}'), - 'UNHANDLEDEXCEPTION' => \SimpleSAML\Locale\Translate::noop('{errors:descr_UNHANDLEDEXCEPTION}'), - 'UNKNOWNCERT' => \SimpleSAML\Locale\Translate::noop('{errors:descr_UNKNOWNCERT}'), - 'USERABORTED' => \SimpleSAML\Locale\Translate::noop('{errors:descr_USERABORTED}'), - 'WRONGUSERPASS' => \SimpleSAML\Locale\Translate::noop('{errors:descr_WRONGUSERPASS}'), + 'ACSPARAMS' => Translate::noop('{errors:descr_ACSPARAMS}'), + 'ARSPARAMS' => Translate::noop('{errors:descr_ARSPARAMS}'), + 'AUTHSOURCEERROR' => Translate::noop('{errors:descr_AUTHSOURCEERROR}'), + 'BADREQUEST' => Translate::noop('{errors:descr_BADREQUEST}'), + 'CASERROR' => Translate::noop('{errors:descr_CASERROR}'), + 'CONFIG' => Translate::noop('{errors:descr_CONFIG}'), + 'CREATEREQUEST' => Translate::noop('{errors:descr_CREATEREQUEST}'), + 'DISCOPARAMS' => Translate::noop('{errors:descr_DISCOPARAMS}'), + 'GENERATEAUTHNRESPONSE' => Translate::noop('{errors:descr_GENERATEAUTHNRESPONSE}'), + 'INVALIDCERT' => Translate::noop('{errors:descr_INVALIDCERT}'), + 'LDAPERROR' => Translate::noop('{errors:descr_LDAPERROR}'), + 'LOGOUTINFOLOST' => Translate::noop('{errors:descr_LOGOUTINFOLOST}'), + 'LOGOUTREQUEST' => Translate::noop('{errors:descr_LOGOUTREQUEST}'), + 'MEMCACHEDOWN' => Translate::noop('{errors:descr_MEMCACHEDOWN}'), + 'METADATA' => Translate::noop('{errors:descr_METADATA}'), + 'METADATANOTFOUND' => Translate::noop('{errors:descr_METADATANOTFOUND}'), + 'NOACCESS' => Translate::noop('{errors:descr_NOACCESS}'), + 'NOCERT' => Translate::noop('{errors:descr_NOCERT}'), + 'NORELAYSTATE' => Translate::noop('{errors:descr_NORELAYSTATE}'), + 'NOSTATE' => Translate::noop('{errors:descr_NOSTATE}'), + 'NOTFOUND' => Translate::noop('{errors:descr_NOTFOUND}'), + 'NOTFOUNDREASON' => Translate::noop('{errors:descr_NOTFOUNDREASON}'), + 'NOTSET' => Translate::noop('{errors:descr_NOTSET}'), + 'NOTVALIDCERT' => Translate::noop('{errors:descr_NOTVALIDCERT}'), + 'PROCESSASSERTION' => Translate::noop('{errors:descr_PROCESSASSERTION}'), + 'PROCESSAUTHNREQUEST' => Translate::noop('{errors:descr_PROCESSAUTHNREQUEST}'), + 'RESPONSESTATUSNOSUCCESS' => Translate::noop('{errors:descr_RESPONSESTATUSNOSUCCESS}'), + 'SLOSERVICEPARAMS' => Translate::noop('{errors:descr_SLOSERVICEPARAMS}'), + 'SSOPARAMS' => Translate::noop('{errors:descr_SSOPARAMS}'), + 'UNHANDLEDEXCEPTION' => Translate::noop('{errors:descr_UNHANDLEDEXCEPTION}'), + 'UNKNOWNCERT' => Translate::noop('{errors:descr_UNKNOWNCERT}'), + 'USERABORTED' => Translate::noop('{errors:descr_USERABORTED}'), + 'WRONGUSERPASS' => Translate::noop('{errors:descr_WRONGUSERPASS}'), ]; } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/Exception.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/Exception.php index 5ab59f4821213500199c53e50b15968bc3e58124..abfc6633ba8d33c37daff814ec6bd0acd15d1af7 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/Exception.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/Exception.php @@ -2,6 +2,9 @@ namespace SimpleSAML\Error; +use SimpleSAML\Configuration; +use SimpleSAML\Logger; + /** * Base class for SimpleSAMLphp Exceptions * @@ -21,15 +24,15 @@ class Exception extends \Exception * * @var array */ - private $backtrace; + private $backtrace = []; /** * The cause of this exception. * - * @var Exception + * @var Exception|null */ - private $cause; + private $cause = null; /** @@ -77,30 +80,31 @@ public static function fromException(\Exception $e) * Load the backtrace from the given exception. * * @param \Exception $exception The exception we should fetch the backtrace from. + * @return void */ protected function initBacktrace(\Exception $exception) { $this->backtrace = []; // position in the top function on the stack - $pos = $exception->getFile().':'.$exception->getLine(); + $pos = $exception->getFile() . ':' . $exception->getLine(); foreach ($exception->getTrace() as $t) { $function = $t['function']; if (array_key_exists('class', $t)) { - $function = $t['class'].'::'.$function; + $function = $t['class'] . '::' . $function; } - $this->backtrace[] = $pos.' ('.$function.')'; + $this->backtrace[] = $pos . ' (' . $function . ')'; if (array_key_exists('file', $t)) { - $pos = $t['file'].':'.$t['line']; + $pos = $t['file'] . ':' . $t['line']; } else { $pos = '[builtin]'; } } - $this->backtrace[] = $pos.' (N/A)'; + $this->backtrace[] = $pos . ' (N/A)'; } @@ -149,7 +153,7 @@ public function getClass() public function format($anonymize = false) { $ret = [ - $this->getClass().': '.$this->getMessage(), + $this->getClass() . ': ' . $this->getMessage(), ]; return array_merge($ret, $this->formatBacktrace($anonymize)); } @@ -167,12 +171,12 @@ public function format($anonymize = false) public function formatBacktrace($anonymize = false) { $ret = []; - $basedir = \SimpleSAML\Configuration::getInstance()->getBaseDir(); + $basedir = Configuration::getInstance()->getBaseDir(); $e = $this; do { if ($e !== $this) { - $ret[] = 'Caused by: '.$e->getClass().': '.$e->getMessage(); + $ret[] = 'Caused by: ' . $e->getClass() . ': ' . $e->getMessage(); } $ret[] = 'Backtrace:'; @@ -182,7 +186,7 @@ public function formatBacktrace($anonymize = false) $trace = str_replace($basedir, '', $trace); } - $ret[] = ($depth - $i - 1).' '.$trace; + $ret[] = ($depth - $i - 1) . ' ' . $trace; } $e = $e->cause; } while ($e !== null); @@ -193,29 +197,34 @@ public function formatBacktrace($anonymize = false) /** * Print the backtrace to the log if the 'debug' option is enabled in the configuration. + * @param int $level + * @return void */ - protected function logBacktrace($level = \SimpleSAML\Logger::DEBUG) + protected function logBacktrace($level = Logger::DEBUG) { // see if debugging is enabled for backtraces - $debug = \SimpleSAML\Configuration::getInstance()->getArrayize('debug', ['backtraces' => false]); + $debug = Configuration::getInstance()->getArrayize('debug', ['backtraces' => false]); - if (!(in_array('backtraces', $debug, true) // implicitly enabled - || (array_key_exists('backtraces', $debug) && $debug['backtraces'] === true) + if ( + !(in_array('backtraces', $debug, true) // implicitly enabled + || (array_key_exists('backtraces', $debug) + && $debug['backtraces'] === true) // explicitly set // TODO: deprecate the old style and remove it in 2.0 - || (array_key_exists(0, $debug) && $debug[0] === true) // old style 'debug' configuration option - )) { + || (array_key_exists(0, $debug) + && $debug[0] === true)) // old style 'debug' configuration option + ) { return; } $backtrace = $this->formatBacktrace(); - $callback = ['\SimpleSAML\Logger']; + $callback = [Logger::class]; $functions = [ - \SimpleSAML\Logger::ERR => 'error', - \SimpleSAML\Logger::WARNING => 'warning', - \SimpleSAML\Logger::INFO => 'info', - \SimpleSAML\Logger::DEBUG => 'debug', + Logger::ERR => 'error', + Logger::WARNING => 'warning', + Logger::INFO => 'info', + Logger::DEBUG => 'debug', ]; $callback[] = $functions[$level]; @@ -231,14 +240,15 @@ protected function logBacktrace($level = \SimpleSAML\Logger::DEBUG) * Override to allow errors extending this class to specify the log level themselves. * * @param int $default_level The log level to use if this method was not overridden. + * @return void */ public function log($default_level) { $fn = [ - \SimpleSAML\Logger::ERR => 'logError', - \SimpleSAML\Logger::WARNING => 'logWarning', - \SimpleSAML\Logger::INFO => 'logInfo', - \SimpleSAML\Logger::DEBUG => 'logDebug', + Logger::ERR => 'logError', + Logger::WARNING => 'logWarning', + Logger::INFO => 'logInfo', + Logger::DEBUG => 'logDebug', ]; call_user_func([$this, $fn[$default_level]], $default_level); } @@ -248,11 +258,12 @@ public function log($default_level) * Print the exception to the log with log level error. * * This function will write this exception to the log, including a full backtrace. + * @return void */ public function logError() { - \SimpleSAML\Logger::error($this->getClass().': '.$this->getMessage()); - $this->logBacktrace(\SimpleSAML\Logger::ERR); + Logger::error($this->getClass() . ': ' . $this->getMessage()); + $this->logBacktrace(Logger::ERR); } @@ -260,11 +271,12 @@ public function logError() * Print the exception to the log with log level warning. * * This function will write this exception to the log, including a full backtrace. + * @return void */ public function logWarning() { - \SimpleSAML\Logger::warning($this->getClass().': '.$this->getMessage()); - $this->logBacktrace(\SimpleSAML\Logger::WARNING); + Logger::warning($this->getClass() . ': ' . $this->getMessage()); + $this->logBacktrace(Logger::WARNING); } @@ -272,11 +284,12 @@ public function logWarning() * Print the exception to the log with log level info. * * This function will write this exception to the log, including a full backtrace. + * @return void */ public function logInfo() { - \SimpleSAML\Logger::info($this->getClass().': '.$this->getMessage()); - $this->logBacktrace(\SimpleSAML\Logger::INFO); + Logger::info($this->getClass() . ': ' . $this->getMessage()); + $this->logBacktrace(Logger::INFO); } @@ -284,11 +297,12 @@ public function logInfo() * Print the exception to the log with log level debug. * * This function will write this exception to the log, including a full backtrace. + * @return void */ public function logDebug() { - \SimpleSAML\Logger::debug($this->getClass().': '.$this->getMessage()); - $this->logBacktrace(\SimpleSAML\Logger::DEBUG); + Logger::debug($this->getClass() . ': ' . $this->getMessage()); + $this->logBacktrace(Logger::DEBUG); } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/NotFound.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/NotFound.php index 0e618526962b0a596948e394b1f04abf046c1298..ed556a38cf985333612a614384c72d70cc961554 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/NotFound.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/NotFound.php @@ -2,6 +2,8 @@ namespace SimpleSAML\Error; +use SimpleSAML\Utils; + /** * Exception which will show a 404 Not Found error page. * @@ -29,14 +31,14 @@ public function __construct($reason = null) { assert($reason === null || is_string($reason)); - $url = \SimpleSAML\Utils\HTTP::getSelfURL(); + $url = Utils\HTTP::getSelfURL(); if ($reason === null) { parent::__construct(['NOTFOUND', '%URL%' => $url]); $this->message = "The requested page '$url' could not be found."; } else { parent::__construct(['NOTFOUNDREASON', '%URL%' => $url, '%REASON%' => $reason]); - $this->message = "The requested page '$url' could not be found. ".$reason; + $this->message = "The requested page '$url' could not be found. " . $reason; } $this->reason = $reason; @@ -66,7 +68,7 @@ public function getReason() public function format($anonymize = false) { return [ - $this->getClass().': '.$this->getMessage(), + $this->getClass() . ': ' . $this->getMessage(), ]; } } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/UnserializableException.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/UnserializableException.php index 54f4eb34feb9a98d40aabc48e985e7687be37b94..6ac5b39fff3fd5ab76cfe2babe80c25bd81a158e 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/UnserializableException.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Error/UnserializableException.php @@ -37,7 +37,7 @@ public function __construct(\Exception $original) $msg = $original->getMessage(); $code = $original->getCode(); - if (!is_int($code)) { + if ($original instanceof \PDOException) { // PDOException uses a string as the code. Filter it out here. $code = -1; } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/HTTP/Router.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/HTTP/Router.php index e537092a9e62352497e49233f610a9e4a3a93a13..48d0155e0d485510550361e3f10da8696d37e341 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/HTTP/Router.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/HTTP/Router.php @@ -3,8 +3,8 @@ namespace SimpleSAML\HTTP; use SimpleSAML\Configuration; +use SimpleSAML\Module\ControllerResolver; use SimpleSAML\Session; - use Symfony\Component\EventDispatcher\EventDispatcher; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\RequestStack; @@ -20,29 +20,29 @@ */ class Router { - + /** @var \Symfony\Component\HttpKernel\Controller\ArgumentResolver */ protected $arguments; - /** @var \SimpleSAML\Configuration */ - protected $config; + /** @var \SimpleSAML\Configuration|null */ + protected $config = null; - /** @var RequestContext */ + /** @var \Symfony\Component\Routing\RequestContext */ protected $context; - /** @var EventDispatcher */ + /** @var \Symfony\Component\EventDispatcher\EventDispatcher */ protected $dispatcher; - /** @var Request */ - protected $request; + /** @var \Symfony\Component\HttpFoundation\Request|null */ + protected $request = null; /** @var \SimpleSAML\Module\ControllerResolver */ protected $resolver; - /** @var \SimpleSAML\Session */ - protected $session; + /** @var \SimpleSAML\Session|null */ + protected $session = null; - /** @var RequestStack */ - protected $stack; + /** @var \Symfony\Component\HttpFoundation\RequestStack|null */ + protected $stack = null; /** @@ -54,7 +54,7 @@ public function __construct($module) { $this->arguments = new ArgumentResolver(); $this->context = new RequestContext(); - $this->resolver = new \SimpleSAML\Module\ControllerResolver($module); + $this->resolver = new ControllerResolver($module); $this->dispatcher = new EventDispatcher(); } @@ -64,9 +64,10 @@ public function __construct($module) * * If no specific arguments are given, the default instances will be used (configuration, session, etc). * - * @param Request|null $request The request to process. Defaults to the current one. + * @param \Symfony\Component\HttpFoundation\Request|null $request + * The request to process. Defaults to the current one. * - * @return Response A response suitable for the given request. + * @return \Symfony\Component\HttpFoundation\Response A response suitable for the given request. * * @throws \Exception If an error occurs. */ @@ -78,10 +79,13 @@ public function process(Request $request = null) if ($this->session === null) { $this->setSession(Session::getSessionFromRequest()); } - $this->request = $request; + if ($request === null) { $this->request = Request::createFromGlobals(); + } else { + $this->request = $request; } + $stack = new RequestStack(); $stack->push($this->request); $this->context->fromRequest($this->request); @@ -93,10 +97,14 @@ public function process(Request $request = null) /** * Send a given response to the browser. * - * @param Response $response The response to send. + * @param \Symfony\Component\HttpFoundation\Response $response The response to send. + * @return void */ public function send(Response $response) { + if ($this->request === null) { + throw new \Exception("No request found to respond to"); + } $response->prepare($this->request); $response->send(); } @@ -106,6 +114,7 @@ public function send(Response $response) * Set the configuration to use by the controller. * * @param \SimpleSAML\Configuration $config + * @return void */ public function setConfiguration(Configuration $config) { @@ -118,6 +127,7 @@ public function setConfiguration(Configuration $config) * Set the session to use by the controller. * * @param \SimpleSAML\Session $session + * @return void */ public function setSession(Session $session) { diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/HTTP/RunnableResponse.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/HTTP/RunnableResponse.php index ab9fc6c5f14ed6b31a7c16522de1b5e1033bd227..e019bd15d577e9e32b3169915c4e24a3141e761c 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/HTTP/RunnableResponse.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/HTTP/RunnableResponse.php @@ -31,6 +31,7 @@ public function __construct(callable $callable, $args = []) { $this->arguments = $args; $this->callable = $callable; + $this->charset = 'UTF-8'; parent::__construct(); } @@ -60,9 +61,9 @@ public function getArguments() /** * "Send" this response by actually running the callable. * - * @return mixed + * @return self */ - public function send() + public function sendContent() { return call_user_func_array($this->callable, $this->arguments); } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/IdP.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/IdP.php index 8c7f2199265c57c192a1e29b089143d1419bea42..e11926a78f02a77f1991617f55ba781eb27e2c0e 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/IdP.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/IdP.php @@ -3,8 +3,11 @@ namespace SimpleSAML; use SAML2\Constants as SAML2; - -use SimpleSAML\Error\Exception; +use SimpleSAML\Auth; +use SimpleSAML\Error; +use SimpleSAML\Metadata\MetaDataStorageHandler; +use SimpleSAML\Module\saml\Error\NoPassive; +use SimpleSAML\Utils; /** * IdP class. @@ -59,53 +62,50 @@ class IdP * * @param string $id The identifier of this IdP. * - * @throws Exception If the IdP is disabled or no such auth source was found. + * @throws \SimpleSAML\Error\Exception If the IdP is disabled or no such auth source was found. */ private function __construct($id) { assert(is_string($id)); $this->id = $id; + $this->associationGroup = $id; - $metadata = Metadata\MetaDataStorageHandler::getMetadataHandler(); + $metadata = MetaDataStorageHandler::getMetadataHandler(); $globalConfig = Configuration::getInstance(); if (substr($id, 0, 6) === 'saml2:') { if (!$globalConfig->getBoolean('enable.saml20-idp', false)) { - throw new Exception('enable.saml20-idp disabled in config.php.'); + throw new Error\Exception('enable.saml20-idp disabled in config.php.'); } $this->config = $metadata->getMetaDataConfig(substr($id, 6), 'saml20-idp-hosted'); } elseif (substr($id, 0, 6) === 'saml1:') { if (!$globalConfig->getBoolean('enable.shib13-idp', false)) { - throw new Exception('enable.shib13-idp disabled in config.php.'); + throw new Error\Exception('enable.shib13-idp disabled in config.php.'); } $this->config = $metadata->getMetaDataConfig(substr($id, 6), 'shib13-idp-hosted'); } elseif (substr($id, 0, 5) === 'adfs:') { if (!$globalConfig->getBoolean('enable.adfs-idp', false)) { - throw new Exception('enable.adfs-idp disabled in config.php.'); + throw new Error\Exception('enable.adfs-idp disabled in config.php.'); } $this->config = $metadata->getMetaDataConfig(substr($id, 5), 'adfs-idp-hosted'); try { // this makes the ADFS IdP use the same SP associations as the SAML 2.0 IdP $saml2EntityId = $metadata->getMetaDataCurrentEntityID('saml20-idp-hosted'); - $this->associationGroup = 'saml2:'.$saml2EntityId; + $this->associationGroup = 'saml2:' . $saml2EntityId; } catch (\Exception $e) { // probably no SAML 2 IdP configured for this host. Ignore the error } } else { - assert(false); - } - - if ($this->associationGroup === null) { - $this->associationGroup = $this->id; + throw new \Exception("Protocol not implemented."); } $auth = $this->config->getString('auth'); if (Auth\Source::getById($auth) !== null) { $this->authSource = new Auth\Simple($auth); } else { - throw new Exception('No such "'.$auth.'" auth source found.'); + throw new Error\Exception('No such "' . $auth . '" auth source found.'); } } @@ -181,7 +181,7 @@ public function getSPName($assocId) $prefix = substr($assocId, 0, 4); $spEntityId = substr($assocId, strlen($prefix) + 1); - $metadata = Metadata\MetaDataStorageHandler::getMetadataHandler(); + $metadata = MetaDataStorageHandler::getMetadataHandler(); if ($prefix === 'saml') { try { @@ -215,6 +215,7 @@ public function getSPName($assocId) * Add an SP association. * * @param array $association The SP association. + * @return void */ public function addAssociation(array $association) { @@ -244,6 +245,7 @@ public function getAssociations() * Remove an SP association. * * @param string $assocId The association id. + * @return void */ public function terminateAssociation($assocId) { @@ -269,16 +271,17 @@ public function isAuthenticated() * Called after authproc has run. * * @param array $state The authentication request state array. + * @return void */ public static function postAuthProc(array $state) { assert(is_callable($state['Responder'])); if (isset($state['core:SP'])) { - $session = \SimpleSAML\Session::getSessionFromRequest(); + $session = Session::getSessionFromRequest(); $session->setData( 'core:idp-ssotime', - $state['core:IdP'].';'.$state['core:SP'], + $state['core:IdP'] . ';' . $state['core:SP'], time(), Session::DATA_TIMEOUT_SESSION_END ); @@ -294,14 +297,15 @@ public static function postAuthProc(array $state) * * @param array $state The authentication request state array. * - * @throws Exception If we are not authenticated. + * @throws \SimpleSAML\Error\Exception If we are not authenticated. + * @return void */ public static function postAuth(array $state) { $idp = IdP::getByState($state); if (!$idp->isAuthenticated()) { - throw new Exception('Not authenticated.'); + throw new Error\Exception('Not authenticated.'); } $state['Attributes'] = $idp->authSource->getAttributes(); @@ -314,7 +318,7 @@ public static function postAuth(array $state) if (isset($state['core:SP'])) { $session = Session::getSessionFromRequest(); - $previousSSOTime = $session->getData('core:idp-ssotime', $state['core:IdP'].';'.$state['core:SP']); + $previousSSOTime = $session->getData('core:idp-ssotime', $state['core:IdP'] . ';' . $state['core:SP']); if ($previousSSOTime !== null) { $state['PreviousSSOTimestamp'] = $previousSSOTime; } @@ -341,12 +345,13 @@ public static function postAuth(array $state) * * @param array &$state The authentication request state. * - * @throws Module\saml\Error\NoPassive If we were asked to do passive authentication. + * @throws \SimpleSAML\Module\saml\Error\NoPassive If we were asked to do passive authentication. + * @return void */ private function authenticate(array &$state) { if (isset($state['isPassive']) && (bool) $state['isPassive']) { - throw new Module\saml\Error\NoPassive(SAML2::STATUS_RESPONDER, 'Passive authentication not supported.'); + throw new NoPassive(SAML2::STATUS_RESPONDER, 'Passive authentication not supported.'); } $this->authSource->login($state); @@ -363,15 +368,12 @@ private function authenticate(array &$state) * * @param array &$state The authentication request state. * - * @throws Exception If there is no auth source defined for this IdP. + * @throws \Exception If there is no auth source defined for this IdP. + * @return void */ private function reauthenticate(array &$state) { $sourceImpl = $this->authSource->getAuthSource(); - if ($sourceImpl === null) { - throw new Exception('No such auth source defined.'); - } - $sourceImpl->reauthenticate($state); } @@ -380,6 +382,7 @@ private function reauthenticate(array &$state) * Process authentication requests. * * @param array &$state The authentication request state. + * @return void */ public function handleAuthenticationRequest(array &$state) { @@ -415,8 +418,8 @@ public function handleAuthenticationRequest(array &$state) $this->reauthenticate($state); } $this->postAuth($state); - } catch (Exception $e) { - \SimpleSAML\Auth\State::throwException($state, $e); + } catch (Error\Exception $e) { + Auth\State::throwException($state, $e); } catch (\Exception $e) { $e = new Error\UnserializableException($e); Auth\State::throwException($state, $e); @@ -428,8 +431,7 @@ public function handleAuthenticationRequest(array &$state) * Find the logout handler of this IdP. * * @return IdP\LogoutHandlerInterface The logout handler class. - * - * @throws Exception If we cannot find a logout handler. + * @throws \Exception If we cannot find a logout handler. */ public function getLogoutHandler() { @@ -443,9 +445,10 @@ public function getLogoutHandler() $handler = '\SimpleSAML\IdP\IFrameLogoutHandler'; break; default: - throw new Exception('Unknown logout handler: '.var_export($logouttype, true)); + throw new Error\Exception('Unknown logout handler: ' . var_export($logouttype, true)); } + /** @var IdP\LogoutHandlerInterface */ return new $handler($this); } @@ -456,6 +459,7 @@ public function getLogoutHandler() * This function will never return. * * @param array &$state The logout request state. + * @return void */ public function finishLogout(array &$state) { @@ -475,6 +479,7 @@ public function finishLogout(array &$state) * @param array &$state The logout request state. * @param string|null $assocId The association we received the logout request from, or null if there was no * association. + * @return void */ public function handleLogoutRequest(array &$state, $assocId) { @@ -487,7 +492,7 @@ public function handleLogoutRequest(array &$state, $assocId) if ($assocId !== null) { $this->terminateAssociation($assocId); $session = Session::getSessionFromRequest(); - $session->deleteData('core:idp-ssotime', $this->id.';'.$state['saml:SPEntityId']); + $session->deleteData('core:idp-ssotime', $this->id . ';' . $state['saml:SPEntityId']); } // terminate the local session @@ -496,8 +501,10 @@ public function handleLogoutRequest(array &$state, $assocId) $this->authSource->logout($returnTo); - $handler = $this->getLogoutHandler(); - $handler->startLogout($state, $assocId); + if ($assocId !== null) { + $handler = $this->getLogoutHandler(); + $handler->startLogout($state, $assocId); + } assert(false); } @@ -509,15 +516,19 @@ public function handleLogoutRequest(array &$state, $assocId) * * @param string $assocId The association that is terminated. * @param string|null $relayState The RelayState from the start of the logout. - * @param Exception|null $error The error that occurred during session termination (if any). + * @param \SimpleSAML\Error\Exception|null $error The error that occurred during session termination (if any). + * @return void */ - public function handleLogoutResponse($assocId, $relayState, Exception $error = null) + public function handleLogoutResponse($assocId, $relayState, Error\Exception $error = null) { assert(is_string($assocId)); assert(is_string($relayState) || $relayState === null); + $index = strpos($assocId, ':'); + assert(is_int($index)); + $session = Session::getSessionFromRequest(); - $session->deleteData('core:idp-ssotime', $this->id.';'.substr($assocId, strpos($assocId, ':') + 1)); + $session->deleteData('core:idp-ssotime', $this->id . ';' . substr($assocId, $index + 1)); $handler = $this->getLogoutHandler(); $handler->onResponse($assocId, $relayState, $error); @@ -532,6 +543,7 @@ public function handleLogoutResponse($assocId, $relayState, Exception $error = n * This function never returns. * * @param string $url The URL the user should be returned to after logout. + * @return void */ public function doLogoutRedirect($url) { @@ -554,6 +566,7 @@ public function doLogoutRedirect($url) * * @param IdP $idp Deprecated. Will be removed. * @param array &$state The logout state from doLogoutRedirect(). + * @return void */ public static function finishLogoutRedirect(IdP $idp, array $state) { diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/IdP/IFrameLogoutHandler.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/IdP/IFrameLogoutHandler.php index df84a413b5d3bd766e082e7053418a5013c25a3c..2597fdbabf62e99cbdf7277c90c69efc6d8fef9e 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/IdP/IFrameLogoutHandler.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/IdP/IFrameLogoutHandler.php @@ -2,9 +2,12 @@ namespace SimpleSAML\IdP; +use SimpleSAML\Auth; use SimpleSAML\Configuration; +use SimpleSAML\Error; +use SimpleSAML\IdP; use SimpleSAML\Module; -use SimpleSAML\Utils\HTTP; +use SimpleSAML\Utils; use SimpleSAML\XHTML\Template; /** @@ -27,7 +30,7 @@ class IFrameLogoutHandler implements LogoutHandlerInterface * * @param \SimpleSAML\IdP $idp The IdP to log out from. */ - public function __construct(\SimpleSAML\IdP $idp) + public function __construct(IdP $idp) { $this->idp = $idp; } @@ -37,6 +40,7 @@ public function __construct(\SimpleSAML\IdP $idp) * * @param array &$state The logout state. * @param string|null $assocId The SP we are logging out from. + * @return void */ public function startLogout(array &$state, $assocId) { @@ -49,7 +53,7 @@ public function startLogout(array &$state, $assocId) } foreach ($associations as $id => &$association) { - $idp = \SimpleSAML\IdP::getByState($association); + $idp = IdP::getByState($association); $association['core:Logout-IFrame:Name'] = $idp->getSPName($id); $association['core:Logout-IFrame:State'] = 'onhold'; } @@ -67,14 +71,14 @@ public function startLogout(array &$state, $assocId) } $params = [ - 'id' => \SimpleSAML\Auth\State::saveState($state, 'core:Logout-IFrame'), + 'id' => Auth\State::saveState($state, 'core:Logout-IFrame'), ]; if (isset($state['core:Logout-IFrame:InitType'])) { $params['type'] = $state['core:Logout-IFrame:InitType']; } $url = Module::getModuleURL('core/idp/logout-iframe.php', $params); - HTTP::redirectTrustedURL($url); + Utils\HTTP::redirectTrustedURL($url); } @@ -86,8 +90,9 @@ public function startLogout(array &$state, $assocId) * @param string $assocId The association that is terminated. * @param string|null $relayState The RelayState from the start of the logout. * @param \SimpleSAML\Error\Exception|null $error The error that occurred during session termination (if any). + * @return void */ - public function onResponse($assocId, $relayState, \SimpleSAML\Error\Exception $error = null) + public function onResponse($assocId, $relayState, Error\Exception $error = null) { assert(is_string($assocId)); diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/IdP/LogoutHandlerInterface.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/IdP/LogoutHandlerInterface.php index 773bda69470d21ac329985931c57df989e9da1da..fe52c00415a614b63e8d90ed32f526ebf2bffee2 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/IdP/LogoutHandlerInterface.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/IdP/LogoutHandlerInterface.php @@ -2,6 +2,9 @@ namespace SimpleSAML\IdP; +use SimpleSAML\Error; +use SimpleSAML\IdP; + /** * Interface that all logout handlers must implement. * @@ -15,7 +18,7 @@ interface LogoutHandlerInterface * * @param \SimpleSAML\IdP $idp The IdP we are logging out from. */ - public function __construct(\SimpleSAML\IdP $idp); + public function __construct(IdP $idp); /** @@ -24,7 +27,8 @@ public function __construct(\SimpleSAML\IdP $idp); * This function must never return. * * @param array &$state The logout state. - * @param string|null $assocId The association that started the logout. + * @param string $assocId The association that started the logout. + * @return void */ public function startLogout(array &$state, $assocId); @@ -37,6 +41,7 @@ public function startLogout(array &$state, $assocId); * @param string $assocId The association that is terminated. * @param string|null $relayState The RelayState from the start of the logout. * @param \SimpleSAML\Error\Exception|null $error The error that occurred during session termination (if any). + * @return void */ - public function onResponse($assocId, $relayState, \SimpleSAML\Error\Exception $error = null); + public function onResponse($assocId, $relayState, Error\Exception $error = null); } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/IdP/TraditionalLogoutHandler.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/IdP/TraditionalLogoutHandler.php index 32652b5617a747437bc331e86870fbdc5a3a5f81..9c18499364c707af8c95ad31a0e99e84e3327495 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/IdP/TraditionalLogoutHandler.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/IdP/TraditionalLogoutHandler.php @@ -2,8 +2,11 @@ namespace SimpleSAML\IdP; +use SimpleSAML\Auth; +use SimpleSAML\Error; +use SimpleSAML\IdP; use SimpleSAML\Logger; -use SimpleSAML\Utils\HTTP; +use SimpleSAML\Utils; /** * Class that handles traditional logout. @@ -26,7 +29,7 @@ class TraditionalLogoutHandler implements LogoutHandlerInterface * * @param \SimpleSAML\IdP $idp The IdP to log out from. */ - public function __construct(\SimpleSAML\IdP $idp) + public function __construct(IdP $idp) { $this->idp = $idp; } @@ -38,6 +41,7 @@ public function __construct(\SimpleSAML\IdP $idp) * This function never returns. * * @param array &$state The logout state. + * @return void */ private function logoutNextSP(array &$state) { @@ -46,17 +50,17 @@ private function logoutNextSP(array &$state) $this->idp->finishLogout($state); } - $relayState = \SimpleSAML\Auth\State::saveState($state, 'core:LogoutTraditional', true); + $relayState = Auth\State::saveState($state, 'core:LogoutTraditional', true); $id = $association['id']; - Logger::info('Logging out of '.var_export($id, true).'.'); + Logger::info('Logging out of ' . var_export($id, true) . '.'); try { - $idp = \SimpleSAML\IdP::getByState($association); + $idp = IdP::getByState($association); $url = call_user_func([$association['Handler'], 'getLogoutURL'], $idp, $association, $relayState); - HTTP::redirectTrustedURL($url); + Utils\HTTP::redirectTrustedURL($url); } catch (\Exception $e) { - Logger::warning('Unable to initialize logout to '.var_export($id, true).'.'); + Logger::warning('Unable to initialize logout to ' . var_export($id, true) . '.'); $this->idp->terminateAssociation($id); $state['core:Failed'] = true; @@ -74,6 +78,7 @@ private function logoutNextSP(array &$state) * * @param array &$state The logout state. * @param string $assocId The association that started the logout. + * @return void */ public function startLogout(array &$state, $assocId) { @@ -91,25 +96,26 @@ public function startLogout(array &$state, $assocId) * @param string $assocId The association that is terminated. * @param string|null $relayState The RelayState from the start of the logout. * @param \SimpleSAML\Error\Exception|null $error The error that occurred during session termination (if any). + * @return void * * @throws \SimpleSAML\Error\Exception If the RelayState was lost during logout. */ - public function onResponse($assocId, $relayState, \SimpleSAML\Error\Exception $error = null) + public function onResponse($assocId, $relayState, Error\Exception $error = null) { assert(is_string($assocId)); assert(is_string($relayState) || $relayState === null); if ($relayState === null) { - throw new \SimpleSAML\Error\Exception('RelayState lost during logout.'); + throw new Error\Exception('RelayState lost during logout.'); } - $state = \SimpleSAML\Auth\State::loadState($relayState, 'core:LogoutTraditional'); + $state = Auth\State::loadState($relayState, 'core:LogoutTraditional'); if ($error === null) { - Logger::info('Logged out of '.var_export($assocId, true).'.'); + Logger::info('Logged out of ' . var_export($assocId, true) . '.'); $this->idp->terminateAssociation($assocId); } else { - Logger::warning('Error received from '.var_export($assocId, true).' during logout:'); + Logger::warning('Error received from ' . var_export($assocId, true) . ' during logout:'); $error->logWarning(); $state['core:Failed'] = true; } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Locale/Language.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Locale/Language.php index 858dad86ce05da52cebe0c5616dd11899d812749..7dd64dc07e3ff2546a3bc0e77e1f119032a206e9 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Locale/Language.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Locale/Language.php @@ -10,7 +10,9 @@ namespace SimpleSAML\Locale; -use SimpleSAML\Utils\HTTP; +use SimpleSAML\Configuration; +use SimpleSAML\Logger; +use SimpleSAML\Utils; class Language { @@ -77,7 +79,7 @@ class Language * * @var array */ - private $language_names = [ + public static $language_names = [ 'no' => 'Bokmål', // Norwegian Bokmål 'nn' => 'Nynorsk', // Norwegian Nynorsk 'se' => 'Sámegiella', // Northern Sami @@ -138,7 +140,7 @@ class Language * * @param \SimpleSAML\Configuration $configuration Configuration object */ - public function __construct(\SimpleSAML\Configuration $configuration) + public function __construct(Configuration $configuration) { $this->configuration = $configuration; $this->availableLanguages = $this->getInstalledLanguages(); @@ -158,17 +160,17 @@ public function __construct(\SimpleSAML\Configuration $configuration) /** * Filter configured (available) languages against installed languages. * - * @return array The set of languages both in 'language.available' and $this->language_names. + * @return array The set of languages both in 'language.available' and self::$language_names. */ private function getInstalledLanguages() { $configuredAvailableLanguages = $this->configuration->getArray('language.available', ['en']); $availableLanguages = []; foreach ($configuredAvailableLanguages as $code) { - if (array_key_exists($code, $this->language_names) && isset($this->language_names[$code])) { + if (array_key_exists($code, self::$language_names) && isset(self::$language_names[$code])) { $availableLanguages[] = $code; } else { - \SimpleSAML\Logger::error("Language \"$code\" not installed. Check config."); + Logger::error("Language \"$code\" not installed. Check config."); } } return $availableLanguages; @@ -196,6 +198,7 @@ public function getPosixLanguage($language) * * @param string $language Language code for the language to set. * @param boolean $setLanguageCookie Whether to set the language cookie or not. Defaults to true. + * @return void */ public function setLanguage($language, $setLanguageCookie = true) { @@ -255,14 +258,14 @@ public function getLanguage() * * @param string $code The ISO 639-2 code of the language. * - * @return string The localized name of the language. + * @return string|null The localized name of the language. */ public function getLanguageLocalizedName($code) { - if (array_key_exists($code, $this->language_names) && isset($this->language_names[$code])) { - return $this->language_names[$code]; + if (array_key_exists($code, self::$language_names) && isset(self::$language_names[$code])) { + return self::$language_names[$code]; } - \SimpleSAML\Logger::error("Name for language \"$code\" not found. Check config."); + Logger::error("Name for language \"$code\" not found. Check config."); return null; } @@ -281,12 +284,12 @@ public function getLanguageParameterName() /** * This method returns the preferred language for the user based on the Accept-Language HTTP header. * - * @return string The preferred language based on the Accept-Language HTTP header, or null if none of the languages - * in the header is available. + * @return string|null The preferred language based on the Accept-Language HTTP header, + * or null if none of the languages in the header is available. */ private function getHTTPLanguage() { - $languageScore = HTTP::getAcceptLanguage(); + $languageScore = Utils\HTTP::getAcceptLanguage(); // for now we only use the default language map. We may use a configurable language map in the future $languageMap = self::$defaultLanguageMap; @@ -334,7 +337,8 @@ public function getDefaultLanguage() /** * Return an alias for a language code, if any. * - * @return string The alias, or null if the alias was not found. + * @param string $langcode + * @return string|null The alias, or null if the alias was not found. */ public function getLanguageCodeAlias($langcode) { @@ -379,7 +383,7 @@ public function isLanguageRTL() */ public static function getLanguageCookie() { - $config = \SimpleSAML\Configuration::getInstance(); + $config = Configuration::getInstance(); $availableLanguages = $config->getArray('language.available', ['en']); $name = $config->getString('language.cookie.name', 'language'); @@ -399,13 +403,14 @@ public static function getLanguageCookie() * specified is not in the list of available languages, or the headers have already been sent to the browser. * * @param string $language The language set by the user. + * @return void */ public static function setLanguageCookie($language) { assert(is_string($language)); $language = strtolower($language); - $config = \SimpleSAML\Configuration::getInstance(); + $config = Configuration::getInstance(); $availableLanguages = $config->getArray('language.available', ['en']); if (!in_array($language, $availableLanguages, true) || headers_sent()) { @@ -422,6 +427,6 @@ public static function setLanguageCookie($language) 'samesite' => ($config->getString('language.cookie.samesite', null)), ]; - HTTP::setCookie($name, $language, $params, false); + Utils\HTTP::setCookie($name, $language, $params, false); } } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Locale/Localization.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Locale/Localization.php index 822a71f96f80d59c5376215c65598137a04a9d9e..7e73ca7805dc0aeb2fd1d1aad05c0c5af964fd64 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Locale/Localization.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Locale/Localization.php @@ -11,6 +11,8 @@ use Gettext\Translations; use Gettext\Translator; +use SimpleSAML\Configuration; +use SimpleSAML\Logger; class Localization { @@ -90,13 +92,19 @@ class Localization * * @param \SimpleSAML\Configuration $configuration Configuration object */ - public function __construct(\SimpleSAML\Configuration $configuration) + public function __construct(Configuration $configuration) { $this->configuration = $configuration; - $this->localeDir = $this->configuration->resolvePath('locales'); + /** @var string $locales */ + $locales = $this->configuration->resolvePath('locales'); + $this->localeDir = $locales; $this->language = new Language($configuration); $this->langcode = $this->language->getPosixLanguage($this->language->getLanguage()); - $this->i18nBackend = ($this->configuration->getBoolean('usenewui', false) ? self::GETTEXT_I18N_BACKEND : self::SSP_I18N_BACKEND); + $this->i18nBackend = ( + $this->configuration->getBoolean('usenewui', false) + ? self::GETTEXT_I18N_BACKEND + : self::SSP_I18N_BACKEND + ); $this->setupL10N(); } @@ -121,7 +129,9 @@ public function getLocaleDir() */ public function getDomainLocaleDir($domain) { - $localeDir = $this->configuration->resolvePath('modules').'/'.$domain.'/locales'; + /** @var string $base */ + $base = $this->configuration->resolvePath('modules'); + $localeDir = $base . '/' . $domain . '/locales'; return $localeDir; } @@ -132,6 +142,7 @@ public function getDomainLocaleDir($domain) * * @param string $module Module name * @param string $localeDir Absolute path if the module is housed elsewhere + * @return void */ public function addModuleDomain($module, $localeDir = null) { @@ -148,19 +159,20 @@ public function addModuleDomain($module, $localeDir = null) * * @param string $localeDir Location of translations * @param string $domain Domain at location + * @return void */ public function addDomain($localeDir, $domain) { $this->localeDomainMap[$domain] = $localeDir; - \SimpleSAML\Logger::debug("Localization: load domain '$domain' at '$localeDir'"); + Logger::debug("Localization: load domain '$domain' at '$localeDir'"); $this->loadGettextGettextFromPO($domain); } - /* + /** * Get and check path of localization file * * @param string $domain Name of localization domain - * @throws Exception If the path does not exist even for the default, fallback language + * @throws \Exception If the path does not exist even for the default, fallback language * * @return string */ @@ -169,8 +181,8 @@ public function getLangPath($domain = self::DEFAULT_DOMAIN) $langcode = explode('_', $this->langcode); $langcode = $langcode[0]; $localeDir = $this->localeDomainMap[$domain]; - $langPath = $localeDir.'/'.$langcode.'/LC_MESSAGES/'; - \SimpleSAML\Logger::debug("Trying langpath for '$langcode' as '$langPath'"); + $langPath = $localeDir . '/' . $langcode . '/LC_MESSAGES/'; + Logger::debug("Trying langpath for '$langcode' as '$langPath'"); if (is_dir($langPath) && is_readable($langPath)) { return $langPath; } @@ -178,8 +190,8 @@ public function getLangPath($domain = self::DEFAULT_DOMAIN) // Some langcodes have aliases.. $alias = $this->language->getLanguageCodeAlias($langcode); if (isset($alias)) { - $langPath = $localeDir.'/'.$alias.'/LC_MESSAGES/'; - \SimpleSAML\Logger::debug("Trying langpath for alternative '$alias' as '$langPath'"); + $langPath = $localeDir . '/' . $alias . '/LC_MESSAGES/'; + Logger::debug("Trying langpath for alternative '$alias' as '$langPath'"); if (is_dir($langPath) && is_readable($langPath)) { return $langPath; } @@ -187,24 +199,25 @@ public function getLangPath($domain = self::DEFAULT_DOMAIN) // Language not found, fall back to default $defLangcode = $this->language->getDefaultLanguage(); - $langPath = $localeDir.'/'.$defLangcode.'/LC_MESSAGES/'; + $langPath = $localeDir . '/' . $defLangcode . '/LC_MESSAGES/'; if (is_dir($langPath) && is_readable($langPath)) { // Report that the localization for the preferred language is missing - $error = "Localization not found for langcode '$langcode' at '$langPath', falling back to langcode '". - $defLangcode."'"; - \SimpleSAML\Logger::error($_SERVER['PHP_SELF'].' - '.$error); + $error = "Localization not found for langcode '$langcode' at '$langPath', falling back to langcode '" . + $defLangcode . "'"; + Logger::error($_SERVER['PHP_SELF'] . ' - ' . $error); return $langPath; } // Locale for default language missing even, error out $error = "Localization directory missing/broken for langcode '$langcode' and domain '$domain'"; - \SimpleSAML\Logger::critical($_SERVER['PHP_SELF'].' - '.$error); + Logger::critical($_SERVER['PHP_SELF'] . ' - ' . $error); throw new \Exception($error); } /** * Setup the translator + * @return void */ private function setupTranslator() { @@ -221,6 +234,7 @@ private function setupTranslator() * * @param string $domain Name of domain * @param boolean $catchException Whether to catch an exception on error or return early + * @return void * * @throws \Exception If something is wrong with the locale file for the domain and activated language */ @@ -230,7 +244,7 @@ private function loadGettextGettextFromPO($domain = self::DEFAULT_DOMAIN, $catch $langPath = $this->getLangPath($domain); } catch (\Exception $e) { $error = "Something went wrong when trying to get path to language file, cannot load domain '$domain'."; - \SimpleSAML\Logger::error($_SERVER['PHP_SELF'].' - '.$error); + Logger::debug($_SERVER['PHP_SELF'] . ' - ' . $error); if ($catchException) { // bail out! return; @@ -238,14 +252,14 @@ private function loadGettextGettextFromPO($domain = self::DEFAULT_DOMAIN, $catch throw $e; } } - $poFile = $domain.'.po'; - $poPath = $langPath.$poFile; + $poFile = $domain . '.po'; + $poPath = $langPath . $poFile; if (file_exists($poPath) && is_readable($poPath)) { $translations = Translations::fromPoFile($poPath); $this->translator->loadTranslations($translations); } else { $error = "Localization file '$poFile' not found in '$langPath', falling back to default"; - \SimpleSAML\Logger::error($_SERVER['PHP_SELF'].' - '.$error); + Logger::debug($_SERVER['PHP_SELF'] . ' - ' . $error); } } @@ -268,11 +282,12 @@ public function isI18NBackendDefault() /** * Set up L18N if configured or fallback to old system + * @return void */ private function setupL10N() { if ($this->i18nBackend === self::SSP_I18N_BACKEND) { - \SimpleSAML\Logger::debug("Localization: using old system"); + Logger::debug("Localization: using old system"); return; } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Locale/Translate.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Locale/Translate.php index 54b56e1a9a8df4a007fbbb49918a0e27f68ea87b..0d0475edfe74bdb1ed9fb61eefffc86b64bd0698 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Locale/Translate.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Locale/Translate.php @@ -10,6 +10,11 @@ namespace SimpleSAML\Locale; +use Gettext\BaseTranslator; +use SimpleSAML\Configuration; +use SimpleSAML\Logger; +use SimpleSAML\Module; + class Translate { /** @@ -53,7 +58,7 @@ class Translate * @param \SimpleSAML\Configuration $configuration Configuration object * @param string|null $defaultDictionary The default dictionary where tags will come from. */ - public function __construct(\SimpleSAML\Configuration $configuration, $defaultDictionary = null) + public function __construct(Configuration $configuration, $defaultDictionary = null) { $this->configuration = $configuration; $this->language = new Language($configuration); @@ -62,9 +67,9 @@ public function __construct(\SimpleSAML\Configuration $configuration, $defaultDi // TODO: drop this entire if clause for 2.0 // for backwards compatibility - print warning $backtrace = debug_backtrace(); - $where = $backtrace[0]['file'].':'.$backtrace[0]['line']; - \SimpleSAML\Logger::warning( - 'Deprecated use of new SimpleSAML\Locale\Translate(...) at '.$where. + $where = $backtrace[0]['file'] . ':' . $backtrace[0]['line']; + Logger::warning( + 'Deprecated use of new SimpleSAML\Locale\Translate(...) at ' . $where . '. The last parameter is now a dictionary name, which should not end in ".php".' ); @@ -101,13 +106,13 @@ private function getDictionary($name) if ($sepPos !== false) { $module = substr($name, 0, $sepPos); $fileName = substr($name, $sepPos + 1); - $dictDir = \SimpleSAML\Module::getModuleDir($module).'/dictionaries/'; + $dictDir = Module::getModuleDir($module) . '/dictionaries/'; } else { - $dictDir = $this->configuration->getPathValue('dictionarydir', 'dictionaries/'); + $dictDir = $this->configuration->getPathValue('dictionarydir', 'dictionaries/') ?: 'dictionaries/'; $fileName = $name; } - $this->dictionaries[$name] = $this->readDictionaryFile($dictDir.$fileName); + $this->dictionaries[$name] = $this->readDictionaryFile($dictDir . $fileName); } return $this->dictionaries[$name]; @@ -214,8 +219,8 @@ public function getAttributeTranslation($name) // search the default attribute dictionary $dict = $this->getDictionary('attributes'); - if (array_key_exists('attribute_'.$normName, $dict)) { - return $this->getPreferredTranslation($dict['attribute_'.$normName]); + if (array_key_exists('attribute_' . $normName, $dict)) { + return $this->getPreferredTranslation($dict['attribute_' . $normName]); } // no translations found @@ -252,9 +257,11 @@ public static function noop($tag) * @param array $replacements An associative array of keys that should be replaced with values in the * translated string. * @param boolean $fallbackdefault Default translation to use as a fallback if no valid translation was found. + * @param array $oldreplacements + * @param bool $striptags * @deprecated Not used in twig, gettext * - * @return string The translated tag, or a placeholder value if the tag wasn't found. + * @return string|null The translated tag, or a placeholder value if the tag wasn't found. */ public function t( $tag, @@ -267,11 +274,11 @@ public function t( $striptags = false ) { $backtrace = debug_backtrace(); - $where = $backtrace[0]['file'].':'.$backtrace[0]['line']; + $where = $backtrace[0]['file'] . ':' . $backtrace[0]['line']; if (!$fallbackdefault) { - \SimpleSAML\Logger::warning( - 'Deprecated use of new SimpleSAML\Locale\Translate::t(...) at '.$where. - '. This parameter will go away, the fallback will become'. + Logger::warning( + 'Deprecated use of new SimpleSAML\Locale\Translate::t(...) at ' . $where . + '. This parameter will go away, the fallback will become' . ' identical to the $tag in 2.0.' ); } @@ -279,14 +286,15 @@ public function t( // TODO: remove this entire if for 2.0 // old style call to t(...). Print warning to log - \SimpleSAML\Logger::warning( - 'Deprecated use of SimpleSAML\Locale\Translate::t(...) at '.$where. + Logger::warning( + 'Deprecated use of SimpleSAML\Locale\Translate::t(...) at ' . $where . '. Please update the code to use the new style of parameters.' ); // for backwards compatibility - if (!$replacements && $this->getTag($tag) === null) { - \SimpleSAML\Logger::warning( + /** @psalm-suppress PossiblyInvalidArgument */ + if (!$replacements && ($this->getTag($tag) === null)) { + Logger::warning( 'Code which uses $fallbackdefault === FALSE should be updated to use the getTag() method instead.' ); return null; @@ -297,15 +305,15 @@ public function t( if (is_array($tag)) { $tagData = $tag; - \SimpleSAML\Logger::warning( - 'Deprecated use of new SimpleSAML\Locale\Translate::t(...) at '.$where. + Logger::warning( + 'Deprecated use of new SimpleSAML\Locale\Translate::t(...) at ' . $where . '. The $tag-parameter can only be a string in 2.0.' ); } else { $tagData = $this->getTag($tag); if ($tagData === null) { // tag not found - \SimpleSAML\Logger::info('Translate: Looking up ['.$tag.']: not translated at all.'); + Logger::info('Translate: Looking up [' . $tag . ']: not translated at all.'); return $this->getStringNotTranslated($tag, $fallbackdefault); } } @@ -334,7 +342,7 @@ public function t( private function getStringNotTranslated($tag, $fallbacktag) { if ($fallbacktag) { - return 'not translated ('.$tag.')'; + return 'not translated (' . $tag . ')'; } else { return $tag; } @@ -349,16 +357,19 @@ private function getStringNotTranslated($tag, $fallbacktag) * @param array|string $translation The translation array * * @throws \Exception If $translation is neither a string nor an array. + * @return void */ public function includeInlineTranslation($tag, $translation) { if (is_string($translation)) { $translation = ['en' => $translation]; } elseif (!is_array($translation)) { - throw new \Exception("Inline translation should be string or array. Is ".gettype($translation)." now!"); + throw new \Exception( + "Inline translation should be string or array. Is " . gettype($translation) . " now!" + ); } - \SimpleSAML\Logger::debug('Translate: Adding inline language translation for tag ['.$tag.']'); + Logger::debug('Translate: Adding inline language translation for tag [' . $tag . ']'); $this->langtext[$tag] = $translation; } @@ -370,6 +381,7 @@ public function includeInlineTranslation($tag, $translation) * one provided in the constructor to be used to find the directory of the dictionary. This allows to combine * dictionaries inside the SimpleSAMLphp main code distribution together with external dictionaries. Defaults to * null. + * @return void */ public function includeLanguageFile($file, $otherConfig = null) { @@ -378,9 +390,10 @@ public function includeLanguageFile($file, $otherConfig = null) } else { $filebase = $this->configuration->getPathValue('dictionarydir', 'dictionaries/'); } + $filebase = $filebase ?: 'dictionaries/'; - $lang = $this->readDictionaryFile($filebase.$file); - \SimpleSAML\Logger::debug('Translate: Merging language array. Loading ['.$file.']'); + $lang = $this->readDictionaryFile($filebase . $file); + Logger::debug('Translate: Merging language array. Loading [' . $file . ']'); $this->langtext = array_merge($this->langtext, $lang); } @@ -393,18 +406,18 @@ public function includeLanguageFile($file, $otherConfig = null) */ private function readDictionaryJSON($filename) { - $definitionFile = $filename.'.definition.json'; + $definitionFile = $filename . '.definition.json'; assert(file_exists($definitionFile)); $fileContent = file_get_contents($definitionFile); $lang = json_decode($fileContent, true); if (empty($lang)) { - \SimpleSAML\Logger::error('Invalid dictionary definition file ['.$definitionFile.']'); + Logger::error('Invalid dictionary definition file [' . $definitionFile . ']'); return []; } - $translationFile = $filename.'.translation.json'; + $translationFile = $filename . '.translation.json'; if (file_exists($translationFile)) { $fileContent = file_get_contents($translationFile); $moreTrans = json_decode($fileContent, true); @@ -425,7 +438,7 @@ private function readDictionaryJSON($filename) */ private function readDictionaryPHP($filename) { - $phpFile = $filename.'.php'; + $phpFile = $filename . '.php'; assert(file_exists($phpFile)); $lang = null; @@ -448,20 +461,20 @@ private function readDictionaryFile($filename) { assert(is_string($filename)); - \SimpleSAML\Logger::debug('Translate: Reading dictionary ['.$filename.']'); + Logger::debug('Translate: Reading dictionary [' . $filename . ']'); - $jsonFile = $filename.'.definition.json'; + $jsonFile = $filename . '.definition.json'; if (file_exists($jsonFile)) { return $this->readDictionaryJSON($filename); } - $phpFile = $filename.'.php'; + $phpFile = $filename . '.php'; if (file_exists($phpFile)) { return $this->readDictionaryPHP($filename); } - \SimpleSAML\Logger::error( - $_SERVER['PHP_SELF'].' - Translate: Could not find dictionary file at ['.$filename.']' + Logger::error( + $_SERVER['PHP_SELF'] . ' - Translate: Could not find dictionary file at [' . $filename . ']' ); return []; } @@ -475,7 +488,7 @@ private function readDictionaryFile($filename) */ public static function translateSingularGettext($original) { - $text = \Gettext\BaseTranslator::$current->gettext($original); + $text = BaseTranslator::$current->gettext($original); if (func_num_args() === 1) { return $text; @@ -497,7 +510,7 @@ public static function translateSingularGettext($original) */ public static function translatePluralGettext($original, $plural, $value) { - $text = \Gettext\BaseTranslator::$current->ngettext($original, $plural, $value); + $text = BaseTranslator::$current->ngettext($original, $plural, $value); if (func_num_args() === 3) { return $text; @@ -511,17 +524,17 @@ public static function translatePluralGettext($original, $plural, $value) /** * Pick a translation from a given array of translations for the current language. * - * @param array $context An array of options. The current language must be specified as an ISO 639 code accessible - * with the key "currentLanguage" in the array. - * @param array $translations An array of translations. Each translation has an ISO 639 code as its key, identifying - * the language it corresponds to. + * @param array|null $context An array of options. The current language must be specified + * as an ISO 639 code accessible with the key "currentLanguage" in the array. + * @param array|null $translations An array of translations. Each translation has an + * ISO 639 code as its key, identifying the language it corresponds to. * * @return null|string The translation appropriate for the current language, or null if none found. If the * $context or $translations arrays are null, or $context['currentLanguage'] is not defined, null is also returned. */ public static function translateFromArray($context, $translations) { - if (!is_array($translations) || $translations === null) { + if (!is_array($translations)) { return null; } @@ -534,12 +547,9 @@ public static function translateFromArray($context, $translations) } // we don't have a translation for the current language, load alternative priorities - $sspcfg = \SimpleSAML\Configuration::getInstance(); - $langcfg = $sspcfg->getConfigItem('language', null); - $priorities = []; - if ($langcfg instanceof \SimpleSAML\Configuration) { - $priorities = $langcfg->getArray('priorities', []); - } + $sspcfg = Configuration::getInstance(); + $langcfg = $sspcfg->getConfigItem('language'); + $priorities = $langcfg->getArray('priorities', []); if (!empty($priorities[$context['currentLanguage']])) { foreach ($priorities[$context['currentLanguage']] as $lang) { diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Logger.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Logger.php index ace36e1a18a9cfc1d50163fdc1159f19869229aa..69d38ca699cf22a10964c26a980c604102a005e9 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Logger.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Logger.php @@ -2,6 +2,8 @@ namespace SimpleSAML; +use SimpleSAML\Logger\ErrorLogLoggingHandler; + /** * The main logger class for SimpleSAMLphp. * @@ -13,9 +15,14 @@ class Logger { /** - * @var \SimpleSAML\Logger\LoggingHandlerInterface|false|null + * @var \SimpleSAML\Logger\LoggingHandlerInterface + */ + private static $loggingHandler; + + /** + * @var bool */ - private static $loggingHandler = null; + private static $initializing = false; /** * @var integer|null @@ -61,12 +68,16 @@ class Logger /** * This constant defines the string we set the track ID to while we are fetching the track ID from the session * class. This is used to prevent infinite recursion. + * + * @var string */ const NO_TRACKID = '_NOTRACKIDYET_'; /** * This variable holds the track ID we have retrieved from the session class. It can also be NULL, in which case * we haven't fetched the track ID yet, or self::NO_TRACKID, which means that we are fetching the track ID now. + * + * @var string */ private static $trackid = self::NO_TRACKID; @@ -114,20 +125,36 @@ class Logger */ private static $shuttingDown = false; + /** @var int */ const EMERG = 0; + + /** @var int */ const ALERT = 1; + + /** @var int */ const CRIT = 2; + + /** @var int */ const ERR = 3; + + /** @var int */ const WARNING = 4; + + /** @var int */ const NOTICE = 5; + + /** @var int */ const INFO = 6; + + /** @var int */ const DEBUG = 7; /** * Log an emergency message. * - * @var string $string The message to log. + * @param string $string The message to log. + * @return void */ public static function emergency($string) { @@ -138,7 +165,8 @@ public static function emergency($string) /** * Log a critical message. * - * @var string $string The message to log. + * @param string $string The message to log. + * @return void */ public static function critical($string) { @@ -149,7 +177,8 @@ public static function critical($string) /** * Log an alert. * - * @var string $string The message to log. + * @param string $string The message to log. + * @return void */ public static function alert($string) { @@ -160,7 +189,8 @@ public static function alert($string) /** * Log an error. * - * @var string $string The message to log. + * @param string $string The message to log. + * @return void */ public static function error($string) { @@ -171,7 +201,8 @@ public static function error($string) /** * Log a warning. * - * @var string $string The message to log. + * @param string $string The message to log. + * @return void */ public static function warning($string) { @@ -182,7 +213,8 @@ public static function warning($string) /** * We reserve the notice level for statistics, so do not use this level for other kind of log messages. * - * @var string $string The message to log. + * @param string $string The message to log. + * @return void */ public static function notice($string) { @@ -193,7 +225,8 @@ public static function notice($string) /** * Info messages are a bit less verbose than debug messages. This is useful to trace a session. * - * @var string $string The message to log. + * @param string $string The message to log. + * @return void */ public static function info($string) { @@ -205,7 +238,8 @@ public static function info($string) * Debug messages are very verbose, and will contain more information than what is necessary for a production * system. * - * @var string $string The message to log. + * @param string $string The message to log. + * @return void */ public static function debug($string) { @@ -216,7 +250,8 @@ public static function debug($string) /** * Statistics. * - * @var string $string The message to log. + * @param string $string The message to log. + * @return void */ public static function stats($string) { @@ -227,7 +262,8 @@ public static function stats($string) /** * Set the logger to capture logs. * - * @var boolean $val Whether to capture logs or not. Defaults to TRUE. + * @param boolean $val Whether to capture logs or not. Defaults to TRUE. + * @return void */ public static function setCaptureLog($val = true) { @@ -237,6 +273,7 @@ public static function setCaptureLog($val = true) /** * Get the captured log. + * @return array */ public static function getCapturedLog() { @@ -247,7 +284,8 @@ public static function getCapturedLog() /** * Set the track identifier to use in all logs. * - * @param $trackId string The track identifier to use during this session. + * @param string $trackId The track identifier to use during this session. + * @return void */ public static function setTrackId($trackId) { @@ -276,6 +314,7 @@ public static function flush() * This method is intended to be registered as a shutdown handler, so that any pending messages that weren't sent * to the logging handler at that point, can still make it. It is therefore not intended to be called manually. * + * @return void */ public static function shutdown() { @@ -284,7 +323,6 @@ public static function shutdown() $s = Session::getSessionFromRequest(); } catch (\Exception $e) { // loading session failed. We don't care why, at this point we have a transient session, so we use that - self::error('Cannot load or create session: '.$e->getMessage()); $s = Session::getSessionFromRequest(); } self::$trackid = $s->getTrackID(); @@ -313,6 +351,7 @@ public static function isErrorMasked($errno) * Every call to this function must be followed by a call to popErrorMask(). * * @param int $mask The log levels that should be masked. + * @return void */ public static function maskErrors($mask) { @@ -331,6 +370,8 @@ public static function maskErrors($mask) * Pop an error mask. * * This function restores the previous error mask. + * + * @return void */ public static function popErrorMask() { @@ -346,6 +387,7 @@ public static function popErrorMask() * @param int $level The log level corresponding to this message. * @param string $message The message itself to log. * @param boolean $stats Whether this is a stats message or a regular one. + * @return void */ private static function defer($level, $message, $stats) { @@ -360,16 +402,21 @@ private static function defer($level, $message, $stats) } + /** + * @param string|null $handler + * @return void + * @throws \Exception + */ private static function createLoggingHandler($handler = null) { - // set to false to indicate that it is being initialized - self::$loggingHandler = false; + self::$initializing = true; // a set of known logging handlers $known_handlers = [ 'syslog' => 'SimpleSAML\Logger\SyslogLoggingHandler', 'file' => 'SimpleSAML\Logger\FileLoggingHandler', 'errorlog' => 'SimpleSAML\Logger\ErrorLogLoggingHandler', + 'stderr' => 'SimpleSAML\Logger\StandardErrorLoggingHandler', ]; // get the configuration @@ -392,44 +439,58 @@ private static function createLoggingHandler($handler = null) $handler = strtolower($handler); if (!array_key_exists($handler, $known_handlers)) { throw new \Exception( - "Invalid value for the 'logging.handler' configuration option. Unknown handler '".$handler."''." + "Invalid value for the 'logging.handler' configuration option. Unknown handler '" . $handler . "'." ); } $handler = $known_handlers[$handler]; } - self::$loggingHandler = new $handler($config); self::$format = $config->getString('logging.format', self::$format); - self::$loggingHandler->setLogFormat(self::$format); + + try { + /** @var \SimpleSAML\Logger\LoggingHandlerInterface */ + self::$loggingHandler = new $handler($config); + self::$loggingHandler->setLogFormat(self::$format); + self::$initializing = false; + } catch (\Exception $e) { + self::$loggingHandler = new ErrorLogLoggingHandler($config); + self::$initializing = false; + self::log(self::CRIT, $e->getMessage(), false); + } } + /** + * @param int $level + * @param string $string + * @param bool $statsLog + * @return void + */ private static function log($level, $string, $statsLog = false) { - if (self::$loggingHandler === false) { + if (self::$initializing) { // some error occurred while initializing logging self::defer($level, $string, $statsLog); return; } elseif (php_sapi_name() === 'cli' || defined('STDIN')) { // we are being executed from the CLI, nowhere to log - if (is_null(self::$loggingHandler)) { - self::createLoggingHandler('SimpleSAML\Logger\StandardErrorLoggingHandler'); + if (!isset(self::$loggingHandler)) { + self::createLoggingHandler(\SimpleSAML\Logger\StandardErrorLoggingHandler::class); } $_SERVER['REMOTE_ADDR'] = "CLI"; if (self::$trackid === self::NO_TRACKID) { - self::$trackid = 'CL'.bin2hex(openssl_random_pseudo_bytes(4)); + self::$trackid = 'CL' . bin2hex(openssl_random_pseudo_bytes(4)); } - } elseif (self::$loggingHandler === null) { + } elseif (!isset(self::$loggingHandler)) { // Initialize logging self::createLoggingHandler(); - self::flush(); } if (self::$captureLog) { $ts = microtime(true); $msecs = (int) (($ts - (int) $ts) * 1000); - $ts = gmdate('H:i:s', $ts).sprintf('.%03d', $msecs).'Z'; - self::$capturedLog[] = $ts.' '.$string; + $ts = gmdate('H:i:s', $ts) . sprintf('.%03d', $msecs) . 'Z'; + self::$capturedLog[] = $ts . ' ' . $string; } if (self::$logLevel >= $level || $statsLog) { diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Logger/ErrorLogLoggingHandler.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Logger/ErrorLogLoggingHandler.php index 355fe24d1d262b0cefbf1c36b35a692701b107bc..07bfea093e2e7ec3bac7e7ac2e780008c7a5a7a5 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Logger/ErrorLogLoggingHandler.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Logger/ErrorLogLoggingHandler.php @@ -2,6 +2,7 @@ namespace SimpleSAML\Logger; +use SimpleSAML\Configuration; use SimpleSAML\Logger; /** @@ -16,6 +17,8 @@ class ErrorLogLoggingHandler implements LoggingHandlerInterface { /** * This array contains the mappings from syslog log level to names. + * + * @var array */ private static $levelNames = [ Logger::EMERG => 'EMERG', @@ -41,7 +44,7 @@ class ErrorLogLoggingHandler implements LoggingHandlerInterface * * @param \SimpleSAML\Configuration $config The configuration object for this handler. */ - public function __construct(\SimpleSAML\Configuration $config) + public function __construct(Configuration $config) { $this->processname = $config->getString('logging.processname', 'SimpleSAMLphp'); } @@ -51,6 +54,7 @@ public function __construct(\SimpleSAML\Configuration $config) * Set the format desired for the logs. * * @param string $format The format used for logs. + * @return void */ public function setLogFormat($format) { @@ -63,6 +67,7 @@ public function setLogFormat($format) * * @param int $level The log level. * @param string $string The formatted message to log. + * @return void */ public function log($level, $string) { diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Logger/FileLoggingHandler.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Logger/FileLoggingHandler.php index 8e9202f55d6b289c52c1129dcbb9c9fda008a97d..b7d041a03d016fb452dde193bfb28e0fbebe89f0 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Logger/FileLoggingHandler.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Logger/FileLoggingHandler.php @@ -2,7 +2,9 @@ namespace SimpleSAML\Logger; +use SimpleSAML\Configuration; use SimpleSAML\Logger; +use SimpleSAML\Utils; /** * A logging handler that dumps logs to files. @@ -13,7 +15,6 @@ */ class FileLoggingHandler implements LoggingHandlerInterface { - /** * A string with the path to the file where we should log our messages. * @@ -24,6 +25,8 @@ class FileLoggingHandler implements LoggingHandlerInterface /** * This array contains the mappings from syslog log levels to names. Copied more or less directly from * SimpleSAML\Logger\ErrorLogLoggingHandler. + * + * @var array */ private static $levelNames = [ Logger::EMERG => 'EMERGENCY', @@ -35,34 +38,39 @@ class FileLoggingHandler implements LoggingHandlerInterface Logger::INFO => 'INFO', Logger::DEBUG => 'DEBUG', ]; + + /** @var string|null */ protected $processname = null; - protected $format; + + /** @var string */ + protected $format = "%b %d %H:%M:%S"; /** * Build a new logging handler based on files. + * @param \SimpleSAML\Configuration $config */ - public function __construct(\SimpleSAML\Configuration $config) + public function __construct(Configuration $config) { // get the metadata handler option from the configuration - $this->logFile = $config->getPathValue('loggingdir', 'log/'). + $this->logFile = $config->getPathValue('loggingdir', 'log/') . $config->getString('logging.logfile', 'simplesamlphp.log'); $this->processname = $config->getString('logging.processname', 'SimpleSAMLphp'); if (@file_exists($this->logFile)) { if (!@is_writeable($this->logFile)) { - throw new \Exception("Could not write to logfile: ".$this->logFile); + throw new \Exception("Could not write to logfile: " . $this->logFile); } } else { if (!@touch($this->logFile)) { throw new \Exception( - "Could not create logfile: ".$this->logFile. + "Could not create logfile: " . $this->logFile . " The logging directory is not writable for the web server user." ); } } - \SimpleSAML\Utils\Time::initTimezone(); + Utils\Time::initTimezone(); } @@ -70,6 +78,7 @@ public function __construct(\SimpleSAML\Configuration $config) * Set the format desired for the logs. * * @param string $format The format used for logs. + * @return void */ public function setLogFormat($format) { @@ -82,6 +91,7 @@ public function setLogFormat($format) * * @param int $level The log level. * @param string $string The formatted message to log. + * @return void */ public function log($level, $string) { @@ -107,7 +117,7 @@ public function log($level, $string) } $string = str_replace($formats, $replacements, $string); - file_put_contents($this->logFile, $string.\PHP_EOL, FILE_APPEND); + file_put_contents($this->logFile, $string . \PHP_EOL, FILE_APPEND); } } } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Logger/LoggingHandlerInterface.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Logger/LoggingHandlerInterface.php index a9b939ddd0b7b2c6356766faa8634d8ec8164a2e..3d00324e5e21b1e649f81e9eeffc6cd8d284f54a 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Logger/LoggingHandlerInterface.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Logger/LoggingHandlerInterface.php @@ -2,6 +2,8 @@ namespace SimpleSAML\Logger; +use SimpleSAML\Configuration; + /** * The interface that must be implemented by any log handler. * @@ -11,13 +13,12 @@ interface LoggingHandlerInterface { - /** * Constructor for log handlers. It must accept receiving a \SimpleSAML\Configuration object. * * @param \SimpleSAML\Configuration $config The configuration to use in this log handler. */ - public function __construct(\SimpleSAML\Configuration $config); + public function __construct(Configuration $config); /** @@ -25,6 +26,7 @@ public function __construct(\SimpleSAML\Configuration $config); * * @param int $level The log level. * @param string $string The message to log. + * @return void */ public function log($level, $string); @@ -33,6 +35,7 @@ public function log($level, $string); * Set the format desired for the logs. * * @param string $format The format used for logs. + * @return void */ public function setLogFormat($format); } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Logger/StandardErrorLoggingHandler.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Logger/StandardErrorLoggingHandler.php index 3413e68cea3f4cb0e965c32e9ac899a8126aad57..ecc028bf0e0e301a13bb5f149100501c1d76403b 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Logger/StandardErrorLoggingHandler.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Logger/StandardErrorLoggingHandler.php @@ -2,6 +2,8 @@ namespace SimpleSAML\Logger; +use SimpleSAML\Configuration; + /** * A logging handler that outputs all messages to standard error. * @@ -10,13 +12,14 @@ */ class StandardErrorLoggingHandler extends FileLoggingHandler { - /** * StandardError constructor. * * It runs the parent constructor and sets the log file to be the standard error descriptor. + * + * @param \SimpleSAML\Configuration $config */ - public function __construct(\SimpleSAML\Configuration $config) + public function __construct(Configuration $config) { $this->processname = $config->getString('logging.processname', 'SimpleSAMLphp'); $this->logFile = 'php://stderr'; diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Logger/SyslogLoggingHandler.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Logger/SyslogLoggingHandler.php index 8d6e21a396fa899d3bd095adba6bece993fef95d..a5cfa6bc0692809b46792163b52afcc8270a82ca 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Logger/SyslogLoggingHandler.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Logger/SyslogLoggingHandler.php @@ -2,7 +2,8 @@ namespace SimpleSAML\Logger; -use SimpleSAML\Utils\System; +use SimpleSAML\Configuration; +use SimpleSAML\Utils; /** * A logger that sends messages to syslog. @@ -13,21 +14,25 @@ */ class SyslogLoggingHandler implements LoggingHandlerInterface { + /** @var bool */ private $isWindows = false; - private $format; + + /** @var string */ + protected $format = "%b %d %H:%M:%S"; /** * Build a new logging handler based on syslog. + * @param \SimpleSAML\Configuration $config */ - public function __construct(\SimpleSAML\Configuration $config) + public function __construct(Configuration $config) { $facility = $config->getInteger('logging.facility', defined('LOG_LOCAL5') ? constant('LOG_LOCAL5') : LOG_USER); $processname = $config->getString('logging.processname', 'SimpleSAMLphp'); // Setting facility to LOG_USER (only valid in Windows), enable log level rewrite on windows systems - if (System::getOS() === System::WINDOWS) { + if (Utils\System::getOS() === Utils\System::WINDOWS) { $this->isWindows = true; $facility = LOG_USER; } @@ -40,6 +45,7 @@ public function __construct(\SimpleSAML\Configuration $config) * Set the format desired for the logs. * * @param string $format The format used for logs. + * @return void */ public function setLogFormat($format) { @@ -52,6 +58,7 @@ public function setLogFormat($format) * * @param int $level The log level. * @param string $string The formatted message to log. + * @return void */ public function log($level, $string) { diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Memcache.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Memcache.php index 227022c201de7e5c42803353c83d12eb5e7f71e8..98337e63a0f657dce450dff03d754dec64e95f1c 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Memcache.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Memcache.php @@ -2,6 +2,8 @@ namespace SimpleSAML; +use SimpleSAML\Utils; + /** * This file implements functions to read and write to a group of memcache * servers. @@ -24,7 +26,7 @@ class Memcache /** * Cache of the memcache servers we are using. * - * @var \Memcache[]|null + * @var \Memcache[]|\Memcached[]|null */ private static $serverGroups = null; @@ -69,6 +71,7 @@ public static function get($key) $allDown = false; // unserialize the object + /** @var string $serializedInfo */ $info = unserialize($serializedInfo); /* @@ -146,6 +149,7 @@ public static function get($key) * @param string $key The key of the data. * @param mixed $value The value of the data. * @param integer|null $expire The expiration timestamp of the data. + * @return void */ public static function set($key, $value, $expire = null) { @@ -163,7 +167,7 @@ public static function set($key, $value, $expire = null) // store this object to all groups of memcache servers foreach (self::getMemcacheServers() as $server) { - if (self::$extension === '\memcached') { + if (self::$extension === \Memcached::class) { $server->set($key, $savedInfoSerialized, $expire); } else { $server->set($key, $savedInfoSerialized, 0, $expire); @@ -176,6 +180,7 @@ public static function set($key, $value, $expire = null) * Delete a key-value pair from the memcache servers. * * @param string $key The key we should delete. + * @return void */ public static function delete($key) { @@ -207,8 +212,9 @@ public static function delete($key) * The timeout for contacting this server, in seconds. * The default value is 3 seconds. * - * @param \Memcache $memcache The Memcache object we should add this server to. + * @param \Memcache|\Memcached $memcache The Memcache object we should add this server to. * @param array $server An associative array with the configuration options for the server to add. + * @return void * * @throws \Exception If any configuration option for the server is invalid. */ @@ -226,7 +232,7 @@ private static function addMemcacheServer($memcache, $server) // the hostname must be a valid string if (!is_string($hostname)) { throw new \Exception( - "Invalid hostname for server in the 'memcache_store.servers' configuration option. The hostname is". + "Invalid hostname for server in the 'memcache_store.servers' configuration option. The hostname is" . ' supposed to be a string.' ); } @@ -240,7 +246,7 @@ private static function addMemcacheServer($memcache, $server) $port = (int) $server['port']; if (($port <= 0) || ($port > 65535)) { throw new \Exception( - "Invalid port for server in the 'memcache_store.servers' configuration option. The port number". + "Invalid port for server in the 'memcache_store.servers' configuration option. The port number" . ' is supposed to be an integer between 0 and 65535.' ); } @@ -259,7 +265,7 @@ private static function addMemcacheServer($memcache, $server) $weight = (int) $server['weight']; if ($weight <= 0) { throw new \Exception( - "Invalid weight for server in the 'memcache_store.servers' configuration option. The weight is". + "Invalid weight for server in the 'memcache_store.servers' configuration option. The weight is" . ' supposed to be a positive integer.' ); } @@ -274,7 +280,7 @@ private static function addMemcacheServer($memcache, $server) $timeout = (int) $server['timeout']; if ($timeout <= 0) { throw new \Exception( - "Invalid timeout for server in the 'memcache_store.servers' configuration option. The timeout is". + "Invalid timeout for server in the 'memcache_store.servers' configuration option. The timeout is" . ' supposed to be a positive integer.' ); } @@ -284,7 +290,7 @@ private static function addMemcacheServer($memcache, $server) } // add this server to the Memcache object - if (self::$extension === '\memcached') { + if ($memcache instanceof \Memcached) { $memcache->addServer($hostname, $port); } else { $memcache->addServer($hostname, $port, true, $weight, $timeout, $timeout, true); @@ -297,31 +303,53 @@ private static function addMemcacheServer($memcache, $server) * creates a Memcache object from the servers in the group. * * @param array $group Array of servers which should be created as a group. + * @param string $index The index for this group. Specify if persistent connections are desired. * - * @return \Memcache A Memcache object of the servers in the group + * @return \Memcache|\Memcached A Memcache object of the servers in the group * * @throws \Exception If the servers configuration is invalid. */ - private static function loadMemcacheServerGroup(array $group) + private static function loadMemcacheServerGroup(array $group, $index = null) { - $class = class_exists('\Memcache') ? '\Memcache' : (class_exists('\Memcached') ? '\Memcached' : false); - if (!$class) { + if (class_exists(\Memcached::class)) { + if (is_string($index)) { + $memcache = new \Memcached($index); + } else { + $memcache = new \Memcached(); + } + if (array_key_exists('options', $group)) { + $memcache->setOptions($group['options']); + unset($group['options']); + } + self::$extension = \Memcached::class; + + $servers = $memcache->getServerList(); + if (count($servers) === count($group) && !$memcache->isPristine()) { + return $memcache; + } + $memcache->resetServerList(); + } elseif (class_exists(\Memcache::class)) { + $memcache = new \Memcache(); + self::$extension = \Memcache::class; + } else { throw new \Exception( 'Missing Memcached implementation. You must install either the Memcache or Memcached extension.' ); } - self::$extension = strtolower($class); - // create the \Memcache object - $memcache = new $class(); + if (self::$extension === \Memcache::class) { + Logger::warning( + "The use of PHP-extension memcache is deprecated. Please migrate to the memcached extension." + ); + } // iterate over all the servers in the group and add them to the Memcache object foreach ($group as $index => $server) { // make sure that we don't have an index. An index would be a sign of invalid configuration if (!is_int($index)) { throw new \Exception( - "Invalid index on element in the 'memcache_store.servers' configuration option. Perhaps you". - ' have forgotten to add an array(...) around one of the server groups? The invalid index was: '. + "Invalid index on element in the 'memcache_store.servers' configuration option. Perhaps you" . + ' have forgotten to add an array(...) around one of the server groups? The invalid index was: ' . $index ); } @@ -329,8 +357,8 @@ private static function loadMemcacheServerGroup(array $group) // make sure that the server object is an array. Each server is an array with name-value pairs if (!is_array($server)) { throw new \Exception( - 'Invalid value for the server with index '.$index. - '. Remeber that the \'memcache_store.servers\' configuration option'. + 'Invalid value for the server with index ' . $index . + '. Remeber that the \'memcache_store.servers\' configuration option' . ' contains an array of arrays of arrays.' ); } @@ -338,6 +366,7 @@ private static function loadMemcacheServerGroup(array $group) self::addMemcacheServer($memcache, $server); } + /** @var \Memcache|\Memcached */ return $memcache; } @@ -346,7 +375,7 @@ private static function loadMemcacheServerGroup(array $group) * This function gets a list of all configured memcache servers. This list is initialized based * on the content of 'memcache_store.servers' in the configuration. * - * @return \Memcache[] Array with Memcache objects. + * @return \Memcache[]|\Memcached[] Array with Memcache objects. * * @throws \Exception If the servers configuration is invalid. */ @@ -368,29 +397,25 @@ private static function getMemcacheServers() // iterate over all the groups in the 'memcache_store.servers' configuration option foreach ($groups as $index => $group) { - // make sure that the group doesn't have an index. An index would be a sign of invalid configuration - if (!is_int($index)) { - throw new \Exception( - "Invalid index on element in the 'memcache_store.servers'". - ' configuration option. Perhaps you have forgotten to add an array(...)'. - ' around one of the server groups? The invalid index was: '.$index - ); - } - /* * Make sure that the group is an array. Each group is an array of servers. Each server is * an array of name => value pairs for that server. */ if (!is_array($group)) { throw new \Exception( - "Invalid value for the server with index ".$index. - ". Remeber that the 'memcache_store.servers' configuration option". + "Invalid value for the server with index " . $index . + ". Remeber that the 'memcache_store.servers' configuration option" . ' contains an array of arrays of arrays.' ); } + // make sure that the group doesn't have an index. An index would be a sign of invalid configuration + if (is_int($index)) { + $index = null; + } + // parse and add this group to the server group list - self::$serverGroups[] = self::loadMemcacheServerGroup($group); + self::$serverGroups[] = self::loadMemcacheServerGroup($group, $index); } return self::$serverGroups; @@ -413,7 +438,7 @@ private static function getExpireTime() { // get the configuration instance $config = Configuration::getInstance(); - assert($config instanceof \SimpleSAML\Configuration); + assert($config instanceof Configuration); // get the expire-value from the configuration $expire = $config->getInteger('memcache_store.expires', 0); diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/MetaDataStorageHandler.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/MetaDataStorageHandler.php index 6e712ea3a3491a332dec2538b5c84a0f88218ab1..5e77a43bbbfcf2e1a63244314040b91b5d90f1b5 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/MetaDataStorageHandler.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/MetaDataStorageHandler.php @@ -2,7 +2,13 @@ namespace SimpleSAML\Metadata; +use SAML2\Constants; use SAML2\XML\saml\Issuer; +use SimpleSAML\Configuration; +use SimpleSAML\Error; +use SimpleSAML\Logger; +use SimpleSAML\Utils; +use SimpleSAML\Error\MetadataNotFound; use SimpleSAML\Utils\ClearableState; /** @@ -12,14 +18,14 @@ * @package SimpleSAMLphp */ -class MetaDataStorageHandler implements ClearableState +class MetaDataStorageHandler implements \SimpleSAML\Utils\ClearableState { /** * This static variable contains a reference to the current * instance of the metadata handler. This variable will be null if * we haven't instantiated a metadata handler yet. * - * @var MetaDataStorageHandler + * @var MetaDataStorageHandler|null */ private static $metadataHandler = null; @@ -56,7 +62,7 @@ public static function getMetadataHandler() */ protected function __construct() { - $config = \SimpleSAML\Configuration::getInstance(); + $config = Configuration::getInstance(); $sourcesConfig = $config->getArray('metadata.sources', null); @@ -70,7 +76,7 @@ protected function __construct() $this->sources = MetaDataStorageSource::parseSources($sourcesConfig); } catch (\Exception $e) { throw new \Exception( - "Invalid configuration of the 'metadata.sources' configuration option: ".$e->getMessage() + "Invalid configuration of the 'metadata.sources' configuration option: " . $e->getMessage() ); } } @@ -98,36 +104,36 @@ public function getGenerated($property, $set) } // get the configuration - $config = \SimpleSAML\Configuration::getInstance(); - assert($config instanceof \SimpleSAML\Configuration); + $config = Configuration::getInstance(); + assert($config instanceof Configuration); - $baseurl = \SimpleSAML\Utils\HTTP::getSelfURLHost().$config->getBasePath(); + $baseurl = Utils\HTTP::getSelfURLHost() . $config->getBasePath(); if ($set == 'saml20-sp-hosted') { if ($property === 'SingleLogoutServiceBinding') { - return \SAML2\Constants::BINDING_HTTP_REDIRECT; + return Constants::BINDING_HTTP_REDIRECT; } } elseif ($set == 'saml20-idp-hosted') { switch ($property) { case 'SingleSignOnService': - return $baseurl.'saml2/idp/SSOService.php'; + return $baseurl . 'saml2/idp/SSOService.php'; case 'SingleSignOnServiceBinding': - return \SAML2\Constants::BINDING_HTTP_REDIRECT; + return Constants::BINDING_HTTP_REDIRECT; case 'SingleLogoutService': - return $baseurl.'saml2/idp/SingleLogoutService.php'; + return $baseurl . 'saml2/idp/SingleLogoutService.php'; case 'SingleLogoutServiceBinding': - return \SAML2\Constants::BINDING_HTTP_REDIRECT; + return Constants::BINDING_HTTP_REDIRECT; } } elseif ($set == 'shib13-idp-hosted') { if ($property === 'SingleSignOnService') { - return $baseurl.'shib13/idp/SSOService.php'; + return $baseurl . 'shib13/idp/SSOService.php'; } } - throw new \Exception('Could not generate metadata property '.$property.' for set '.$set.'.'); + throw new \Exception('Could not generate metadata property ' . $property . ' for set ' . $set . '.'); } @@ -136,10 +142,11 @@ public function getGenerated($property, $set) * where the key is the entity id. * * @param string $set The set we want to list metadata from. + * @param bool $showExpired A boolean specifying whether expired entities should be returned * * @return array An associative array with the metadata from from the given set. */ - public function getList($set = 'saml20-idp-remote') + public function getList($set = 'saml20-idp-remote', $showExpired = false) { assert(is_string($set)); @@ -148,13 +155,13 @@ public function getList($set = 'saml20-idp-remote') foreach ($this->sources as $source) { $srcList = $source->getMetadataSet($set); - foreach ($srcList as $key => $le) { - if (array_key_exists('expire', $le)) { - if ($le['expire'] < time()) { + if ($showExpired === false) { + foreach ($srcList as $key => $le) { + if (array_key_exists('expire', $le) && ($le['expire'] < time())) { unset($srcList[$key]); - \SimpleSAML\Logger::warning( - "Dropping metadata entity ".var_export($key, true).", expired ". - \SimpleSAML\Utils\Time::generateTimestamp($le['expire'])."." + Logger::warning( + "Dropping metadata entity " . var_export($key, true) . ", expired " . + Utils\Time::generateTimestamp($le['expire']) . "." ); } } @@ -199,7 +206,7 @@ public function getMetaDataCurrentEntityID($set, $type = 'entityid') assert(is_string($set)); // first we look for the hostname/path combination - $currenthostwithpath = \SimpleSAML\Utils\HTTP::getSelfHostWithPath(); // sp.example.org/university + $currenthostwithpath = Utils\HTTP::getSelfHostWithPath(); // sp.example.org/university foreach ($this->sources as $source) { $index = $source->getEntityIdFromHostPath($currenthostwithpath, $set, $type); @@ -209,7 +216,7 @@ public function getMetaDataCurrentEntityID($set, $type = 'entityid') } // then we look for the hostname - $currenthost = \SimpleSAML\Utils\HTTP::getSelfHost(); // sp.example.org + $currenthost = Utils\HTTP::getSelfHost(); // sp.example.org foreach ($this->sources as $source) { $index = $source->getEntityIdFromHostPath($currenthost, $set, $type); @@ -228,8 +235,8 @@ public function getMetaDataCurrentEntityID($set, $type = 'entityid') // we were unable to find the hostname/path in any metadata source throw new \Exception( - 'Could not find any default metadata entities in set ['.$set.'] for host ['.$currenthost.' : '. - $currenthostwithpath.']' + 'Could not find any default metadata entities in set [' . $set . '] for host [' . $currenthost . ' : ' . + $currenthostwithpath . ']' ); } @@ -241,7 +248,7 @@ public function getMetaDataCurrentEntityID($set, $type = 'entityid') * @param string $set Which set of metadata we are looking it up in. * @param string $ip IP address * - * @return string The entity id of a entity which have a CIDR hint where the provided + * @return string|null The entity id of a entity which have a CIDR hint where the provided * IP address match. */ public function getPreferredEntityIdFromCIDRhint($set, $ip) @@ -256,12 +263,43 @@ public function getPreferredEntityIdFromCIDRhint($set, $ip) return null; } + /** + * This function loads the metadata for entity IDs in $entityIds. It is returned as an associative array + * where the key is the entity id. An empty array may be returned if no matching entities were found + * @param array $entityIds The entity ids to load + * @param string $set The set we want to get metadata from. + * @return array An associative array with the metadata for the requested entities, if found. + */ + public function getMetaDataForEntities(array $entityIds, $set) + { + $result = []; + foreach ($this->sources as $source) { + $srcList = $source->getMetaDataForEntities($entityIds, $set); + foreach ($srcList as $key => $le) { + if (array_key_exists('expire', $le)) { + if ($le['expire'] < time()) { + unset($srcList[$key]); + \SimpleSAML\Logger::warning( + "Dropping metadata entity " . var_export($key, true) . ", expired " . + \SimpleSAML\Utils\Time::generateTimestamp($le['expire']) . "." + ); + continue; + } + } + // We found the entity id so remove it from the list that needs resolving + unset($entityIds[array_search($key, $entityIds)]); + } + $result = array_merge($srcList, $result); + } + + return $result; + } /** * This function looks up the metadata for the given entity id in the given set. It will throw an * exception if it is unable to locate the metadata. * - * @param string $index The entity id we are looking up. This parameter may be NULL, in which case we look up + * @param string|null $index The entity id we are looking up. This parameter may be NULL, in which case we look up * the current entity id based on the current hostname/path. * @param string $set The set of metadata we are looking up the entity id in. * @@ -286,8 +324,8 @@ public function getMetaData($index, $set) if (array_key_exists('expire', $metadata)) { if ($metadata['expire'] < time()) { throw new \Exception( - 'Metadata for the entity ['.$index.'] expired '. - (time() - $metadata['expire']).' seconds ago.' + 'Metadata for the entity [' . $index . '] expired ' . + (time() - $metadata['expire']) . ' seconds ago.' ); } } @@ -299,7 +337,7 @@ public function getMetaData($index, $set) } } - throw new \SimpleSAML\Error\MetadataNotFound($index); + throw new Error\MetadataNotFound($index); } @@ -320,7 +358,7 @@ public function getMetaDataConfig($entityId, $set) assert(is_string($set)); $metadata = $this->getMetaData($entityId, $set); - return \SimpleSAML\Configuration::loadFromArray($metadata, $set.'/'.var_export($entityId, true)); + return Configuration::loadFromArray($metadata, $set . '/' . var_export($entityId, true)); } @@ -352,9 +390,9 @@ public function getMetaDataConfigForSha1($sha1, $set) if (sha1($remote_provider['entityid']) == $sha1) { $remote_provider['metadata-set'] = $set; - return \SimpleSAML\Configuration::loadFromArray( + return Configuration::loadFromArray( $remote_provider, - $set.'/'.var_export($remote_provider['entityid'], true) + $set . '/' . var_export($remote_provider['entityid'], true) ); } } @@ -362,10 +400,12 @@ public function getMetaDataConfigForSha1($sha1, $set) return null; } + /** * Clear any metadata cached. * Allows for metadata configuration to be changed and reloaded during a given request. Most useful * when running phpunit tests and needing to alter config.php and metadata sources between test cases + * @return void */ public static function clearInternalState() { diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/MetaDataStorageHandlerFlatFile.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/MetaDataStorageHandlerFlatFile.php index 55336a04d59fb25975e954087098bae7a7220b0a..9f15a11f3ac27eab5a61242fc5a377096337ee36 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/MetaDataStorageHandlerFlatFile.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/MetaDataStorageHandlerFlatFile.php @@ -2,6 +2,8 @@ namespace SimpleSAML\Metadata; +use SimpleSAML\Configuration; + /** * This file defines a flat file metadata source. * Instantiation of session handler objects should be done through @@ -19,7 +21,7 @@ class MetaDataStorageHandlerFlatFile extends MetaDataStorageSource * * @var string */ - private $directory; + private $directory = '/'; /** @@ -44,11 +46,11 @@ protected function __construct($config) assert(is_array($config)); // get the configuration - $globalConfig = \SimpleSAML\Configuration::getInstance(); + $globalConfig = Configuration::getInstance(); // find the path to the directory we should search for metadata in if (array_key_exists('directory', $config)) { - $this->directory = $config['directory']; + $this->directory = $config['directory'] ?: 'metadata/'; } else { $this->directory = $globalConfig->getString('metadatadir', 'metadata/'); } @@ -56,7 +58,10 @@ protected function __construct($config) /* Resolve this directory relative to the SimpleSAMLphp directory (unless it is * an absolute path). */ - $this->directory = $globalConfig->resolvePath($this->directory).'/'; + + /** @var string $base */ + $base = $globalConfig->resolvePath($this->directory); + $this->directory = $base . '/'; } @@ -66,13 +71,13 @@ protected function __construct($config) * * @param string $set The set of metadata we are loading. * - * @return array An associative array with the metadata, or null if we are unable to load metadata from the given - * file. + * @return array|null An associative array with the metadata, + * or null if we are unable to load metadata from the given file. * @throws \Exception If the metadata set cannot be loaded. */ private function load($set) { - $metadatasetfile = $this->directory.$set.'.php'; + $metadatasetfile = $this->directory . $set . '.php'; if (!file_exists($metadatasetfile)) { return null; @@ -83,7 +88,7 @@ private function load($set) include($metadatasetfile); if (!is_array($metadata)) { - throw new \Exception('Could not load metadata set ['.$set.'] from file: '.$metadatasetfile); + throw new \Exception('Could not load metadata set [' . $set . '] from file: ' . $metadatasetfile); } return $metadata; @@ -105,6 +110,7 @@ public function getMetadataSet($set) return $this->cachedMetadata[$set]; } + /** @var array|null $metadataSet */ $metadataSet = $this->load($set); if ($metadataSet === null) { $metadataSet = []; @@ -116,7 +122,6 @@ public function getMetadataSet($set) } $this->cachedMetadata[$set] = $metadataSet; - return $metadataSet; } } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/MetaDataStorageHandlerPdo.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/MetaDataStorageHandlerPdo.php index 95f1417a1b76cdfe25c85adee471d9e889d40255..c6f6c3aed44185f3d7d75ea1906af669f7883abf 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/MetaDataStorageHandlerPdo.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/MetaDataStorageHandlerPdo.php @@ -2,6 +2,9 @@ namespace SimpleSAML\Metadata; +use SimpleSAML\Database; +use SimpleSAML\Error; + /** * Class for handling metadata files stored in a database. * @@ -41,9 +44,7 @@ class MetaDataStorageHandlerPdo extends MetaDataStorageSource 'shib13-idp-hosted', 'shib13-idp-remote', 'shib13-sp-hosted', - 'shib13-sp-remote', - 'wsfed-idp-remote', - 'wsfed-sp-hosted' + 'shib13-sp-remote' ]; @@ -62,7 +63,7 @@ public function __construct($config) { assert(is_array($config)); - $this->db = \SimpleSAML\Database::getInstance(); + $this->db = Database::getInstance(); } @@ -72,8 +73,8 @@ public function __construct($config) * * @param string $set The set of metadata we are loading. * - * @return array $metadata Associative array with the metadata, or NULL if we are unable to load metadata from the - * given file. + * @return array|null $metadata Associative array with the metadata, or NULL if we are unable to load + * metadata from the given file. * * @throws \Exception If a database error occurs. * @throws \SimpleSAML\Error\Exception If the metadata can be retrieved from the database, but cannot be decoded. @@ -95,7 +96,7 @@ private function load($set) while ($d = $stmt->fetch()) { $data = json_decode($d['entity_data'], true); if ($data === null) { - throw new \SimpleSAML\Error\Exception("Cannot decode metadata for entity '${d['entity_id']}'"); + throw new Error\Exception("Cannot decode metadata for entity '${d['entity_id']}'"); } if (!array_key_exists('entityid', $data)) { $data['entityid'] = $d['entity_id']; @@ -105,7 +106,9 @@ private function load($set) return $metadata; } else { - throw new \Exception('PDO metadata handler: Database error: '.var_export($this->db->getLastError(), true)); + throw new \Exception( + 'PDO metadata handler: Database error: ' . var_export($this->db->getLastError(), true) + ); } } @@ -145,7 +148,7 @@ public function getMetadataSet($set) * @param string $entityId The entityId we are looking up. * @param string $set The set we are looking for metadata in. * - * @return array An associative array with metadata for the given entity, or NULL if we are unable to + * @return array|null An associative array with metadata for the given entity, or NULL if we are unable to * locate the entity. */ public function getMetaData($entityId, $set) @@ -171,12 +174,12 @@ public function getMetaData($entityId, $set) // any dynamic entries to see if the dynamic hosted entity id matches if (substr($set, -10) == 'idp-hosted') { $stmt = $this->db->read( - "SELECT entity_id, entity_data FROM {$tableName} WHERE (entity_id LIKE :dynamicId OR entity_id = :entityId)", + "SELECT entity_id, entity_data FROM {$tableName} " + . "WHERE (entity_id LIKE :dynamicId OR entity_id = :entityId)", ['dynamicId' => '__DYNAMIC%', 'entityId' => $entityId] ); - } - // other metadata types should be able to match on entity id - else { + } else { + // other metadata types should be able to match on entity id $stmt = $this->db->read( "SELECT entity_id, entity_data FROM {$tableName} WHERE entity_id = :entityId", ['entityId' => $entityId] @@ -185,7 +188,9 @@ public function getMetaData($entityId, $set) // throw pdo exception upon execution failure if (!$stmt->execute()) { - throw new \Exception('PDO metadata handler: Database error: '.var_export($this->db->getLastError(), true)); + throw new \Exception( + 'PDO metadata handler: Database error: ' . var_export($this->db->getLastError(), true) + ); } // load the metadata into an array @@ -193,7 +198,9 @@ public function getMetaData($entityId, $set) while ($d = $stmt->fetch()) { $data = json_decode($d['entity_data'], true); if (json_last_error() != JSON_ERROR_NONE) { - throw new \SimpleSAML\Error\Exception("Cannot decode metadata for entity '${d['entity_id']}'"); + throw new \SimpleSAML\Error\Exception( + "Cannot decode metadata for entity '${d['entity_id']}'" + ); } // update the entity id to either the key (if not dynamic or generate the dynamic hosted url) @@ -272,7 +279,7 @@ private function getTableName($table) { assert(is_string($table)); - return $this->db->applyPrefix(str_replace("-", "_", $this->tablePrefix.$table)); + return $this->db->applyPrefix(str_replace("-", "_", $this->tablePrefix . $table)); } @@ -288,7 +295,7 @@ public function initDatabase() foreach ($this->supportedSets as $set) { $tableName = $this->getTableName($set); $rows = $this->db->write( - "CREATE TABLE IF NOT EXISTS $tableName (entity_id VARCHAR(255) PRIMARY KEY NOT NULL, entity_data ". + "CREATE TABLE IF NOT EXISTS $tableName (entity_id VARCHAR(255) PRIMARY KEY NOT NULL, entity_data " . "TEXT NOT NULL)" ); if ($rows === false) { diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/MetaDataStorageHandlerSerialize.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/MetaDataStorageHandlerSerialize.php index 8c050775678d401067097278739cb1e4915680ec..85c2440d152e4014c1b892c2e8f14c33783f841f 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/MetaDataStorageHandlerSerialize.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/MetaDataStorageHandlerSerialize.php @@ -2,6 +2,10 @@ namespace SimpleSAML\Metadata; +use SimpleSAML\Configuration; +use SimpleSAML\Logger; +use SimpleSAML\Utils; + /** * Class for handling metadata files in serialized format. * @@ -23,7 +27,7 @@ class MetaDataStorageHandlerSerialize extends MetaDataStorageSource * * @var string */ - private $directory; + private $directory = '/'; /** @@ -37,16 +41,16 @@ public function __construct($config) { assert(is_array($config)); - $globalConfig = \SimpleSAML\Configuration::getInstance(); + $globalConfig = Configuration::getInstance(); - $cfgHelp = \SimpleSAML\Configuration::loadFromArray($config, 'serialize metadata source'); + $cfgHelp = Configuration::loadFromArray($config, 'serialize metadata source'); $this->directory = $cfgHelp->getString('directory'); /* Resolve this directory relative to the SimpleSAMLphp directory (unless it is * an absolute path). */ - $this->directory = $globalConfig->resolvePath($this->directory); + $this->directory = Utils\System::resolvePath($this->directory, $globalConfig->getBaseDir()); } @@ -63,7 +67,7 @@ private function getMetadataPath($entityId, $set) assert(is_string($entityId)); assert(is_string($set)); - return $this->directory.'/'.rawurlencode($set).'/'.rawurlencode($entityId).self::EXTENSION; + return $this->directory . '/' . rawurlencode($set) . '/' . rawurlencode($entityId) . self::EXTENSION; } @@ -78,8 +82,8 @@ public function getMetadataSets() $dh = @opendir($this->directory); if ($dh === false) { - \SimpleSAML\Logger::warning( - 'Serialize metadata handler: Unable to open directory: '.var_export($this->directory, true) + Logger::warning( + 'Serialize metadata handler: Unable to open directory: ' . var_export($this->directory, true) ); return $ret; } @@ -90,12 +94,12 @@ public function getMetadataSets() continue; } - $path = $this->directory.'/'.$entry; + $path = $this->directory . '/' . $entry; if (!is_dir($path)) { - \SimpleSAML\Logger::warning( - 'Serialize metadata handler: Metadata directory contained a file where only directories should '. - 'exist: '.var_export($path, true) + Logger::warning( + 'Serialize metadata handler: Metadata directory contained a file where only directories should ' . + 'exist: ' . var_export($path, true) ); continue; } @@ -122,7 +126,7 @@ public function getMetadataSet($set) $ret = []; - $dir = $this->directory.'/'.rawurlencode($set); + $dir = $this->directory . '/' . rawurlencode($set); if (!is_dir($dir)) { // probably some code asked for a metadata set which wasn't available return $ret; @@ -130,8 +134,8 @@ public function getMetadataSet($set) $dh = @opendir($dir); if ($dh === false) { - \SimpleSAML\Logger::warning( - 'Serialize metadata handler: Unable to open directory: '.var_export($dir, true) + Logger::warning( + 'Serialize metadata handler: Unable to open directory: ' . var_export($dir, true) ); return $ret; } @@ -168,7 +172,7 @@ public function getMetadataSet($set) * @param string $entityId The entityId we are looking up. * @param string $set The set we are looking for metadata in. * - * @return array An associative array with metadata for the given entity, or NULL if we are unable to + * @return array|null An associative array with metadata for the given entity, or NULL if we are unable to * locate the entity. */ public function getMetaData($entityId, $set) @@ -184,16 +188,17 @@ public function getMetaData($entityId, $set) $data = @file_get_contents($filePath); if ($data === false) { + /** @var array $error */ $error = error_get_last(); - \SimpleSAML\Logger::warning( - 'Error reading file '.$filePath.': '.$error['message'] + Logger::warning( + 'Error reading file ' . $filePath . ': ' . $error['message'] ); return null; } $data = @unserialize($data); if ($data === false) { - \SimpleSAML\Logger::warning('Error unserializing file: '.$filePath); + Logger::warning('Error unserializing file: ' . $filePath); return null; } @@ -212,7 +217,7 @@ public function getMetaData($entityId, $set) * @param string $set The metadata set this metadata entry belongs to. * @param array $metadata The metadata. * - * @return boolean True if successfully saved, false otherwise. + * @return bool True if successfully saved, false otherwise. */ public function saveMetadata($entityId, $set, $metadata) { @@ -221,34 +226,37 @@ public function saveMetadata($entityId, $set, $metadata) assert(is_array($metadata)); $filePath = $this->getMetadataPath($entityId, $set); - $newPath = $filePath.'.new'; + $newPath = $filePath . '.new'; $dir = dirname($filePath); if (!is_dir($dir)) { - \SimpleSAML\Logger::info('Creating directory: '.$dir); + Logger::info('Creating directory: ' . $dir); $res = @mkdir($dir, 0777, true); if ($res === false) { + /** @var array $error */ $error = error_get_last(); - \SimpleSAML\Logger::error('Failed to create directory '.$dir.': '.$error['message']); + Logger::error('Failed to create directory ' . $dir . ': ' . $error['message']); return false; } } $data = serialize($metadata); - \SimpleSAML\Logger::debug('Writing: '.$newPath); + Logger::debug('Writing: ' . $newPath); $res = file_put_contents($newPath, $data); if ($res === false) { + /** @var array $error */ $error = error_get_last(); - \SimpleSAML\Logger::error('Error saving file '.$newPath.': '.$error['message']); + Logger::error('Error saving file ' . $newPath . ': ' . $error['message']); return false; } $res = rename($newPath, $filePath); if ($res === false) { + /** @var array $error */ $error = error_get_last(); - \SimpleSAML\Logger::error('Error renaming '.$newPath.' to '.$filePath.': '.$error['message']); + Logger::error('Error renaming ' . $newPath . ' to ' . $filePath . ': ' . $error['message']); return false; } @@ -261,6 +269,7 @@ public function saveMetadata($entityId, $set, $metadata) * * @param string $entityId The entityId of the metadata entry. * @param string $set The metadata set this metadata entry belongs to. + * @return void */ public function deleteMetadata($entityId, $set) { @@ -270,20 +279,33 @@ public function deleteMetadata($entityId, $set) $filePath = $this->getMetadataPath($entityId, $set); if (!file_exists($filePath)) { - \SimpleSAML\Logger::warning( - 'Attempted to erase nonexistent metadata entry '. - var_export($entityId, true).' in set '.var_export($set, true).'.' + Logger::warning( + 'Attempted to erase nonexistent metadata entry ' . + var_export($entityId, true) . ' in set ' . var_export($set, true) . '.' ); return; } $res = unlink($filePath); if ($res === false) { + /** @var array $error */ $error = error_get_last(); - \SimpleSAML\Logger::error( - 'Failed to delete file '.$filePath. - ': '.$error['message'] + Logger::error( + 'Failed to delete file ' . $filePath . + ': ' . $error['message'] ); } } + + /** + * This function loads the metadata for entity IDs in $entityIds. It is returned as an associative array + * where the key is the entity id. An empty array may be returned if no matching entities were found + * @param array $entityIds The entity ids to load + * @param string $set The set we want to get metadata from. + * @return array An associative array with the metadata for the requested entities, if found. + */ + public function getMetaDataForEntities(array $entityIds, $set) + { + return $this->getMetaDataForEntitiesIndividually($entityIds, $set); + } } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/MetaDataStorageHandlerXML.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/MetaDataStorageHandlerXML.php index 9430781b6c1d02d2d6edbb451ec990183e8915f6..913397412fad3626c8bc8f4b05177b3d75563e5d 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/MetaDataStorageHandlerXML.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/MetaDataStorageHandlerXML.php @@ -2,6 +2,8 @@ namespace SimpleSAML\Metadata; +use SimpleSAML\Configuration; + /** * This class implements a metadata source which loads metadata from XML files. * The XML files should be in the SAML 2.0 metadata format. @@ -12,7 +14,6 @@ class MetaDataStorageHandlerXML extends MetaDataStorageSource { - /** * This variable contains an associative array with the parsed metadata. * @@ -30,14 +31,14 @@ class MetaDataStorageHandlerXML extends MetaDataStorageSource * * @param array $config The configuration for this instance of the XML metadata source. * - * @throws Exception If neither the 'file' or 'url' options are defined in the configuration. + * @throws \Exception If neither the 'file' or 'url' options are defined in the configuration. */ protected function __construct($config) { $src = $srcXml = null; if (array_key_exists('file', $config)) { // get the configuration - $globalConfig = \SimpleSAML\Configuration::getInstance(); + $globalConfig = Configuration::getInstance(); $src = $globalConfig->resolvePath($config['file']); } elseif (array_key_exists('url', $config)) { $src = $config['url']; diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/MetaDataStorageSource.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/MetaDataStorageSource.php index a08db89b96e1b35b57fb50443bac1fbd751b2f08..5ba3fd19ffba28a9a71c49f8c5d9c2ffba7254c6 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/MetaDataStorageSource.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/MetaDataStorageSource.php @@ -2,6 +2,10 @@ namespace SimpleSAML\Metadata; +use SimpleSAML\Error; +use SimpleSAML\Module; +use SimpleSAML\Utils; + /** * This abstract class defines an interface for metadata storage sources. * @@ -53,7 +57,7 @@ public static function parseSources($sourcesConfig) * * @param array $sourceConfig Associative array with the configuration for this metadata source. * - * @return mixed An instance of a metadata source with the given configuration. + * @return \SimpleSAML\Metadata\MetaDataStorageSource An instance of a metadata source with the given configuration. * * @throws \Exception If the metadata source type is invalid. */ @@ -82,17 +86,19 @@ public static function getSource($sourceConfig) default: // metadata store from module try { - $className = \SimpleSAML\Module::resolveClass( + $className = Module::resolveClass( $type, 'MetadataStore', '\SimpleSAML\Metadata\MetaDataStorageSource' ); } catch (\Exception $e) { - throw new \SimpleSAML\Error\CriticalConfigurationError( + throw new Error\CriticalConfigurationError( "Invalid 'type' for metadata source. Cannot find store '$type'.", null ); } + + /** @var \SimpleSAML\Metadata\MetaDataStorageSource */ return new $className($sourceConfig); } } @@ -133,6 +139,7 @@ public function getEntityIdFromHostPath($hostPath, $set, $type = 'entityid') { $metadataSet = $this->getMetadataSet($set); + /** @psalm-suppress DocblockTypeContradiction */ if ($metadataSet === null) { // this metadata source does not have this metadata set return null; @@ -167,12 +174,11 @@ public function getEntityIdFromHostPath($hostPath, $set, $type = 'entityid') * @param string $ip IP address * @param string $type Do you want to return the metaindex or the entityID. [entityid|metaindex] * - * @return string The entity id of a entity which have a CIDR hint where the provided + * @return string|null The entity id of a entity which have a CIDR hint where the provided * IP address match. */ public function getPreferredEntityIdFromCIDRhint($set, $ip, $type = 'entityid') { - $metadataSet = $this->getMetadataSet($set); foreach ($metadataSet as $index => $entry) { @@ -184,9 +190,11 @@ public function getPreferredEntityIdFromCIDRhint($set, $ip, $type = 'entityid') } // support discohints in idp metadata for idp discovery - if (array_key_exists('DiscoHints', $entry) + if ( + array_key_exists('DiscoHints', $entry) && array_key_exists('IPHint', $entry['DiscoHints']) - && is_array($entry['DiscoHints']['IPHint'])) { + && is_array($entry['DiscoHints']['IPHint']) + ) { // merge with hints derived from discohints, but prioritize hint.cidr in case it is used $cidrHints = array_merge($entry['DiscoHints']['IPHint'], $cidrHints); } @@ -196,7 +204,7 @@ public function getPreferredEntityIdFromCIDRhint($set, $ip, $type = 'entityid') } foreach ($cidrHints as $hint_entry) { - if (\SimpleSAML\Utils\Net::ipCIDRcheck($hint_entry, $ip)) { + if (Utils\Net::ipCIDRcheck($hint_entry, $ip)) { if ($type === 'entityid') { return $entry['entityid']; } else { @@ -241,6 +249,44 @@ public function getMetaData($index, $set) return null; } + /** + * This function loads the metadata for entity IDs in $entityIds. It is returned as an associative array + * where the key is the entity id. An empty array may be returned if no matching entities were found. + * Subclasses should override if their getMetadataSet returns nothing or is slow. Subclasses may want to + * delegate to getMetaDataForEntitiesIndividually if loading entities one at a time is faster. + * @param array $entityIds The entity ids to load + * @param string $set The set we want to get metadata from. + * @return array An associative array with the metadata for the requested entities, if found. + */ + public function getMetaDataForEntities(array $entityIds, $set) + { + if (count($entityIds) === 1) { + return $this->getMetaDataForEntitiesIndividually($entityIds, $set); + } + $entities = $this->getMetadataSet($set); + return array_intersect_key($entities, array_flip($entityIds)); + } + + /** + * Loads metadata entities one at a time, rather than the default implementation of loading all entities + * and filtering. + * @see MetaDataStorageSource::getMetaDataForEntities() + * @param array $entityIds The entity ids to load + * @param string $set The set we want to get metadata from. + * @return array An associative array with the metadata for the requested entities, if found. + */ + protected function getMetaDataForEntitiesIndividually(array $entityIds, $set) + { + $entities = []; + foreach ($entityIds as $entityId) { + $metadata = $this->getMetaData($entityId, $set); + if ($metadata !== null) { + $entities[$entityId] = $metadata; + } + } + return $entities; + } + /** * This method returns the full metadata set for a given entity id or null if the entity id cannot be found * in the given metadata set. @@ -255,7 +301,7 @@ protected function lookupIndexFromEntityId($entityId, array $metadataSet) assert(is_array($metadataSet)); // check for hostname - $currentHost = \SimpleSAML\Utils\HTTP::getSelfHost(); // sp.example.org + $currentHost = Utils\HTTP::getSelfHost(); // sp.example.org foreach ($metadataSet as $index => $entry) { // explicit index match @@ -283,28 +329,20 @@ private function getDynamicHostedUrl($set) assert(is_string($set)); // get the configuration - $baseUrl = \SimpleSAML\Utils\HTTP::getBaseURL(); + $baseUrl = Utils\HTTP::getBaseURL(); if ($set === 'saml20-idp-hosted') { - return $baseUrl.'saml2/idp/metadata.php'; - } - else if ($set === 'saml20-sp-hosted') { - return $baseUrl.'saml2/sp/metadata.php'; - } - else if ($set === 'shib13-idp-hosted') { - return $baseUrl.'shib13/idp/metadata.php'; - } - else if ($set === 'shib13-sp-hosted') { - return $baseUrl.'shib13/sp/metadata.php'; - } - else if ($set === 'wsfed-sp-hosted') { - return 'urn:federation:'.\SimpleSAML\Utils\HTTP::getSelfHost(); - } - else if ($set === 'adfs-idp-hosted') { - return 'urn:federation:'.\SimpleSAML\Utils\HTTP::getSelfHost().':idp'; - } - else { - throw new \Exception('Can not generate dynamic EntityID for metadata of this type: ['.$set.']'); + return $baseUrl . 'saml2/idp/metadata.php'; + } elseif ($set === 'saml20-sp-hosted') { + return $baseUrl . 'saml2/sp/metadata.php'; + } elseif ($set === 'shib13-idp-hosted') { + return $baseUrl . 'shib13/idp/metadata.php'; + } elseif ($set === 'shib13-sp-hosted') { + return $baseUrl . 'shib13/sp/metadata.php'; + } elseif ($set === 'adfs-idp-hosted') { + return 'urn:federation:' . Utils\HTTP::getSelfHost() . ':idp'; + } else { + throw new \Exception('Can not generate dynamic EntityID for metadata of this type: [' . $set . ']'); } } @@ -316,9 +354,8 @@ private function getDynamicHostedUrl($set) * @param string $metadataSet a metadata set (saml20-idp-hosted, saml20-sp-remote, etc) * @param string $entityId the entity id we are modifying * @param array $metadataEntry the fully populated metadata entry + * @return array modified metadata to include the valid entityid * - * @return array An associative array with metadata for the given entity, or NULL if we are unable to - * locate the entity. * @throws \Exception */ protected function updateEntityID($metadataSet, $entityId, array $metadataEntry) @@ -332,9 +369,8 @@ protected function updateEntityID($metadataSet, $entityId, array $metadataEntry) // generate a dynamic hosted url if (preg_match('/__DYNAMIC(:[0-9]+)?__/', $entityId)) { $modifiedMetadataEntry['entityid'] = $this->getDynamicHostedUrl($metadataSet); - } - // set the entityid metadata array key to the provided entity id - else { + } else { + // set the entityid metadata array key to the provided entity id $modifiedMetadataEntry['entityid'] = $entityId; } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/SAMLBuilder.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/SAMLBuilder.php index 929cb5ebf0678bda483963630dde401a4e2f48c2..0752591bebfa117a5f34a071082e58966696e0e7 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/SAMLBuilder.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/SAMLBuilder.php @@ -2,6 +2,31 @@ namespace SimpleSAML\Metadata; +use SAML2\Constants; +use SAML2\XML\md\AttributeAuthorityDescriptor; +use SAML2\XML\md\AttributeConsumingService; +use SAML2\XML\md\EndpointType; +use SAML2\XML\md\EntityDescriptor; +use SAML2\XML\md\IDPSSODescriptor; +use SAML2\XML\md\IndexedEndpointType; +use SAML2\XML\md\Organization; +use SAML2\XML\md\RequestedAttribute; +use SAML2\XML\md\RoleDescriptor; +use SAML2\XML\md\SPSSODescriptor; +use SAML2\XML\mdattr\EntityAttributes; +use SAML2\XML\mdrpi\RegistrationInfo; +use SAML2\XML\mdui\DiscoHints; +use SAML2\XML\mdui\Keywords; +use SAML2\XML\mdui\Logo; +use SAML2\XML\mdui\UIInfo; +use SAML2\XML\saml\Attribute; +use SAML2\XML\saml\AttributeValue; +use SAML2\XML\shibmd\Scope; +use SimpleSAML\Configuration; +use SimpleSAML\Logger; +use SimpleSAML\Module\adfs\SAML2\XML\fed\SecurityTokenServiceType; +use SimpleSAML\Utils; + /** * Class for generating SAML 2.0 metadata from SimpleSAMLphp metadata arrays. * @@ -40,9 +65,10 @@ class SAMLBuilder * Initialize the SAML builder. * * @param string $entityId The entity id of the entity. - * @param double|null $maxCache The maximum time in seconds the metadata should be cached. Defaults to null - * @param double|null $maxDuration The maximum time in seconds this metadata should be considered valid. Defaults + * @param int|null $maxCache The maximum time in seconds the metadata should be cached. Defaults to null + * @param int|null $maxDuration The maximum time in seconds this metadata should be considered valid. Defaults * to null. + * @return void */ public function __construct($entityId, $maxCache = null, $maxDuration = null) { @@ -51,11 +77,15 @@ public function __construct($entityId, $maxCache = null, $maxDuration = null) $this->maxCache = $maxCache; $this->maxDuration = $maxDuration; - $this->entityDescriptor = new \SAML2\XML\md\EntityDescriptor(); + $this->entityDescriptor = new EntityDescriptor(); $this->entityDescriptor->setEntityID($entityId); } + /** + * @param array $metadata + * @return void + */ private function setExpiration($metadata) { if (array_key_exists('expire', $metadata)) { @@ -65,7 +95,7 @@ private function setExpiration($metadata) } if ($this->maxCache !== null) { - $this->entityDescriptor->setCacheDuration('PT'.$this->maxCache.'S'); + $this->entityDescriptor->setCacheDuration('PT' . $this->maxCache . 'S'); } if ($this->maxDuration !== null) { $this->entityDescriptor->setValidUntil(time() + $this->maxDuration); @@ -102,7 +132,7 @@ public function getEntityDescriptorText($formatted = true) $xml = $this->getEntityDescriptor(); if ($formatted) { - \SimpleSAML\Utils\XML::formatDOMElement($xml); + Utils\XML::formatDOMElement($xml); } return $xml->ownerDocument->saveXML(); @@ -113,6 +143,7 @@ public function getEntityDescriptorText($formatted = true) * Add a SecurityTokenServiceType for ADFS metadata. * * @param array $metadata The metadata with the information about the SecurityTokenServiceType. + * @return void */ public function addSecurityTokenServiceType($metadata) { @@ -120,9 +151,9 @@ public function addSecurityTokenServiceType($metadata) assert(isset($metadata['entityid'])); assert(isset($metadata['metadata-set'])); - $metadata = \SimpleSAML\Configuration::loadFromArray($metadata, $metadata['entityid']); + $metadata = Configuration::loadFromArray($metadata, $metadata['entityid']); $defaultEndpoint = $metadata->getDefaultEndpoint('SingleSignOnService'); - $e = new \SimpleSAML\Module\adfs\SAML2\XML\fed\SecurityTokenServiceType(); + $e = new SecurityTokenServiceType(); $e->setLocation($defaultEndpoint['Location']); $this->addCertificate($e, $metadata); @@ -136,30 +167,31 @@ public function addSecurityTokenServiceType($metadata) * * @param \SimpleSAML\Configuration $metadata The metadata to get extensions from. * @param \SAML2\XML\md\RoleDescriptor $e Reference to the element where the Extensions element should be included. + * @return void */ - private function addExtensions(\SimpleSAML\Configuration $metadata, \SAML2\XML\md\RoleDescriptor $e) + private function addExtensions(Configuration $metadata, RoleDescriptor $e) { if ($metadata->hasValue('tags')) { - $a = new \SAML2\XML\saml\Attribute(); + $a = new Attribute(); $a->setName('tags'); foreach ($metadata->getArray('tags') as $tag) { - $a->addAttributeValue(new \SAML2\XML\saml\AttributeValue($tag)); + $a->addAttributeValue(new AttributeValue($tag)); } $e->setExtensions(array_merge($e->getExtensions(), [$a])); } if ($metadata->hasValue('hint.cidr')) { - $a = new \SAML2\XML\saml\Attribute(); + $a = new Attribute(); $a->setName('hint.cidr'); foreach ($metadata->getArray('hint.cidr') as $hint) { - $a->addAttributeValue(new \SAML2\XML\saml\AttributeValue($hint)); + $a->addAttributeValue(new AttributeValue($hint)); } $e->setExtensions(array_merge($e->getExtensions(), [$a])); } if ($metadata->hasValue('scope')) { foreach ($metadata->getArray('scope') as $scopetext) { - $s = new \SAML2\XML\shibmd\Scope(); + $s = new Scope(); $s->setScope($scopetext); // Check whether $ ^ ( ) * | \ are in a scope -> assume regex. if (1 === preg_match('/[\$\^\)\(\*\|\\\\]/', $scopetext)) { @@ -172,9 +204,9 @@ private function addExtensions(\SimpleSAML\Configuration $metadata, \SAML2\XML\m } if ($metadata->hasValue('EntityAttributes')) { - $ea = new \SAML2\XML\mdattr\EntityAttributes(); + $ea = new EntityAttributes(); foreach ($metadata->getArray('EntityAttributes') as $attributeName => $attributeValues) { - $a = new \SAML2\XML\saml\Attribute(); + $a = new Attribute(); $a->setName($attributeName); $a->setNameFormat('urn:oasis:names:tc:SAML:2.0:attrname-format:uri'); @@ -182,12 +214,12 @@ private function addExtensions(\SimpleSAML\Configuration $metadata, \SAML2\XML\m if (preg_match('/^\{(.*?)\}(.*)$/', $attributeName, $matches)) { $a->setName($matches[2]); $nameFormat = $matches[1]; - if ($nameFormat !== \SAML2\Constants::NAMEFORMAT_UNSPECIFIED) { + if ($nameFormat !== Constants::NAMEFORMAT_UNSPECIFIED) { $a->setNameFormat($nameFormat); } } foreach ($attributeValues as $attributeValue) { - $a->addAttributeValue(new \SAML2\XML\saml\AttributeValue($attributeValue)); + $a->addAttributeValue(new AttributeValue($attributeValue)); } $ea->addChildren($a); } @@ -197,7 +229,7 @@ private function addExtensions(\SimpleSAML\Configuration $metadata, \SAML2\XML\m } if ($metadata->hasValue('RegistrationInfo')) { - $ri = new \SAML2\XML\mdrpi\RegistrationInfo(); + $ri = new RegistrationInfo(); foreach ($metadata->getArray('RegistrationInfo') as $riName => $riValues) { switch ($riName) { case 'authority': @@ -217,7 +249,7 @@ private function addExtensions(\SimpleSAML\Configuration $metadata, \SAML2\XML\m } if ($metadata->hasValue('UIInfo')) { - $ui = new \SAML2\XML\mdui\UIInfo(); + $ui = new UIInfo(); foreach ($metadata->getArray('UIInfo') as $uiName => $uiValues) { switch ($uiName) { case 'DisplayName': @@ -234,7 +266,7 @@ private function addExtensions(\SimpleSAML\Configuration $metadata, \SAML2\XML\m break; case 'Keywords': foreach ($uiValues as $lang => $keywords) { - $uiItem = new \SAML2\XML\mdui\Keywords(); + $uiItem = new Keywords(); $uiItem->setLanguage($lang); $uiItem->setKeywords($keywords); $ui->addKeyword($uiItem); @@ -242,7 +274,7 @@ private function addExtensions(\SimpleSAML\Configuration $metadata, \SAML2\XML\m break; case 'Logo': foreach ($uiValues as $logo) { - $uiItem = new \SAML2\XML\mdui\Logo(); + $uiItem = new Logo(); $uiItem->setUrl($logo['url']); $uiItem->setWidth($logo['width']); $uiItem->setHeight($logo['height']); @@ -258,7 +290,7 @@ private function addExtensions(\SimpleSAML\Configuration $metadata, \SAML2\XML\m } if ($metadata->hasValue('DiscoHints')) { - $dh = new \SAML2\XML\mdui\DiscoHints(); + $dh = new DiscoHints(); foreach ($metadata->getArray('DiscoHints') as $dhName => $dhValues) { switch ($dhName) { case 'IPHint': @@ -283,10 +315,11 @@ private function addExtensions(\SimpleSAML\Configuration $metadata, \SAML2\XML\m * @param array $orgName An array with the localized OrganizationName. * @param array $orgDisplayName An array with the localized OrganizationDisplayName. * @param array $orgURL An array with the localized OrganizationURL. + * @return void */ public function addOrganization(array $orgName, array $orgDisplayName, array $orgURL) { - $org = new \SAML2\XML\md\Organization(); + $org = new Organization(); $org->setOrganizationName($orgName); $org->setOrganizationDisplayName($orgDisplayName); @@ -300,10 +333,12 @@ public function addOrganization(array $orgName, array $orgDisplayName, array $or * Add an Organization element based on metadata array. * * @param array $metadata The metadata we should extract the organization information from. + * @return void */ public function addOrganizationInfo(array $metadata) { - if (empty($metadata['OrganizationName']) || + if ( + empty($metadata['OrganizationName']) || empty($metadata['OrganizationDisplayName']) || empty($metadata['OrganizationURL']) ) { @@ -311,9 +346,9 @@ public function addOrganizationInfo(array $metadata) return; } - $orgName = \SimpleSAML\Utils\Arrays::arrayize($metadata['OrganizationName'], 'en'); - $orgDisplayName = \SimpleSAML\Utils\Arrays::arrayize($metadata['OrganizationDisplayName'], 'en'); - $orgURL = \SimpleSAML\Utils\Arrays::arrayize($metadata['OrganizationURL'], 'en'); + $orgName = Utils\Arrays::arrayize($metadata['OrganizationName'], 'en'); + $orgDisplayName = Utils\Arrays::arrayize($metadata['OrganizationDisplayName'], 'en'); + $orgURL = Utils\Arrays::arrayize($metadata['OrganizationURL'], 'en'); $this->addOrganization($orgName, $orgDisplayName, $orgURL); } @@ -336,25 +371,7 @@ private static function createEndpoints(array $endpoints, $indexed) foreach ($endpoints as &$ep) { if ($indexed) { - $t = new \SAML2\XML\md\IndexedEndpointType(); - } else { - $t = new \SAML2\XML\md\EndpointType(); - } - - $t->setBinding($ep['Binding']); - $t->setLocation($ep['Location']); - if (isset($ep['ResponseLocation'])) { - $t->setResponseLocation($ep['ResponseLocation']); - } - if (isset($ep['hoksso:ProtocolBinding'])) { - $t->setAttributeNS( - \SAML2\Constants::NS_HOK, - 'hoksso:ProtocolBinding', - \SAML2\Constants::BINDING_HTTP_REDIRECT - ); - } - - if ($indexed) { + $t = new IndexedEndpointType(); if (!isset($ep['index'])) { // Find the maximum index $maxIndex = -1; @@ -372,6 +389,21 @@ private static function createEndpoints(array $endpoints, $indexed) } $t->setIndex($ep['index']); + } else { + $t = new EndpointType(); + } + + $t->setBinding($ep['Binding']); + $t->setLocation($ep['Location']); + if (isset($ep['ResponseLocation'])) { + $t->setResponseLocation($ep['ResponseLocation']); + } + if (isset($ep['hoksso:ProtocolBinding'])) { + $t->setAttributeNS( + Constants::NS_HOK, + 'hoksso:ProtocolBinding', + Constants::BINDING_HTTP_REDIRECT + ); } $ret[] = $t; @@ -386,10 +418,11 @@ private static function createEndpoints(array $endpoints, $indexed) * * @param \SAML2\XML\md\SPSSODescriptor $spDesc The SPSSODescriptor element. * @param \SimpleSAML\Configuration $metadata The metadata. + * @return void */ private function addAttributeConsumingService( - \SAML2\XML\md\SPSSODescriptor $spDesc, - \SimpleSAML\Configuration $metadata + SPSSODescriptor $spDesc, + Configuration $metadata ) { $attributes = $metadata->getArray('attributes', []); $name = $metadata->getLocalizedString('name', null); @@ -405,7 +438,7 @@ private function addAttributeConsumingService( * Add an AttributeConsumingService element with information as name and description and list * of requested attributes */ - $attributeconsumer = new \SAML2\XML\md\AttributeConsumingService(); + $attributeconsumer = new AttributeConsumingService(); $attributeconsumer->setIndex($metadata->getInteger('attributes.index', 0)); @@ -416,14 +449,14 @@ private function addAttributeConsumingService( $attributeconsumer->setServiceName($name); $attributeconsumer->setServiceDescription($metadata->getLocalizedString('description', [])); - $nameFormat = $metadata->getString('attributes.NameFormat', \SAML2\Constants::NAMEFORMAT_UNSPECIFIED); + $nameFormat = $metadata->getString('attributes.NameFormat', Constants::NAMEFORMAT_UNSPECIFIED); foreach ($attributes as $friendlyName => $attribute) { - $t = new \SAML2\XML\md\RequestedAttribute(); + $t = new RequestedAttribute(); $t->setName($attribute); if (!is_int($friendlyName)) { $t->setFriendlyName($friendlyName); } - if ($nameFormat !== \SAML2\Constants::NAMEFORMAT_UNSPECIFIED) { + if ($nameFormat !== Constants::NAMEFORMAT_UNSPECIFIED) { $t->setNameFormat($nameFormat); } if (in_array($attribute, $attributesrequired, true)) { @@ -441,6 +474,7 @@ private function addAttributeConsumingService( * * @param string $set The metadata set this metadata comes from. * @param array $metadata The metadata. + * @return void */ public function addMetadata($set, $metadata) { @@ -466,7 +500,7 @@ public function addMetadata($set, $metadata) $this->addAttributeAuthority($metadata); break; default: - \SimpleSAML\Logger::warning('Unable to generate metadata for unknown type \''.$set.'\'.'); + Logger::warning('Unable to generate metadata for unknown type \'' . $set . '\'.'); } } @@ -476,17 +510,18 @@ public function addMetadata($set, $metadata) * * @param array $metadata The metadata. * @param array $protocols The protocols supported. Defaults to \SAML2\Constants::NS_SAMLP. + * @return void */ - public function addMetadataSP20($metadata, $protocols = [\SAML2\Constants::NS_SAMLP]) + public function addMetadataSP20($metadata, $protocols = [Constants::NS_SAMLP]) { assert(is_array($metadata)); assert(is_array($protocols)); assert(isset($metadata['entityid'])); assert(isset($metadata['metadata-set'])); - $metadata = \SimpleSAML\Configuration::loadFromArray($metadata, $metadata['entityid']); + $metadata = Configuration::loadFromArray($metadata, $metadata['entityid']); - $e = new \SAML2\XML\md\SPSSODescriptor(); + $e = new SPSSODescriptor(); $e->setProtocolSupportEnumeration($protocols); if ($metadata->hasValue('saml20.sign.assertion')) { @@ -510,7 +545,7 @@ public function addMetadataSP20($metadata, $protocols = [\SAML2\Constants::NS_SA $endpoints = $metadata->getEndpoints('AssertionConsumerService'); foreach ($metadata->getArrayizeString('AssertionConsumerService.artifact', []) as $acs) { $endpoints[] = [ - 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact', + 'Binding' => Constants::BINDING_HTTP_ARTIFACT, 'Location' => $acs, ]; } @@ -522,7 +557,7 @@ public function addMetadataSP20($metadata, $protocols = [\SAML2\Constants::NS_SA foreach ($metadata->getArray('contacts', []) as $contact) { if (array_key_exists('contactType', $contact) && array_key_exists('emailAddress', $contact)) { - $this->addContact($contact['contactType'], \SimpleSAML\Utils\Config\Metadata::getContact($contact)); + $this->addContact($contact['contactType'], Utils\Config\Metadata::getContact($contact)); } } } @@ -532,6 +567,7 @@ public function addMetadataSP20($metadata, $protocols = [\SAML2\Constants::NS_SA * Add metadata of a SAML 2.0 identity provider. * * @param array $metadata The metadata. + * @return void */ public function addMetadataIdP20($metadata) { @@ -539,10 +575,10 @@ public function addMetadataIdP20($metadata) assert(isset($metadata['entityid'])); assert(isset($metadata['metadata-set'])); - $metadata = \SimpleSAML\Configuration::loadFromArray($metadata, $metadata['entityid']); + $metadata = Configuration::loadFromArray($metadata, $metadata['entityid']); - $e = new \SAML2\XML\md\IDPSSODescriptor(); - $e->setProtocolSupportEnumeration(array_merge($e->getProtocolSupportEnumeration(), ['urn:oasis:names:tc:SAML:2.0:protocol'])); + $e = new IDPSSODescriptor(); + $e->setProtocolSupportEnumeration(array_merge($e->getProtocolSupportEnumeration(), [Constants::NS_SAMLP])); if ($metadata->hasValue('sign.authnrequest')) { $e->setWantAuthnRequestsSigned($metadata->getBoolean('sign.authnrequest')); @@ -571,7 +607,7 @@ public function addMetadataIdP20($metadata) foreach ($metadata->getArray('contacts', []) as $contact) { if (array_key_exists('contactType', $contact) && array_key_exists('emailAddress', $contact)) { - $this->addContact($contact['contactType'], \SimpleSAML\Utils\Config\Metadata::getContact($contact)); + $this->addContact($contact['contactType'], Utils\Config\Metadata::getContact($contact)); } } } @@ -581,6 +617,7 @@ public function addMetadataIdP20($metadata) * Add metadata of a SAML 1.1 service provider. * * @param array $metadata The metadata. + * @return void */ public function addMetadataSP11($metadata) { @@ -588,13 +625,15 @@ public function addMetadataSP11($metadata) assert(isset($metadata['entityid'])); assert(isset($metadata['metadata-set'])); - $metadata = \SimpleSAML\Configuration::loadFromArray($metadata, $metadata['entityid']); + $metadata = Configuration::loadFromArray($metadata, $metadata['entityid']); - $e = new \SAML2\XML\md\SPSSODescriptor(); - $e->setProtocolSupportEnumeration(array_merge( + $e = new SPSSODescriptor(); + $e->setProtocolSupportEnumeration( + array_merge( $e->getProtocolSupportEnumeration(), ['urn:oasis:names:tc:SAML:1.1:protocol'] - )); + ) + ); $this->addCertificate($e, $metadata); @@ -619,6 +658,7 @@ public function addMetadataSP11($metadata) * Add metadata of a SAML 1.1 identity provider. * * @param array $metadata The metadata. + * @return void */ public function addMetadataIdP11($metadata) { @@ -626,9 +666,9 @@ public function addMetadataIdP11($metadata) assert(isset($metadata['entityid'])); assert(isset($metadata['metadata-set'])); - $metadata = \SimpleSAML\Configuration::loadFromArray($metadata, $metadata['entityid']); + $metadata = Configuration::loadFromArray($metadata, $metadata['entityid']); - $e = new \SAML2\XML\md\IDPSSODescriptor(); + $e = new IDPSSODescriptor(); $e->setProtocolSupportEnumeration( array_merge($e->getProtocolSupportEnumeration(), [ 'urn:oasis:names:tc:SAML:1.1:protocol', @@ -651,6 +691,7 @@ public function addMetadataIdP11($metadata) * * @param array $metadata The AttributeAuthorityDescriptor, in the format returned by * \SimpleSAML\Metadata\SAMLParser. + * @return void */ public function addAttributeAuthority(array $metadata) { @@ -658,10 +699,10 @@ public function addAttributeAuthority(array $metadata) assert(isset($metadata['entityid'])); assert(isset($metadata['metadata-set'])); - $metadata = \SimpleSAML\Configuration::loadFromArray($metadata, $metadata['entityid']); + $metadata = Configuration::loadFromArray($metadata, $metadata['entityid']); - $e = new \SAML2\XML\md\AttributeAuthorityDescriptor(); - $e->setProtocolSupportEnumeration($metadata->getArray('protocols', [\SAML2\Constants::NS_SAMLP])); + $e = new AttributeAuthorityDescriptor(); + $e->setProtocolSupportEnumeration($metadata->getArray('protocols', [Constants::NS_SAMLP])); $this->addExtensions($metadata, $e); $this->addCertificate($e, $metadata); @@ -688,6 +729,7 @@ public function addAttributeAuthority(array $metadata) * @param string $type The type of contact. Deprecated. * @param array $details The details about the contact. * + * @return void * @todo Change the signature to remove $type. * @todo Remove the capability to pass a name and parse it inside the method. */ @@ -698,7 +740,7 @@ public function addContact($type, $details) assert(in_array($type, ['technical', 'support', 'administrative', 'billing', 'other'], true)); // TODO: remove this check as soon as getContact() is called always before calling this function - $details = \SimpleSAML\Utils\Config\Metadata::getContact($details); + $details = Utils\Config\Metadata::getContact($details); $e = new \SAML2\XML\md\ContactPerson(); $e->setContactType($type); @@ -747,8 +789,9 @@ public function addContact($type, $details) * @param \SAML2\XML\md\RoleDescriptor $rd The RoleDescriptor the certificate should be added to. * @param string $use The value of the 'use' attribute. * @param string $x509data The certificate data. + * @return void */ - private function addX509KeyDescriptor(\SAML2\XML\md\RoleDescriptor $rd, $use, $x509data) + private function addX509KeyDescriptor(RoleDescriptor $rd, $use, $x509data) { assert(in_array($use, ['encryption', 'signing'], true)); assert(is_string($x509data)); @@ -766,8 +809,9 @@ private function addX509KeyDescriptor(\SAML2\XML\md\RoleDescriptor $rd, $use, $x * * @param \SAML2\XML\md\RoleDescriptor $rd The RoleDescriptor the certificate should be added to. * @param \SimpleSAML\Configuration $metadata The metadata of the entity. + * @return void */ - private function addCertificate(\SAML2\XML\md\RoleDescriptor $rd, \SimpleSAML\Configuration $metadata) + private function addCertificate(RoleDescriptor $rd, Configuration $metadata) { $keys = $metadata->getPublicKeys(); foreach ($keys as $key) { diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/SAMLParser.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/SAMLParser.php index cfced57c9e62d32801314b91977fa2c805b9a284..2c8fb8fb9debf002256cd3e58930faf26f4cbdc7 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/SAMLParser.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/SAMLParser.php @@ -2,7 +2,37 @@ namespace SimpleSAML\Metadata; +use DOMDocument; +use RobRichards\XMLSecLibs\XMLSecurityDSig; use RobRichards\XMLSecLibs\XMLSecurityKey; +use SAML2\Constants; +use SAML2\DOMDocumentFactory; +use SAML2\XML\Chunk; +use SAML2\XML\ds\X509Certificate; +use SAML2\XML\ds\X509Data; +use SAML2\XML\md\AttributeAuthorityDescriptor; +use SAML2\XML\md\AttributeConsumingService; +use SAML2\XML\md\ContactPerson; +use SAML2\XML\md\EndpointType; +use SAML2\XML\md\EntityDescriptor; +use SAML2\XML\md\EntitiesDescriptor; +use SAML2\XML\md\IDPSSODescriptor; +use SAML2\XML\md\IndexedEndpointType; +use SAML2\XML\md\KeyDescriptor; +use SAML2\XML\md\Organization; +use SAML2\XML\md\RoleDescriptor; +use SAML2\XML\md\SPSSODescriptor; +use SAML2\XML\md\SSODescriptorType; +use SAML2\XML\mdattr\EntityAttributes; +use SAML2\XML\mdrpi\RegistrationInfo; +use SAML2\XML\mdui\DiscoHints; +use SAML2\XML\mdui\Keywords; +use SAML2\XML\mdui\Logo; +use SAML2\XML\mdui\UIInfo; +use SAML2\XML\saml\Attribute; +use SAML2\XML\shibmd\Scope; +use SimpleSAML\Logger; +use SimpleSAML\Utils; /** * This is class for parsing of SAML 1.x and SAML 2.0 metadata. @@ -34,7 +64,7 @@ class SAMLParser * @var string[] */ private static $SAML20Protocols = [ - 'urn:oasis:names:tc:SAML:2.0:protocol', + Constants::NS_SAMLP, ]; /** @@ -141,6 +171,7 @@ class SAMLParser */ private $entityDescriptor; + /** * This is the constructor for the SAMLParser class. * @@ -151,7 +182,7 @@ class SAMLParser * @param array $parentExtensions An optional array of extensions from the parent element. */ private function __construct( - \SAML2\XML\md\EntityDescriptor $entityElement, + EntityDescriptor $entityElement, $maxExpireTime, array $validators = [], array $parentExtensions = [] @@ -180,17 +211,18 @@ private function __construct( // look over the RoleDescriptors foreach ($entityElement->getRoleDescriptor() as $child) { - if ($child instanceof \SAML2\XML\md\SPSSODescriptor) { + if ($child instanceof SPSSODescriptor) { $this->processSPSSODescriptor($child, $expireTime); - } elseif ($child instanceof \SAML2\XML\md\IDPSSODescriptor) { + } elseif ($child instanceof IDPSSODescriptor) { $this->processIDPSSODescriptor($child, $expireTime); - } elseif ($child instanceof \SAML2\XML\md\AttributeAuthorityDescriptor) { + } elseif ($child instanceof AttributeAuthorityDescriptor) { $this->processAttributeAuthorityDescriptor($child, $expireTime); } } - if ($entityElement->getOrganization() !== null) { - $this->processOrganization($entityElement->getOrganization()); + $organization = $entityElement->getOrganization(); + if ($organization !== null) { + $this->processOrganization($organization); } if ($entityElement->getContactPerson() !== []) { @@ -207,16 +239,17 @@ private function __construct( * @param string $file The path to the file which contains the metadata. * * @return SAMLParser An instance of this class with the metadata loaded. - * @throws Exception If the file does not parse as XML. + * @throws \Exception If the file does not parse as XML. */ public static function parseFile($file) { - $data = \SimpleSAML\Utils\HTTP::fetch($file); + /** @var string $data */ + $data = Utils\HTTP::fetch($file); try { - $doc = \SAML2\DOMDocumentFactory::fromString($data); + $doc = DOMDocumentFactory::fromString($data); } catch (\Exception $e) { - throw new \Exception('Failed to read XML from file: '.$file); + throw new \Exception('Failed to read XML from file: ' . $file); } return self::parseDocument($doc); @@ -229,12 +262,12 @@ public static function parseFile($file) * @param string $metadata A string which contains XML encoded metadata. * * @return SAMLParser An instance of this class with the metadata loaded. - * @throws Exception If the string does not parse as XML. + * @throws \Exception If the string does not parse as XML. */ public static function parseString($metadata) { try { - $doc = \SAML2\DOMDocumentFactory::fromString($metadata); + $doc = DOMDocumentFactory::fromString($metadata); } catch (\Exception $e) { throw new \Exception('Failed to parse XML string.'); } @@ -252,7 +285,7 @@ public static function parseString($metadata) */ public static function parseDocument($document) { - assert($document instanceof \DOMDocument); + assert($document instanceof DOMDocument); $entityElement = self::findEntityDescriptor($document); @@ -270,7 +303,7 @@ public static function parseDocument($document) */ public static function parseElement($entityElement) { - assert($entityElement instanceof \SAML2\XML\md\EntityDescriptor); + assert($entityElement instanceof EntityDescriptor); return new SAMLParser($entityElement, null, []); } @@ -281,7 +314,7 @@ public static function parseElement($entityElement) * the file contains a single EntityDescriptorElement, then the array will contain a single SAMLParser * instance. * - * @param string $file The path to the file which contains the EntityDescriptor or EntitiesDescriptor element. + * @param string|null $file The path to the file which contains the EntityDescriptor or EntitiesDescriptor element. * * @return SAMLParser[] An array of SAMLParser instances. * @throws \Exception If the file does not parse as XML. @@ -292,16 +325,13 @@ public static function parseDescriptorsFile($file) throw new \Exception('Cannot open file NULL. File name not specified.'); } - $data = \SimpleSAML\Utils\HTTP::fetch($file); + /** @var string $data */ + $data = Utils\HTTP::fetch($file); try { - $doc = \SAML2\DOMDocumentFactory::fromString($data); + $doc = DOMDocumentFactory::fromString($data); } catch (\Exception $e) { - throw new \Exception('Failed to read XML from file: '.$file); - } - - if ($doc->documentElement === null) { - throw new \Exception('Opened file is not an XML document: '.$file); + throw new \Exception('Failed to read XML from file: ' . $file); } return self::parseDescriptorsElement($doc->documentElement); @@ -322,7 +352,7 @@ public static function parseDescriptorsFile($file) public static function parseDescriptorsString($string) { try { - $doc = \SAML2\DOMDocumentFactory::fromString($string); + $doc = DOMDocumentFactory::fromString($string); } catch (\Exception $e) { throw new \Exception('Failed to parse XML string.'); } @@ -348,12 +378,12 @@ public static function parseDescriptorsElement(\DOMElement $element = null) throw new \Exception('Document was empty.'); } - if (\SimpleSAML\Utils\XML::isDOMNodeOfType($element, 'EntityDescriptor', '@md') === true) { - return self::processDescriptorsElement(new \SAML2\XML\md\EntityDescriptor($element)); - } elseif (\SimpleSAML\Utils\XML::isDOMNodeOfType($element, 'EntitiesDescriptor', '@md') === true) { - return self::processDescriptorsElement(new \SAML2\XML\md\EntitiesDescriptor($element)); + if (Utils\XML::isDOMNodeOfType($element, 'EntityDescriptor', '@md') === true) { + return self::processDescriptorsElement(new EntityDescriptor($element)); + } elseif (Utils\XML::isDOMNodeOfType($element, 'EntitiesDescriptor', '@md') === true) { + return self::processDescriptorsElement(new EntitiesDescriptor($element)); } else { - throw new \Exception('Unexpected root node: ['.$element->namespaceURI.']:'.$element->localName); + throw new \Exception('Unexpected root node: [' . $element->namespaceURI . ']:' . $element->localName); } } @@ -361,12 +391,9 @@ public static function parseDescriptorsElement(\DOMElement $element = null) /** * * @param \SAML2\XML\md\EntityDescriptor|\SAML2\XML\md\EntitiesDescriptor $element The element we should process. - * @param int|NULL $maxExpireTime The maximum expiration time - * of the entities. - * @param array $validators The parent-elements that may be - * signed. - * @param array $parentExtensions An optional array of - * extensions from the parent element. + * @param int|NULL $maxExpireTime The maximum expiration time of the entities. + * @param array $validators The parent-elements that may be signed. + * @param array $parentExtensions An optional array of extensions from the parent element. * * @return SAMLParser[] Array of SAMLParser instances. */ @@ -378,14 +405,14 @@ private static function processDescriptorsElement( ) { assert($maxExpireTime === null || is_int($maxExpireTime)); - if ($element instanceof \SAML2\XML\md\EntityDescriptor) { + if ($element instanceof EntityDescriptor) { $ret = new SAMLParser($element, $maxExpireTime, $validators, $parentExtensions); $ret = [$ret->getEntityId() => $ret]; /** @var SAMLParser[] $ret */ return $ret; } - assert($element instanceof \SAML2\XML\md\EntitiesDescriptor); + assert($element instanceof EntitiesDescriptor); $extensions = self::processExtensions($element, $parentExtensions); $expTime = self::getExpireTime($element, $maxExpireTime); @@ -408,9 +435,9 @@ private static function processDescriptorsElement( * how long a given XML-element is valid. It returns this as a unix timestamp. * * @param mixed $element The element we should determine the expiry time of. - * @param int|NULL $maxExpireTime The maximum expiration time. + * @param int|null $maxExpireTime The maximum expiration time. * - * @return int The unix timestamp for when the element should expire. Will be NULL if no + * @return int|null The unix timestamp for when the element should expire. Will be NULL if no * limit is set for the element. */ private static function getExpireTime($element, $maxExpireTime) @@ -437,6 +464,9 @@ public function getEntityId() } + /** + * @return array + */ private function getMetadataCommon() { $ret = []; @@ -469,6 +499,7 @@ private function getMetadataCommon() * * @param array &$metadata The metadata that should be updated. * @param array $roleDescriptor The parsed role descriptor. + * @return void */ private function addExtensions(array &$metadata, array $roleDescriptor) { @@ -494,7 +525,7 @@ private function addExtensions(array &$metadata, array $roleDescriptor) $metadata['EntityAttributes'] = $this->entityAttributes; // check for entity categories - if (\SimpleSAML\Utils\Config\Metadata::isHiddenFromDiscovery($metadata)) { + if (Utils\Config\Metadata::isHiddenFromDiscovery($metadata)) { $metadata['hide.from.discovery'] = true; } } @@ -519,7 +550,8 @@ private function addExtensions(array &$metadata, array $roleDescriptor) * * Metadata must be loaded with one of the parse functions before this function can be called. * - * @return array An associative array with metadata or NULL if we are unable to generate metadata for a SAML 1.x SP. + * @return array|null An associative array with metadata or NULL if we are unable to + * generate metadata for a SAML 1.x SP. */ public function getMetadata1xSP() { @@ -592,8 +624,8 @@ public function getMetadata1xSP() * * Metadata must be loaded with one of the parse functions before this function can be called. * - * @return array An associative array with metadata or NULL if we are unable to generate metadata for a SAML 1.x - * IdP. + * @return array|null An associative array with metadata or NULL if we are unable to + * generate metadata for a SAML 1.x IdP. */ public function getMetadata1xIdP() { @@ -649,7 +681,8 @@ public function getMetadata1xIdP() * * Metadata must be loaded with one of the parse functions before this function can be called. * - * @return array An associative array with metadata or NULL if we are unable to generate metadata for a SAML 2.x SP. + * @return array|null An associative array with metadata or NULL if we are unable to + * generate metadata for a SAML 2.x SP. */ public function getMetadata20SP() { @@ -680,7 +713,7 @@ public function getMetadata20SP() // find the NameIDFormat. This may not exist if (count($spd['nameIDFormats']) > 0) { - // SimpleSAMLphp currently only supports a single NameIDFormat pr. SP. We use the first one + // SimpleSAMLphp currently only supports a single NameIDFormat per SP. We use the first one $ret['NameIDFormat'] = $spd['nameIDFormats'][0]; } @@ -751,8 +784,8 @@ public function getMetadata20SP() * * Metadata must be loaded with one of the parse functions before this function can be called. * - * @return array An associative array with metadata or NULL if we are unable to generate metadata for a SAML 2.0 - * IdP. + * @return array|null An associative array with metadata or NULL if we are unable to + * generate metadata for a SAML 2.0 IdP. */ public function getMetadata20IdP() { @@ -827,12 +860,12 @@ public function getAttributeAuthorities() * - 'keys': Array of associative arrays with the elements from parseKeyDescriptor. * * @param \SAML2\XML\md\RoleDescriptor $element The element we should extract metadata from. - * @param int|NULL $expireTime The unix timestamp for when this element should expire, or + * @param int|null $expireTime The unix timestamp for when this element should expire, or * NULL if unknown. * * @return array An associative array with metadata we have extracted from this element. */ - private static function parseRoleDescriptorType(\SAML2\XML\md\RoleDescriptor $element, $expireTime) + private static function parseRoleDescriptorType(RoleDescriptor $element, $expireTime) { assert($expireTime === null || is_int($expireTime)); @@ -883,7 +916,7 @@ private static function parseRoleDescriptorType(\SAML2\XML\md\RoleDescriptor $el * * @return array An associative array with metadata we have extracted from this element. */ - private static function parseSSODescriptor(\SAML2\XML\md\SSODescriptorType $element, $expireTime) + private static function parseSSODescriptor(SSODescriptorType $element, $expireTime) { assert($expireTime === null || is_int($expireTime)); @@ -909,8 +942,9 @@ private static function parseSSODescriptor(\SAML2\XML\md\SSODescriptorType $elem * @param \SAML2\XML\md\SPSSODescriptor $element The element which should be parsed. * @param int|NULL $expireTime The unix timestamp for when this element should expire, or * NULL if unknown. + * @return void */ - private function processSPSSODescriptor(\SAML2\XML\md\SPSSODescriptor $element, $expireTime) + private function processSPSSODescriptor(SPSSODescriptor $element, $expireTime) { assert($expireTime === null || is_int($expireTime)); @@ -945,8 +979,9 @@ private function processSPSSODescriptor(\SAML2\XML\md\SPSSODescriptor $element, * @param \SAML2\XML\md\IDPSSODescriptor $element The element which should be parsed. * @param int|NULL $expireTime The unix timestamp for when this element should expire, or * NULL if unknown. + * @return void */ - private function processIDPSSODescriptor(\SAML2\XML\md\IDPSSODescriptor $element, $expireTime) + private function processIDPSSODescriptor(IDPSSODescriptor $element, $expireTime) { assert($expireTime === null || is_int($expireTime)); @@ -971,9 +1006,10 @@ private function processIDPSSODescriptor(\SAML2\XML\md\IDPSSODescriptor $element * @param \SAML2\XML\md\AttributeAuthorityDescriptor $element The element which should be parsed. * @param int|NULL $expireTime The unix timestamp for when this element should * expire, or NULL if unknown. + * @return void */ private function processAttributeAuthorityDescriptor( - \SAML2\XML\md\AttributeAuthorityDescriptor $element, + AttributeAuthorityDescriptor $element, $expireTime ) { assert($expireTime === null || is_int($expireTime)); @@ -1011,35 +1047,45 @@ private static function processExtensions($element, $parentExtensions = []) ]; // Some extensions may get inherited from a parent element - if (($element instanceof \SAML2\XML\md\EntityDescriptor || $element instanceof \SAML2\XML\md\EntitiesDescriptor) - && !empty($parentExtensions['RegistrationInfo'])) { + if ( + ($element instanceof EntityDescriptor + || $element instanceof EntitiesDescriptor) + && !empty($parentExtensions['RegistrationInfo']) + ) { $ret['RegistrationInfo'] = $parentExtensions['RegistrationInfo']; } foreach ($element->getExtensions() as $e) { - if ($e instanceof \SAML2\XML\shibmd\Scope) { + if ($e instanceof Scope) { $ret['scope'][] = $e->getScope(); continue; } // Entity Attributes are only allowed at entity level extensions and not at RoleDescriptor level - if ($element instanceof \SAML2\XML\md\EntityDescriptor || - $element instanceof \SAML2\XML\md\EntitiesDescriptor) { - if ($e instanceof \SAML2\XML\mdrpi\RegistrationInfo) { + if ( + $element instanceof EntityDescriptor + || $element instanceof EntitiesDescriptor + ) { + if ($e instanceof RegistrationInfo) { // Registration Authority cannot be overridden (warn only if override attempts to change the value) - if (isset($ret['RegistrationInfo']['registrationAuthority']) - && $ret['RegistrationInfo']['registrationAuthority'] !== $e->getRegistrationAuthority()) { - \SimpleSAML\Logger::warning('Invalid attempt to override registrationAuthority \''. - $ret['RegistrationInfo']['registrationAuthority']."' with '{$e->getRegistrationAuthority()}'"); + if ( + isset($ret['RegistrationInfo']['registrationAuthority']) + && $ret['RegistrationInfo']['registrationAuthority'] !== $e->getRegistrationAuthority() + ) { + Logger::warning( + 'Invalid attempt to override registrationAuthority \'' + . $ret['RegistrationInfo']['registrationAuthority'] + . "' with '{$e->getRegistrationAuthority()}'" + ); } else { $ret['RegistrationInfo']['registrationAuthority'] = $e->getRegistrationAuthority(); } } - if ($e instanceof \SAML2\XML\mdattr\EntityAttributes && !empty($e->getChildren())) { + if ($e instanceof EntityAttributes && !empty($e->getChildren())) { foreach ($e->getChildren() as $attr) { // only saml:Attribute are currently supported here. The specifications also allows // saml:Assertions, which more complex processing - if ($attr instanceof \SAML2\XML\saml\Attribute) { + if ($attr instanceof Attribute) { $attrName = $attr->getName(); $attrNameFormat = $attr->getNameFormat(); $attrValue = $attr->getAttributeValue(); @@ -1051,9 +1097,9 @@ private static function processExtensions($element, $parentExtensions = []) // attribute names that is not URI is prefixed as this: '{nameformat}name' $name = $attrName; if ($attrNameFormat === null) { - $name = '{'.\SAML2\Constants::NAMEFORMAT_UNSPECIFIED.'}'.$attr->getName(); - } elseif ($attrNameFormat !== 'urn:oasis:names:tc:SAML:2.0:attrname-format:uri') { - $name = '{'.$attrNameFormat.'}'.$attrName; + $name = '{' . Constants::NAMEFORMAT_UNSPECIFIED . '}' . $attr->getName(); + } elseif ($attrNameFormat !== Constants::NAMEFORMAT_URI) { + $name = '{' . $attrNameFormat . '}' . $attrName; } $values = []; @@ -1068,24 +1114,24 @@ private static function processExtensions($element, $parentExtensions = []) } // UIInfo elements are only allowed at RoleDescriptor level extensions - if ($element instanceof \SAML2\XML\md\RoleDescriptor) { - if ($e instanceof \SAML2\XML\mdui\UIInfo) { + if ($element instanceof RoleDescriptor) { + if ($e instanceof UIInfo) { $ret['UIInfo']['DisplayName'] = $e->getDisplayName(); $ret['UIInfo']['Description'] = $e->getDescription(); $ret['UIInfo']['InformationURL'] = $e->getInformationURL(); $ret['UIInfo']['PrivacyStatementURL'] = $e->getPrivacyStatementURL(); foreach ($e->getKeywords() as $uiItem) { - if (!($uiItem instanceof \SAML2\XML\mdui\Keywords) - || ($uiItem->getKeywords() === []) - || ($uiItem->getLanguage() === null) - ) { + $keywords = $uiItem->getKeywords(); + $language = $uiItem->getLanguage(); + if (($keywords === []) || ($language === null)) { continue; } - $ret['UIInfo']['Keywords'][$uiItem->getLanguage()] = $uiItem->getKeywords(); + $ret['UIInfo']['Keywords'][$language] = $keywords; } foreach ($e->getLogo() as $uiItem) { - if (!($uiItem instanceof \SAML2\XML\mdui\Logo) + if ( + !($uiItem instanceof Logo) || ($uiItem->getUrl() === null) || ($uiItem->getHeight() === null) || ($uiItem->getWidth() === null) @@ -1106,25 +1152,25 @@ private static function processExtensions($element, $parentExtensions = []) } // DiscoHints elements are only allowed at IDPSSODescriptor level extensions - if ($element instanceof \SAML2\XML\md\IDPSSODescriptor) { - if ($e instanceof \SAML2\XML\mdui\DiscoHints) { + if ($element instanceof IDPSSODescriptor) { + if ($e instanceof DiscoHints) { $ret['DiscoHints']['IPHint'] = $e->getIPHint(); $ret['DiscoHints']['DomainHint'] = $e->getDomainHint(); $ret['DiscoHints']['GeolocationHint'] = $e->getGeolocationHint(); } } - if (!($e instanceof \SAML2\XML\Chunk)) { + if (!($e instanceof Chunk)) { continue; } - if ($e->getLocalName() === 'Attribute' && $e->getNamespaceURI() === \SAML2\Constants::NS_SAML) { + if ($e->getLocalName() === 'Attribute' && $e->getNamespaceURI() === Constants::NS_SAML) { $attribute = $e->getXML(); $name = $attribute->getAttribute('Name'); $values = array_map( ['\SimpleSAML\Utils\XML', 'getDOMText'], - \SimpleSAML\Utils\XML::getDOMChildren($attribute, 'AttributeValue', '@saml2') + Utils\XML::getDOMChildren($attribute, 'AttributeValue', '@saml2') ); if ($name === 'tags') { @@ -1144,8 +1190,9 @@ private static function processExtensions($element, $parentExtensions = []) * Parse and process a Organization element. * * @param \SAML2\XML\md\Organization $element The Organization element. + * @return void */ - private function processOrganization(\SAML2\XML\md\Organization $element) + private function processOrganization(Organization $element) { $this->organizationName = $element->getOrganizationName(); $this->organizationDisplayName = $element->getOrganizationDisplayName(); @@ -1157,9 +1204,9 @@ private function processOrganization(\SAML2\XML\md\Organization $element) * Parse and process a ContactPerson element. * * @param \SAML2\XML\md\ContactPerson $element The ContactPerson element. + * @return void */ - - private function processContactPerson(\SAML2\XML\md\ContactPerson $element) + private function processContactPerson(ContactPerson $element) { $contactPerson = []; if ($element->getContactType() !== '') { @@ -1172,7 +1219,7 @@ private function processContactPerson(\SAML2\XML\md\ContactPerson $element) $contactPerson['givenName'] = $element->getGivenName(); } if ($element->getSurName() !== null) { - $contactPerson['surName'] = $element->SurName; + $contactPerson['surName'] = $element->getSurName(); } if ($element->getEmailAddress() !== []) { $contactPerson['emailAddress'] = $element->getEmailAddress(); @@ -1191,8 +1238,9 @@ private function processContactPerson(\SAML2\XML\md\ContactPerson $element) * * @param \SAML2\XML\md\AttributeConsumingService $element The AttributeConsumingService to parse. * @param array $sp The array with the SP's metadata. + * @return void */ - private static function parseAttributeConsumerService(\SAML2\XML\md\AttributeConsumingService $element, &$sp) + private static function parseAttributeConsumerService(AttributeConsumingService $element, &$sp) { assert(is_array($sp)); @@ -1213,13 +1261,13 @@ private static function parseAttributeConsumerService(\SAML2\XML\md\AttributeCon if ($child->getNameFormat() !== null) { $attrformat = $child->getNameFormat(); } else { - $attrformat = \SAML2\Constants::NAMEFORMAT_UNSPECIFIED; + $attrformat = Constants::NAMEFORMAT_UNSPECIFIED; } if ($format === null) { $format = $attrformat; } elseif ($format !== $attrformat) { - $format = \SAML2\Constants::NAMEFORMAT_UNSPECIFIED; + $format = Constants::NAMEFORMAT_UNSPECIFIED; } } @@ -1231,7 +1279,7 @@ private static function parseAttributeConsumerService(\SAML2\XML\md\AttributeCon unset($sp['attributes.required']); } - if ($format !== \SAML2\Constants::NAMEFORMAT_UNSPECIFIED && $format !== null) { + if ($format !== Constants::NAMEFORMAT_UNSPECIFIED && $format !== null) { $sp['attributes.NameFormat'] = $format; } } @@ -1251,7 +1299,7 @@ private static function parseAttributeConsumerService(\SAML2\XML\md\AttributeCon * * @return array An associative array with the data we have extracted from the element. */ - private static function parseGenericEndpoint(\SAML2\XML\md\EndpointType $element) + private static function parseGenericEndpoint(EndpointType $element) { $ep = []; @@ -1262,7 +1310,7 @@ private static function parseGenericEndpoint(\SAML2\XML\md\EndpointType $element $ep['ResponseLocation'] = $element->getResponseLocation(); } - if ($element instanceof \SAML2\XML\md\IndexedEndpointType) { + if ($element instanceof IndexedEndpointType) { $ep['index'] = $element->getIndex(); if ($element->getIsDefault() !== null) { @@ -1301,7 +1349,7 @@ private static function extractEndpoints(array $endpoints) * * @return array|null An associative array describing the key, or null if this is an unsupported key. */ - private static function parseKeyDescriptor(\SAML2\XML\md\KeyDescriptor $kd) + private static function parseKeyDescriptor(KeyDescriptor $kd) { $r = []; @@ -1319,9 +1367,9 @@ private static function parseKeyDescriptor(\SAML2\XML\md\KeyDescriptor $kd) $keyInfo = $kd->getKeyInfo(); foreach ($keyInfo->getInfo() as $i) { - if ($i instanceof \SAML2\XML\ds\X509Data) { + if ($i instanceof X509Data) { foreach ($i->getData() as $d) { - if ($d instanceof \SAML2\XML\ds\X509Certificate) { + if ($d instanceof X509Certificate) { $r['type'] = 'X509Certificate'; $r['X509Certificate'] = $d->getCertificate(); return $r; @@ -1337,7 +1385,7 @@ private static function parseKeyDescriptor(\SAML2\XML\md\KeyDescriptor $kd) /** * This function finds SP descriptors which supports one of the given protocols. * - * @param $protocols Array with the protocols we accept. + * @param array $protocols Array with the protocols we accept. * * @return array with SP descriptors which supports one of the given protocols. */ @@ -1361,7 +1409,7 @@ private function getSPDescriptors($protocols) /** * This function finds IdP descriptors which supports one of the given protocols. * - * @param $protocols Array with the protocols we accept. + * @param array $protocols Array with the protocols we accept. * * @return array with IdP descriptors which supports one of the given protocols. */ @@ -1395,20 +1443,16 @@ private function getIdPDescriptors($protocols) */ private static function findEntityDescriptor($doc) { - assert($doc instanceof \DOMDocument); + assert($doc instanceof DOMDocument); // find the EntityDescriptor DOMElement. This should be the first (and only) child of the DOMDocument $ed = $doc->documentElement; - if ($ed === null) { - throw new \Exception('Failed to load SAML metadata from empty XML document.'); - } - - if (\SimpleSAML\Utils\XML::isDOMNodeOfType($ed, 'EntityDescriptor', '@md') === false) { + if (Utils\XML::isDOMNodeOfType($ed, 'EntityDescriptor', '@md') === false) { throw new \Exception('Expected first element in the metadata document to be an EntityDescriptor element.'); } - return new \SAML2\XML\md\EntityDescriptor($ed); + return new EntityDescriptor($ed); } @@ -1419,16 +1463,16 @@ private static function findEntityDescriptor($doc) * to do a key rollover. * * @return boolean True if it is possible to check the signature with the certificate, false otherwise. - * @throws Exception If the certificate file cannot be found. + * @throws \Exception If the certificate file cannot be found. */ public function validateSignature($certificates) { foreach ($certificates as $cert) { assert(is_string($cert)); - $certFile = \SimpleSAML\Utils\Config::getCertPath($cert); + $certFile = Utils\Config::getCertPath($cert); if (!file_exists($certFile)) { throw new \Exception( - 'Could not find certificate file ['.$certFile.'], which is needed to validate signature' + 'Could not find certificate file [' . $certFile . '], which is needed to validate signature' ); } $certData = file_get_contents($certFile); @@ -1445,21 +1489,59 @@ public function validateSignature($certificates) } } } - \SimpleSAML\Logger::debug('Could not validate signature'); + Logger::debug('Could not validate signature'); return false; } + /** + * @param string $algorithm + * @param string $data + * @throws \UnexpectedValueException + * @return string + */ + private function computeFingerprint($algorithm, $data) + { + switch ($algorithm) { + case XMLSecurityDSig::SHA1: + $algo = 'SHA1'; + break; + case XMLSecurityDSig::SHA256: + $algo = 'SHA256'; + break; + case XMLSecurityDSig::SHA384: + $algo = 'SHA384'; + break; + case XMLSecurityDSig::SHA512: + $algo = 'SHA512'; + break; + default: + $known_opts = implode(", ", [ + XMLSecurityDSig::SHA1, + XMLSecurityDSig::SHA256, + XMLSecurityDSig::SHA384, + XMLSecurityDSig::SHA512, + ]); + throw new \UnexpectedValueException( + "Unsupported hashing function {$algorithm}. " . + "Known options: [{$known_opts}]" + ); + } + return hash($algo, $data); + } + + /** * This function checks if this EntityDescriptor was signed with a certificate with the * given fingerprint. * * @param string $fingerprint Fingerprint of the certificate which should have been used to sign this * EntityDescriptor. + * @param string $algorithm Algorithm used to compute the fingerprint of the signing certicate. * * @return boolean True if it was signed with the certificate with the given fingerprint, false otherwise. */ - public function validateFingerprint($fingerprint) + public function validateFingerprint($fingerprint, $algorithm) { assert(is_string($fingerprint)); @@ -1468,14 +1550,15 @@ public function validateFingerprint($fingerprint) $candidates = []; foreach ($this->validators as $validator) { foreach ($validator->getValidatingCertificates() as $cert) { - $fp = strtolower(sha1(base64_decode($cert))); + $decoded_cert = base64_decode($cert); + $fp = $this->computeFingerprint($algorithm, $decoded_cert); $candidates[] = $fp; if ($fp === $fingerprint) { return true; } } } - \SimpleSAML\Logger::debug('Fingerprint was ['.$fingerprint.'] not one of ['.join(', ', $candidates).']'); + Logger::debug('Fingerprint was [' . $fingerprint . '] not one of [' . join(', ', $candidates) . ']'); return false; } } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/Signer.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/Signer.php index 98806d56211f41baa0de73066681e07c8623549b..7a80bdd139df7abec27e8417c8b377394821a7de 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/Signer.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/Signer.php @@ -4,6 +4,10 @@ use RobRichards\XMLSecLibs\XMLSecurityKey; use RobRichards\XMLSecLibs\XMLSecurityDSig; +use SAML2\DOMDocumentFactory; +use SimpleSAML\Configuration; +use SimpleSAML\Error; +use SimpleSAML\Utils; /** * This class implements a helper function for signing of metadata. @@ -24,21 +28,23 @@ class Signer * 'Shib 1.3 SP'. * * @return array An associative array with the keys 'privatekey', 'certificate', and optionally 'privatekey_pass'. - * @throws Exception If the key and certificate used to sign is unknown. + * @throws \Exception If the key and certificate used to sign is unknown. */ private static function findKeyCert($config, $entityMetadata, $type) { // first we look for metadata.privatekey and metadata.certificate in the metadata - if (array_key_exists('metadata.sign.privatekey', $entityMetadata) + if ( + array_key_exists('metadata.sign.privatekey', $entityMetadata) || array_key_exists('metadata.sign.certificate', $entityMetadata) ) { - if (!array_key_exists('metadata.sign.privatekey', $entityMetadata) + if ( + !array_key_exists('metadata.sign.privatekey', $entityMetadata) || !array_key_exists('metadata.sign.certificate', $entityMetadata) ) { throw new \Exception( - 'Missing either the "metadata.sign.privatekey" or the'. - ' "metadata.sign.certificate" configuration option in the metadata for'. - ' the '.$type.' "'.$entityMetadata['entityid'].'". If one of'. + 'Missing either the "metadata.sign.privatekey" or the' . + ' "metadata.sign.certificate" configuration option in the metadata for' . + ' the ' . $type . ' "' . $entityMetadata['entityid'] . '". If one of' . ' these options is specified, then the other must also be specified.' ); } @@ -61,9 +67,9 @@ private static function findKeyCert($config, $entityMetadata, $type) if ($privatekey !== null || $certificate !== null) { if ($privatekey === null || $certificate === null) { throw new \Exception( - 'Missing either the "metadata.sign.privatekey" or the'. - ' "metadata.sign.certificate" configuration option in the global'. - ' configuration. If one of these options is specified, then the other'. + 'Missing either the "metadata.sign.privatekey" or the' . + ' "metadata.sign.certificate" configuration option in the global' . + ' configuration. If one of these options is specified, then the other' . ' must also be specified.' ); } @@ -78,16 +84,18 @@ private static function findKeyCert($config, $entityMetadata, $type) } // as a last resort we attempt to use the privatekey and certificate option from the metadata - if (array_key_exists('privatekey', $entityMetadata) + if ( + array_key_exists('privatekey', $entityMetadata) || array_key_exists('certificate', $entityMetadata) ) { - if (!array_key_exists('privatekey', $entityMetadata) + if ( + !array_key_exists('privatekey', $entityMetadata) || !array_key_exists('certificate', $entityMetadata) ) { throw new \Exception( - 'Both the "privatekey" and the "certificate" option must'. - ' be set in the metadata for the '.$type.' "'. - $entityMetadata['entityid'].'" before it is possible to sign metadata'. + 'Both the "privatekey" and the "certificate" option must' . + ' be set in the metadata for the ' . $type . ' "' . + $entityMetadata['entityid'] . '" before it is possible to sign metadata' . ' from this entity.' ); } @@ -105,8 +113,8 @@ private static function findKeyCert($config, $entityMetadata, $type) } throw new \Exception( - 'Could not find what key & certificate should be used to sign the metadata'. - ' for the '.$type.' "'.$entityMetadata['entityid'].'".' + 'Could not find what key & certificate should be used to sign the metadata' . + ' for the ' . $type . ' "' . $entityMetadata['entityid'] . '".' ); } @@ -128,8 +136,8 @@ private static function isMetadataSigningEnabled($config, $entityMetadata, $type if (array_key_exists('metadata.sign.enable', $entityMetadata)) { if (!is_bool($entityMetadata['metadata.sign.enable'])) { throw new \Exception( - 'Invalid value for the "metadata.sign.enable" configuration option for'. - ' the '.$type.' "'.$entityMetadata['entityid'].'". This option'. + 'Invalid value for the "metadata.sign.enable" configuration option for' . + ' the ' . $type . ' "' . $entityMetadata['entityid'] . '". This option' . ' should be a boolean.' ); } @@ -163,9 +171,9 @@ private static function getMetadataSigningAlgorithm($config, $entityMetadata, $t // configure the algorithm to use if (array_key_exists('metadata.sign.algorithm', $entityMetadata)) { if (!is_string($entityMetadata['metadata.sign.algorithm'])) { - throw new \SimpleSAML\Error\CriticalConfigurationError( - "Invalid value for the 'metadata.sign.algorithm' configuration option for the ".$type. - "'".$entityMetadata['entityid']."'. This option has restricted values" + throw new Error\CriticalConfigurationError( + "Invalid value for the 'metadata.sign.algorithm' configuration option for the " . $type . + "'" . $entityMetadata['entityid'] . "'. This option has restricted values" ); } $alg = $entityMetadata['metadata.sign.algorithm']; @@ -181,7 +189,7 @@ private static function getMetadataSigningAlgorithm($config, $entityMetadata, $t ]; if (!in_array($alg, $supported_algs, true)) { - throw new \SimpleSAML\Error\CriticalConfigurationError("Unknown signature algorithm '$alg'"); + throw new Error\CriticalConfigurationError("Unknown signature algorithm '$alg'"); } switch ($alg) { @@ -217,7 +225,7 @@ private static function getMetadataSigningAlgorithm($config, $entityMetadata, $t */ public static function sign($metadataString, $entityMetadata, $type) { - $config = \SimpleSAML\Configuration::getInstance(); + $config = Configuration::getInstance(); // check if metadata signing is enabled if (!self::isMetadataSigningEnabled($config, $entityMetadata, $type)) { @@ -227,18 +235,18 @@ public static function sign($metadataString, $entityMetadata, $type) // find the key & certificate which should be used to sign the metadata $keyCertFiles = self::findKeyCert($config, $entityMetadata, $type); - $keyFile = \SimpleSAML\Utils\Config::getCertPath($keyCertFiles['privatekey']); + $keyFile = Utils\Config::getCertPath($keyCertFiles['privatekey']); if (!file_exists($keyFile)) { throw new \Exception( - 'Could not find private key file ['.$keyFile.'], which is needed to sign the metadata' + 'Could not find private key file [' . $keyFile . '], which is needed to sign the metadata' ); } $keyData = file_get_contents($keyFile); - $certFile = \SimpleSAML\Utils\Config::getCertPath($keyCertFiles['certificate']); + $certFile = Utils\Config::getCertPath($keyCertFiles['certificate']); if (!file_exists($certFile)) { throw new \Exception( - 'Could not find certificate file ['.$certFile.'], which is needed to sign the metadata' + 'Could not find certificate file [' . $certFile . '], which is needed to sign the metadata' ); } $certData = file_get_contents($certFile); @@ -246,7 +254,7 @@ public static function sign($metadataString, $entityMetadata, $type) // convert the metadata to a DOM tree try { - $xml = \SAML2\DOMDocumentFactory::fromString($metadataString); + $xml = DOMDocumentFactory::fromString($metadataString); } catch (\Exception $e) { throw new \Exception('Error parsing self-generated metadata.'); } @@ -261,7 +269,9 @@ public static function sign($metadataString, $entityMetadata, $type) $objKey->loadKey($keyData, false); // get the EntityDescriptor node we should sign + /** @var \DOMElement $rootNode */ $rootNode = $xml->firstChild; + $rootNode->setAttribute('ID', '_' . hash('sha256', $metadataString)); // sign the metadata with our private key $objXMLSecDSig = new XMLSecurityDSig(); @@ -272,7 +282,7 @@ public static function sign($metadataString, $entityMetadata, $type) [$rootNode], $signature_cf['digest'], ['http://www.w3.org/2000/09/xmldsig#enveloped-signature', XMLSecurityDSig::EXC_C14N], - ['id_name' => 'ID'] + ['id_name' => 'ID', 'overwrite' => false] ); $objXMLSecDSig->sign($objKey); diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/Sources/MDQ.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/Sources/MDQ.php index 413846427709d87e28bfeebec1b4148ba0b85fb9..3b8431a14d82712f36d987048da20bc909e97aa1 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/Sources/MDQ.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Metadata/Sources/MDQ.php @@ -2,8 +2,12 @@ namespace SimpleSAML\Metadata\Sources; +use RobRichards\XMLSecLibs\XMLSecurityDSig; +use SimpleSAML\Configuration; +use SimpleSAML\Error; use SimpleSAML\Logger; -use SimpleSAML\Utils\HTTP; +use SimpleSAML\Metadata\SAMLParser; +use SimpleSAML\Utils; /** * This class implements SAML Metadata Query Protocol @@ -31,6 +35,11 @@ class MDQ extends \SimpleSAML\Metadata\MetaDataStorageSource */ private $validateFingerprint; + /** + * @var string + */ + private $validateFingerprintAlgorithm; + /** * The cache directory, or null if no cache directory is configured. * @@ -68,7 +77,7 @@ protected function __construct($config) assert(is_array($config)); if (!array_key_exists('server', $config)) { - throw new \Exception(__CLASS__.": the 'server' configuration option is not set."); + throw new \Exception(__CLASS__ . ": the 'server' configuration option is not set."); } else { $this->server = $config['server']; } @@ -78,9 +87,14 @@ protected function __construct($config) } else { $this->validateFingerprint = null; } + if (isset($config['validateFingerprintAlgorithm'])) { + $this->validateFingerprintAlgorithm = $config['validateFingerprintAlgorithm']; + } else { + $this->validateFingerprintAlgorithm = XMLSecurityDSig::SHA1; + } if (array_key_exists('cachedir', $config)) { - $globalConfig = \SimpleSAML\Configuration::getInstance(); + $globalConfig = Configuration::getInstance(); $this->cacheDir = $globalConfig->resolvePath($config['cachedir']); } else { $this->cacheDir = null; @@ -121,8 +135,12 @@ private function getCacheFilename($set, $entityId) assert(is_string($set)); assert(is_string($entityId)); + if ($this->cacheDir === null) { + throw new Error\ConfigurationError("Missing cache directory configuration."); + } + $cachekey = sha1($entityId); - return $this->cacheDir.'/'.$set.'-'.$cachekey.'.cached.xml'; + return $this->cacheDir . '/' . $set . '-' . $cachekey . '.cached.xml'; } @@ -150,9 +168,9 @@ private function getFromCache($set, $entityId) return null; } if (!is_readable($cachefilename)) { - throw new \Exception(__CLASS__.': could not read cache file for entity ['.$cachefilename.']'); + throw new \Exception(__CLASS__ . ': could not read cache file for entity [' . $cachefilename . ']'); } - Logger::debug(__CLASS__.': reading cache ['.$entityId.'] => ['.$cachefilename.']'); + Logger::debug(__CLASS__ . ': reading cache [' . $entityId . '] => [' . $cachefilename . ']'); /* Ensure that this metadata isn't older that the cachelength option allows. This * must be verified based on the file, since this option may be changed after the @@ -160,25 +178,26 @@ private function getFromCache($set, $entityId) */ $stat = stat($cachefilename); if ($stat['mtime'] + $this->cacheLength <= time()) { - Logger::debug(__CLASS__.': cache file older that the cachelength option allows.'); + Logger::debug(__CLASS__ . ': cache file older that the cachelength option allows.'); return null; } $rawData = file_get_contents($cachefilename); if (empty($rawData)) { + /** @var array $error */ $error = error_get_last(); throw new \Exception( - __CLASS__.': error reading metadata from cache file "'.$cachefilename.'": '.$error['message'] + __CLASS__ . ': error reading metadata from cache file "' . $cachefilename . '": ' . $error['message'] ); } $data = unserialize($rawData); if ($data === false) { - throw new \Exception(__CLASS__.': error unserializing cached data from file "'.$cachefilename.'".'); + throw new \Exception(__CLASS__ . ': error unserializing cached data from file "' . $cachefilename . '".'); } if (!is_array($data)) { - throw new \Exception(__CLASS__.': Cached metadata from "'.$cachefilename.'" wasn\'t an array.'); + throw new \Exception(__CLASS__ . ': Cached metadata from "' . $cachefilename . '" wasn\'t an array.'); } return $data; @@ -193,6 +212,7 @@ private function getFromCache($set, $entityId) * @param array $data The associative array with the metadata for this entity. * * @throws \Exception If metadata cannot be written to cache. + * @return void */ private function writeToCache($set, $entityId, $data) { @@ -206,9 +226,9 @@ private function writeToCache($set, $entityId, $data) $cachefilename = $this->getCacheFilename($set, $entityId); if (!is_writable(dirname($cachefilename))) { - throw new \Exception(__CLASS__.': could not write cache file for entity ['.$cachefilename.']'); + throw new \Exception(__CLASS__ . ': could not write cache file for entity [' . $cachefilename . ']'); } - Logger::debug(__CLASS__.': Writing cache ['.$entityId.'] => ['.$cachefilename.']'); + Logger::debug(__CLASS__ . ': Writing cache [' . $entityId . '] => [' . $cachefilename . ']'); file_put_contents($cachefilename, serialize($data)); } @@ -222,7 +242,7 @@ private function writeToCache($set, $entityId, $data) * @return array|NULL The associative array with the metadata, or NULL if no metadata for * the given set was found. */ - private static function getParsedSet(\SimpleSAML\Metadata\SAMLParser $entity, $set) + private static function getParsedSet(SAMLParser $entity, $set) { assert(is_string($set)); @@ -240,7 +260,7 @@ private static function getParsedSet(\SimpleSAML\Metadata\SAMLParser $entity, $s return $ret[0]; default: - Logger::warning(__CLASS__.': unknown metadata set: \''.$set.'\'.'); + Logger::warning(__CLASS__ . ': unknown metadata set: \'' . $set . '\'.'); } return null; @@ -260,7 +280,7 @@ private static function getParsedSet(\SimpleSAML\Metadata\SAMLParser $entity, $s * @param string $index The entityId or metaindex we are looking up. * @param string $set The set we are looking for metadata in. * - * @return array An associative array with metadata for the given entity, or NULL if we are unable to + * @return array|null An associative array with metadata for the given entity, or NULL if we are unable to * locate the entity. * @throws \Exception If an error occurs while validating the signature or the metadata is in an * incorrect set. @@ -270,7 +290,7 @@ public function getMetaData($index, $set) assert(is_string($index)); assert(is_string($set)); - Logger::info(__CLASS__.': loading metadata entity ['.$index.'] from ['.$set.']'); + Logger::info(__CLASS__ . ': loading metadata entity [' . $index . '] from [' . $set . ']'); // read from cache if possible try { @@ -288,16 +308,16 @@ public function getMetaData($index, $set) if (isset($data)) { // metadata found in cache and not expired - Logger::debug(__CLASS__.': using cached metadata for: '.$index.'.'); + Logger::debug(__CLASS__ . ': using cached metadata for: ' . $index . '.'); return $data; } // look at Metadata Query Protocol: https://github.com/iay/md-query/blob/master/draft-young-md-query.txt - $mdq_url = $this->server.'/entities/'.urlencode($index); + $mdq_url = $this->server . '/entities/' . urlencode($index); - Logger::debug(__CLASS__.': downloading metadata for "'.$index.'" from ['.$mdq_url.']'); + Logger::debug(__CLASS__ . ': downloading metadata for "' . $index . '" from [' . $mdq_url . ']'); try { - $xmldata = HTTP::fetch($mdq_url); + $xmldata = Utils\HTTP::fetch($mdq_url); } catch (\Exception $e) { // Avoid propagating the exception, make sure we can handle the error later $xmldata = false; @@ -305,33 +325,50 @@ public function getMetaData($index, $set) if (empty($xmldata)) { $error = error_get_last(); - Logger::info('Unable to fetch metadata for "'.$index.'" from '.$mdq_url.': '. + Logger::info('Unable to fetch metadata for "' . $index . '" from ' . $mdq_url . ': ' . (is_array($error) ? $error['message'] : 'no error available')); return null; } /** @var string $xmldata */ - $entity = \SimpleSAML\Metadata\SAMLParser::parseString($xmldata); - Logger::debug(__CLASS__.': completed parsing of ['.$mdq_url.']'); + $entity = SAMLParser::parseString($xmldata); + Logger::debug(__CLASS__ . ': completed parsing of [' . $mdq_url . ']'); if ($this->validateFingerprint !== null) { - if (!$entity->validateFingerprint($this->validateFingerprint)) { - throw new \Exception(__CLASS__.': error, could not verify signature for entity: '.$index.'".'); + if ( + !$entity->validateFingerprint( + $this->validateFingerprint, + $this->validateFingerprintAlgorithm + ) + ) { + throw new \Exception(__CLASS__ . ': error, could not verify signature for entity: ' . $index . '".'); } } $data = self::getParsedSet($entity, $set); if ($data === null) { - throw new \Exception(__CLASS__.': no metadata for set "'.$set.'" available from "'.$index.'".'); + throw new \Exception(__CLASS__ . ': no metadata for set "' . $set . '" available from "' . $index . '".'); } try { $this->writeToCache($set, $index, $data); } catch (\Exception $e) { // Proceed without writing to cache - Logger::error('Error writing MDQ result to cache: '.$e->getMessage()); + Logger::error('Error writing MDQ result to cache: ' . $e->getMessage()); } return $data; } + + /** + * This function loads the metadata for entity IDs in $entityIds. It is returned as an associative array + * where the key is the entity id. An empty array may be returned if no matching entities were found + * @param array $entityIds The entity ids to load + * @param string $set The set we want to get metadata from. + * @return array An associative array with the metadata for the requested entities, if found. + */ + public function getMetaDataForEntities(array $entityIds, $set) + { + return $this->getMetaDataForEntitiesIndividually($entityIds, $set); + } } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Module.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Module.php index 4cbd416576a9c34f465d976a7ad62fd59a1344ff..6f685c9fe0dfe555a2667df1d06788c1dd9d0273 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Module.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Module.php @@ -2,11 +2,15 @@ namespace SimpleSAML; +use SimpleSAML\HTTP\Router; +use SimpleSAML\Utils; +use Symfony\Component\Config\Exception\FileLocatorFileNotFoundException; use Symfony\Component\HttpFoundation\BinaryFileResponse; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\ResponseHeaderBag; +use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; /** * Helper class for accessing information about modules. @@ -18,7 +22,6 @@ */ class Module { - /** * Index pages: file names to attempt when accessing directories. * @@ -82,8 +85,8 @@ class Module */ public static function getModuleDir($module) { - $baseDir = dirname(dirname(dirname(__FILE__))).'/modules'; - $moduleDir = $baseDir.'/'.$module; + $baseDir = dirname(dirname(dirname(__FILE__))) . '/modules'; + $moduleDir = $baseDir . '/' . $module; return $moduleDir; } @@ -126,11 +129,11 @@ public static function process(Request $request = null) $request = Request::createFromGlobals(); } - if ($request->getPathInfo() === '/') { + if ($request->server->get('PATH_INFO') === '/') { throw new Error\NotFound('No PATH_INFO to module.php'); } - $url = $request->getPathInfo(); + $url = $request->server->get('PATH_INFO'); assert(substr($url, 0, 1) === '/'); /* clear the PATH_INFO option, so that a script can detect whether it is called with anything following the @@ -151,7 +154,7 @@ public static function process(Request $request = null) } if (!self::isModuleEnabled($module)) { - throw new Error\NotFound('The module \''.$module.'\' was either not found, or wasn\'t enabled.'); + throw new Error\NotFound('The module \'' . $module . '\' was either not found, or wasn\'t enabled.'); } /* Make sure that the request isn't suspicious (contains references to current directory or parent directory or @@ -165,18 +168,39 @@ public static function process(Request $request = null) } $config = Configuration::getInstance(); + + // rebuild REQUEST_URI and SCRIPT_NAME just in case we need to. This is needed for server aliases and rewrites + $translated_uri = $config->getBasePath() . 'module.php/' . $module . '/' . $url; + $request->server->set('REQUEST_URI', $translated_uri); + $request->server->set('SCRIPT_NAME', $config->getBasePath() . 'module.php'); + $request_files = array_filter( + $request->files->all(), + function ($val) { + return !is_null($val); + } + ); + $request->initialize( + $request->query->all(), + $request->request->all(), + $request->attributes->all(), + $request->cookies->all(), + $request_files, + $request->server->all(), + $request->getContent() + ); + if ($config->getBoolean('usenewui', false) === true) { - $router = new HTTP\Router($module); + $router = new Router($module); try { - return $router->process(); - } catch (\Symfony\Component\Config\Exception\FileLocatorFileNotFoundException $e) { + return $router->process($request); + } catch (FileLocatorFileNotFoundException $e) { // no routes configured for this module, fall back to the old system - } catch (\Symfony\Component\HttpKernel\Exception\NotFoundHttpException $e) { + } catch (NotFoundHttpException $e) { // this module has been migrated, but the route wasn't found } } - $moduleDir = self::getModuleDir($module).'/www/'; + $moduleDir = self::getModuleDir($module) . '/www/'; // check for '.php/' in the path, the presence of which indicates that another php-script should handle the // request @@ -184,7 +208,7 @@ public static function process(Request $request = null) $newURL = substr($url, 0, $phpPos + 4); $param = substr($url, $phpPos + 4); - if (is_file($moduleDir.$newURL)) { + if (is_file($moduleDir . $newURL)) { /* $newPath points to a normal file. Point execution to that file, and save the remainder of the path * in PATH_INFO. */ @@ -195,12 +219,12 @@ public static function process(Request $request = null) } } - $path = $moduleDir.$url; + $path = $moduleDir . $url; if ($path[strlen($path) - 1] === '/') { // path ends with a slash - directory reference. Attempt to find index file in directory foreach (self::$indexFiles as $if) { - if (file_exists($path.$if)) { + if (file_exists($path . $if)) { $path .= $if; break; } @@ -216,11 +240,11 @@ public static function process(Request $request = null) if (!file_exists($path)) { // file not found - Logger::info('Could not find file \''.$path.'\'.'); + Logger::info('Could not find file \'' . $path . '\'.'); throw new Error\NotFound('The URL wasn\'t found in the module.'); } - if (substr($path, -4) === '.php') { + if (mb_strtolower(substr($path, -4), 'UTF-8') === '.php') { // PHP file - attempt to run it /* In some environments, $_SERVER['SCRIPT_NAME'] is already set with $_SERVER['PATH_INFO']. Check for that @@ -230,7 +254,7 @@ public static function process(Request $request = null) */ $script = "/$module/$url"; if (strpos($request->getScriptName(), $script) === false) { - $request->server->set('SCRIPT_NAME', $request->getScriptName().'/'.$module.'/'.$url); + $request->server->set('SCRIPT_NAME', $request->getScriptName() . '/' . $module . '/' . $url); } require($path); @@ -256,23 +280,37 @@ public static function process(Request $request = null) $contentType = mime_content_type($path); } else { // mime_content_type doesn't exist. Return a default MIME type - Logger::warning('Unable to determine mime content type of file: '.$path); + Logger::warning('Unable to determine mime content type of file: ' . $path); $contentType = 'application/octet-stream'; } } + $assetConfig = $config->getConfigItem('assets'); + $cacheConfig = $assetConfig->getConfigItem('caching'); $response = new BinaryFileResponse($path); - $response->setCache(['public' => true, 'max_age' => 86400]); - $response->setExpires(new \DateTime(gmdate('D, j M Y H:i:s \G\M\T', time() + 10 * 60))); - $response->setLastModified(new \DateTime(gmdate('D, j M Y H:i:s \G\M\T', filemtime($path)))); + $response->setCache([ + // "public" allows response caching even if the request was authenticated, + // which is exactly what we want for static resources + 'public' => true, + 'max_age' => (string)$cacheConfig->getInteger('max_age', 86400) + ]); + $response->setAutoLastModified(); + if ($cacheConfig->getBoolean('etag', false)) { + $response->setAutoEtag(); + } + $response->isNotModified($request); $response->headers->set('Content-Type', $contentType); - $response->headers->set('Content-Length', sprintf('%u', filesize($path))); // force file size to an unsigned $response->setContentDisposition(ResponseHeaderBag::DISPOSITION_INLINE); $response->prepare($request); return $response; } + /** + * @param string $module + * @param array $mod_config + * @return bool + */ private static function isModuleEnabledWithConf($module, $mod_config) { if (isset(self::$module_info[$module]['enabled'])) { @@ -299,19 +337,20 @@ private static function isModuleEnabledWithConf($module, $mod_config) throw new \Exception("Invalid module.enable value for the '$module' module."); } - if (assert_options(ASSERT_ACTIVE) && - !file_exists($moduleDir.'/default-enable') && - !file_exists($moduleDir.'/default-disable') + if ( + assert_options(ASSERT_ACTIVE) + && !file_exists($moduleDir . '/default-enable') + && !file_exists($moduleDir . '/default-disable') ) { - \SimpleSAML\Logger::error("Missing default-enable or default-disable file for the module $module"); + Logger::error("Missing default-enable or default-disable file for the module $module"); } - if (file_exists($moduleDir.'/enable')) { + if (file_exists($moduleDir . '/enable')) { self::$module_info[$module]['enabled'] = true; return true; } - if (!file_exists($moduleDir.'/disable') && file_exists($moduleDir.'/default-enable')) { + if (!file_exists($moduleDir . '/disable') && file_exists($moduleDir . '/default-enable')) { self::$module_info[$module]['enabled'] = true; return true; } @@ -338,7 +377,7 @@ public static function getModules() $dh = scandir($path); if ($dh === false) { - throw new \Exception('Unable to open module directory "'.$path.'".'); + throw new \Exception('Unable to open module directory "' . $path . '".'); } foreach ($dh as $f) { @@ -346,7 +385,7 @@ public static function getModules() continue; } - if (!is_dir($path.'/'.$f)) { + if (!is_dir($path . '/' . $f)) { continue; } @@ -392,13 +431,13 @@ public static function resolveClass($id, $type, $subclass = null) } else { // should be a module // make sure empty types are handled correctly - $type = (empty($type)) ? '\\' : '\\'.$type.'\\'; + $type = (empty($type)) ? '\\' : '\\' . $type . '\\'; - $className = 'SimpleSAML\\Module\\'.$tmp[0].$type.$tmp[1]; + $className = 'SimpleSAML\\Module\\' . $tmp[0] . $type . $tmp[1]; if (!class_exists($className)) { // check for the old-style class names $type = str_replace('\\', '_', $type); - $oldClassName = 'sspmod_'.$tmp[0].$type.$tmp[1]; + $oldClassName = 'sspmod_' . $tmp[0] . $type . $tmp[1]; if (!class_exists($oldClassName)) { throw new \Exception("Could not resolve '$id': no class named '$className' or '$oldClassName'."); @@ -409,7 +448,8 @@ public static function resolveClass($id, $type, $subclass = null) if ($subclass !== null && !is_subclass_of($className, $subclass)) { throw new \Exception( - 'Could not resolve \''.$id.'\': The class \''.$className.'\' isn\'t a subclass of \''.$subclass.'\'.' + 'Could not resolve \'' . $id . '\': The class \'' . $className + . '\' isn\'t a subclass of \'' . $subclass . '\'.' ); } @@ -432,7 +472,7 @@ public static function getModuleURL($resource, array $parameters = []) assert(is_string($resource)); assert($resource[0] !== '/'); - $url = Utils\HTTP::getBaseURL().'module.php/'.$resource; + $url = Utils\HTTP::getBaseURL() . 'module.php/' . $resource; if (!empty($parameters)) { $url = Utils\HTTP::addURLParameters($url, $parameters); } @@ -455,7 +495,7 @@ public static function getModuleHooks($module) return self::$modules[$module]['hooks']; } - $hook_dir = self::getModuleDir($module).'/hooks'; + $hook_dir = self::getModuleDir($module) . '/hooks'; if (!is_dir($hook_dir)) { return []; } @@ -471,8 +511,8 @@ public static function getModuleHooks($module) continue; } $hook_name = $matches[1]; - $hook_func = $module.'_hook_'.$hook_name; - $hooks[$hook_name] = ['file' => $hook_dir.'/'.$file, 'func' => $hook_func]; + $hook_func = $module . '_hook_' . $hook_name; + $hooks[$hook_name] = ['file' => $hook_dir . '/' . $file, 'func' => $hook_func]; } return $hooks; } @@ -485,6 +525,7 @@ public static function getModuleHooks($module) * * @param string $hook The name of the hook. * @param mixed &$data The data which should be passed to each hook. Will be passed as a reference. + * @return void * * @throws \SimpleSAML\Error\Exception If an invalid hook is found in a module. */ @@ -511,7 +552,7 @@ public static function callHooks($hook, &$data = null) require_once(self::$module_info[$module]['hooks'][$hook]['file']); if (!is_callable(self::$module_info[$module]['hooks'][$hook]['func'])) { - throw new \SimpleSAML\Error\Exception('Invalid hook \''.$hook.'\' for module \''.$module.'\'.'); + throw new Error\Exception('Invalid hook \'' . $hook . '\' for module \'' . $module . '\'.'); } $fn = self::$module_info[$module]['hooks'][$hook]['func']; @@ -531,7 +572,7 @@ public static function callHooks($hook, &$data = null) */ public static function removeTrailingSlash(Request $request) { - $pathInfo = $request->getPathInfo(); + $pathInfo = $request->server->get('PATH_INFO'); $url = str_replace($pathInfo, rtrim($pathInfo, ' /'), $request->getRequestUri()); return new RedirectResponse($url, 308); } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Module/ControllerResolver.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Module/ControllerResolver.php index 25bfa08fd194178913b6962482970dbfda1753e3..3e06745b1ed3a0e5ec5ac491be9ee3abbb6a5b30 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Module/ControllerResolver.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Module/ControllerResolver.php @@ -7,7 +7,6 @@ use SimpleSAML\Error\Exception; use SimpleSAML\Module; use SimpleSAML\Session; - use Symfony\Component\Config\Exception\FileLocatorFileNotFoundException; use Symfony\Component\Config\FileLocator; use Symfony\Component\DependencyInjection\ContainerBuilder; @@ -33,7 +32,6 @@ */ class ControllerResolver extends SymfonyControllerResolver implements ArgumentResolverInterface { - /** @var ArgumentMetadataFactory */ protected $argFactory; @@ -44,9 +42,9 @@ class ControllerResolver extends SymfonyControllerResolver implements ArgumentRe protected $module; /** @var array */ - protected $params; + protected $params = []; - /** @var RouteCollection */ + /** @var RouteCollection|null */ protected $routes; @@ -76,7 +74,7 @@ public function __construct($module) ['url' => '.*/$'] ); $this->routes->add('trailing-slash', $redirect); - $this->routes->addPrefix('/'.$this->module); + $this->routes->addPrefix('/' . $this->module); } catch (FileLocatorFileNotFoundException $e) { } } @@ -137,7 +135,7 @@ public function getArguments(Request $request, $controller) /** @var ArgumentMetadata $argMeta */ foreach ($metadata as $argMeta) { - if ($argMeta->getType() === 'Symfony\Component\HttpFoundation\Request') { + if ($argMeta->getType() === Request::class) { // add request argument $args[] = $request; continue; @@ -161,7 +159,7 @@ public function getArguments(Request $request, $controller) $args[] = null; } - throw new Exception('Missing value for argument '.$argName.'. This is probably a bug.'); + throw new Exception('Missing value for argument ' . $argName . '. This is probably a bug.'); } return $args; @@ -172,6 +170,7 @@ public function getArguments(Request $request, $controller) * Set the configuration to use by the controllers. * * @param \SimpleSAML\Configuration $config + * @return void */ public function setConfiguration(Configuration $config) { @@ -184,6 +183,7 @@ public function setConfiguration(Configuration $config) * Set the session to use by the controllers. * * @param \SimpleSAML\Session $session + * @return void */ public function setSession(Session $session) { diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Session.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Session.php index cd158b3fe6b35cd0dd8d58b11c3b440a61d55863..8b54ae5f298d69b1f184762728de4e4ba3bddffe 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Session.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Session.php @@ -2,7 +2,9 @@ namespace SimpleSAML; +use SAML2\XML\saml\AttributeValue; use SimpleSAML\Error; +use SimpleSAML\Utils; /** * The Session class holds information about a user session, and everything attached to it. @@ -30,7 +32,6 @@ class Session implements \Serializable, Utils\ClearableState */ const DATA_TIMEOUT_SESSION_END = 'sessionEndTimeout'; - /** * The list of loaded session objects. * @@ -40,13 +41,12 @@ class Session implements \Serializable, Utils\ClearableState */ private static $sessions = []; - /** * This variable holds the instance of the session - Singleton approach. * * Warning: do not set the instance manually, call Session::load() instead. */ - private static $instance = null; + private static $instance; /** * The global configuration. @@ -74,9 +74,9 @@ class Session implements \Serializable, Utils\ClearableState * This is used in the debug logs and error messages to easily track more information * about what went wrong. * - * @var string|null + * @var string */ - private $trackid = null; + private $trackid; /** * @var integer|null @@ -150,7 +150,7 @@ private function __construct($transient = false) $this->setConfiguration(Configuration::getInstance()); if (php_sapi_name() === 'cli' || defined('STDIN')) { - $this->trackid = 'CL'.bin2hex(openssl_random_pseudo_bytes(4)); + $this->trackid = 'CL' . bin2hex(openssl_random_pseudo_bytes(4)); Logger::setTrackId($this->trackid); $this->transient = $transient; return; @@ -158,19 +158,9 @@ private function __construct($transient = false) if ($transient) { // transient session - $sh = SessionHandler::getSessionHandler(); - $this->trackid = 'TR'.bin2hex(openssl_random_pseudo_bytes(4)); + $this->trackid = 'TR' . bin2hex(openssl_random_pseudo_bytes(4)); Logger::setTrackId($this->trackid); $this->transient = true; - - /* - * Initialize the session ID. It might be that we have a session cookie but we couldn't load the session. - * If that's the case, use that ID. If not, create a new ID. - */ - $this->sessionId = $sh->getCookieSessionId(); - if ($this->sessionId === null) { - $this->sessionId = $sh->newSessionId(); - } } else { // regular session $sh = SessionHandler::getSessionHandler(); @@ -197,6 +187,7 @@ private function __construct($transient = false) * Set the configuration we should use. * * @param Configuration $config + * @return void */ public function setConfiguration(Configuration $config) { @@ -273,8 +264,8 @@ public static function getSessionFromRequest() * session here. Therefore, use just a transient session and throw the exception for someone else to handle * it. */ - Logger::error('Error loading session: '.$e->getMessage()); self::useTransientSession(); + Logger::error('Error loading session: ' . $e->getMessage()); if ($e instanceof Error\Exception) { $cause = $e->getCause(); if ($cause instanceof \Exception) { @@ -314,10 +305,11 @@ public static function getSessionFromRequest() $c->toArray() ); } - Logger::error('Error creating session: '.$e->getMessage()); + Logger::error('Error creating session: ' . $e->getMessage()); } // we must have a session now, either regular or transient + /** @var \SimpleSAML\Session */ return self::$instance; } @@ -413,6 +405,8 @@ private static function load(Session $session) * * Create a session that should not be saved at the end of the request. * Subsequent calls to getInstance() will return this transient session. + * + * @return void */ public static function useTransientSession() { @@ -428,6 +422,7 @@ public static function useTransientSession() * Create a new session and cache it. * * @param string $sessionId The new session we should create. + * @return void */ public static function createSession($sessionId) { @@ -442,9 +437,14 @@ public static function createSession($sessionId) * * WARNING: please do not use this method directly unless you really need to and know what you are doing. Use * markDirty() instead. + * + * @return void */ public function save() { + // clean out old data + $this->expireData(); + if (!$this->dirty) { // session hasn't changed, don't bother saving it return; @@ -471,6 +471,8 @@ public function save() * * Use this method if you are using PHP sessions in your application *and* in SimpleSAMLphp, *after* you are done * using SimpleSAMLphp and before trying to access your application's session again. + * + * @return void */ public function cleanup() { @@ -485,6 +487,8 @@ public function cleanup() * Mark this session as dirty. * * This method will register a callback to save the session right before any output is sent to the browser. + * + * @return void */ public function markDirty() { @@ -506,6 +510,8 @@ public function markDirty() * * Destructor for this class. It will save the session to the session handler * in case the session has been marked as dirty. Do nothing otherwise. + * + * @return void */ public function __destruct() { @@ -536,7 +542,7 @@ public function isTransient() * Get a unique ID that will be permanent for this session. * Used for debugging and tracing log files related to a session. * - * @return string|null The unique ID. + * @return string The unique ID. */ public function getTrackID() { @@ -557,6 +563,7 @@ public function getRememberMeExpire() * Set remember me expire time. * * @param int $expire Unix timestamp when remember me session cookies expire. + * @return void */ public function setRememberMeExpire($expire = null) { @@ -578,6 +585,7 @@ public function setRememberMeExpire($expire = null) * * @param string $authority The authority the user logged in with. * @param array|null $data The authentication data for this authority. + * @return void * * @throws Error\CannotSetCookie If the authentication token cannot be set for some reason. */ @@ -586,7 +594,7 @@ public function doLogin($authority, array $data = null) assert(is_string($authority)); assert(is_array($data) || $data === null); - Logger::debug('Session: doLogin("'.$authority.'")'); + Logger::debug('Session: doLogin("' . $authority . '")'); $this->markDirty(); @@ -629,7 +637,7 @@ public function doLogin($authority, array $data = null) } // create an AttributeValue object and save it to 'RawAttributes', using same attribute name and index - $attrval = new \SAML2\XML\saml\AttributeValue($value->item(0)->parentNode); + $attrval = new AttributeValue($value->item(0)->parentNode); $data['RawAttributes'][$attribute][$idx] = $attrval; } } @@ -639,8 +647,11 @@ public function doLogin($authority, array $data = null) $this->authToken = Utils\Random::generateID(); $sessionHandler = SessionHandler::getSessionHandler(); - if (!$this->transient && (!empty($data['RememberMe']) || $this->rememberMeExpire !== null) && - self::$config->getBoolean('session.rememberme.enable', false) + if ( + !$this->transient + && (!empty($data['RememberMe']) + || $this->rememberMeExpire !== null) + && self::$config->getBoolean('session.rememberme.enable', false) ) { $this->setRememberMeExpire(); } else { @@ -658,7 +669,7 @@ public function doLogin($authority, array $data = null) */ unset($this->authToken); unset($this->authData[$authority]); - Logger::error('Cannot set authentication token cookie: '.$e->getMessage()); + Logger::error('Cannot set authentication token cookie: ' . $e->getMessage()); throw $e; } } @@ -670,13 +681,14 @@ public function doLogin($authority, array $data = null) * This function will call any registered logout handlers before marking the user as logged out. * * @param string $authority The authentication source we are logging out of. + * @return void */ public function doLogout($authority) { - Logger::debug('Session: doLogout('.var_export($authority, true).')'); + Logger::debug('Session: doLogout(' . var_export($authority, true) . ')'); if (!isset($this->authData[$authority])) { - Logger::debug('Session: Already logged out of '.$authority.'.'); + Logger::debug('Session: Already logged out of ' . $authority . '.'); return; } @@ -695,6 +707,7 @@ public function doLogout($authority) * This function calls all registered logout handlers. * * @param string $authority The authentication source we are logging out from. + * @return void * * @throws \Exception If the handler is not a valid function or method. */ @@ -713,7 +726,7 @@ private function callLogoutHandlers($authority) $functionname = $handler[1]; throw new \Exception( - 'Logout handler is not a valid function: '.$classname.'::'. + 'Logout handler is not a valid function: ' . $classname . '::' . $functionname ); } @@ -740,18 +753,18 @@ public function isValid($authority) if (!isset($this->authData[$authority])) { Logger::debug( - 'Session: '.var_export($authority, true). + 'Session: ' . var_export($authority, true) . ' not valid because we are not authenticated.' ); return false; } if ($this->authData[$authority]['Expire'] <= time()) { - Logger::debug('Session: '.var_export($authority, true).' not valid because it is expired.'); + Logger::debug('Session: ' . var_export($authority, true) . ' not valid because it is expired.'); return false; } - Logger::debug('Session: Valid session found with '.var_export($authority, true).'.'); + Logger::debug('Session: Valid session found with ' . var_export($authority, true) . '.'); return true; } @@ -760,6 +773,7 @@ public function isValid($authority) * Update session cookies. * * @param array $params The parameters for the cookies. + * @return void */ public function updateSessionCookies($params = null) { @@ -787,6 +801,7 @@ public function updateSessionCookies($params = null) * * @param string $authority The authentication source we are setting expire time for. * @param int $expire The number of seconds authentication source is valid. + * @return void */ public function setAuthorityExpire($authority, $expire = null) { @@ -808,6 +823,7 @@ public function setAuthorityExpire($authority, $expire = null) * @param string $authority The authority for which register the handler. * @param string $classname The class which contains the logout handler. * @param string $functionname The logout handler function. + * @return void * * @throws \Exception If the handler is not a valid function or method. */ @@ -819,7 +835,7 @@ public function registerLogoutHandler($authority, $classname, $functionname) if (!is_callable($logout_handler)) { throw new \Exception( - 'Logout handler is not a valid function: '.$classname.'::'. + 'Logout handler is not a valid function: ' . $classname . '::' . $functionname ); } @@ -835,6 +851,7 @@ public function registerLogoutHandler($authority, $classname, $functionname) * * @param string $type The type of the data. * @param string $id The identifier of the data. + * @return void */ public function deleteData($type, $id) { @@ -861,6 +878,7 @@ public function deleteData($type, $id) * @param int|string|null $timeout The number of seconds this data should be stored after its last access. * This parameter is optional. The default value is set in 'session.datastore.timeout', * and the default is 4 hours. + * @return void * * @throws \Exception If the data couldn't be stored. * @@ -871,16 +889,13 @@ public function setData($type, $id, $data, $timeout = null) assert(is_string($id)); assert(is_int($timeout) || $timeout === null || $timeout === self::DATA_TIMEOUT_SESSION_END); - // clean out old data - $this->expireData(); - if ($timeout === null) { // use the default timeout $timeout = self::$config->getInteger('session.datastore.timeout', null); if ($timeout !== null) { if ($timeout <= 0) { throw new \Exception( - 'The value of the session.datastore.timeout'. + 'The value of the session.datastore.timeout' . ' configuration option should be a positive integer.' ); } @@ -911,9 +926,7 @@ public function setData($type, $id, $data, $timeout = null) /** * This function removes expired data from the data store. * - * Note that this function doesn't mark the session object as dirty. This means that - * if the only change to the session object is that some data has expired, it will not be - * written back to the session store. + * @return void */ private function expireData() { @@ -928,6 +941,7 @@ private function expireData() if ($ct > $info['expires']) { unset($typedData[$id]); + $this->markDirty(); } } } @@ -953,8 +967,6 @@ public function getData($type, $id) return null; } - $this->expireData(); - if (!array_key_exists($type, $this->dataStore)) { return null; } @@ -1000,7 +1012,7 @@ public function getDataOfType($type) * * @param string $authority The authority to retrieve the data from. * - * @return array The current persistent authentication state, or null if not authenticated. + * @return array|null The current persistent authentication state, or null if not authenticated. */ public function getAuthState($authority) { @@ -1033,6 +1045,7 @@ public function hasSessionCookie() * * @param string $idp The IdP id. * @param array $association The association we should add. + * @return void */ public function addAssociation($idp, array $association) { @@ -1095,6 +1108,7 @@ public function getAssociations($idp) * * @param string $idp The IdP id. * @param string $associationId The id of the association. + * @return void */ public function terminateAssociation($idp, $associationId) { @@ -1153,6 +1167,7 @@ public function getAuthorities() /** * Clear any configuration information cached + * @return void */ public static function clearInternalState() { diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/SessionHandler.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/SessionHandler.php index b7422609a6ac2aa58878c2362de095b1cdcd8686..91fc08b26df9f640200665288d395aa25a870a8a 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/SessionHandler.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/SessionHandler.php @@ -16,8 +16,6 @@ abstract class SessionHandler { - - /** * This static variable contains a reference to the current * instance of the session handler. This variable will be NULL if @@ -25,7 +23,7 @@ abstract class SessionHandler * * @var \SimpleSAML\SessionHandler */ - protected static $sessionHandler = null; + protected static $sessionHandler; /** @@ -34,6 +32,8 @@ abstract class SessionHandler * to this function. * * @return \SimpleSAML\SessionHandler The current session handler. + * + * @throws \Exception If we cannot instantiate the session handler. */ public static function getSessionHandler() { @@ -126,6 +126,10 @@ abstract public function setCookie($sessionName, $sessionID, array $cookieParams * selected in the 'store.type' configuration directive. If no * session handler is selected, then we will fall back to the default * PHP session handler. + * + * @return void + * + * @throws \Exception If we cannot instantiate the session handler. */ private static function createSessionHandler() { diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/SessionHandlerCookie.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/SessionHandlerCookie.php index 7eea4656d94cafb5b760fde23b29136054826d49..556105f2e830f2d6986cf8514e934cc113b60bf8 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/SessionHandlerCookie.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/SessionHandlerCookie.php @@ -1,6 +1,5 @@ <?php - /** * This file is part of SimpleSAMLphp. See the file COPYING in the root of the distribution for licence information. * @@ -14,11 +13,10 @@ namespace SimpleSAML; -use SimpleSAML\Utils\HTTP; +use SimpleSAML\Utils; abstract class SessionHandlerCookie extends SessionHandler { - /** * This variable contains the current session id. * @@ -154,6 +152,7 @@ public function hasSessionCookie() * @param string $sessionName The name of the session. * @param string|null $sessionID The session ID to use. Set to null to delete the cookie. * @param array|null $cookieParams Additional parameters to use for the session cookie. + * @return void * * @throws \SimpleSAML\Error\CannotSetCookie If we can't set the cookie. */ @@ -168,6 +167,6 @@ public function setCookie($sessionName, $sessionID, array $cookieParams = null) $params = $this->getCookieParams(); } - HTTP::setCookie($sessionName, $sessionID, $params, true); + Utils\HTTP::setCookie($sessionName, $sessionID, $params, true); } } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/SessionHandlerPHP.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/SessionHandlerPHP.php index 6045c59aac2b96c333d45109a69d993ab4ae0d4f..c8c5a9fbbd2c45f6e7399077609a225d021b2c25 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/SessionHandlerPHP.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/SessionHandlerPHP.php @@ -11,12 +11,11 @@ namespace SimpleSAML; -use SimpleSAML\Error\CannotSetCookie; -use SimpleSAML\Utils\HTTP; +use SimpleSAML\Error; +use SimpleSAML\Utils; class SessionHandlerPHP extends SessionHandler { - /** * This variable contains the session cookie name. * @@ -52,8 +51,8 @@ protected function __construct() if (session_status() === PHP_SESSION_ACTIVE) { if (session_name() === $this->cookie_name || $this->cookie_name === null) { Logger::warning( - 'There is already a PHP session with the same name as SimpleSAMLphp\'s session, or the '. - "'session.phpsession.cookiename' configuration option is not set. Make sure to set ". + 'There is already a PHP session with the same name as SimpleSAMLphp\'s session, or the ' . + "'session.phpsession.cookiename' configuration option is not set. Make sure to set " . "SimpleSAMLphp's cookie name with a value not used by any other applications." ); } @@ -68,16 +67,18 @@ protected function __construct() session_write_close(); } - if (!empty($this->cookie_name)) { - session_name($this->cookie_name); - } else { + + if (empty($this->cookie_name)) { $this->cookie_name = session_name(); + } elseif (!headers_sent() || version_compare(PHP_VERSION, '7.2', '<')) { + session_name($this->cookie_name); } $params = $this->getCookieParams(); if (!headers_sent()) { - if (\PHP_VERSION_ID >= 70300) { + if (version_compare(PHP_VERSION, '7.3.0', '>=')) { + /** @psalm-suppress InvalidArgument This annotation may be removed in Psalm >=3.0.15 */ session_set_cookie_params([ 'lifetime' => $params['lifetime'], 'path' => $params['path'], @@ -87,14 +88,10 @@ protected function __construct() 'samesite' => $params['samesite'], ]); } else { - /* in older versions of PHP we need a nasty hack to set RFC6265bis SameSite attribute */ - if ($params['samesite'] !== null and !preg_match('/;\s+samesite/i', $params['path'])) { - $params['path'] .= '; SameSite='.$params['samesite']; - } session_set_cookie_params( $params['lifetime'], $params['path'], - $params['domain'], + is_null($params['domain']) ? '' : $params['domain'], $params['secure'], $params['httponly'] ); @@ -117,6 +114,8 @@ protected function __construct() * outside of \SimpleSAML\Session, could cause SimpleSAMLphp's session to be lost or mess the application's one. The * session must always be saved properly before calling this method. If you don't understand what this is about, * don't use this method. + * + * @return void */ public function restorePrevious() { @@ -128,7 +127,7 @@ public function restorePrevious() session_write_close(); session_name($this->previous_session['name']); - if (\PHP_VERSION_ID >= 70300) { + if (version_compare(PHP_VERSION, '7.3.0', '>=')) { session_set_cookie_params($this->previous_session['cookie_params']); } else { session_set_cookie_params( @@ -159,19 +158,29 @@ public function restorePrevious() */ public function newSessionId() { - // generate new (secure) session id - if (function_exists('session_create_id') && version_compare(phpversion(), '7.3', '<')) { + $sessionId = false; + if (function_exists('session_create_id') && version_compare(PHP_VERSION, '7.2', '<')) { + // generate new (secure) session id $sid_length = (int) ini_get('session.sid_length'); $sid_bits_per_char = (int) ini_get('session.sid_bits_per_character'); if (($sid_length * $sid_bits_per_char) < 128) { - \SimpleSAML\Logger::warning("Unsafe defaults used for sessionId generation!"); + Logger::warning("Unsafe defaults used for sessionId generation!"); } + + /** + * This annotation may be removed as soon as we start using vimeo/psalm 3.x + * @psalm-suppress TooFewArguments + */ $sessionId = session_create_id(); - } else { + } + + if (!$sessionId) { + Logger::warning("Secure session ID generation failed, falling back to custom ID generation."); $sessionId = bin2hex(openssl_random_pseudo_bytes(16)); } - \SimpleSAML\Session::createSession($sessionId); + + Session::createSession($sessionId); return $sessionId; } @@ -188,13 +197,18 @@ public function getCookieSessionId() return null; // there's no session cookie, can't return ID } + if (version_compare(PHP_VERSION, '7.2', 'ge') && headers_sent()) { + // latest versions of PHP don't allow loading a session when output sent, get the ID from the cookie + return $_COOKIE[$this->cookie_name]; + } + // do not rely on session_id() as it can return the ID of a previous session. Get it from the cookie instead. session_id($_COOKIE[$this->cookie_name]); $session_cookie_params = session_get_cookie_params(); - if ($session_cookie_params['secure'] && !HTTP::isHTTPS()) { - throw new \SimpleSAML\Error\Exception('Session start with secure cookie not allowed on http.'); + if ($session_cookie_params['secure'] && !Utils\HTTP::isHTTPS()) { + throw new Error\Exception('Session start with secure cookie not allowed on http.'); } @session_start(); @@ -217,6 +231,7 @@ public function getSessionCookieName() * Save the current session to the PHP session array. * * @param \SimpleSAML\Session $session The session object we should save. + * @return void */ public function saveSession(\SimpleSAML\Session $session) { @@ -239,17 +254,17 @@ public function loadSession($sessionId = null) assert(is_string($sessionId) || $sessionId === null); if ($sessionId !== null) { - if (session_id() === '') { + if (session_id() === '' && !(version_compare(PHP_VERSION, '7.2', 'ge') && headers_sent())) { // session not initiated with getCookieSessionId(), start session without setting cookie $ret = ini_set('session.use_cookies', '0'); if ($ret === false) { - throw new \SimpleSAML\Error\Exception('Disabling PHP option session.use_cookies failed.'); + throw new Error\Exception('Disabling PHP option session.use_cookies failed.'); } session_id($sessionId); @session_start(); } elseif ($sessionId !== session_id()) { - throw new \SimpleSAML\Error\Exception('Cannot load PHP session with a specific ID.'); + throw new Error\Exception('Cannot load PHP session with a specific ID.'); } } elseif (session_id() === '') { $this->getCookieSessionId(); @@ -299,7 +314,7 @@ public function getCookieParams() $ret = parent::getCookieParams(); if ($config->hasValue('session.phpsession.limitedpath') && $config->hasValue('session.cookie.path')) { - throw new \SimpleSAML\Error\Exception( + throw new Error\Exception( 'You cannot set both the session.phpsession.limitedpath and session.cookie.path options.' ); } elseif ($config->hasValue('session.phpsession.limitedpath')) { @@ -311,6 +326,13 @@ public function getCookieParams() $ret['httponly'] = $config->getBoolean('session.phpsession.httponly', true); + if (version_compare(PHP_VERSION, '7.3.0', '<')) { + // in older versions of PHP we need a nasty hack to set RFC6265bis SameSite attribute + if ($ret['samesite'] !== null and !preg_match('/;\s+samesite/i', $ret['path'])) { + $ret['path'] .= '; SameSite=' . $ret['samesite']; + } + } + return $ret; } @@ -321,6 +343,7 @@ public function getCookieParams() * @param string $sessionName The name of the session. * @param string|null $sessionID The session ID to use. Set to null to delete the cookie. * @param array|null $cookieParams Additional parameters to use for the session cookie. + * @return void * * @throws \SimpleSAML\Error\CannotSetCookie If we can't set the cookie. */ @@ -330,17 +353,17 @@ public function setCookie($sessionName, $sessionID, array $cookieParams = null) $cookieParams = session_get_cookie_params(); } - if ($cookieParams['secure'] && !HTTP::isHTTPS()) { - throw new CannotSetCookie( + if ($cookieParams['secure'] && !Utils\HTTP::isHTTPS()) { + throw new Error\CannotSetCookie( 'Setting secure cookie on plain HTTP is not allowed.', - CannotSetCookie::SECURE_COOKIE + Error\CannotSetCookie::SECURE_COOKIE ); } if (headers_sent()) { - throw new CannotSetCookie( + throw new Error\CannotSetCookie( 'Headers already sent.', - CannotSetCookie::HEADERS_SENT + Error\CannotSetCookie::HEADERS_SENT ); } @@ -349,19 +372,20 @@ public function setCookie($sessionName, $sessionID, array $cookieParams = null) session_write_close(); } - if (\PHP_VERSION_ID >= 70300) { + if (version_compare(PHP_VERSION, '7.3.0', '>=')) { + /** @psalm-suppress InvalidArgument This annotation may be removed in Psalm >=3.0.15 */ session_set_cookie_params($cookieParams); } else { session_set_cookie_params( $cookieParams['lifetime'], $cookieParams['path'], - $cookieParams['domain'], + is_null($cookieParams['domain']) ? '' : $cookieParams['domain'], $cookieParams['secure'], $cookieParams['httponly'] ); } - session_id($sessionID); + session_id(strval($sessionID)); @session_start(); } } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/SessionHandlerStore.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/SessionHandlerStore.php index f40b9eb958c6c1871c4fbbc2629412876c30a006..7406a5be6efee13bb8381bc6f51699ec63637fc0 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/SessionHandlerStore.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/SessionHandlerStore.php @@ -1,6 +1,5 @@ <?php - /** * Session storage in the data store. * @@ -11,7 +10,6 @@ class SessionHandlerStore extends SessionHandlerCookie { - /** * The data store we save the session to. * @@ -66,9 +64,16 @@ public function loadSession($sessionId = null) * Save a session to the data store. * * @param \SimpleSAML\Session $session The session object we should save. + * @return void */ public function saveSession(Session $session) { + if ($session->isTransient()) { + // transient session, nothing to save + return; + } + + /** @var string $sessionId */ $sessionId = $session->getSessionId(); $config = Configuration::getInstance(); diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Stats.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Stats.php index 56d07c3022fc25ad79940198e87595254009808b..25ff214ac09394780488485936aa0deb1da83e41 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Stats.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Stats.php @@ -38,7 +38,7 @@ class Stats private static function createOutput(\SimpleSAML\Configuration $config) { $cls = $config->getString('class'); - $cls = \SimpleSAML\Module::resolveClass($cls, 'Stats\Output', '\SimpleSAML\Stats\Output'); + $cls = Module::resolveClass($cls, 'Stats\Output', '\SimpleSAML\Stats\Output'); $output = new $cls($config); return $output; @@ -47,12 +47,14 @@ private static function createOutput(\SimpleSAML\Configuration $config) /** * Initialize the outputs. + * + * @return void */ private static function initOutputs() { - $config = \SimpleSAML\Configuration::getInstance(); - $outputCfgs = $config->getConfigList('statistics.out', []); + $config = Configuration::getInstance(); + $outputCfgs = $config->getConfigList('statistics.out'); self::$outputs = []; foreach ($outputCfgs as $cfg) { @@ -83,7 +85,7 @@ public static function log($event, array $data = []) if (empty(self::$outputs)) { // not enabled - return; + return false; } $data['op'] = $event; diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Stats/Output.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Stats/Output.php index a4a05ed44b0f318d9ec339fc9ac1d6687b10b160..0790f6ac5033b09f7054b6cfa6644dd06e26142d 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Stats/Output.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Stats/Output.php @@ -2,6 +2,8 @@ namespace SimpleSAML\Stats; +use SimpleSAML\Configuration; + /** * Interface for statistics outputs. * @@ -15,7 +17,7 @@ abstract class Output * * @param \SimpleSAML\Configuration $config The configuration for this output. */ - public function __construct(\SimpleSAML\Configuration $config) + public function __construct(Configuration $config) { // do nothing by default } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Store.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Store.php index 74e761e4944760206672ab532688c1a05f25dd48..50d5b3162200812474a28dab988d95389658fb8c 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Store.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Store.php @@ -2,7 +2,7 @@ namespace SimpleSAML; -use SimpleSAML\Error\CriticalConfigurationError; +use SimpleSAML\Error; /** * Base class for data stores. @@ -16,7 +16,7 @@ abstract class Store implements Utils\ClearableState * * This is false if the data store isn't enabled, and null if we haven't attempted to initialize it. * - * @var \SimpleSAML\Store|bool|null + * @var \SimpleSAML\Store|false|null */ private static $instance; @@ -24,7 +24,7 @@ abstract class Store implements Utils\ClearableState /** * Retrieve our singleton instance. * - * @return false|\SimpleSAML\Store The data store, or false if it isn't enabled. + * @return \SimpleSAML\Store|false The data store, or false if it isn't enabled. * * @throws \SimpleSAML\Error\CriticalConfigurationError */ @@ -58,12 +58,13 @@ public static function getInstance() } catch (\Exception $e) { $c = $config->toArray(); $c['store.type'] = 'phpsession'; - throw new CriticalConfigurationError( + throw new Error\CriticalConfigurationError( "Invalid 'store.type' configuration option. Cannot find store '$storeType'.", null, $c ); } + /** @var \SimpleSAML\Store|false */ self::$instance = new $className(); } @@ -104,6 +105,7 @@ abstract public function delete($type, $key); /** * Clear any SSP specific state, such as SSP environmental variables or cached internals. + * @return void */ public static function clearInternalState() { diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Store/Memcache.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Store/Memcache.php index 209ae762f3672a58913838350a14656990d237f0..2a8da49a79f39c3b08e43b10202f3348f7fd44ad 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Store/Memcache.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Store/Memcache.php @@ -2,8 +2,8 @@ namespace SimpleSAML\Store; -use \SimpleSAML\Configuration; -use \SimpleSAML\Store; +use SimpleSAML\Configuration; +use SimpleSAML\Store; /** * A memcache based data store. @@ -42,7 +42,7 @@ public function get($type, $key) assert(is_string($type)); assert(is_string($key)); - return \SimpleSAML\Memcache::get($this->prefix.'.'.$type.'.'.$key); + return \SimpleSAML\Memcache::get($this->prefix . '.' . $type . '.' . $key); } @@ -52,7 +52,8 @@ public function get($type, $key) * @param string $type The data type. * @param string $key The key. * @param mixed $value The value. - * @param int|NULL $expire The expiration time (unix timestamp), or NULL if it never expires. + * @param int|null $expire The expiration time (unix timestamp), or NULL if it never expires. + * @return void */ public function set($type, $key, $value, $expire = null) { @@ -64,7 +65,7 @@ public function set($type, $key, $value, $expire = null) $expire = 0; } - \SimpleSAML\Memcache::set($this->prefix.'.'.$type.'.'.$key, $value, $expire); + \SimpleSAML\Memcache::set($this->prefix . '.' . $type . '.' . $key, $value, $expire); } @@ -73,12 +74,13 @@ public function set($type, $key, $value, $expire = null) * * @param string $type The data type. * @param string $key The key. + * @return void */ public function delete($type, $key) { assert(is_string($type)); assert(is_string($key)); - \SimpleSAML\Memcache::delete($this->prefix.'.'.$type.'.'.$key); + \SimpleSAML\Memcache::delete($this->prefix . '.' . $type . '.' . $key); } } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Store/Redis.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Store/Redis.php index 310caa98f42cb480cc1e8d17102a20d7f7c0cc82..51c07cd77aab23574343504f66b77ff0bbf62bae 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Store/Redis.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Store/Redis.php @@ -2,8 +2,10 @@ namespace SimpleSAML\Store; -use \SimpleSAML\Configuration; -use \SimpleSAML\Store; +use Predis\Client; +use SimpleSAML\Configuration; +use SimpleSAML\Error; +use SimpleSAML\Store; /** * A data store using Redis to keep the data. @@ -12,17 +14,19 @@ */ class Redis extends Store { + /** @var \Predis\Client */ public $redis; /** * Initialize the Redis data store. + * @param \Predis\Client|null $redis */ public function __construct($redis = null) { - assert($redis === null || is_subclass_of($redis, 'Predis\\Client')); + assert($redis === null || is_subclass_of($redis, Client::class)); - if (!class_exists('\Predis\Client')) { - throw new \SimpleSAML\Error\CriticalConfigurationError('predis/predis is not available.'); + if (!class_exists(Client::class)) { + throw new Error\CriticalConfigurationError('predis/predis is not available.'); } if ($redis === null) { @@ -32,12 +36,14 @@ public function __construct($redis = null) $port = $config->getInteger('store.redis.port', 6379); $prefix = $config->getString('store.redis.prefix', 'SimpleSAMLphp'); $password = $config->getString('store.redis.password', ''); + $database = $config->getInteger('store.redis.database', 0); - $redis = new \Predis\Client( + $redis = new Client( [ 'scheme' => 'tcp', 'host' => $host, 'port' => $port, + 'database' => $database, ] + (!empty($password) ? ['password' => $password] : []), [ 'prefix' => $prefix, @@ -48,6 +54,7 @@ public function __construct($redis = null) $this->redis = $redis; } + /** * Deconstruct the Redis data store. */ @@ -58,6 +65,7 @@ public function __destruct() } } + /** * Retrieve a value from the data store. * @@ -80,6 +88,7 @@ public function get($type, $key) return unserialize($result); } + /** * Save a value in the data store. * @@ -87,6 +96,7 @@ public function get($type, $key) * @param string $key The key to insert. * @param mixed $value The value itself. * @param int|null $expire The expiration time (unix timestamp), or null if it never expires. + * @return void */ public function set($type, $key, $value, $expire = null) { @@ -104,11 +114,13 @@ public function set($type, $key, $value, $expire = null) } } + /** * Delete an entry from the data store. * * @param string $type The type of the data * @param string $key The key to delete. + * @return void */ public function delete($type, $key) { diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Store/SQL.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Store/SQL.php index 0f623df52e1d33e88b12dba89582e55128671009..0fc6c7991e7c6885cf12e35de29134aab9c2df2f 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Store/SQL.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Store/SQL.php @@ -2,9 +2,11 @@ namespace SimpleSAML\Store; -use \SimpleSAML\Configuration; -use \SimpleSAML\Logger; -use \SimpleSAML\Store; +use PDO; +use PDOException; +use SimpleSAML\Configuration; +use SimpleSAML\Logger; +use SimpleSAML\Store; /** * A data store using a RDBMS to keep the data. @@ -58,13 +60,13 @@ public function __construct() $options = $config->getArray('store.sql.options', null); $this->prefix = $config->getString('store.sql.prefix', 'simpleSAMLphp'); try { - $this->pdo = new \PDO($dsn, $username, $password, $options); - } catch (\PDOException $e) { - throw new \Exception("Database error: ".$e->getMessage()); + $this->pdo = new PDO($dsn, $username, $password, $options); + } catch (PDOException $e) { + throw new \Exception("Database error: " . $e->getMessage()); } - $this->pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); + $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); - $this->driver = $this->pdo->getAttribute(\PDO::ATTR_DRIVER_NAME); + $this->driver = $this->pdo->getAttribute(PDO::ATTR_DRIVER_NAME); if ($this->driver === 'mysql') { $this->pdo->exec('SET time_zone = "+00:00"'); @@ -77,22 +79,23 @@ public function __construct() /** * Initialize the table-version table. + * @return void */ private function initTableVersionTable() { $this->tableVersions = []; try { - $fetchTableVersion = $this->pdo->query('SELECT _name, _version FROM '.$this->prefix.'_tableVersion'); - } catch (\PDOException $e) { + $fetchTableVersion = $this->pdo->query('SELECT _name, _version FROM ' . $this->prefix . '_tableVersion'); + } catch (PDOException $e) { $this->pdo->exec( - 'CREATE TABLE '.$this->prefix. + 'CREATE TABLE ' . $this->prefix . '_tableVersion (_name VARCHAR(30) NOT NULL UNIQUE, _version INTEGER NOT NULL)' ); return; } - while (($row = $fetchTableVersion->fetch(\PDO::FETCH_ASSOC)) !== false) { + while (($row = $fetchTableVersion->fetch(PDO::FETCH_ASSOC)) !== false) { $this->tableVersions[$row['_name']] = (int) $row['_version']; } } @@ -100,16 +103,23 @@ private function initTableVersionTable() /** * Initialize key-value table. + * @return void */ private function initKVTable() { $current_version = $this->getTableVersion('kvstore'); $text_t = 'TEXT'; + $time_field = 'TIMESTAMP'; if ($this->driver === 'mysql') { // TEXT data type has size constraints that can be hit at some point, so we use LONGTEXT instead $text_t = 'LONGTEXT'; } + if ($this->driver === 'sqlsrv') { + // TIMESTAMP will not work for MSSQL. TIMESTAMP is automatically generated and cannot be inserted + // so we use DATETIME instead + $time_field = 'DATETIME'; + } /** * Queries for updates, grouped by version. @@ -117,10 +127,12 @@ private function initKVTable() */ $table_updates = [ [ - 'CREATE TABLE '.$this->prefix. - '_kvstore (_type VARCHAR(30) NOT NULL, _key VARCHAR(50) NOT NULL, _value '.$text_t. - ' NOT NULL, _expire TIMESTAMP, PRIMARY KEY (_key, _type))', - 'CREATE INDEX '.$this->prefix.'_kvstore_expire ON '.$this->prefix.'_kvstore (_expire)' + 'CREATE TABLE ' . $this->prefix . + '_kvstore (_type VARCHAR(30) NOT NULL, _key VARCHAR(50) NOT NULL, _value ' . $text_t . + ' NOT NULL, _expire ' . $time_field . ', PRIMARY KEY (_key, _type))', + $this->driver === 'sqlite' || $this->driver === 'sqlsrv' || $this->driver === 'pgsql' ? + 'CREATE INDEX ' . $this->prefix . '_kvstore_expire ON ' . $this->prefix . '_kvstore (_expire)' : + 'ALTER TABLE ' . $this->prefix . '_kvstore ADD INDEX ' . $this->prefix . '_kvstore_expire (_expire)' ], /** * This upgrade removes the default NOT NULL constraint on the _expire field in MySQL. @@ -129,16 +141,21 @@ private function initKVTable() * Copy the current data to the new table * Drop the old table * Rename the new table correctly - * Readd the index + * Read the index */ [ - 'CREATE TABLE '.$this->prefix. - '_kvstore_new (_type VARCHAR(30) NOT NULL, _key VARCHAR(50) NOT NULL, _value '.$text_t. - ' NOT NULL, _expire TIMESTAMP NULL, PRIMARY KEY (_key, _type))', - 'INSERT INTO '.$this->prefix.'_kvstore_new SELECT * FROM '.$this->prefix.'_kvstore', - 'DROP TABLE '.$this->prefix.'_kvstore', - 'ALTER TABLE '.$this->prefix.'_kvstore_new RENAME TO '.$this->prefix.'_kvstore', - 'CREATE INDEX '.$this->prefix.'_kvstore_expire ON '.$this->prefix.'_kvstore (_expire)' + 'CREATE TABLE ' . $this->prefix . + '_kvstore_new (_type VARCHAR(30) NOT NULL, _key VARCHAR(50) NOT NULL, _value ' . $text_t . + ' NOT NULL, _expire ' . $time_field . ' NULL, PRIMARY KEY (_key, _type))', + 'INSERT INTO ' . $this->prefix . '_kvstore_new SELECT * FROM ' . $this->prefix . '_kvstore', + 'DROP TABLE ' . $this->prefix . '_kvstore', + // FOR MSSQL use EXEC sp_rename to rename a table (RENAME won't work) + $this->driver === 'sqlsrv' ? + 'EXEC sp_rename ' . $this->prefix . '_kvstore_new, ' . $this->prefix . '_kvstore' : + 'ALTER TABLE ' . $this->prefix . '_kvstore_new RENAME TO ' . $this->prefix . '_kvstore', + $this->driver === 'sqlite' || $this->driver === 'sqlsrv' || $this->driver === 'pgsql' ? + 'CREATE INDEX ' . $this->prefix . '_kvstore_expire ON ' . $this->prefix . '_kvstore (_expire)' : + 'ALTER TABLE ' . $this->prefix . '_kvstore ADD INDEX ' . $this->prefix . '_kvstore_expire (_expire)' ] ]; @@ -185,6 +202,7 @@ public function getTableVersion($name) * * @param string $name Table name. * @param int $version Table version. + * @return void */ public function setTableVersion($name, $version) { @@ -192,7 +210,7 @@ public function setTableVersion($name, $version) assert(is_int($version)); $this->insertOrUpdate( - $this->prefix.'_tableVersion', + $this->prefix . '_tableVersion', ['_name'], ['_name' => $name, '_version' => $version] ); @@ -208,72 +226,71 @@ public function setTableVersion($name, $version) * @param string $table The table we should update. * @param array $keys The key columns. * @param array $data Associative array with columns. + * @return void */ public function insertOrUpdate($table, array $keys, array $data) { assert(is_string($table)); - $colNames = '('.implode(', ', array_keys($data)).')'; - $values = 'VALUES(:'.implode(', :', array_keys($data)).')'; + $colNames = '(' . implode(', ', array_keys($data)) . ')'; + $values = 'VALUES(:' . implode(', :', array_keys($data)) . ')'; switch ($this->driver) { case 'mysql': - $query = 'REPLACE INTO '.$table.' '.$colNames.' '.$values; + $query = 'REPLACE INTO ' . $table . ' ' . $colNames . ' ' . $values; $query = $this->pdo->prepare($query); $query->execute($data); - return; + break; case 'sqlite': - $query = 'INSERT OR REPLACE INTO '.$table.' '.$colNames.' '.$values; + $query = 'INSERT OR REPLACE INTO ' . $table . ' ' . $colNames . ' ' . $values; $query = $this->pdo->prepare($query); $query->execute($data); - return; - } - - // default implementation, try INSERT, and UPDATE if that fails. - $insertQuery = 'INSERT INTO '.$table.' '.$colNames.' '.$values; - $insertQuery = $this->pdo->prepare($insertQuery); - try { - $insertQuery->execute($data); - return; - } catch (\PDOException $e) { - $ecode = (string) $e->getCode(); - switch ($ecode) { - case '23000': // MSSQL - break; - case '23505': // PostgreSQL - break; - default: - Logger::error('Error while saving data: '.$e->getMessage()); - throw $e; - } + break; + default: + $updateCols = []; + $condCols = []; + $condData = []; + + foreach ($data as $col => $value) { + $tmp = $col . ' = :' . $col; + + if (in_array($col, $keys, true)) { + $condCols[] = $tmp; + $condData[$col] = $value; + } else { + $updateCols[] = $tmp; + } + } + + $selectQuery = 'SELECT * FROM ' . $table . ' WHERE ' . implode(' AND ', $condCols); + $selectQuery = $this->pdo->prepare($selectQuery); + $selectQuery->execute($condData); + + if (count($selectQuery->fetchAll()) > 0) { + // Update + $insertOrUpdateQuery = 'UPDATE ' . $table . ' SET ' . implode(',', $updateCols); + $insertOrUpdateQuery .= ' WHERE ' . implode(' AND ', $condCols); + $insertOrUpdateQuery = $this->pdo->prepare($insertOrUpdateQuery); + } else { + // Insert + $insertOrUpdateQuery = 'INSERT INTO ' . $table . ' ' . $colNames . ' ' . $values; + $insertOrUpdateQuery = $this->pdo->prepare($insertOrUpdateQuery); + } + $insertOrUpdateQuery->execute($data); + break; } - - $updateCols = []; - $condCols = []; - foreach ($data as $col => $value) { - $tmp = $col.' = :'.$col; - - if (in_array($col, $keys, true)) { - $condCols[] = $tmp; - } else { - $updateCols[] = $tmp; - } - } - - $updateQuery = 'UPDATE '.$table.' SET '.implode(',', $updateCols).' WHERE '.implode(' AND ', $condCols); - $updateQuery = $this->pdo->prepare($updateQuery); - $updateQuery->execute($data); } /** * Clean the key-value table of expired entries. + * @return void */ private function cleanKVStore() { Logger::debug('store.sql: Cleaning key-value store.'); - $query = 'DELETE FROM '.$this->prefix.'_kvstore WHERE _expire < :now'; + $query = 'DELETE FROM ' . $this->prefix . '_kvstore WHERE _expire < :now'; $params = ['now' => gmdate('Y-m-d H:i:s')]; $query = $this->pdo->prepare($query); @@ -298,14 +315,14 @@ public function get($type, $key) $key = sha1($key); } - $query = 'SELECT _value FROM '.$this->prefix. + $query = 'SELECT _value FROM ' . $this->prefix . '_kvstore WHERE _type = :type AND _key = :key AND (_expire IS NULL OR _expire > :now)'; $params = ['type' => $type, 'key' => $key, 'now' => gmdate('Y-m-d H:i:s')]; $query = $this->pdo->prepare($query); $query->execute($params); - $row = $query->fetch(\PDO::FETCH_ASSOC); + $row = $query->fetch(PDO::FETCH_ASSOC); if ($row === false) { return null; } @@ -331,6 +348,7 @@ public function get($type, $key) * @param string $key The key to insert. * @param mixed $value The value itself. * @param int|null $expire The expiration time (unix timestamp), or null if it never expires. + * @return void */ public function set($type, $key, $value, $expire = null) { @@ -360,7 +378,7 @@ public function set($type, $key, $value, $expire = null) '_expire' => $expire, ]; - $this->insertOrUpdate($this->prefix.'_kvstore', ['_type', '_key'], $data); + $this->insertOrUpdate($this->prefix . '_kvstore', ['_type', '_key'], $data); } @@ -369,6 +387,7 @@ public function set($type, $key, $value, $expire = null) * * @param string $type The type of the data * @param string $key The key to delete. + * @return void */ public function delete($type, $key) { @@ -384,7 +403,7 @@ public function delete($type, $key) '_key' => $key, ]; - $query = 'DELETE FROM '.$this->prefix.'_kvstore WHERE _type=:_type AND _key=:_key'; + $query = 'DELETE FROM ' . $this->prefix . '_kvstore WHERE _type=:_type AND _key=:_key'; $query = $this->pdo->prepare($query); $query->execute($data); } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utilities.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utilities.php index c6e04223e9baf472b6a5909d01bce4043ca676ce..3ea08caa743099613951ffc15b783f7b99893527 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utilities.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utilities.php @@ -2,6 +2,8 @@ namespace SimpleSAML; +use SimpleSAML\Error\Error; + /** * Misc static functions that is used several places.in example parsing and id generation. * @@ -15,12 +17,14 @@ class Utilities { /** * @deprecated This property will be removed in SSP 2.0. Please use SimpleSAML\Logger::isErrorMasked() instead. + * @var int */ public static $logMask = 0; /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::getSelfHost() instead. + * @return string */ public static function getSelfHost() { @@ -30,6 +34,7 @@ public static function getSelfHost() /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::getSelfURLHost() instead. + * @return string */ public static function selfURLhost() { @@ -39,6 +44,7 @@ public static function selfURLhost() /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::isHTTPS() instead. + * @return bool */ public static function isHTTPS() { @@ -49,6 +55,7 @@ public static function isHTTPS() /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::getSelfURLNoQuery() * instead. + * @return string */ public static function selfURLNoQuery() { @@ -59,6 +66,7 @@ public static function selfURLNoQuery() /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::getSelfHostWithPath() * instead. + * @return string */ public static function getSelfHostWithPath() { @@ -69,6 +77,8 @@ public static function getSelfHostWithPath() /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::getFirstPathElement() * instead. + * @param bool $trailingslash + * @return string */ public static function getFirstPathElement($trailingslash = true) { @@ -78,6 +88,7 @@ public static function getFirstPathElement($trailingslash = true) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::getSelfURL() instead. + * @return string */ public static function selfURL() { @@ -87,6 +98,7 @@ public static function selfURL() /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::getBaseURL() instead. + * @return string */ public static function getBaseURL() { @@ -96,6 +108,9 @@ public static function getBaseURL() /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::addURLParameters() instead. + * @param string $url + * @param array $parameters + * @return string */ public static function addURLparameter($url, $parameters) { @@ -105,6 +120,9 @@ public static function addURLparameter($url, $parameters) /** * @deprecated This method will be removed in SSP 2.0. Please use \SimpleSAML\Utils\HTTP::checkURLAllowed() instead. + * @param string $url + * @param array|null $trustedSites + * @return string */ public static function checkURLAllowed($url, array $trustedSites = null) { @@ -114,6 +132,8 @@ public static function checkURLAllowed($url, array $trustedSites = null) /** * @deprecated This method will be removed in SSP 2.0. Please use \SimpleSAML\Auth\State::parseStateID() instead. + * @param string $stateId + * @return array */ public static function parseStateID($stateId) { @@ -123,6 +143,9 @@ public static function parseStateID($stateId) /** * @deprecated This method will be removed in SSP 2.0. + * @param string|null $start + * @param string|null $end + * @return bool */ public static function checkDateConditions($start = null, $end = null) { @@ -147,6 +170,7 @@ public static function checkDateConditions($start = null, $end = null) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Random::generateID() instead. + * @return string */ public static function generateID() { @@ -157,6 +181,8 @@ public static function generateID() /** * @deprecated This method will be removed in SSP 2.0. Please use \SimpleSAML\Utils\Time::generateTimestamp() * instead. + * @param int|null $instant + * @return string */ public static function generateTimestamp($instant = null) { @@ -166,6 +192,9 @@ public static function generateTimestamp($instant = null) /** * @deprecated This method will be removed in SSP 2.0. Please use \SimpleSAML\Utils\Time::parseDuration() instead. + * @param string $duration + * @param int|null $timestamp + * @return int */ public static function parseDuration($duration, $timestamp = null) { @@ -175,6 +204,11 @@ public static function parseDuration($duration, $timestamp = null) /** * @deprecated This method will be removed in SSP 2.0. Please raise a SimpleSAML\Error\Error exception instead. + * @param string $trackId + * @param int|null $errorCode + * @param \Exception|null $e + * @throws \SimpleSAML\Error\Error + * @return void */ public static function fatalError($trackId = 'na', $errorCode = null, \Exception $e = null) { @@ -184,6 +218,9 @@ public static function fatalError($trackId = 'na', $errorCode = null, \Exception /** * @deprecated This method will be removed in version 2.0. Use SimpleSAML\Utils\Net::ipCIDRcheck() instead. + * @param string $cidr + * @param string|null $ip + * @return bool */ public static function ipCIDRcheck($cidr, $ip = null) { @@ -191,6 +228,11 @@ public static function ipCIDRcheck($cidr, $ip = null) } + /** + * @param string $url + * @param array $parameters + * @return void + */ private static function doRedirect($url, $parameters = []) { assert(is_string($url)); @@ -252,6 +294,10 @@ private static function doRedirect($url, $parameters = []) /** * @deprecated 1.12.0 This method will be removed from the API. Instead, use the redirectTrustedURL() or * redirectUntrustedURL() functions accordingly. + * @param string $url + * @param array $parameters + * @param array|null $allowed_redirect_hosts + * @return void */ public static function redirect($url, $parameters = [], $allowed_redirect_hosts = null) { @@ -271,6 +317,9 @@ public static function redirect($url, $parameters = [], $allowed_redirect_hosts /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::redirectTrustedURL() * instead. + * @param string $url + * @param array $parameters + * @return void */ public static function redirectTrustedURL($url, $parameters = []) { @@ -281,6 +330,9 @@ public static function redirectTrustedURL($url, $parameters = []) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::redirectUntrustedURL() * instead. + * @param string $url + * @param array $parameters + * @return void */ public static function redirectUntrustedURL($url, $parameters = []) { @@ -290,6 +342,8 @@ public static function redirectUntrustedURL($url, $parameters = []) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Arrays::transpose() instead. + * @param array $in + * @return mixed */ public static function transposeArray($in) { @@ -300,6 +354,10 @@ public static function transposeArray($in) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\XML::isDOMNodeOfType() * instead. + * @param \DOMNode $element + * @param string $name + * @param string $nsURI + * @return bool */ public static function isDOMElementOfType(\DOMNode $element, $name, $nsURI) { @@ -309,6 +367,10 @@ public static function isDOMElementOfType(\DOMNode $element, $name, $nsURI) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\XML::getDOMChildren() instead. + * @param \DOMElement $element + * @param string $localName + * @param string $namespaceURI + * @return array */ public static function getDOMChildren(\DOMElement $element, $localName, $namespaceURI) { @@ -318,6 +380,8 @@ public static function getDOMChildren(\DOMElement $element, $localName, $namespa /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\XML::getDOMText() instead. + * @param \DOMNode $element + * @return string */ public static function getDOMText($element) { @@ -328,6 +392,7 @@ public static function getDOMText($element) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::getAcceptLanguage() * instead. + * @return array */ public static function getAcceptLanguage() { @@ -337,6 +402,9 @@ public static function getAcceptLanguage() /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\XML::isValid() instead. + * @param string $xml + * @param string $schema + * @return string|false */ public static function validateXML($xml, $schema) { @@ -347,6 +415,9 @@ public static function validateXML($xml, $schema) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\XML::checkSAMLMessage() instead. + * @param string $message + * @param string $type + * @return void */ public static function validateXMLDocument($message, $type) { @@ -356,6 +427,8 @@ public static function validateXMLDocument($message, $type) /** * @deprecated This method will be removed in SSP 2.0. Please use openssl_random_pseudo_bytes() instead. + * @param int $length + * @return string */ public static function generateRandomBytes($length) { @@ -367,6 +440,8 @@ public static function generateRandomBytes($length) /** * @deprecated This method will be removed in SSP 2.0. Please use bin2hex() instead. + * @param string $bytes + * @return string */ public static function stringToHex($bytes) { @@ -380,6 +455,9 @@ public static function stringToHex($bytes) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\System::resolvePath() instead. + * @param string $path + * @param string|null $base + * @return string */ public static function resolvePath($path, $base = null) { @@ -389,6 +467,9 @@ public static function resolvePath($path, $base = null) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::resolveURL() instead. + * @param string $url + * @param string|null $base + * @return string */ public static function resolveURL($url, $base = null) { @@ -398,6 +479,8 @@ public static function resolveURL($url, $base = null) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::normalizeURL() instead. + * @param string $url + * @return string */ public static function normalizeURL($url) { @@ -407,6 +490,8 @@ public static function normalizeURL($url) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::parseQueryString() instead. + * @param string $query_string + * @return array */ public static function parseQueryString($query_string) { @@ -417,6 +502,8 @@ public static function parseQueryString($query_string) /** * @deprecated This method will be removed in SSP 2.0. Please use * SimpleSAML\Utils\Attributes::normalizeAttributesArray() instead. + * @param array $attributes + * @return array */ public static function parseAttributes($attributes) { @@ -426,6 +513,7 @@ public static function parseAttributes($attributes) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Config::getSecretSalt() instead. + * @return string */ public static function getSecretSalt() { @@ -435,6 +523,7 @@ public static function getSecretSalt() /** * @deprecated This method will be removed in SSP 2.0. Please call error_get_last() directly. + * @return string */ public static function getLastError() { @@ -454,6 +543,8 @@ public static function getLastError() /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Config::getCertPath() instead. + * @param string $path + * @return string */ public static function resolveCert($path) { @@ -463,6 +554,10 @@ public static function resolveCert($path) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Crypto::loadPublicKey() instead. + * @param \SimpleSAML\Configuration $metadata + * @param bool $required + * @param string $prefix + * @return array|null */ public static function loadPublicKey(\SimpleSAML\Configuration $metadata, $required = false, $prefix = '') { @@ -472,6 +567,10 @@ public static function loadPublicKey(\SimpleSAML\Configuration $metadata, $requi /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Crypto::loadPrivateKey() instead. + * @param \SimpleSAML\Configuration $metadata + * @param bool $required + * @param string $prefix + * @return array|null */ public static function loadPrivateKey(\SimpleSAML\Configuration $metadata, $required = false, $prefix = '') { @@ -481,6 +580,9 @@ public static function loadPrivateKey(\SimpleSAML\Configuration $metadata, $requ /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\XML::formatDOMElement() instead. + * @param \DOMElement $root + * @param string $indentBase + * @return void */ public static function formatDOMElement(\DOMElement $root, $indentBase = '') { @@ -490,6 +592,9 @@ public static function formatDOMElement(\DOMElement $root, $indentBase = '') /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\XML::formatXMLString() instead. + * @param string $xml + * @param string $indentBase + * @return string */ public static function formatXMLString($xml, $indentBase = '') { @@ -499,6 +604,9 @@ public static function formatXMLString($xml, $indentBase = '') /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Arrays::arrayize() instead. + * @param mixed $data + * @param int $index + * @return array */ public static function arrayize($data, $index = 0) { @@ -508,6 +616,7 @@ public static function arrayize($data, $index = 0) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Auth::isAdmin() instead. + * @return bool */ public static function isAdmin() { @@ -517,6 +626,8 @@ public static function isAdmin() /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Auth::getAdminLoginURL instead(); + * @param string|null $returnTo + * @return string */ public static function getAdminLoginURL($returnTo = null) { @@ -526,6 +637,7 @@ public static function getAdminLoginURL($returnTo = null) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Auth::requireAdmin() instead. + * @return void */ public static function requireAdmin() { @@ -535,6 +647,9 @@ public static function requireAdmin() /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::submitPOSTData() instead. + * @param string $destination + * @param array $post + * @return void */ public static function postRedirect($destination, $post) { @@ -545,6 +660,9 @@ public static function postRedirect($destination, $post) /** * @deprecated This method will be removed in SSP 2.0. PLease use SimpleSAML\Utils\HTTP::getPOSTRedirectURL() * instead. + * @param string $destination + * @param array $post + * @return string */ public static function createPostRedirectLink($destination, $post) { @@ -555,6 +673,10 @@ public static function createPostRedirectLink($destination, $post) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::getPOSTRedirectURL() * instead. + * @param string $destination + * @param array $post + * @return string + * @throws Error If the current session is a transient session. */ public static function createHttpPostRedirectLink($destination, $post) { @@ -568,6 +690,10 @@ public static function createHttpPostRedirectLink($destination, $post) ]; $session = \SimpleSAML\Session::getSessionFromRequest(); + if ($session->isTransient()) { + throw new Error('Cannot save data to a transient session'); + } + $session->setData('core_postdatalink', $postId, $postData); $redirInfo = base64_encode(\SimpleSAML\Utils\Crypto::aesEncrypt($session->getSessionId().':'.$postId)); @@ -581,6 +707,9 @@ public static function createHttpPostRedirectLink($destination, $post) /** * @deprecated This method will be removed in SSP 2.0. + * @param string $certificate + * @param string $caFile + * @return void */ public static function validateCA($certificate, $caFile) { @@ -590,6 +719,7 @@ public static function validateCA($certificate, $caFile) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Time::initTimezone() instead. + * @return void */ public static function initTimezone() { @@ -599,6 +729,10 @@ public static function initTimezone() /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\System::writeFile() instead. + * @param string $filename + * @param string $data + * @param int $mode + * @return void */ public static function writeFile($filename, $data, $mode = 0600) { @@ -608,6 +742,7 @@ public static function writeFile($filename, $data, $mode = 0600) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\System::getTempDir instead. + * @return string */ public static function getTempDir() { @@ -617,6 +752,8 @@ public static function getTempDir() /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Logger::maskErrors() instead. + * @param int $mask + * @return void */ public static function maskErrors($mask) { @@ -626,6 +763,7 @@ public static function maskErrors($mask) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Logger::popErrorMask() instead. + * @return void */ public static function popErrorMask() { @@ -636,6 +774,9 @@ public static function popErrorMask() /** * @deprecated This method will be removed in SSP 2.0. Please use * SimpleSAML\Utils\Config\Metadata::getDefaultEndpoint() instead. + * @param array $endpoints + * @param array|null $bindings + * @return array|null */ public static function getDefaultEndpoint(array $endpoints, array $bindings = null) { @@ -646,6 +787,8 @@ public static function getDefaultEndpoint(array $endpoints, array $bindings = nu /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::checkSessionCookie() * instead. + * @param string|null $retryURL + * @return void */ public static function checkCookie($retryURL = null) { @@ -655,6 +798,9 @@ public static function checkCookie($retryURL = null) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\XML::debugSAMLMessage() instead. + * @param string|\DOMElement $message + * @param string $type + * @return void */ public static function debugMessage($message, $type) { @@ -664,6 +810,10 @@ public static function debugMessage($message, $type) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::fetch() instead. + * @param string $path + * @param array $context + * @param bool $getHeaders + * @return string|array */ public static function fetch($path, $context = [], $getHeaders = false) { @@ -673,6 +823,8 @@ public static function fetch($path, $context = [], $getHeaders = false) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Crypto::aesEncrypt() instead. + * @param string $clear + * @return string */ public static function aesEncrypt($clear) { @@ -682,6 +834,8 @@ public static function aesEncrypt($clear) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\Crypto::aesDecrypt() instead. + * @param string $encData + * @return string */ public static function aesDecrypt($encData) { @@ -691,6 +845,7 @@ public static function aesDecrypt($encData) /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\System::getOS() instead. + * @return bool */ public static function isWindowsOS() { @@ -700,6 +855,11 @@ public static function isWindowsOS() /** * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::setCookie() instead. + * @param string $name + * @param string|null $value + * @param array|null $params + * @param bool $throw + * @return void */ public static function setCookie($name, $value, array $params = null, $throw = true) { diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Arrays.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Arrays.php index c27b198eb0284d72b69d013325ad924bdfa05498..b38d0ca5c7726c7b561e632f720f6453b9cb051f 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Arrays.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Arrays.php @@ -1,4 +1,5 @@ <?php + namespace SimpleSAML\Utils; /** @@ -8,7 +9,6 @@ */ class Arrays { - /** * Put a non-array variable into an array. * diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Attributes.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Attributes.php index 88c87f1aa26a271f0f473062ace38c1c22029c07..09e346ab6ebda4af279ed0b977477b5a04815340 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Attributes.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Attributes.php @@ -2,6 +2,8 @@ namespace SimpleSAML\Utils; +use SimpleSAML\Error; + /** * Attribute-related utility methods. * @@ -28,18 +30,18 @@ public static function getExpectedAttribute($attributes, $expected, $allow_multi { if (!is_array($attributes)) { throw new \InvalidArgumentException( - 'The attributes array is not an array, it is: '.print_r($attributes, true).'.' + 'The attributes array is not an array, it is: ' . print_r($attributes, true) . '.' ); } if (!is_string($expected)) { throw new \InvalidArgumentException( - 'The expected attribute is not a string, it is: '.print_r($expected, true).'.' + 'The expected attribute is not a string, it is: ' . print_r($expected, true) . '.' ); } if (!array_key_exists($expected, $attributes)) { - throw new \SimpleSAML\Error\Exception("No such attribute '".$expected."' found."); + throw new Error\Exception("No such attribute '" . $expected . "' found."); } $attribute = $attributes[$expected]; @@ -48,7 +50,7 @@ public static function getExpectedAttribute($attributes, $expected, $allow_multi } if (count($attribute) === 0) { - throw new \SimpleSAML\Error\Exception("Empty attribute '".$expected."'.'"); + throw new Error\Exception("Empty attribute '" . $expected . "'.'"); } elseif (count($attribute) > 1) { if ($allow_multiple === false) { throw new \SimpleSAML\Error\Exception( @@ -81,14 +83,14 @@ public static function normalizeAttributesArray($attributes) { if (!is_array($attributes)) { throw new \InvalidArgumentException( - 'The attributes array is not an array, it is: '.print_r($attributes, true).'".' + 'The attributes array is not an array, it is: ' . print_r($attributes, true) . '".' ); } $newAttrs = []; foreach ($attributes as $name => $values) { if (!is_string($name)) { - throw new \InvalidArgumentException('Invalid attribute name: "'.print_r($name, true).'".'); + throw new \InvalidArgumentException('Invalid attribute name: "' . print_r($name, true) . '".'); } $values = Arrays::arrayize($values); @@ -96,7 +98,7 @@ public static function normalizeAttributesArray($attributes) foreach ($values as $value) { if (!is_string($value)) { throw new \InvalidArgumentException( - 'Invalid attribute value for attribute '.$name.': "'.print_r($value, true).'".' + 'Invalid attribute value for attribute ' . $name . ': "' . print_r($value, true) . '".' ); } } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Auth.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Auth.php index 7cff78b27c038d68e6aa07774197015dcf74bf82..48cfcb16fcbf48de33b1d98e6d52713bf541f191 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Auth.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Auth.php @@ -1,7 +1,11 @@ <?php + namespace SimpleSAML\Utils; +use SimpleSAML\Auth as Authentication; +use SimpleSAML\Error; use SimpleSAML\Module; +use SimpleSAML\Session; /** * Auth-related utility methods. @@ -46,7 +50,7 @@ public static function getAdminLogoutURL($returnTo = null) throw new \InvalidArgumentException('Invalid input parameters.'); } - $as = new \SimpleSAML\Auth\Simple('admin'); + $as = new Authentication\Simple('admin'); return $as->getLogoutURL($returnTo = null); } @@ -60,7 +64,7 @@ public static function getAdminLogoutURL($returnTo = null) */ public static function isAdmin() { - $session = \SimpleSAML\Session::getSessionFromRequest(); + $session = Session::getSessionFromRequest(); return $session->isValid('admin') || $session->isValid('login-admin'); } @@ -83,11 +87,11 @@ public static function requireAdmin() } // not authenticated as admin user, start authentication - if (\SimpleSAML\Auth\Source::getById('admin') !== null) { - $as = new \SimpleSAML\Auth\Simple('admin'); + if (Authentication\Source::getById('admin') !== null) { + $as = new Authentication\Simple('admin'); $as->login(); } else { - throw new \SimpleSAML\Error\Exception( + throw new Error\Exception( 'Cannot find "admin" auth source, and admin privileges are required.' ); } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Config.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Config.php index 5f25f8a0de38e14c216c0adda424cc8d3660f36b..01f5f50c1d4a1bb36309cf974947f5fd524cb637 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Config.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Config.php @@ -1,6 +1,9 @@ <?php + namespace SimpleSAML\Utils; +use SimpleSAML\Configuration; + /** * Utility class for SimpleSAMLphp configuration management and manipulation. * @@ -24,7 +27,7 @@ public static function getCertPath($path) throw new \InvalidArgumentException('Invalid input parameters.'); } - $globalConfig = \SimpleSAML\Configuration::getInstance(); + $globalConfig = Configuration::getInstance(); $base = $globalConfig->getPathValue('certdir', 'cert/'); return System::resolvePath($path, $base); } @@ -47,7 +50,7 @@ public static function getCertPath($path) */ public static function getSecretSalt() { - $secretSalt = \SimpleSAML\Configuration::getInstance()->getString('secretsalt'); + $secretSalt = Configuration::getInstance()->getString('secretsalt'); if ($secretSalt === 'defaultsecretsalt') { throw new \InvalidArgumentException('The "secretsalt" configuration option must be set to a secret value.'); } @@ -65,7 +68,7 @@ public static function getSecretSalt() */ public static function getConfigDir() { - $configDir = dirname(dirname(dirname(__DIR__))).'/config'; + $configDir = dirname(dirname(dirname(__DIR__))) . '/config'; /** @var string|false $configDirEnv */ $configDirEnv = getenv('SIMPLESAMLPHP_CONFIG_DIR'); @@ -77,7 +80,7 @@ public static function getConfigDir() if (!is_dir($configDirEnv)) { throw new \InvalidArgumentException( sprintf( - 'Config directory specified by environment variable SIMPLESAMLPHP_CONFIG_DIR is not a '. + 'Config directory specified by environment variable SIMPLESAMLPHP_CONFIG_DIR is not a ' . 'directory. Given: "%s"', $configDirEnv ) diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Config/Metadata.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Config/Metadata.php index 7c66f290cd1aec631b3e06ac496a2cd251a2ccb6..eedb4f79fc0bf8f2ddc3a7112fe1e20718e93ee9 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Config/Metadata.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Config/Metadata.php @@ -1,6 +1,11 @@ <?php + namespace SimpleSAML\Utils\Config; +use SAML2\Constants; +use SimpleSAML\Configuration; +use SimpleSAML\Logger; + /** * Class with utilities to fetch different configuration objects from metadata configuration arrays. * @@ -106,17 +111,22 @@ public static function getContact($contact) // check the type if (!isset($contact['contactType']) || !in_array($contact['contactType'], self::$VALID_CONTACT_TYPES, true)) { $types = join(', ', array_map( + /** + * @param string $t + * @return string + */ function ($t) { - return '"'.$t.'"'; + return '"' . $t . '"'; }, self::$VALID_CONTACT_TYPES )); - throw new \InvalidArgumentException('"contactType" is mandatory and must be one of '.$types."."); + throw new \InvalidArgumentException('"contactType" is mandatory and must be one of ' . $types . "."); } // check attributes is an associative array if (isset($contact['attributes'])) { - if (empty($contact['attributes']) + if ( + empty($contact['attributes']) || !is_array($contact['attributes']) || count(array_filter(array_keys($contact['attributes']), 'is_string')) === 0 ) { @@ -145,24 +155,33 @@ function ($t) { } // check givenName - if (isset($contact['givenName']) && ( - empty($contact['givenName']) || !is_string($contact['givenName']) + if ( + isset($contact['givenName']) + && ( + empty($contact['givenName']) + || !is_string($contact['givenName']) ) ) { throw new \InvalidArgumentException('"givenName" must be a string and cannot be empty.'); } // check surName - if (isset($contact['surName']) && ( - empty($contact['surName']) || !is_string($contact['surName']) + if ( + isset($contact['surName']) + && ( + empty($contact['surName']) + || !is_string($contact['surName']) ) ) { throw new \InvalidArgumentException('"surName" must be a string and cannot be empty.'); } // check company - if (isset($contact['company']) && ( - empty($contact['company']) || !is_string($contact['company']) + if ( + isset($contact['company']) + && ( + empty($contact['company']) + || !is_string($contact['company']) ) ) { throw new \InvalidArgumentException('"company" must be a string and cannot be empty.'); @@ -170,8 +189,12 @@ function ($t) { // check emailAddress if (isset($contact['emailAddress'])) { - if (empty($contact['emailAddress']) || - !(is_string($contact['emailAddress']) || is_array($contact['emailAddress'])) + if ( + empty($contact['emailAddress']) + || !( + is_string($contact['emailAddress']) + || is_array($contact['emailAddress']) + ) ) { throw new \InvalidArgumentException('"emailAddress" must be a string or an array and cannot be empty.'); } @@ -186,8 +209,12 @@ function ($t) { // check telephoneNumber if (isset($contact['telephoneNumber'])) { - if (empty($contact['telephoneNumber']) || - !(is_string($contact['telephoneNumber']) || is_array($contact['telephoneNumber'])) + if ( + empty($contact['telephoneNumber']) + || !( + is_string($contact['telephoneNumber']) + || is_array($contact['telephoneNumber']) + ) ) { throw new \InvalidArgumentException( '"telephoneNumber" must be a string or an array and cannot be empty.' @@ -273,9 +300,9 @@ public static function getDefaultEndpoint(array $endpoints, array $bindings = nu */ public static function isHiddenFromDiscovery(array $metadata) { - \SimpleSAML\Logger::maskErrors(E_ALL); + Logger::maskErrors(E_ALL); $hidden = in_array(self::$HIDE_FROM_DISCOVERY, $metadata['EntityAttributes'][self::$ENTITY_CATEGORY], true); - \SimpleSAML\Logger::popErrorMask(); + Logger::popErrorMask(); return $hidden === true; } @@ -293,12 +320,12 @@ public static function parseNameIdPolicy($nameIdPolicy) if (is_string($nameIdPolicy)) { // handle old configurations where 'NameIDPolicy' was used to specify just the format - $policy = ['Format' => $nameIdPolicy]; + $policy = ['Format' => $nameIdPolicy, 'AllowCreate' => true]; } elseif (is_array($nameIdPolicy)) { // handle current configurations specifying an array in the NameIDPolicy config option - $nameIdPolicy_cf = \SimpleSAML\Configuration::loadFromArray($nameIdPolicy); + $nameIdPolicy_cf = Configuration::loadFromArray($nameIdPolicy); $policy = [ - 'Format' => $nameIdPolicy_cf->getString('Format', \SAML2\Constants::NAMEID_TRANSIENT), + 'Format' => $nameIdPolicy_cf->getString('Format', Constants::NAMEID_TRANSIENT), 'AllowCreate' => $nameIdPolicy_cf->getBoolean('AllowCreate', true), ]; $spNameQualifier = $nameIdPolicy_cf->getString('SPNameQualifier', false); @@ -307,7 +334,7 @@ public static function parseNameIdPolicy($nameIdPolicy) } } elseif ($nameIdPolicy === null) { // when NameIDPolicy is unset or set to null, default to transient as before - $policy = ['Format' => \SAML2\Constants::NAMEID_TRANSIENT]; + $policy = ['Format' => Constants::NAMEID_TRANSIENT, 'AllowCreate' => true]; } return $policy; diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Crypto.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Crypto.php index 9c22461d969c47a48e349a2247bf84c0e740f009..a3f5b23727607d44c735d375adc23dcdc9186701 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Crypto.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Crypto.php @@ -25,7 +25,7 @@ class Crypto * * @see \SimpleSAML\Utils\Crypto::aesDecrypt() */ - private static function _aesDecrypt($ciphertext, $secret) + private static function aesDecryptInternal($ciphertext, $secret) { if (!is_string($ciphertext)) { throw new \InvalidArgumentException( @@ -51,7 +51,7 @@ private static function _aesDecrypt($ciphertext, $secret) $msg = mb_substr($ciphertext, 48, $len - 48, '8bit'); // authenticate the ciphertext - if (self::secureCompare(hash_hmac('sha256', $iv.$msg, substr($key, 64, 64), true), $hmac)) { + if (self::secureCompare(hash_hmac('sha256', $iv . $msg, substr($key, 64, 64), true), $hmac)) { $plaintext = openssl_decrypt( $msg, 'AES-256-CBC', @@ -83,7 +83,7 @@ private static function _aesDecrypt($ciphertext, $secret) */ public static function aesDecrypt($ciphertext) { - return self::_aesDecrypt($ciphertext, Config::getSecretSalt()); + return self::aesDecryptInternal($ciphertext, Config::getSecretSalt()); } @@ -99,7 +99,7 @@ public static function aesDecrypt($ciphertext) * * @see \SimpleSAML\Utils\Crypto::aesEncrypt() */ - private static function _aesEncrypt($data, $secret) + private static function aesEncryptInternal($data, $secret) { if (!is_string($data)) { throw new \InvalidArgumentException('Input parameter "$data" must be a string.'); @@ -130,7 +130,7 @@ private static function _aesEncrypt($data, $secret) } // return the ciphertext with proper authentication - return hash_hmac('sha256', $iv.$ciphertext, substr($key, 64, 64), true).$iv.$ciphertext; + return hash_hmac('sha256', $iv . $ciphertext, substr($key, 64, 64), true) . $iv . $ciphertext; } @@ -148,7 +148,7 @@ private static function _aesEncrypt($data, $secret) */ public static function aesEncrypt($data) { - return self::_aesEncrypt($data, Config::getSecretSalt()); + return self::aesEncryptInternal($data, Config::getSecretSalt()); } @@ -162,9 +162,9 @@ public static function aesEncrypt($data) */ public static function der2pem($der, $type = 'CERTIFICATE') { - return "-----BEGIN ".$type."-----\n". - chunk_split(base64_encode($der), 64, "\n"). - "-----END ".$type."-----\n"; + return "-----BEGIN " . $type . "-----\n" . + chunk_split(base64_encode($der), 64, "\n") . + "-----END " . $type . "-----\n"; } @@ -201,7 +201,7 @@ public static function loadPrivateKey(Configuration $metadata, $required = false throw new \InvalidArgumentException('Invalid input parameters.'); } - $file = $metadata->getString($prefix.'privatekey', null); + $file = $metadata->getString($prefix . 'privatekey', null); if ($file === null) { // no private key found if ($required) { @@ -217,17 +217,14 @@ public static function loadPrivateKey(Configuration $metadata, $required = false $data = @file_get_contents($file); if ($data === false) { - throw new Error\Exception('Unable to load private key from file "'.$file.'"'); + throw new Error\Exception('Unable to load private key from file "' . $file . '"'); } $ret = [ 'PEM' => $data, + 'password' => $metadata->getString($prefix . 'privatekey_pass', null), ]; - if ($metadata->hasValue($prefix.'privatekey_pass')) { - $ret['password'] = $metadata->getString($prefix.'privatekey_pass'); - } - return $ret; } @@ -250,7 +247,7 @@ public static function loadPrivateKey(Configuration $metadata, $required = false * certificate.) * * @param \SimpleSAML\Configuration $metadata The metadata. - * @param bool $required Whether the private key is required. If this is TRUE, a missing key + * @param bool $required Whether the public key is required. If this is TRUE, a missing key * will cause an exception. Default is FALSE. * @param string $prefix The prefix which should be used when reading from the metadata array. * Defaults to ''. @@ -258,7 +255,7 @@ public static function loadPrivateKey(Configuration $metadata, $required = false * @return array|NULL Public key or certificate data, or NULL if no public key or certificate was found. * @throws \InvalidArgumentException If $metadata is not an instance of \SimpleSAML\Configuration, $required is not * boolean or $prefix is not a string. - * @throws Error\Exception If no private key is found in the metadata, or it was not possible to load + * @throws Error\Exception If no public key is found in the metadata, or it was not possible to load * it. * * @author Andreas Solberg, UNINETT AS <andreas.solberg@uninett.no> @@ -281,8 +278,8 @@ public static function loadPublicKey(Configuration $metadata, $required = false, continue; } $certData = $key['X509Certificate']; - $pem = "-----BEGIN CERTIFICATE-----\n". - chunk_split($certData, 64). + $pem = "-----BEGIN CERTIFICATE-----\n" . + chunk_split($certData, 64) . "-----END CERTIFICATE-----\n"; $certFingerprint = strtolower(sha1(base64_decode($certData))); @@ -293,9 +290,9 @@ public static function loadPublicKey(Configuration $metadata, $required = false, ]; } // no valid key found - } elseif ($metadata->hasValue($prefix.'certFingerprint')) { + } elseif ($metadata->hasValue($prefix . 'certFingerprint')) { // we only have a fingerprint available - $fps = $metadata->getArrayizeString($prefix.'certFingerprint'); + $fps = $metadata->getArrayizeString($prefix . 'certFingerprint'); // normalize fingerprint(s) - lowercase and no colons foreach ($fps as &$fp) { @@ -352,8 +349,8 @@ public static function pem2der($pem) * This function hashes a password with a given algorithm. * * @param string $password The password to hash. - * @param string|null $algorithm @deprecated The hashing algorithm, uppercase, optionally prepended with 'S' (salted). See - * hash_algos() for a complete list of hashing algorithms. + * @param string|null $algorithm @deprecated The hashing algorithm, uppercase, optionally + * prepended with 'S' (salted). See hash_algos() for a complete list of hashing algorithms. * @param string|null $salt @deprecated An optional salt to use. * * @return string The hashed password. @@ -374,9 +371,9 @@ public static function pwHash($password, $algorithm = null, $salt = null) } // hash w/o salt if (in_array(strtolower($algorithm), hash_algos(), true)) { - $alg_str = '{'.str_replace('SHA1', 'SHA', $algorithm).'}'; // LDAP compatibility + $alg_str = '{' . str_replace('SHA1', 'SHA', $algorithm) . '}'; // LDAP compatibility $hash = hash(strtolower($algorithm), $password, true); - return $alg_str.base64_encode($hash); + return $alg_str . base64_encode($hash); } // hash w/ salt if ($salt === null) { @@ -388,17 +385,18 @@ public static function pwHash($password, $algorithm = null, $salt = null) if ($algorithm[0] == 'S' && in_array(substr(strtolower($algorithm), 1), hash_algos(), true)) { $alg = substr(strtolower($algorithm), 1); // 'sha256' etc - $alg_str = '{'.str_replace('SSHA1', 'SSHA', $algorithm).'}'; // LDAP compatibility - $hash = hash($alg, $password.$salt, true); - return $alg_str.base64_encode($hash.$salt); + $alg_str = '{' . str_replace('SSHA1', 'SSHA', $algorithm) . '}'; // LDAP compatibility + $hash = hash($alg, $password . $salt, true); + return $alg_str . base64_encode($hash . $salt); } - throw new Error\Exception('Hashing algorithm \''.strtolower($algorithm).'\' is not supported'); + throw new Error\Exception('Hashing algorithm \'' . strtolower($algorithm) . '\' is not supported'); } else { if (!is_string($password)) { throw new \InvalidArgumentException('Invalid input parameter.'); + } elseif (!is_string($hash = password_hash($password, PASSWORD_DEFAULT))) { + throw new \InvalidArgumentException('Error while hashing password.'); } - - return password_hash($password, PASSWORD_DEFAULT); + return $hash; } } @@ -416,22 +414,7 @@ public static function pwHash($password, $algorithm = null, $salt = null) */ public static function secureCompare($known, $user) { - if (function_exists('hash_equals')) { - // use hash_equals() if available (PHP >= 5.6) - return hash_equals($known, $user); - } - - // compare manually in constant time - $len = mb_strlen($known, '8bit'); // see mbstring.func_overload - if ($len !== mb_strlen($user, '8bit')) { - return false; // length differs - } - $diff = 0; - for ($i = 0; $i < $len; $i++) { - $diff |= ord($known[$i]) ^ ord($user[$i]); - } - // if all the bytes in $a and $b are identical, $diff should be equal to 0 - return $diff === 0; + return hash_equals($known, $user); } @@ -478,7 +461,7 @@ public static function pwValid($hash, $password) $salt = substr(base64_decode($matches[2]), $hash_length); return self::secureCompare($hash, self::pwHash($password, $alg, $salt)); } - throw new Error\Exception('Hashing algorithm \''.strtolower($alg).'\' is not supported'); + throw new Error\Exception('Hashing algorithm \'' . strtolower($alg) . '\' is not supported'); } else { return $hash === $password; } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/EMail.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/EMail.php new file mode 100644 index 0000000000000000000000000000000000000000..a4f532224727c30caa027e08f4814ccf9e0a763d --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/EMail.php @@ -0,0 +1,305 @@ +<?php + +namespace SimpleSAML\Utils; + +use PHPMailer\PHPMailer\PHPMailer; +use SimpleSAML\Configuration; +use SimpleSAML\Logger; +use SimpleSAML\XHTML\Template; + +/** + * E-mailer class that can generate a formatted e-mail from array + * input data. + * + * @author Jørn Åne de Jong, Uninett AS <jorn.dejong@uninett.no> + * @package SimpleSAMLphp + */ + +class EMail +{ + /** @var array Dictionary with multivalues */ + private $data = []; + + /** @var string Introduction text */ + private $text = ''; + + /** @var PHPMailer The mailer instance */ + private $mail; + + + /** + * Constructor + * + * If $from or $to is not provided, the <code>technicalcontact_email</code> + * from the configuration is used. + * + * @param string $subject The subject of the e-mail + * @param string $from The from-address (both envelope and header) + * @param string $to The recipient + * + * @throws \PHPMailer\PHPMailer\Exception + */ + public function __construct($subject, $from = null, $to = null) + { + $this->mail = new PHPMailer(true); + $this->mail->Subject = $subject; + $this->mail->setFrom($from ?: static::getDefaultMailAddress()); + $this->mail->addAddress($to ?: static::getDefaultMailAddress()); + + static::initFromConfig($this); + } + + + /** + * Get the default e-mail address from the configuration + * This is used both as source and destination address + * unless something else is provided at the constructor. + * + * It will refuse to return the SimpleSAMLphp default address, + * which is na@example.org. + * + * @return string Default mail address + */ + public static function getDefaultMailAddress() + { + $config = Configuration::getInstance(); + $address = $config->getString('technicalcontact_email', 'na@example.org'); + $address = preg_replace('/^mailto:/i', '', $address); + if ('na@example.org' === $address) { + throw new \Exception('technicalcontact_email must be changed from the default value'); + } + return $address; + } + + + /** + * Set the data that should be embedded in the e-mail body + * + * @param array $data The data that should be embedded in the e-mail body + * @return void + */ + public function setData(array $data) + { + /* + * Convert every non-array value to an array with the original + * as its only element. This guarantees that every value of $data + * can be iterated over. + */ + $this->data = array_map( + /** + * @param mixed $v + * @return array + */ + function ($v) { + return is_array($v) ? $v : [$v]; + }, + $data + ); + } + + + /** + * Set an introduction text for the e-mail + * + * @param string $text Introduction text + * @return void + */ + public function setText($text) + { + $this->text = $text; + } + + + /** + * Add a Reply-To address to the mail + * + * @param string $address Reply-To e-mail address + * @return void + */ + public function addReplyTo($address) + { + $this->mail->addReplyTo($address); + } + + + /** + * Send the mail + * + * @param bool $plainTextOnly Do not send HTML payload + * @return void + * + * @throws \PHPMailer\PHPMailer\Exception + */ + public function send($plainTextOnly = false) + { + if ($plainTextOnly) { + $this->mail->isHTML(false); + $this->mail->Body = $this->generateBody('mailtxt.twig'); + } else { + $this->mail->isHTML(true); + $this->mail->Body = $this->generateBody('mailhtml.twig'); + $this->mail->AltBody = $this->generateBody('mailtxt.twig'); + } + + $this->mail->send(); + } + + /** + * Sets the method by which the email will be sent. Currently supports what + * PHPMailer supports: sendmail, mail and smtp. + * + * @param string $transportMethod the transport method + * @param array $transportOptions options for the transport method + * + * @return void + * + * @throws \InvalidArgumentException + */ + public function setTransportMethod($transportMethod, array $transportOptions = []) + { + assert(is_string($transportMethod)); + assert(is_array($transportOptions)); + + + switch (strtolower($transportMethod)) { + // smtp transport method + case 'smtp': + $this->mail->isSMTP(); + + // set the host (required) + if (isset($transportOptions['host'])) { + $this->mail->Host = $transportOptions['host']; + } else { + // throw an exception otherwise + throw new \InvalidArgumentException("Missing Required Email Transport Parameter 'host'"); + } + + // set the port (optional, assume standard SMTP port 25 if not provided) + $this->mail->Port = (isset($transportOptions['port'])) ? (int)$transportOptions['port'] : 25; + + // smtp auth: enabled if username or password is set + if (isset($transportOptions['username']) || isset($transportOptions['password'])) { + $this->mail->SMTPAuth = true; + } + + // smtp auth: username + if (isset($transportOptions['username'])) { + $this->mail->Username = $transportOptions['username']; + } + + // smtp auth: password + if (isset($transportOptions['password'])) { + $this->mail->Password = $transportOptions['password']; + } + + // smtp security: encryption type + if (isset($transportOptions['secure'])) { + $this->mail->SMTPSecure = $transportOptions['secure']; + } + + // smtp security: enable or disable smtp auto tls + if (isset($transportOptions['autotls'])) { + $this->mail->SMTPAutoTLS = (bool)$transportOptions['autotls']; + } + break; + //mail transport method + case 'mail': + $this->mail->isMail(); + break; + // sendmail transport method + case 'sendmail': + $this->mail->isSendmail(); + + // override the default path of the sendmail executable + if (isset($transportOptions['path'])) { + $this->mail->Sendmail = $transportOptions['path']; + } + break; + default: + throw new \InvalidArgumentException( + "Invalid Mail Transport Method - Check 'mail.transport.method' Configuration Option" + ); + } + } + + /** + * Initializes the provided EMail object with the configuration provided from the SimpleSAMLphp configuration. + * + * @param EMail $EMail + * @return EMail + * @throws \Exception + */ + public static function initFromConfig(EMail $EMail) + { + assert($EMail instanceof EMail); + + $config = Configuration::getInstance(); + $EMail->setTransportMethod( + $config->getString('mail.transport.method', 'mail'), + $config->getArrayize('mail.transport.options', []) + ); + + return $EMail; + } + + + /** + * Generate the body of the e-mail + * + * @param string $template The name of the template to use + * + * @return string The body of the e-mail + */ + public function generateBody($template) + { + $config = Configuration::getInstance(); + $newui = $config->getBoolean('usenewui', false); + + if ($newui === false) { + $result = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + <meta http-equiv="content-type" content="text/html; charset=utf-8" /> + <title>SimpleSAMLphp Email report</title> + <style type="text/css"> +pre, div.box { + margin: .4em 2em .4em 1em; + padding: 4px; +} +pre { + background: #eee; + border: 1px solid #aaa; +} + </style> +</head> +<body> +<h1>' . htmlspecialchars($this->mail->Subject) . '</h1> +<div class="container" style="background: #fafafa; border: 1px solid #eee; margin: 2em; padding: .6em;"> +<blockquote>"' . htmlspecialchars($this->text) . '"</blockquote> +</div>'; + foreach ($this->data as $name => $values) { + $result .= '<h2>' . htmlspecialchars($name) . '</h2><ul>'; + foreach ($values as $value) { + $result .= '<li><pre>' . htmlspecialchars($value) . '</pre></li>'; + } + $result .= '</ul>'; + } + } else { + $t = new Template($config, $template); + $twig = $t->getTwig(); + if (!isset($twig)) { + throw new \Exception( + 'Even though we explicitly configure that we want Twig,' + . ' the Template class does not give us Twig. This is a bug.' + ); + } + $result = $twig->render($template, [ + 'subject' => $this->mail->Subject, + 'text' => $this->text, + 'data' => $this->data + ]); + } + return $result; + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/HTTP.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/HTTP.php index 300e89e189d01d9c07113e86e298e4b4fce398ea..016f09e0e0c8eaaf7f411343496af1a76a1d601d 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/HTTP.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/HTTP.php @@ -1,11 +1,13 @@ <?php + namespace SimpleSAML\Utils; use SimpleSAML\Configuration; +use SimpleSAML\Error; use SimpleSAML\Logger; use SimpleSAML\Module; use SimpleSAML\Session; -use SimpleSAML\Error; +use SimpleSAML\XHTML\Template; /** * HTTP-related utility methods. @@ -30,15 +32,16 @@ private static function getSecurePOSTRedirectURL($destination, $data) $session = Session::getSessionFromRequest(); $id = self::savePOSTData($session, $destination, $data); - // get the session ID - $session_id = $session->getSessionId(); - if (is_null($session_id)) { + if ($session->isTransient()) { // this is a transient session, it is pointless to continue throw new Error\Exception('Cannot save POST data to a transient session.'); } + /** @var string $session_id */ + $session_id = $session->getSessionId(); + // encrypt the session ID and the random ID - $info = base64_encode(Crypto::aesEncrypt($session_id.':'.$id)); + $info = base64_encode(Crypto::aesEncrypt($session_id . ':' . $id)); $url = Module::getModuleURL('core/postredirect.php', ['RedirInfo' => $info]); return preg_replace('#^https:#', 'http:', $url); @@ -117,7 +120,7 @@ public static function getServerPort() $port = strval($port); if ($port !== $default_port) { - return ':'.$port; + return ':' . $port; } return ''; } @@ -137,7 +140,7 @@ public static function isValidURL($url) return false; } $scheme = parse_url($url, PHP_URL_SCHEME); - if ($scheme !== false && in_array(strtolower($scheme), ['http', 'https'], true)) { + if (is_string($scheme) && in_array(strtolower($scheme), ['http', 'https'], true)) { return true; } return false; @@ -185,8 +188,9 @@ private static function redirect($url, $parameters = []) * 302 Found. HTTP 303 See Other is sent if the HTTP version * is HTTP/1.1 and the request type was a POST request. */ - if ($_SERVER['SERVER_PROTOCOL'] === 'HTTP/1.1' && - $_SERVER['REQUEST_METHOD'] === 'POST' + if ( + $_SERVER['SERVER_PROTOCOL'] === 'HTTP/1.1' + && $_SERVER['REQUEST_METHOD'] === 'POST' ) { $code = 303; } else { @@ -199,7 +203,7 @@ private static function redirect($url, $parameters = []) if (!headers_sent()) { // set the location header - header('Location: '.$url, true, $code); + header('Location: ' . $url, true, $code); // disable caching of this response header('Pragma: no-cache'); @@ -207,20 +211,20 @@ private static function redirect($url, $parameters = []) } // show a minimal web page with a clickable link to the URL - echo '<?xml version="1.0" encoding="UTF-8"?>'."\n"; + echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n"; echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"'; - echo ' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'."\n"; - echo '<html xmlns="http://www.w3.org/1999/xhtml">'."\n"; + echo ' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' . "\n"; + echo '<html xmlns="http://www.w3.org/1999/xhtml">' . "\n"; echo " <head>\n"; - echo ' <meta http-equiv="content-type" content="text/html; charset=utf-8">'."\n"; - echo ' <meta http-equiv="refresh" content="0;URL=\''.htmlspecialchars($url).'\'">'."\n"; + echo ' <meta http-equiv="content-type" content="text/html; charset=utf-8">' . "\n"; + echo ' <meta http-equiv="refresh" content="0;URL=\'' . htmlspecialchars($url) . '\'">' . "\n"; echo " <title>Redirect</title>\n"; echo " </head>\n"; echo " <body>\n"; echo " <h1>Redirect</h1>\n"; - echo ' <p>You were redirected to: <a id="redirlink" href="'.htmlspecialchars($url).'">'; - echo htmlspecialchars($url)."</a>\n"; - echo ' <script type="text/javascript">document.getElementById("redirlink").focus();</script>'."\n"; + echo ' <p>You were redirected to: <a id="redirlink" href="' . htmlspecialchars($url) . '">'; + echo htmlspecialchars($url) . "</a>\n"; + echo ' <script type="text/javascript">document.getElementById("redirlink").focus();</script>' . "\n"; echo " </p>\n"; echo " </body>\n"; echo '</html>'; @@ -354,7 +358,7 @@ public static function checkURLAllowed($url, array $trustedSites = null) $url = self::normalizeURL($url); if (!self::isValidURL($url)) { - throw new Error\Exception('Invalid URL: '.$url); + throw new Error\Exception('Invalid URL: ' . $url); } // get the white list of domains @@ -364,23 +368,28 @@ public static function checkURLAllowed($url, array $trustedSites = null) // validates the URL's host is among those allowed if (is_array($trustedSites)) { - assert(is_array($trustedSites)); $components = parse_url($url); $hostname = $components['host']; // check for userinfo - if ((isset($components['user']) && strpos($components['user'], '\\') !== false) || - (isset($components['pass']) && strpos($components['pass'], '\\') !== false) + if ( + (isset($components['user']) + && strpos($components['user'], '\\') !== false) + || (isset($components['pass']) + && strpos($components['pass'], '\\') !== false) ) { - throw new Error\Exception('Invalid URL: '.$url); + throw new Error\Exception('Invalid URL: ' . $url); } // allow URLs with standard ports specified (non-standard ports must then be allowed explicitly) - if (isset($components['port']) && - (($components['scheme'] === 'http' && $components['port'] !== 80) || - ($components['scheme'] === 'https' && $components['port'] !== 443)) + if ( + isset($components['port']) + && (($components['scheme'] === 'http' + && $components['port'] !== 80) + || ($components['scheme'] === 'https' + && $components['port'] !== 443)) ) { - $hostname = $hostname.':'.$components['port']; + $hostname = $hostname . ':' . $components['port']; } $self_host = self::getSelfHostWithNonStandardPort(); @@ -407,7 +416,7 @@ public static function checkURLAllowed($url, array $trustedSites = null) // throw exception due to redirection to untrusted site if (!$trusted) { - throw new Error\Exception('URL not allowed: '.$url); + throw new Error\Exception('URL not allowed: ' . $url); } } return $url; @@ -448,7 +457,7 @@ public static function fetch($url, $context = [], $getHeaders = false) } $proxy_auth = $config->getString('proxy.auth', false); if ($proxy_auth !== false) { - $context['http']['header'] = "Proxy-Authorization: Basic ".base64_encode($proxy_auth); + $context['http']['header'] = "Proxy-Authorization: Basic " . base64_encode($proxy_auth); } if (!isset($context['http']['request_fulluri'])) { $context['http']['request_fulluri'] = true; @@ -461,7 +470,8 @@ public static function fetch($url, $context = [], $getHeaders = false) * These controls will force the same value for both fields. * Marco Ferrante (marco@csita.unige.it), Nov 2012 */ - if (preg_match('#^https#i', $url) + if ( + preg_match('#^https#i', $url) && defined('OPENSSL_TLSEXT_SERVER_NAME') && OPENSSL_TLSEXT_SERVER_NAME ) { @@ -482,14 +492,20 @@ public static function fetch($url, $context = [], $getHeaders = false) $data = @file_get_contents($url, false, $context); if ($data === false) { $error = error_get_last(); - throw new Error\Exception('Error fetching '.var_export($url, true).':'. + throw new Error\Exception('Error fetching ' . var_export($url, true) . ':' . (is_array($error) ? $error['message'] : 'no error available')); } // data and headers if ($getHeaders) { - if (isset($http_response_header)) { + /** + * @psalm-suppress UndefinedVariable Remove when Psalm >= 3.0.17 + */ + if (!empty($http_response_header)) { $headers = []; + /** + * @psalm-suppress UndefinedVariable Remove when Psalm >= 3.0.17 + */ foreach ($http_response_header as $h) { if (preg_match('@^HTTP/1\.[01]\s+\d{3}\s+@', $h)) { $headers = []; // reset @@ -597,7 +613,7 @@ public static function guessBasePath() $script = array_pop($path); // get the portion of the URI up to the script, i.e.: /simplesaml/some/directory/script.php - if (!preg_match('#^/(?:[^/]+/)*'.$script.'#', $_SERVER['REQUEST_URI'], $matches)) { + if (!preg_match('#^/(?:[^/]+/)*' . $script . '#', $_SERVER['REQUEST_URI'], $matches)) { return '/'; } $uri_s = explode('/', $matches[0]); @@ -609,7 +625,7 @@ public static function guessBasePath() array_pop($file_s); } // we are now left with the minimum part of the URI that does not match anything in the file system, use it - return join('/', $uri_s).'/'; + return join('/', $uri_s) . '/'; } @@ -629,10 +645,11 @@ public static function getBaseURL() if (preg_match('#^https?://.*/?$#D', $baseURL, $matches)) { // full URL in baseurlpath, override local server values - return rtrim($baseURL, '/').'/'; - } elseif ((preg_match('#^/?([^/]?.*/)$#D', $baseURL, $matches)) || - (preg_match('#^\*(.*)/$#D', $baseURL, $matches)) || - ($baseURL === '') + return rtrim($baseURL, '/') . '/'; + } elseif ( + (preg_match('#^/?([^/]?.*/)$#D', $baseURL, $matches)) + || (preg_match('#^\*(.*)/$#D', $baseURL, $matches)) + || ($baseURL === '') ) { // get server values $protocol = 'http'; @@ -643,7 +660,7 @@ public static function getBaseURL() $port = self::getServerPort(); $path = $globalConfig->getBasePath(); - return $protocol.$hostname.$port.$path; + return $protocol . $hostname . $port . $path; } else { /* * Invalid 'baseurlpath'. We cannot recover from this, so throw a critical exception and try to be graceful @@ -652,7 +669,7 @@ public static function getBaseURL() $c = $globalConfig->toArray(); $c['baseurlpath'] = self::guessBasePath(); throw new Error\CriticalConfigurationError( - 'Invalid value for \'baseurlpath\' in config.php. Valid format is in the form: '. + 'Invalid value for \'baseurlpath\' in config.php. Valid format is in the form: ' . '[(http|https)://(hostname|fqdn)[:port]]/[path/to/simplesaml/]. It must end with a \'/\'.', null, $c @@ -673,7 +690,7 @@ public static function getBaseURL() public static function getFirstPathElement($leadingSlash = true) { if (preg_match('|^/(.*?)/|', $_SERVER['SCRIPT_NAME'], $matches)) { - return ($leadingSlash ? '/' : '').$matches[1]; + return ($leadingSlash ? '/' : '') . $matches[1]; } return ''; } @@ -753,6 +770,7 @@ public static function getSelfHostWithNonStandardPort() return substr($url, $start, $length); } + /** * Retrieve our own host together with the URL path. Please note this function will return the base URL for the * current SP, as defined in the global configuration. @@ -767,7 +785,7 @@ public static function getSelfHostWithPath() $baseurl = explode("/", self::getBaseURL()); $elements = array_slice($baseurl, 3 - count($baseurl), count($baseurl) - 4); $path = implode("/", $elements); - return self::getSelfHostWithNonStandardPort()."/".$path; + return self::getSelfHostWithNonStandardPort() . "/" . $path; } @@ -794,7 +812,7 @@ public static function getSelfURL() // make sure we got a string from realpath() $cur_path = is_string($cur_path) ? $cur_path : ''; // find the path to the current script relative to the www/ directory of SimpleSAMLphp - $rel_path = str_replace($baseDir.'www'.DIRECTORY_SEPARATOR, '', $cur_path); + $rel_path = str_replace($baseDir . 'www' . DIRECTORY_SEPARATOR, '', $cur_path); // convert that relative path to an HTTP query $url_path = str_replace(DIRECTORY_SEPARATOR, '/', $rel_path); // find where the relative path starts in the current request URI @@ -820,24 +838,23 @@ public static function getSelfURL() */ /** @var \SimpleSAML\Configuration $appcfg */ - $appcfg = $cfg->getConfigItem('application', null); - $appurl = ($appcfg instanceof Configuration) ? $appcfg->getString('baseURL', '') : ''; + $appcfg = $cfg->getConfigItem('application'); + $appurl = $appcfg->getString('baseURL', ''); if (!empty($appurl)) { $protocol = parse_url($appurl, PHP_URL_SCHEME); $hostname = parse_url($appurl, PHP_URL_HOST); $port = parse_url($appurl, PHP_URL_PORT); - $port = !empty($port) ? ':'.$port : ''; + $port = !empty($port) ? ':' . $port : ''; } else { // no base URL specified for app, just use the current URL - $protocol = 'http'; - $protocol .= (self::getServerHTTPS()) ? 's' : ''; + $protocol = self::getServerHTTPS() ? 'https' : 'http'; $hostname = self::getServerHost(); $port = self::getServerPort(); } - return $protocol.'://'.$hostname.$port.$_SERVER['REQUEST_URI']; + return $protocol . '://' . $hostname . $port . $_SERVER['REQUEST_URI']; } - return self::getBaseURL().$url_path.substr($_SERVER['REQUEST_URI'], $uri_pos + strlen($url_path)); + return self::getBaseURL() . $url_path . substr($_SERVER['REQUEST_URI'], $uri_pos + strlen($url_path)); } @@ -917,7 +934,7 @@ public static function normalizeURL($url) // verify that the URL is to a http or https site if (!preg_match('@^https?://@i', $url)) { - throw new \InvalidArgumentException('Invalid URL: '.$url); + throw new \InvalidArgumentException('Invalid URL: ' . $url); } return $url; @@ -1061,10 +1078,10 @@ public static function resolveURL($url, $base = null) } if (!preg_match('/^((((\w+:)\/\/[^\/]+)(\/[^?#]*))(?:\?[^#]*)?)(?:#.*)?/', $base, $baseParsed)) { - throw new \InvalidArgumentException('Unable to parse base url: '.$base); + throw new \InvalidArgumentException('Unable to parse base url: ' . $base); } - $baseDir = dirname($baseParsed[5].'filename'); + $baseDir = dirname($baseParsed[5] . 'filename'); $baseScheme = $baseParsed[4]; $baseHost = $baseParsed[3]; $basePath = $baseParsed[2]; @@ -1075,17 +1092,17 @@ public static function resolveURL($url, $base = null) } if (substr($url, 0, 2) === '//') { - return $baseScheme.$url; + return $baseScheme . $url; } if ($url[0] === '/') { - return $baseHost.$url; + return $baseHost . $url; } if ($url[0] === '?') { - return $basePath.$url; + return $basePath . $url; } if ($url[0] === '#') { - return $baseQuery.$url; + return $baseQuery . $url; } // we have a relative path. Remove query string/fragment and save it as $tail @@ -1111,7 +1128,7 @@ public static function resolveURL($url, $base = null) $dir = System::resolvePath($dir, $baseDir); - return $baseHost.$dir.$tail; + return $baseHost . $dir . $tail; } @@ -1133,10 +1150,13 @@ public static function resolveURL($url, $base = null) */ public static function setCookie($name, $value, $params = null, $throw = true) { - if (!(is_string($name) && // $name must be a string - (is_string($value) || is_null($value)) && // $value can be a string or null - (is_array($params) || is_null($params)) && // $params can be an array or null - is_bool($throw)) // $throw must be boolean + if ( + !(is_string($name) // $name must be a string + && (is_string($value) + || is_null($value)) // $value can be a string or null + && (is_array($params) + || is_null($params)) // $params can be an array or null + && is_bool($throw)) // $throw must be boolean ) { throw new \InvalidArgumentException('Invalid input parameters.'); } @@ -1172,17 +1192,19 @@ public static function setCookie($name, $value, $params = null, $throw = true) if ($value === null) { $expire = time() - 365 * 24 * 60 * 60; + $value = strval($value); } elseif (isset($params['expire'])) { - $expire = $params['expire']; + $expire = intval($params['expire']); } elseif ($params['lifetime'] === 0) { $expire = 0; } else { - $expire = time() + $params['lifetime']; + $expire = time() + intval($params['lifetime']); } - if (\PHP_VERSION_ID >= 70300) { + if (version_compare(PHP_VERSION, '7.3.0', '>=')) { /* use the new options array for PHP >= 7.3 */ if ($params['raw']) { + /** @psalm-suppress InvalidArgument Remove when Psalm >= 3.4.10 */ $success = @setrawcookie( $name, $value, @@ -1196,6 +1218,7 @@ public static function setCookie($name, $value, $params = null, $throw = true) ] ); } else { + /** @psalm-suppress InvalidArgument Remove when Psalm >= 3.4.10 */ $success = @setcookie( $name, $value, @@ -1211,8 +1234,8 @@ public static function setCookie($name, $value, $params = null, $throw = true) } } else { /* in older versions of PHP we need a nasty hack to set RFC6265bis SameSite attribute */ - if ($params['samesite'] !== null and !preg_match('/;\s+samesite/i', $params['path'])) { - $params['path'] .= '; SameSite='.$params['samesite']; + if ($params['samesite'] !== null && !preg_match('/;\s+samesite/i', $params['path'])) { + $params['path'] .= '; SameSite=' . $params['samesite']; } if ($params['raw']) { $success = @setrawcookie( @@ -1283,7 +1306,7 @@ public static function submitPOSTData($destination, $data) self::redirect(self::getSecurePOSTRedirectURL($destination, $data)); } - $p = new \SimpleSAML\XHTML\Template($config, 'post.php'); + $p = new Template($config, 'post.php'); $p->data['destination'] = $destination; $p->data['post'] = $data; $p->show(); diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/HttpAdapter.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/HttpAdapter.php index b82392076342830ed41121630c09ef287210a96e..b2e90b475a153a297c4cbba2627bae002fcd7fd8 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/HttpAdapter.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/HttpAdapter.php @@ -11,6 +11,7 @@ class HttpAdapter { /** * @see HTTP::getServerHTTPS() + * @return bool */ public function getServerHTTPS() { @@ -19,6 +20,7 @@ public function getServerHTTPS() /** * @see HTTP::getServerPort() + * @return string */ public function getServerPort() { @@ -27,6 +29,10 @@ public function getServerPort() /** * @see HTTP::addURLParameters() + * + * @param string $url + * @param array $parameters + * @return string */ public function addURLParameters($url, $parameters) { @@ -35,6 +41,9 @@ public function addURLParameters($url, $parameters) /** * @see HTTP::checkSessionCookie() + * + * @param string|null $retryURL + * @return void */ public function checkSessionCookie($retryURL = null) { @@ -43,6 +52,10 @@ public function checkSessionCookie($retryURL = null) /** * @see HTTP::checkURLAllowed() + * + * @param string $url + * @param array|null $trustedSites + * @return string */ public function checkURLAllowed($url, array $trustedSites = null) { @@ -51,6 +64,11 @@ public function checkURLAllowed($url, array $trustedSites = null) /** * @see HTTP::fetch() + * + * @param string $url + * @param array $context + * @param bool $getHeaders + * @return array|string */ public function fetch($url, $context = [], $getHeaders = false) { @@ -59,6 +77,7 @@ public function fetch($url, $context = [], $getHeaders = false) /** * @see HTTP::getAcceptLanguage() + * @return array */ public function getAcceptLanguage() { @@ -67,6 +86,7 @@ public function getAcceptLanguage() /** * @see HTTP::guessBasePath() + * @return string */ public function guessBasePath() { @@ -75,6 +95,7 @@ public function guessBasePath() /** * @see HTTP::getBaseURL() + * @return string */ public function getBaseURL() { @@ -83,6 +104,9 @@ public function getBaseURL() /** * @see HTTP::getFirstPathElement() + * + * @param bool $trailingslash + * @return string */ public function getFirstPathElement($trailingslash = true) { @@ -91,6 +115,10 @@ public function getFirstPathElement($trailingslash = true) /** * @see HTTP::getPOSTRedirectURL() + * + * @param string $destination + * @param array $data + * @return string */ public function getPOSTRedirectURL($destination, $data) { @@ -99,6 +127,7 @@ public function getPOSTRedirectURL($destination, $data) /** * @see HTTP::getSelfHost() + * @return string */ public function getSelfHost() { @@ -107,6 +136,7 @@ public function getSelfHost() /** * @see HTTP::getSelfHostWithNonStandardPort() + * @return string */ public function getSelfHostWithNonStandardPort() { @@ -115,6 +145,7 @@ public function getSelfHostWithNonStandardPort() /** * @see HTTP::getSelfHostWithPath() + * @return string */ public function getSelfHostWithPath() { @@ -123,6 +154,7 @@ public function getSelfHostWithPath() /** * @see HTTP::getSelfURL() + * @return string */ public function getSelfURL() { @@ -131,6 +163,7 @@ public function getSelfURL() /** * @see HTTP::getSelfURLHost() + * @return string */ public function getSelfURLHost() { @@ -139,6 +172,7 @@ public function getSelfURLHost() /** * @see HTTP::getSelfURLNoQuery() + * @return string */ public function getSelfURLNoQuery() { @@ -147,6 +181,7 @@ public function getSelfURLNoQuery() /** * @see HTTP::isHTTPS() + * @return bool */ public function isHTTPS() { @@ -155,6 +190,8 @@ public function isHTTPS() /** * @see HTTP::normalizeURL() + * @param string $url + * @return string */ public function normalizeURL($url) { @@ -163,6 +200,9 @@ public function normalizeURL($url) /** * @see HTTP::parseQueryString() + * + * @param string $query_string + * @return array */ public function parseQueryString($query_string) { @@ -171,6 +211,10 @@ public function parseQueryString($query_string) /** * @see HTTP::redirectTrustedURL() + * + * @param string $url + * @param array $parameters + * @return void */ public function redirectTrustedURL($url, $parameters = []) { @@ -179,6 +223,10 @@ public function redirectTrustedURL($url, $parameters = []) /** * @see HTTP::redirectUntrustedURL() + * + * @param string $url + * @param array $parameters + * @return void */ public function redirectUntrustedURL($url, $parameters = []) { @@ -187,6 +235,10 @@ public function redirectUntrustedURL($url, $parameters = []) /** * @see HTTP::resolveURL() + * + * @param string $url + * @param string|null $base + * @return string */ public function resolveURL($url, $base = null) { @@ -195,6 +247,12 @@ public function resolveURL($url, $base = null) /** * @see HTTP::setCookie() + * + * @param string $name + * @param string $value + * @param array|null $params + * @param bool $throw + * @return void */ public function setCookie($name, $value, $params = null, $throw = true) { @@ -203,6 +261,10 @@ public function setCookie($name, $value, $params = null, $throw = true) /** * @see HTTP::submitPOSTData() + * + * @param string $destination + * @param array $data + * @return void */ public function submitPOSTData($destination, $data) { diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Net.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Net.php index 02619d2215f88f34ca19579bc744dd7bc982912f..351a7cf6e03f5b8bd5b6daa9736addd5046b19c7 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Net.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Net.php @@ -1,4 +1,5 @@ <?php + namespace SimpleSAML\Utils; /** @@ -8,7 +9,6 @@ */ class Net { - /** * Check whether an IP address is part of a CIDR. * diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Random.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Random.php index f3db05154b9a83aa01e83136b4a7650a075d047e..7072d76f09f4058869ed41542f545d4d5f0674d7 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Random.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Random.php @@ -1,4 +1,5 @@ <?php + namespace SimpleSAML\Utils; /** @@ -8,7 +9,6 @@ */ class Random { - /** * The fixed length of random identifiers. */ @@ -25,6 +25,6 @@ class Random */ public static function generateID() { - return '_'.bin2hex(openssl_random_pseudo_bytes((int) ((self::ID_LENGTH - 1) / 2))); + return '_' . bin2hex(openssl_random_pseudo_bytes((int) ((self::ID_LENGTH - 1) / 2))); } } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/System.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/System.php index 6769ae9b6d83597d8e8078856e93560c38d75213..26b0e992f0afc6fcd9d03559571bfc04e850d21b 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/System.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/System.php @@ -2,6 +2,7 @@ namespace SimpleSAML\Utils; +use SimpleSAML\Configuration; use SimpleSAML\Error; /** @@ -72,12 +73,12 @@ public static function getOS() */ public static function getTempDir() { - $globalConfig = \SimpleSAML\Configuration::getInstance(); + $globalConfig = Configuration::getInstance(); $tempDir = rtrim( $globalConfig->getString( 'tempdir', - sys_get_temp_dir().DIRECTORY_SEPARATOR.'simplesaml' + sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'simplesaml' ), DIRECTORY_SEPARATOR ); @@ -86,7 +87,7 @@ public static function getTempDir() if (!mkdir($tempDir, 0700, true)) { $error = error_get_last(); throw new Error\Exception( - 'Error creating temporary directory "'.$tempDir.'": '. + 'Error creating temporary directory "' . $tempDir . '": ' . (is_array($error) ? $error['message'] : 'no error available') ); } @@ -95,7 +96,7 @@ public static function getTempDir() $stat = lstat($tempDir); if ($stat['uid'] !== posix_getuid()) { throw new Error\Exception( - 'Temporary directory "'.$tempDir.'" does not belong to the current user.' + 'Temporary directory "' . $tempDir . '" does not belong to the current user.' ); } } @@ -107,7 +108,9 @@ public static function getTempDir() /** * Resolve a (possibly) relative path from the given base path. * - * A path which starts with a '/' is assumed to be absolute, all others are assumed to be + * A path which starts with a stream wrapper pattern (e.g. s3://) will not be touched + * and returned as is - regardles of the value given as base path. + * If it starts with a '/' it is assumed to be absolute, all others are assumed to be * relative. The default base path is the root of the SimpleSAMLphp installation. * * @param string $path The path we should resolve. @@ -121,7 +124,7 @@ public static function getTempDir() public static function resolvePath($path, $base = null) { if ($base === null) { - $config = \SimpleSAML\Configuration::getInstance(); + $config = Configuration::getInstance(); $base = $config->getBaseDir(); } @@ -144,17 +147,21 @@ public static function resolvePath($path, $base = null) $ret = $base; } - $path = explode('/', $path); - foreach ($path as $d) { - if ($d === '.') { - continue; - } elseif ($d === '..') { - $ret = dirname($ret); - } else { - if ($ret && substr($ret, -1) !== '/') { - $ret .= '/'; + if (static::pathContainsStreamWrapper($path)) { + $ret = $path; + } else { + $path = explode('/', $path); + foreach ($path as $d) { + if ($d === '.') { + continue; + } elseif ($d === '..') { + $ret = dirname($ret); + } else { + if ($ret && substr($ret, -1) !== '/') { + $ret .= '/'; + } + $ret .= $d; } - $ret .= $d; } } @@ -189,13 +196,13 @@ public static function writeFile($filename, $data, $mode = 0600) throw new \InvalidArgumentException('Invalid input parameters'); } - $tmpFile = self::getTempDir().DIRECTORY_SEPARATOR.rand(); + $tmpFile = self::getTempDir() . DIRECTORY_SEPARATOR . rand(); $res = @file_put_contents($tmpFile, $data); if ($res === false) { $error = error_get_last(); throw new Error\Exception( - 'Error saving file "'.$tmpFile.'": '. + 'Error saving file "' . $tmpFile . '": ' . (is_array($error) ? $error['message'] : 'no error available') ); } @@ -206,7 +213,7 @@ public static function writeFile($filename, $data, $mode = 0600) $error = error_get_last(); //$error = (is_array($error) ? $error['message'] : 'no error available'); throw new Error\Exception( - 'Error changing file mode of "'.$tmpFile.'": '. + 'Error changing file mode of "' . $tmpFile . '": ' . (is_array($error) ? $error['message'] : 'no error available') ); } @@ -216,7 +223,7 @@ public static function writeFile($filename, $data, $mode = 0600) unlink($tmpFile); $error = error_get_last(); throw new Error\Exception( - 'Error moving "'.$tmpFile.'" to "'.$filename.'": '. + 'Error moving "' . $tmpFile . '" to "' . $filename . '": ' . (is_array($error) ? $error['message'] : 'no error available') ); } @@ -239,4 +246,14 @@ private static function pathContainsDriveLetter($path) return substr($path, 1, 1) === ':' && $letterAsciiValue >= 65 && $letterAsciiValue <= 90; } + + /** + * Check if the supplied path contains a stream wrapper + * @param string $path + * @return bool + */ + private static function pathContainsStreamWrapper($path) + { + return preg_match('/^[\w\d]*:\/{2}/', $path) === 1; + } } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Time.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Time.php index 78246f9415fdd9d886b8c75c7d7c072b01821a9e..1889423680507cfa8eed82e8323cfd74cf1b5f98 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Time.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Time.php @@ -8,6 +8,8 @@ namespace SimpleSAML\Utils; +use SimpleSAML\Configuration; +use SimpleSAML\Error; use SimpleSAML\Logger; class Time @@ -54,12 +56,12 @@ public static function initTimezone() return; } - $globalConfig = \SimpleSAML\Configuration::getInstance(); + $globalConfig = Configuration::getInstance(); $timezone = $globalConfig->getString('timezone', null); if ($timezone !== null) { if (!date_default_timezone_set($timezone)) { - throw new \SimpleSAML\Error\Exception('Invalid timezone set in the "timezone" option in config.php.'); + throw new Error\Exception('Invalid timezone set in the "timezone" option in config.php.'); } self::$tz_initialized = true; return; @@ -95,10 +97,10 @@ public static function parseDuration($duration, $timestamp = null) } // parse the duration. We use a very strict pattern - $durationRegEx = '#^(-?)P(?:(?:(?:(\\d+)Y)?(?:(\\d+)M)?(?:(\\d+)D)?(?:T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+)'. + $durationRegEx = '#^(-?)P(?:(?:(?:(\\d+)Y)?(?:(\\d+)M)?(?:(\\d+)D)?(?:T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+)' . '(?:[.,]\d+)?S)?)?)|(?:(\\d+)W))$#D'; if (!preg_match($durationRegEx, $duration, $matches)) { - throw new \InvalidArgumentException('Invalid ISO 8601 duration: '.$duration); + throw new \InvalidArgumentException('Invalid ISO 8601 duration: ' . $duration); } $durYears = (empty($matches[2]) ? 0 : (int) $matches[2]); diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/XML.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/XML.php index 9b1f37766c0f24c75f8e654164f45b5bf151dfc7..28c203cd3cf083b04258aa07338b10b1b6733ef3 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/XML.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/XML.php @@ -1,4 +1,5 @@ <?php + /** * Utility class for XML and DOM manipulation. * @@ -7,12 +8,19 @@ namespace SimpleSAML\Utils; +use DOMComment; +use DOMDocument; +use DOMElement; +use DOMNode; +use DOMText; +use SAML2\DOMDocumentFactory; +use SimpleSAML\Configuration; +use SimpleSAML\Error; use SimpleSAML\Logger; use SimpleSAML\XML\Errors; class XML { - /** * This function performs some sanity checks on XML documents, and optionally validates them against their schema * if the 'validatexml' debugging option is enabled. A warning will be printed to the log if validation fails. @@ -41,19 +49,21 @@ public static function checkSAMLMessage($message, $type) // a SAML message should not contain a doctype-declaration if (strpos($message, '<!DOCTYPE') !== false) { - throw new \SimpleSAML\Error\Exception('XML contained a doctype declaration.'); + throw new Error\Exception('XML contained a doctype declaration.'); } // see if debugging is enabled for XML validation - $debug = \SimpleSAML\Configuration::getInstance()->getArrayize('debug', ['validatexml' => false]); - $enabled = \SimpleSAML\Configuration::getInstance()->getBoolean('debug.validatexml', false); + $debug = Configuration::getInstance()->getArrayize('debug', ['validatexml' => false]); + $enabled = Configuration::getInstance()->getBoolean('debug.validatexml', false); - if (!(in_array('validatexml', $debug, true) // implicitly enabled - || (array_key_exists('validatexml', $debug) && $debug['validatexml'] === true) + if ( + !(in_array('validatexml', $debug, true) // implicitly enabled + || (array_key_exists('validatexml', $debug) + && $debug['validatexml'] === true) // explicitly enabled // TODO: deprecate this option and remove it in 2.0 - || $enabled // old 'debug.validatexml' configuration option - )) { + || $enabled) // old 'debug.validatexml' configuration option + ) { // XML validation is disabled return; } @@ -69,7 +79,7 @@ public static function checkSAMLMessage($message, $type) case 'saml-meta': $result = self::isValid($message, 'saml-schema-metadata-2.0.xsd'); } - if ($result !== true) { + if (is_string($result)) { Logger::warning($result); } } @@ -94,24 +104,27 @@ public static function checkSAMLMessage($message, $type) */ public static function debugSAMLMessage($message, $type) { - if (!(is_string($type) && (is_string($message) || $message instanceof \DOMElement))) { + if (!(is_string($type) && (is_string($message) || $message instanceof DOMElement))) { throw new \InvalidArgumentException('Invalid input parameters.'); } // see if debugging is enabled for SAML messages - $debug = \SimpleSAML\Configuration::getInstance()->getArrayize('debug', ['saml' => false]); + $debug = Configuration::getInstance()->getArrayize('debug', ['saml' => false]); - if (!(in_array('saml', $debug, true) // implicitly enabled - || (array_key_exists('saml', $debug) && $debug['saml'] === true) + if ( + !(in_array('saml', $debug, true) // implicitly enabled + || (array_key_exists('saml', $debug) + && $debug['saml'] === true) // explicitly enabled // TODO: deprecate the old style and remove it in 2.0 - || (array_key_exists(0, $debug) && $debug[0] === true) // old style 'debug' - )) { + || (array_key_exists(0, $debug) + && $debug[0] === true)) // old style 'debug' + ) { // debugging messages is disabled return; } - if ($message instanceof \DOMElement) { + if ($message instanceof DOMElement) { $message = $message->ownerDocument->saveXML($message); } @@ -155,7 +168,7 @@ public static function debugSAMLMessage($message, $type) * * @author Olav Morken, UNINETT AS <olav.morken@uninett.no> */ - public static function formatDOMElement(\DOMNode $root, $indentBase = '') + public static function formatDOMElement(DOMNode $root, $indentBase = '') { if (!is_string($indentBase)) { throw new \InvalidArgumentException('Invalid input parameters'); @@ -166,13 +179,13 @@ public static function formatDOMElement(\DOMNode $root, $indentBase = '') $textNodes = []; // text nodes which should be deleted $childNodes = []; // other child nodes for ($i = 0; $i < $root->childNodes->length; $i++) { - /** @var \DOMElement $child */ + /** @var \DOMNode $child */ $child = $root->childNodes->item($i); - if ($child instanceof \DOMText) { + if ($child instanceof DOMText) { $textNodes[] = $child; $fullText .= $child->wholeText; - } elseif ($child instanceof \DOMComment || $child instanceof \DOMElement) { + } elseif ($child instanceof DOMComment || $child instanceof DOMElement) { $childNodes[] = $child; } else { // unknown node type. We don't know how to format this @@ -202,7 +215,7 @@ public static function formatDOMElement(\DOMNode $root, $indentBase = '') if ($hasText) { // only text - add a single text node to the element with the full text - $root->appendChild(new \DOMText($fullText)); + $root->appendChild(new DOMText($fullText)); return; } @@ -214,10 +227,10 @@ public static function formatDOMElement(\DOMNode $root, $indentBase = '') /* Element contains only child nodes - add indentation before each one, and * format child elements. */ - $childIndentation = $indentBase.' '; + $childIndentation = $indentBase . ' '; foreach ($childNodes as $node) { // add indentation before node - $root->insertBefore(new \DOMText("\n".$childIndentation), $node); + $root->insertBefore(new DOMText("\n" . $childIndentation), $node); // format child elements if ($node instanceof \DOMElement) { @@ -226,7 +239,7 @@ public static function formatDOMElement(\DOMNode $root, $indentBase = '') } // add indentation before closing tag - $root->appendChild(new \DOMText("\n".$indentBase)); + $root->appendChild(new DOMText("\n" . $indentBase)); } @@ -252,7 +265,7 @@ public static function formatXMLString($xml, $indentBase = '') } try { - $doc = \SAML2\DOMDocumentFactory::fromString($xml); + $doc = DOMDocumentFactory::fromString($xml); } catch (\Exception $e) { throw new \DOMException('Error parsing XML string.'); } @@ -279,7 +292,7 @@ public static function formatXMLString($xml, $indentBase = '') * @throws \InvalidArgumentException If $element is not an instance of DOMElement, $localName is not a string or * $namespaceURI is not a string. */ - public static function getDOMChildren(\DOMNode $element, $localName, $namespaceURI) + public static function getDOMChildren(DOMNode $element, $localName, $namespaceURI) { if (!is_string($localName) || !is_string($namespaceURI)) { throw new \InvalidArgumentException('Invalid input parameters.'); @@ -288,11 +301,11 @@ public static function getDOMChildren(\DOMNode $element, $localName, $namespaceU $ret = []; for ($i = 0; $i < $element->childNodes->length; $i++) { - /** @var \DOMElement $child */ + /** @var \DOMNode $child */ $child = $element->childNodes->item($i); // skip text nodes and comment elements - if ($child instanceof \DOMText || $child instanceof \DOMComment) { + if ($child instanceof DOMText || $child instanceof DOMComment) { continue; } @@ -315,15 +328,15 @@ public static function getDOMChildren(\DOMNode $element, $localName, $namespaceU * * @author Olav Morken, UNINETT AS <olav.morken@uninett.no> */ - public static function getDOMText(\DOMElement $element) + public static function getDOMText(DOMElement $element) { $txt = ''; for ($i = 0; $i < $element->childNodes->length; $i++) { /** @var \DOMElement $child */ $child = $element->childNodes->item($i); - if (!($child instanceof \DOMText)) { - throw new \SimpleSAML\Error\Exception($element->localName.' contained a non-text child node.'); + if (!($child instanceof DOMText)) { + throw new Error\Exception($element->localName . ' contained a non-text child node.'); } $txt .= $child->wholeText; @@ -356,7 +369,7 @@ public static function getDOMText(\DOMElement $element) * @author Andreas Solberg, UNINETT AS <andreas.solberg@uninett.no> * @author Olav Morken, UNINETT AS <olav.morken@uninett.no> */ - public static function isDOMNodeOfType(\DOMNode $element, $name, $nsURI) + public static function isDOMNodeOfType(DOMNode $element, $name, $nsURI) { if (!is_string($name) || !is_string($nsURI) || strlen($nsURI) === 0) { // most likely a comment-node @@ -379,7 +392,7 @@ public static function isDOMNodeOfType(\DOMNode $element, $name, $nsURI) // check if it is a valid shortcut if (!array_key_exists($nsURI, $shortcuts)) { - throw new \InvalidArgumentException('Unknown namespace shortcut: '.$nsURI); + throw new \InvalidArgumentException('Unknown namespace shortcut: ' . $nsURI); } // expand the shortcut @@ -405,25 +418,25 @@ public static function isDOMNodeOfType(\DOMNode $element, $name, $nsURI) * @param string|\DOMDocument $xml The XML string or document which should be validated. * @param string $schema The filename of the schema that should be used to validate the document. * - * @return boolean|string Returns a string with errors found if validation fails. True if validation passes ok. + * @return bool|string Returns a string with errors found if validation fails. True if validation passes ok. * @throws \InvalidArgumentException If $schema is not a string, or $xml is neither a string nor a \DOMDocument. * * @author Olav Morken, UNINETT AS <olav.morken@uninett.no> */ public static function isValid($xml, $schema) { - if (!(is_string($schema) && (is_string($xml) || $xml instanceof \DOMDocument))) { + if (!(is_string($schema) && (is_string($xml) || $xml instanceof DOMDocument))) { throw new \InvalidArgumentException('Invalid input parameters.'); } Errors::begin(); - if ($xml instanceof \DOMDocument) { + if ($xml instanceof DOMDocument) { $dom = $xml; $res = true; } else { try { - $dom = \SAML2\DOMDocumentFactory::fromString($xml); + $dom = DOMDocumentFactory::fromString($xml); $res = true; } catch (\Exception $e) { $res = false; @@ -431,10 +444,19 @@ public static function isValid($xml, $schema) } if ($res) { - $config = \SimpleSAML\Configuration::getInstance(); + $config = Configuration::getInstance(); /** @var string $schemaPath */ $schemaPath = $config->resolvePath('schemas'); - $schemaFile = $schemaPath.'/'.$schema; + $schemaFile = $schemaPath . '/' . $schema; + + libxml_set_external_entity_loader( + function ($public, $system, $context) { + if (filter_var($system, FILTER_VALIDATE_URL) === $system) { + return null; + } + return $system; + } + ); $res = $dom->schemaValidate($schemaFile); if ($res) { diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/EMail.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/EMail.php deleted file mode 100644 index a9e239029b44de780c892dbb55e7ef35bda688e2..0000000000000000000000000000000000000000 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/EMail.php +++ /dev/null @@ -1,125 +0,0 @@ -<?php - -namespace SimpleSAML\XHTML; - -/** - * A minimalistic Emailer class. Creates and sends HTML emails. - * - * @author Andreas kre Solberg, UNINETT AS. <andreas.solberg@uninett.no> - * @package SimpleSAMLphp - */ - -class EMail -{ - private $to = null; - private $cc = null; - private $body = null; - private $from = null; - private $replyto = null; - private $subject = null; - private $headers = []; - - - /** - * Constructor - */ - public function __construct($to, $subject, $from = null, $cc = null, $replyto = null) - { - $this->to = $to; - $this->cc = $cc; - $this->from = $from; - $this->replyto = $replyto; - $this->subject = $subject; - } - - /* - * @param string $body - * @return void - */ - public function setBody($body) - { - $this->body = $body; - } - - - /* - * @param string $body - * @return string - */ - private function getHTML($body) - { - return '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head> - <meta http-equiv="content-type" content="text/html; charset=utf-8" /> - <title>SimpleSAMLphp Email report</title> - <style type="text/css"> -pre, div.box { - margin: .4em 2em .4em 1em; - padding: 4px; - -} -pre { - background: #eee; - border: 1px solid #aaa; -} - </style> -</head> -<body> -<div class="container" style="background: #fafafa; border: 1px solid #eee; margin: 2em; padding: .6em;"> -'.$body.' -</div> -</body> -</html>'; - } - - - /* - * @return void - */ - public function send() - { - if ($this->to === null) { - throw new \Exception('EMail field [to] is required and not set.'); - } elseif ($this->subject === null) { - throw new \Exception('EMail field [subject] is required and not set.'); - } elseif ($this->body === null) { - throw new \Exception('EMail field [body] is required and not set.'); - } - - $random_hash = bin2hex(openssl_random_pseudo_bytes(16)); - - if (isset($this->from)) { - $this->headers[] = 'From: '.$this->from; - } - if (isset($this->replyto)) { - $this->headers[] = 'Reply-To: '.$this->replyto; - } - - $this->headers[] = 'Content-Type: multipart/alternative; boundary="simplesamlphp-'.$random_hash.'"'; - - $message = ' ---simplesamlphp-'.$random_hash.' -Content-Type: text/plain; charset="utf-8" -Content-Transfer-Encoding: 8bit - -'.strip_tags(html_entity_decode($this->body)).' - ---simplesamlphp-'.$random_hash.' -Content-Type: text/html; charset="utf-8" -Content-Transfer-Encoding: 8bit - -'.$this->getHTML($this->body).' - ---simplesamlphp-'.$random_hash.'-- -'; - $headers = implode("\n", $this->headers); - - $mail_sent = @mail($this->to, $this->subject, $message, $headers); - \SimpleSAML\Logger::debug('Email: Sending e-mail to ['.$this->to.'] : '.($mail_sent ? 'OK' : 'Failed')); - if (!$mail_sent) { - throw new \Exception('Error when sending e-mail'); - } - } -} diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/IdPDisco.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/IdPDisco.php index 8f835f366175bd76753ff00805029bc4ed4fab8b..fade6be03e77a07fce4a72bf566d3b00265254fd 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/IdPDisco.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/IdPDisco.php @@ -2,6 +2,12 @@ namespace SimpleSAML\XHTML; +use SimpleSAML\Configuration; +use SimpleSAML\Logger; +use SimpleSAML\Metadata\MetaDataStorageHandler; +use SimpleSAML\Session; +use SimpleSAML\Utils; + /** * This class implements a generic IdP discovery service, for use in various IdP * discovery service pages. This should reduce code duplication. @@ -31,7 +37,6 @@ class IdPDisco */ protected $instance; - /** * An instance of the metadata handler, which will allow us to fetch metadata about IdPs. * @@ -39,7 +44,6 @@ class IdPDisco */ protected $metadata; - /** * The users session. * @@ -47,7 +51,6 @@ class IdPDisco */ protected $session; - /** * The metadata sets we find allowed entities in, in prioritized order. * @@ -55,7 +58,6 @@ class IdPDisco */ protected $metadataSets; - /** * The entity id of the SP which accesses this IdP discovery service. * @@ -78,7 +80,6 @@ class IdPDisco */ protected $setIdPentityID = null; - /** * The name of the query parameter which should contain the users choice of IdP. * This option default to 'entityID' for Shibboleth compatibility. @@ -112,16 +113,16 @@ class IdPDisco * @param array $metadataSets Array with metadata sets we find remote entities in. * @param string $instance The name of this instance of the discovery service. * - * @throws Exception If the request is invalid. + * @throws \Exception If the request is invalid. */ public function __construct(array $metadataSets, $instance) { assert(is_string($instance)); // initialize standard classes - $this->config = \SimpleSAML\Configuration::getInstance(); - $this->metadata = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); - $this->session = \SimpleSAML\Session::getSessionFromRequest(); + $this->config = Configuration::getInstance(); + $this->metadata = MetaDataStorageHandler::getMetadataHandler(); + $this->session = Session::getSessionFromRequest(); $this->instance = $instance; $this->metadataSets = $metadataSets; @@ -140,12 +141,12 @@ public function __construct(array $metadataSets, $instance) $this->returnIdParam = $_GET['returnIDParam']; } - $this->log('returnIdParam initially set to ['.$this->returnIdParam.']'); + $this->log('returnIdParam initially set to [' . $this->returnIdParam . ']'); if (!array_key_exists('return', $_GET)) { throw new \Exception('Missing parameter: return'); } else { - $this->returnURL = \SimpleSAML\Utils\HTTP::checkURLAllowed($_GET['return']); + $this->returnURL = Utils\HTTP::checkURLAllowed($_GET['return']); } $this->isPassive = false; @@ -154,7 +155,7 @@ public function __construct(array $metadataSets, $instance) $this->isPassive = true; } } - $this->log('isPassive initially set to ['.($this->isPassive ? 'TRUE' : 'FALSE').']'); + $this->log('isPassive initially set to [' . ($this->isPassive ? 'TRUE' : 'FALSE') . ']'); if (array_key_exists('IdPentityID', $_GET)) { $this->setIdPentityID = $_GET['IdPentityID']; @@ -173,10 +174,11 @@ public function __construct(array $metadataSets, $instance) * discovery service type. * * @param string $message The message which should be logged. + * @return void */ protected function log($message) { - \SimpleSAML\Logger::info('idpDisco.'.$this->instance.': '.$message); + Logger::info('idpDisco.' . $this->instance . ': ' . $message); } @@ -188,11 +190,11 @@ protected function log($message) * * @param string $name The name of the cookie. * - * @return string The value of the cookie with the given name, or null if no cookie with that name exists. + * @return string|null The value of the cookie with the given name, or null if no cookie with that name exists. */ protected function getCookie($name) { - $prefixedName = 'idpdisco_'.$this->instance.'_'.$name; + $prefixedName = 'idpdisco_' . $this->instance . '_' . $name; if (array_key_exists($prefixedName, $_COOKIE)) { return $_COOKIE[$prefixedName]; } else { @@ -209,10 +211,11 @@ protected function getCookie($name) * * @param string $name The name of the cookie. * @param string $value The value of the cookie. + * @return void */ protected function setCookie($name, $value) { - $prefixedName = 'idpdisco_'.$this->instance.'_'.$name; + $prefixedName = 'idpdisco_' . $this->instance . '_' . $name; $params = [ // we save the cookies for 90 days @@ -222,7 +225,7 @@ protected function setCookie($name, $value) 'httponly' => false, ]; - \SimpleSAML\Utils\HTTP::setCookie($prefixedName, $value, $params, false); + Utils\HTTP::setCookie($prefixedName, $value, $params, false); } @@ -255,7 +258,7 @@ protected function validateIdP($idp) } } - $this->log('Unable to validate IdP entity id ['.$idp.'].'); + $this->log('Unable to validate IdP entity id [' . $idp . '].'); // the entity id wasn't valid return null; @@ -303,7 +306,7 @@ protected function getSelectedIdP() /** * Retrieve the users saved choice of IdP. * - * @return string The entity id of the IdP the user has saved, or null if the user hasn't saved any choice. + * @return string|null The entity id of the IdP the user has saved, or null if the user hasn't saved any choice. */ protected function getSavedIdP() { @@ -329,7 +332,7 @@ protected function getSavedIdP() /** * Retrieve the previous IdP the user used. * - * @return string The entity id of the previous IdP the user used, or null if this is the first time. + * @return string|null The entity id of the previous IdP the user used, or null if this is the first time. */ protected function getPreviousIdP() { @@ -361,20 +364,20 @@ protected function getFromCIDRhint() * This function will first look at the previous IdP the user has chosen. If the user * hasn't chosen an IdP before, it will look at the IP address. * - * @return string The entity id of the IdP the user should most likely use. + * @return string|null The entity id of the IdP the user should most likely use. */ protected function getRecommendedIdP() { $idp = $this->getPreviousIdP(); if ($idp !== null) { - $this->log('Preferred IdP from previous use ['.$idp.'].'); + $this->log('Preferred IdP from previous use [' . $idp . '].'); return $idp; } $idp = $this->getFromCIDRhint(); if (!empty($idp)) { - $this->log('Preferred IdP from CIDR hint ['.$idp.'].'); + $this->log('Preferred IdP from CIDR hint [' . $idp . '].'); return $idp; } @@ -386,12 +389,13 @@ protected function getRecommendedIdP() * Save the current IdP choice to a cookie. * * @param string $idp The entityID of the IdP. + * @return void */ protected function setPreviousIdP($idp) { assert(is_string($idp)); - $this->log('Choice made ['.$idp.'] Setting cookie.'); + $this->log('Choice made [' . $idp . '] Setting cookie.'); $this->setCookie('lastidp', $idp); } @@ -419,7 +423,7 @@ protected function saveIdP() /** * Determine which IdP the user should go to, if any. * - * @return string The entity id of the IdP the user should be sent to, or null if the user should choose. + * @return string|null The entity id of the IdP the user should be sent to, or null if the user should choose. */ protected function getTargetIdP() { @@ -443,7 +447,7 @@ protected function getTargetIdP() // check if the user has saved an choice earlier $idp = $this->getSavedIdP(); if ($idp !== null) { - $this->log('Using saved choice ['.$idp.'].'); + $this->log('Using saved choice [' . $idp . '].'); return $idp; } @@ -516,8 +520,8 @@ protected function start() if ($idp !== null) { $extDiscoveryStorage = $this->config->getString('idpdisco.extDiscoveryStorage', null); if ($extDiscoveryStorage !== null) { - $this->log('Choice made ['.$idp.'] (Forwarding to external discovery storage)'); - \SimpleSAML\Utils\HTTP::redirectTrustedURL($extDiscoveryStorage, [ + $this->log('Choice made [' . $idp . '] (Forwarding to external discovery storage)'); + Utils\HTTP::redirectTrustedURL($extDiscoveryStorage, [ 'entityID' => $this->spEntityId, 'IdPentityID' => $idp, 'returnIDParam' => $this->returnIdParam, @@ -526,15 +530,16 @@ protected function start() ]); } else { $this->log( - 'Choice made ['.$idp.'] (Redirecting the user back. returnIDParam='.$this->returnIdParam.')' + 'Choice made [' . $idp . '] (Redirecting the user back. returnIDParam=' + . $this->returnIdParam . ')' ); - \SimpleSAML\Utils\HTTP::redirectTrustedURL($this->returnURL, [$this->returnIdParam => $idp]); + Utils\HTTP::redirectTrustedURL($this->returnURL, [$this->returnIdParam => $idp]); } } if ($this->isPassive) { $this->log('Choice not made. (Redirecting the user back without answer)'); - \SimpleSAML\Utils\HTTP::redirectTrustedURL($this->returnURL); + Utils\HTTP::redirectTrustedURL($this->returnURL); } } @@ -543,6 +548,7 @@ protected function start() * Handles a request to this discovery service. * * The IdP disco parameters should be set before calling this function. + * @return void */ public function handleRequest() { @@ -562,10 +568,10 @@ public function handleRequest() if (sizeof($idpintersection) == 1) { $this->log( - 'Choice made ['.$idpintersection[0].'] (Redirecting the user back. returnIDParam='. - $this->returnIdParam.')' + 'Choice made [' . $idpintersection[0] . '] (Redirecting the user back. returnIDParam=' . + $this->returnIdParam . ')' ); - \SimpleSAML\Utils\HTTP::redirectTrustedURL( + Utils\HTTP::redirectTrustedURL( $this->returnURL, [$this->returnIdParam => $idpintersection[0]] ); @@ -600,7 +606,7 @@ public function handleRequest() foreach ($tryLanguages as $lang) { if ($name = $this->getEntityDisplayName($data, $lang)) { $newlist[$entityid]['name'] = $name; - continue; + break 1; } } if (empty($newlist[$entityid]['name'])) { @@ -609,17 +615,22 @@ public function handleRequest() foreach ($tryLanguages as $lang) { if (!empty($data['description'][$lang])) { $newlist[$entityid]['description'] = $data['description'][$lang]; - continue; + break 1; } } if (!empty($data['icon'])) { $newlist[$entityid]['icon'] = $data['icon']; - $newlist[$entityid]['iconurl'] = \SimpleSAML\Utils\HTTP::resolveURL($data['icon']); + $newlist[$entityid]['iconurl'] = Utils\HTTP::resolveURL($data['icon']); } } usort( $newlist, - function ($idpentry1, $idpentry2) { + /** + * @param array $idpentry1 + * @param array $idpentry2 + * @return int + */ + function (array $idpentry1, array $idpentry2) { return strcasecmp($idpentry1['name'], $idpentry2['name']); } ); @@ -629,11 +640,17 @@ function ($idpentry1, $idpentry2) { $t->data['return'] = $this->returnURL; $t->data['returnIDParam'] = $this->returnIdParam; $t->data['entityID'] = $this->spEntityId; - $t->data['urlpattern'] = htmlspecialchars(\SimpleSAML\Utils\HTTP::getSelfURLNoQuery()); + $t->data['urlpattern'] = htmlspecialchars(Utils\HTTP::getSelfURLNoQuery()); $t->data['rememberenabled'] = $this->config->getBoolean('idpdisco.enableremember', false); $t->show(); } + + /** + * @param array $idpData + * @param string $language + * @return string|null + */ private function getEntityDisplayName(array $idpData, $language) { if (isset($idpData['UIInfo']['DisplayName'][$language])) { diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/Template.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/Template.php index 43127d9a0dc64c70db17b96c331109ca39054fa0..25371a9245eb6637ea54a369a07f015ca5cf1ce9 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/Template.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/Template.php @@ -1,7 +1,5 @@ <?php -namespace SimpleSAML\XHTML; - /** * A minimalistic XHTML PHP based template system implemented for SimpleSAMLphp. * @@ -9,10 +7,21 @@ * @package SimpleSAMLphp */ -use JaimePerez\TwigConfigurableI18n\Twig\Environment as Twig_Environment; -use JaimePerez\TwigConfigurableI18n\Twig\Extensions\Extension\I18n as Twig_Extensions_Extension_I18n; -use Symfony\Component\HttpFoundation\Response; +namespace SimpleSAML\XHTML; + +use SimpleSAML\Configuration; +use SimpleSAML\Locale\Language; use SimpleSAML\Locale\Localization; +use SimpleSAML\Locale\Translate; +use SimpleSAML\Logger; +use SimpleSAML\Module; +use SimpleSAML\TwigConfigurableI18n\Twig\Environment as Twig_Environment; +use SimpleSAML\TwigConfigurableI18n\Twig\Extensions\Extension\I18n as Twig_Extensions_Extension_I18n; +use SimpleSAML\Utils; +use Symfony\Component\HttpFoundation\Response; +use Twig\Loader\FilesystemLoader; +use Twig\TwigFilter; +use Twig\TwigFunction; class Template extends Response { @@ -54,9 +63,10 @@ class Template extends Response /** * The twig environment. * - * @var false|Twig_Environment + * @var \Twig\Environment + * @psalm-suppress PropertyNotSetInConstructor Remove this annotation in 2.0 */ - private $twig = false; + private $twig; /** * The template name. @@ -67,6 +77,8 @@ class Template extends Response /** * Current module, if any. + * + * @var string */ private $module; @@ -75,7 +87,7 @@ class Template extends Response * * @var bool */ - private $useNewUI; + private $useNewUI = false; /** @@ -85,9 +97,9 @@ class Template extends Response * the 'theme.controller' configuration option to a class that implements the * \SimpleSAML\XHTML\TemplateControllerInterface interface to use it. * - * @var \SimpleSAML\XHTML\TemplateControllerInterface + * @var \SimpleSAML\XHTML\TemplateControllerInterface|null */ - private $controller; + private $controller = null; /** @@ -99,7 +111,7 @@ class Template extends Response * * @var array */ - private $theme; + private $theme = ['module' => null, 'name' => 'default']; /** * Constructor @@ -108,7 +120,7 @@ class Template extends Response * @param string $template Which template file to load * @param string|null $defaultDictionary The default dictionary where tags will come from. */ - public function __construct(\SimpleSAML\Configuration $configuration, $template, $defaultDictionary = null) + public function __construct(Configuration $configuration, $template, $defaultDictionary = null) { $this->configuration = $configuration; $this->template = $template; @@ -124,8 +136,8 @@ public function __construct(\SimpleSAML\Configuration $configuration, $template, ); // initialize internationalization system - $this->translator = new \SimpleSAML\Locale\Translate($configuration, $defaultDictionary); - $this->localization = new \SimpleSAML\Locale\Localization($configuration); + $this->translator = new Translate($configuration, $defaultDictionary); + $this->localization = new Localization($configuration); // check if we are supposed to use the new UI $this->useNewUI = $this->configuration->getBoolean('usenewui', false); @@ -133,14 +145,19 @@ public function __construct(\SimpleSAML\Configuration $configuration, $template, if ($this->useNewUI) { // check if we need to attach a theme controller $controller = $this->configuration->getString('theme.controller', false); - if ($controller && class_exists($controller) && - in_array('SimpleSAML\XHTML\TemplateControllerInterface', class_implements($controller)) + if ( + $controller + && class_exists($controller) + && in_array(TemplateControllerInterface::class, class_implements($controller)) ) { + /** @var \SimpleSAML\XHTML\TemplateControllerInterface $this->controller */ $this->controller = new $controller(); } $this->twig = $this->setupTwig(); } + + $this->charset = 'UTF-8'; parent::__construct(); } @@ -148,24 +165,34 @@ public function __construct(\SimpleSAML\Configuration $configuration, $template, /** * Return the URL of an asset, including a cache-buster parameter that depends on the last modification time of * the original file. - * * @param string $asset + * @param string|null $module * @return string */ - public function asset($asset) + public function asset($asset, $module = null) { - $file = $this->configuration->getBaseDir().'www/assets/'.$asset; + $baseDir = $this->configuration->getBaseDir(); + if (is_null($module)) { + $file = $baseDir . 'www/assets/' . $asset; + $basePath = $this->configuration->getBasePath(); + $path = $basePath . 'assets/' . $asset; + } else { + $file = $baseDir . 'modules/' . $module . '/www/assets/' . $asset; + $path = Module::getModuleUrl($module . '/assets/' . $asset); + } + if (!file_exists($file)) { // don't be too harsh if an asset is missing, just pretend it's there... - return $this->configuration->getBasePath().'assets/'.$asset; + return $path; } $tag = $this->configuration->getVersion(); if ($tag === 'master') { - $tag = filemtime($file); + $tag = strval(filemtime($file)); } $tag = substr(hash('md5', $tag), 0, 5); - return $this->configuration->getBasePath().'assets/'.$asset.'?tag='.$tag; + + return $path . '?tag=' . $tag; } @@ -200,8 +227,8 @@ private function normalizeTemplateName($templateName) $templateName = substr($templateName, 0, $tplpos); } - if ($this->useNewUI || $this->theme['module'] !== null) { - return $templateName.'.twig'; + if ($this->useNewUI) { + return $templateName . '.twig'; } return $templateName; } @@ -211,7 +238,7 @@ private function normalizeTemplateName($templateName) * Set up the places where twig can look for templates. * * @return TemplateLoader The twig template loader or false if the template does not exist. - * @throws \Twig_Error_Loader In case a failure occurs. + * @throws \Twig\Error\LoaderError In case a failure occurs. */ private function setupTwigTemplatepaths() { @@ -219,11 +246,13 @@ private function setupTwigTemplatepaths() // get namespace if any list($namespace, $filename) = $this->findModuleAndTemplateName($filename); - $this->twig_template = ($namespace !== null) ? '@'.$namespace.'/'.$filename : $filename; + $this->twig_template = ($namespace !== null) ? '@' . $namespace . '/' . $filename : $filename; $loader = new TemplateLoader(); $templateDirs = $this->findThemeTemplateDirs(); if ($this->module && $this->module != 'core') { - $templateDirs[] = [$this->module => TemplateLoader::getModuleTemplateDir($this->module)]; + $modDir = TemplateLoader::getModuleTemplateDir($this->module); + $templateDirs[] = [$this->module => $modDir]; + $templateDirs[] = ['__parent__' => $modDir]; } if ($this->theme['module']) { try { @@ -239,7 +268,7 @@ private function setupTwigTemplatepaths() // default, themeless templates are checked last $templateDirs[] = [ - \Twig_Loader_Filesystem::MAIN_NAMESPACE => $this->configuration->resolvePath('templates') + FilesystemLoader::MAIN_NAMESPACE => $this->configuration->resolvePath('templates') ]; foreach ($templateDirs as $entry) { $loader->addPath($entry[key($entry)], key($entry)); @@ -250,16 +279,20 @@ private function setupTwigTemplatepaths() /** * Setup twig. + * @return \Twig\Environment + * @throws \Exception if the template does not exist */ private function setupTwig() { $auto_reload = $this->configuration->getBoolean('template.auto_reload', true); $cache = $this->configuration->getString('template.cache', false); + // set up template paths $loader = $this->setupTwigTemplatepaths(); + // abort if twig template does not exist if (!$loader->exists($this->twig_template)) { - return false; + throw new \Exception('Template-file \"' . $this->getTemplateName() . '\" does not exist.'); } // load extra i18n domains @@ -274,13 +307,15 @@ private function setupTwig() $options = [ 'cache' => $cache, 'auto_reload' => $auto_reload, - 'translation_function' => ['\SimpleSAML\Locale\Translate', 'translateSingularGettext'], - 'translation_function_plural' => ['\SimpleSAML\Locale\Translate', 'translatePluralGettext'], + 'translation_function' => [Translate::class, 'translateSingularGettext'], + 'translation_function_plural' => [Translate::class, 'translatePluralGettext'], ]; $twig = new Twig_Environment($loader, $options); $twig->addExtension(new Twig_Extensions_Extension_I18n()); + $twig->addFunction(new TwigFunction('moduleURL', [Module::class, 'getModuleURL'])); + // initialize some basic context $langParam = $this->configuration->getString('language.parameter.name', 'language'); $twig->addGlobal('languageParameterName', $langParam); @@ -297,20 +332,21 @@ private function setupTwig() $twig->addGlobal('queryParams', $queryParams); $twig->addGlobal('templateId', str_replace('.twig', '', $this->normalizeTemplateName($this->template))); $twig->addGlobal('isProduction', $this->configuration->getBoolean('production', true)); + $twig->addGlobal('baseurlpath', ltrim($this->configuration->getBasePath(), '/')); // add a filter for translations out of arrays $twig->addFilter( - new \Twig_SimpleFilter( + new TwigFilter( 'translateFromArray', - ['\SimpleSAML\Locale\Translate', 'translateFromArray'], + [Translate::class, 'translateFromArray'], ['needs_context' => true] ) ); // add an asset() function - $twig->addFunction(new \Twig_SimpleFunction('asset', [$this, 'asset'])); + $twig->addFunction(new TwigFunction('asset', [$this, 'asset'])); - if ($this->controller) { + if ($this->controller !== null) { $this->controller->setUpTwig($twig); } @@ -324,31 +360,31 @@ private function setupTwig() */ private function findThemeTemplateDirs() { - if ($this->theme['module'] === null) { + if (!isset($this->theme['module'])) { // no module involved return []; } // setup directories & namespaces - $themeDir = \SimpleSAML\Module::getModuleDir($this->theme['module']).'/themes/'.$this->theme['name']; + $themeDir = Module::getModuleDir($this->theme['module']) . '/themes/' . $this->theme['name']; $subdirs = scandir($themeDir); if (empty($subdirs)) { // no subdirectories in the theme directory, nothing to do here // this is probably wrong, log a message - \SimpleSAML\Logger::warning('Empty theme directory for theme "'.$this->theme['name'].'".'); + Logger::warning('Empty theme directory for theme "' . $this->theme['name'] . '".'); return []; } $themeTemplateDirs = []; foreach ($subdirs as $entry) { // discard anything that's not a directory. Expression is negated to profit from lazy evaluation - if (!($entry !== '.' && $entry !== '..' && is_dir($themeDir.'/'.$entry))) { + if (!($entry !== '.' && $entry !== '..' && is_dir($themeDir . '/' . $entry))) { continue; } // set correct name for the default namespace - $ns = ($entry === 'default') ? \Twig_Loader_Filesystem::MAIN_NAMESPACE : $entry; - $themeTemplateDirs[] = [$ns => $themeDir.'/'.$entry]; + $ns = ($entry === 'default') ? FilesystemLoader::MAIN_NAMESPACE : $entry; + $themeTemplateDirs[] = [$ns => $themeDir . '/' . $entry]; } return $themeTemplateDirs; } @@ -357,20 +393,21 @@ private function findThemeTemplateDirs() /** * Get the template directory of a module, if it exists. * + * @param string $module * @return string The templates directory of a module * * @throws \InvalidArgumentException If the module is not enabled or it has no templates directory. */ private function getModuleTemplateDir($module) { - if (!\SimpleSAML\Module::isModuleEnabled($module)) { - throw new \InvalidArgumentException('The module \''.$module.'\' is not enabled.'); + if (!Module::isModuleEnabled($module)) { + throw new \InvalidArgumentException('The module \'' . $module . '\' is not enabled.'); } - $moduledir = \SimpleSAML\Module::getModuleDir($module); + $moduledir = Module::getModuleDir($module); // check if module has a /templates dir, if so, append - $templatedir = $moduledir.'/templates'; + $templatedir = $moduledir . '/templates'; if (!is_dir($templatedir)) { - throw new \InvalidArgumentException('The module \''.$module.'\' has no templates directory.'); + throw new \InvalidArgumentException('The module \'' . $module . '\' has no templates directory.'); } return $templatedir; } @@ -382,13 +419,13 @@ private function getModuleTemplateDir($module) * Note that the module must be installed, enabled, and contain a "templates" directory. * * @param string $module The module where we need to search for templates. - * * @throws \InvalidArgumentException If the module is not enabled or it has no templates directory. + * @return void */ public function addTemplatesFromModule($module) { $dir = TemplateLoader::getModuleTemplateDir($module); - /** @var \Twig_Loader_Filesystem $loader */ + /** @var \Twig\Loader\FilesystemLoader $loader */ $loader = $this->twig->getLoader(); $loader->addPath($dir, $module); } @@ -398,7 +435,7 @@ public function addTemplatesFromModule($module) * Generate an array for its use in the language bar, indexed by the ISO 639-2 codes of the languages available, * containing their localized names and the URL that should be used in order to change to that language. * - * @return array The array containing information of all available languages. + * @return array|null The array containing information of all available languages. */ private function generateLanguageBar() { @@ -413,7 +450,7 @@ private function generateLanguageBar() $langname = $this->translator->getLanguage()->getLanguageLocalizedName($lang); $url = false; if (!$current) { - $url = htmlspecialchars(\SimpleSAML\Utils\HTTP::addURLParameters( + $url = htmlspecialchars(Utils\HTTP::addURLParameters( '', [$parameterName => $lang] )); @@ -430,6 +467,7 @@ private function generateLanguageBar() /** * Set some default context + * @return void */ private function twigDefaultContext() { @@ -497,12 +535,13 @@ public function send() * This method is a remnant of the old templating system, where templates where shown manually instead of * returning a response. * + * @return void * @deprecated Do not use this method, use Twig + send() instead. Will be removed in 2.0 */ public function show() { - if ($this->twig !== false) { - echo $this->getContents(); + if ($this->useNewUI) { + echo $this->getContents(); } else { require($this->findTemplatePath($this->template)); } @@ -533,14 +572,16 @@ private function findModuleAndTemplateName($template) * template file in the given module. * * @param string $template The relative path from the theme directory to the template file. + * @param bool $throw_exception * - * @return string The absolute path to the template file. + * @return string|null The absolute path to the template file. * * @throws \Exception If the template file couldn't be found. */ private function findTemplatePath($template, $throw_exception = true) { assert(is_string($template)); + $extensions = ['.tpl.php', '.php']; list($templateModule, $templateName) = $this->findModuleAndTemplateName($template); $templateModule = ($templateModule !== null) ? $templateModule : 'default'; @@ -549,44 +590,52 @@ private function findTemplatePath($template, $throw_exception = true) if ($this->theme['module'] !== null) { // .../module/<themeModule>/themes/<themeName>/<templateModule>/<templateName> - $filename = \SimpleSAML\Module::getModuleDir($this->theme['module']). - '/themes/'.$this->theme['name'].'/'.$templateModule.'/'.$templateName; + $filename = Module::getModuleDir($this->theme['module']) . + '/themes/' . $this->theme['name'] . '/' . $templateModule . '/' . $templateName; } elseif ($templateModule !== 'default') { // .../module/<templateModule>/templates/<templateName> - $filename = \SimpleSAML\Module::getModuleDir($templateModule).'/templates/'.$templateName; + $filename = Module::getModuleDir($templateModule) . '/templates/' . $templateName; } else { // .../templates/<theme>/<templateName> - $filename = $this->configuration->getPathValue('templatedir', 'templates/').$templateName; + $base = $this->configuration->getPathValue('templatedir', 'templates/') ?: 'templates/'; + $filename = $base . $templateName; } - if (file_exists($filename)) { - return $filename; + $filename = $this->normalizeTemplateName($filename); + foreach ($extensions as $extension) { + if (file_exists($filename . $extension)) { + return $filename . $extension; + } } // not found in current theme - \SimpleSAML\Logger::debug( - $_SERVER['PHP_SELF'].' - Template: Could not find template file ['.$template.'] at ['. - $filename.'] - now trying the base template' + Logger::debug( + $_SERVER['PHP_SELF'] . ' - Template: Could not find template file [' . $template . '] at [' . + $filename . '] - now trying the base template' ); // try default theme if ($templateModule !== 'default') { // .../module/<templateModule>/templates/<templateName> - $filename = \SimpleSAML\Module::getModuleDir($templateModule).'/templates/'.$templateName; + $filename = Module::getModuleDir($templateModule) . '/templates/' . $templateName; } else { // .../templates/<templateName> - $filename = $this->configuration->getPathValue('templatedir', 'templates/').'/'.$templateName; + $base = $this->configuration->getPathValue('templatedir', 'templates/') ?: 'templates/'; + $filename = $base . '/' . $templateName; } - if (file_exists($filename)) { - return $filename; + $filename = $this->normalizeTemplateName($filename); + foreach ($extensions as $extension) { + if (file_exists($filename . $extension)) { + return $filename . $extension; + } } // not found in default template if ($throw_exception) { // log error and throw exception - $error = 'Template: Could not find template file ['.$template.'] at ['.$filename.']'; - \SimpleSAML\Logger::critical($_SERVER['PHP_SELF'].' - '.$error); + $error = 'Template: Could not find template file [' . $template . '] at [' . $filename . ']'; + Logger::critical($_SERVER['PHP_SELF'] . ' - ' . $error); throw new \Exception($error); } else { @@ -621,7 +670,7 @@ public function getLocalization() /** * Get the current instance of Twig in use. * - * @return false|Twig_Environment The Twig instance in use, or false if Twig is not used. + * @return \Twig\Environment The Twig instance in use, or null if Twig is not used. */ public function getTwig() { @@ -635,7 +684,7 @@ public function getTwig() /** - * @param $name + * @param string $name * * @return string * @deprecated This method will be removed in SSP 2.0. Please use \SimpleSAML\Locale\Language::getLanguage() @@ -659,8 +708,9 @@ public function getLanguage() /** - * @param $language + * @param string $language * @param bool $setLanguageCookie + * @return void * * @deprecated This method will be removed in SSP 2.0. Please use \SimpleSAML\Locale\Language::setLanguage() * instead. @@ -678,24 +728,27 @@ public function setLanguage($language, $setLanguageCookie = true) */ public static function getLanguageCookie() { - return \SimpleSAML\Locale\Language::getLanguageCookie(); + return Language::getLanguageCookie(); } /** - * @param $language + * @param string $language + * @return void * * @deprecated This method will be removed in SSP 2.0. Please use \SimpleSAML\Locale\Language::setLanguageCookie() * instead. */ public static function setLanguageCookie($language) { - \SimpleSAML\Locale\Language::setLanguageCookie($language); + Language::setLanguageCookie($language); } /** * Wraps Language->getLanguageList + * + * @return array */ private function getLanguageList() { @@ -704,9 +757,9 @@ private function getLanguageList() /** - * @param $tag + * @param string $tag * - * @return array + * @return array|null * @deprecated This method will be removed in SSP 2.0. Please use \SimpleSAML\Locale\Translate::getTag() instead. */ public function getTag($tag) @@ -720,6 +773,9 @@ public function getTag($tag) * * @deprecated This method will be removed in SSP 2.0. Please use * \SimpleSAML\Locale\Translate::getPreferredTranslation() instead. + * + * @param array $translations + * @return string */ public function getTranslation($translations) { @@ -731,6 +787,9 @@ public function getTranslation($translations) * Includes a file relative to the template base directory. * This function can be used to include headers and footers etc. * + * @deprecated This function will be removed in SSP 2.0. Use Twig-templates instead + * @param string $file + * @return void */ private function includeAtTemplateBase($file) { @@ -748,6 +807,10 @@ private function includeAtTemplateBase($file) * @see \SimpleSAML\Locale\Translate::includeInlineTranslation() * @deprecated This method will be removed in SSP 2.0. Please use * \SimpleSAML\Locale\Translate::includeInlineTranslation() instead. + * + * @param string $tag + * @param string $translation + * @return void */ public function includeInlineTranslation($tag, $translation) { @@ -758,6 +821,7 @@ public function includeInlineTranslation($tag, $translation) /** * @param string $file * @param \SimpleSAML\Configuration|null $otherConfig + * @return void * * @deprecated This method will be removed in SSP 2.0. Please use * \SimpleSAML\Locale\Translate::includeLanguageFile() instead. @@ -770,6 +834,8 @@ public function includeLanguageFile($file, $otherConfig = null) /** * Wrap Language->isLanguageRTL + * + * @return bool */ private function isLanguageRTL() { @@ -802,6 +868,9 @@ public static function lang_merge($def, $lang) * * @see \SimpleSAML\Locale\Translate::noop() * @deprecated This method will be removed in SSP 2.0. Please use \SimpleSAML\Locale\Translate::noop() instead. + * + * @param string $tag + * @return string */ public static function noop($tag) { @@ -814,6 +883,13 @@ public static function noop($tag) * * @see \SimpleSAML\Locale\Translate::t() * @deprecated This method will be removed in SSP 2.0. Please use \SimpleSAML\Locale\Translate::t() instead. + * + * @param string $tag + * @param array $replacements + * @param bool $fallbackdefault + * @param array $oldreplacements + * @param bool $striptags + * @return string|null */ public function t( $tag, diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/TemplateControllerInterface.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/TemplateControllerInterface.php index 8d6f4e733ee95f3f082f8cda06fe4f631f74622e..bead9a1c69c6209b27b5805115c9d57e2c6a56ae 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/TemplateControllerInterface.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/TemplateControllerInterface.php @@ -2,6 +2,8 @@ namespace SimpleSAML\XHTML; +use Twig\Environment; + /** * Interface that allows modules to run several hooks for templates. * @@ -13,11 +15,11 @@ interface TemplateControllerInterface /** * Implement to modify the twig environment after its initialization (e.g. add filters or extensions). * - * @param \Twig_Environment $twig The current twig environment. + * @param \Twig\Environment $twig The current twig environment. * * @return void */ - public function setUpTwig(\Twig_Environment &$twig); + public function setUpTwig(Environment &$twig); /** diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/TemplateLoader.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/TemplateLoader.php index c5090d5544612a05e68270e28eda74e57310b352..8fcb45ed85d02f146a7efbd48929c5eeec9e9571 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/TemplateLoader.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XHTML/TemplateLoader.php @@ -1,20 +1,27 @@ <?php - namespace SimpleSAML\XHTML; +use SimpleSAML\Module; + /** * This class extends the Twig\Loader\FilesystemLoader so that we can load templates from modules in twig, even * when the main template is not part of a module (or the same one). * * @package simplesamlphp/simplesamlphp + * + * @psalm-suppress DeprecatedInterface This suppress may be removed when Twig 3.0 becomes the default */ class TemplateLoader extends \Twig\Loader\FilesystemLoader { /** * This method adds a namespace dynamically so that we can load templates from modules whenever we want. * - * @inheritdoc + * {@inheritdoc} + * + * @param string $name + * @param bool $throw + * @return string|false|null */ protected function findTemplate($name, $throw = true) { @@ -30,6 +37,7 @@ protected function findTemplate($name, $throw = true) * Parse the name of a template in a module. * * @param string $name The full name of the template, including namespace and template name / path. + * @param string $default * * @return array An array with the corresponding namespace and name of the template. The namespace defaults to * \Twig\Loader\FilesystemLoader::MAIN_NAMESPACE, if none was specified in $name. @@ -52,20 +60,21 @@ protected function parseModuleName($name, $default = self::MAIN_NAMESPACE) /** * Get the template directory of a module, if it exists. * + * @param string $module * @return string The templates directory of a module. * * @throws \InvalidArgumentException If the module is not enabled or it has no templates directory. */ public static function getModuleTemplateDir($module) { - if (!\SimpleSAML\Module::isModuleEnabled($module)) { - throw new \InvalidArgumentException('The module \''.$module.'\' is not enabled.'); + if (!Module::isModuleEnabled($module)) { + throw new \InvalidArgumentException('The module \'' . $module . '\' is not enabled.'); } - $moduledir = \SimpleSAML\Module::getModuleDir($module); + $moduledir = Module::getModuleDir($module); // check if module has a /templates dir, if so, append - $templatedir = $moduledir.'/templates'; + $templatedir = $moduledir . '/templates'; if (!is_dir($templatedir)) { - throw new \InvalidArgumentException('The module \''.$module.'\' has no templates directory.'); + throw new \InvalidArgumentException('The module \'' . $module . '\' has no templates directory.'); } return $templatedir; } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Errors.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Errors.php index 6f6d228ef34432187b2bcf481e66b1df82a3854f..40af03a1cc03d3ac9e69b59a76d3daf9455d86f3 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Errors.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Errors.php @@ -29,6 +29,8 @@ class Errors /** * Append current XML errors to the current stack level. + * + * @return void */ private static function addErrors() { @@ -45,6 +47,8 @@ private static function addErrors() * * A call to this function will begin a new error logging context. Every call must have * a corresponding call to end(). + * + * @return void */ public static function begin() { @@ -77,7 +81,6 @@ public static function begin() */ public static function end() { - // Check whether the error access functions are present if (!function_exists('libxml_use_internal_errors')) { // Pretend that no errors occurred @@ -110,8 +113,11 @@ public static function end() public static function formatError($error) { assert($error instanceof LibXMLError); - return 'level='.$error->level.',code='.$error->code.',line='.$error->line.',col='.$error->column. - ',msg='.trim($error->message); + return 'level=' . $error->level + . ',code=' . $error->code + . ',line=' . $error->line + . ',col=' . $error->column + . ',msg=' . trim($error->message); } @@ -131,7 +137,7 @@ public static function formatErrors($errors) $ret = ''; foreach ($errors as $error) { - $ret .= self::formatError($error)."\n"; + $ret .= self::formatError($error) . "\n"; } return $ret; diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Parser.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Parser.php index 39287b2cb967edb1f4a0b7839a7860afb52f7cbb..073faa93ee297f1e7b73701e8c4aec4829a702fc 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Parser.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Parser.php @@ -11,49 +11,75 @@ class Parser { - public $simplexml = null; + /** @var \SimpleXMLElement */ + public $simplexml; + /** + * @param string $xml + */ public function __construct($xml) { - ; $this->simplexml = new \SimpleXMLElement($xml); $this->simplexml->registerXPathNamespace('saml2', 'urn:oasis:names:tc:SAML:2.0:assertion'); $this->simplexml->registerXPathNamespace('saml2meta', 'urn:oasis:names:tc:SAML:2.0:metadata'); $this->simplexml->registerXPathNamespace('ds', 'http://www.w3.org/2000/09/xmldsig#'); } + + /** + * @param \SimpleXMLElement $element + * @return \SimpleSAML\XML\Parser + * @psalm-return \SimpleSAML\XML\Parser + */ public static function fromSimpleXMLElement(\SimpleXMLElement $element) { - // Traverse all existing namespaces in element $namespaces = $element->getNamespaces(); foreach ($namespaces as $prefix => $ns) { - $element[(($prefix === '') ? 'xmlns' : 'xmlns:'.$prefix)] = $ns; + $element[(($prefix === '') ? 'xmlns' : 'xmlns:' . $prefix)] = $ns; } /* Create a new parser with the xml document where the namespace definitions * are added. */ - $parser = new Parser($element->asXML()); - return $parser; + $xml = $element->asXML(); + if ($xml === false) { + throw new \Exception('Error converting SimpleXMLElement to well-formed XML string.'); + } + return new Parser($xml); } + + /** + * @param string $xpath + * @param string $defvalue + * @throws \Exception + * @return string + */ public function getValueDefault($xpath, $defvalue) { try { + /** @var string */ return $this->getValue($xpath, true); } catch (\Exception $e) { return $defvalue; } } + + /** + * @param string $xpath + * @param bool $required + * @throws \Exception + * @return string|null + */ public function getValue($xpath, $required = false) { $result = $this->simplexml->xpath($xpath); if (!is_array($result) || empty($result)) { if ($required) { throw new \Exception( - 'Could not get value from XML document using the following XPath expression: '.$xpath + 'Could not get value from XML document using the following XPath expression: ' . $xpath ); } else { return null; @@ -62,6 +88,13 @@ public function getValue($xpath, $required = false) return (string) $result[0]; } + + /** + * @param array $xpath + * @param bool $required + * @throws \Exception + * @return string|null + */ public function getValueAlternatives(array $xpath, $required = false) { foreach ($xpath as $x) { diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Shib13/AuthnRequest.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Shib13/AuthnRequest.php index 221951d9b777e5b71f8513890582afec4acc852d..899e195574e16778ba3d1683702ab75c781f0b95 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Shib13/AuthnRequest.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Shib13/AuthnRequest.php @@ -6,37 +6,68 @@ * * @author Andreas Åkre Solberg, UNINETT AS. <andreas.solberg@uninett.no> * @package SimpleSAMLphp + * @deprecated This class will be removed in a future release */ namespace SimpleSAML\XML\Shib13; +use SimpleSAML\Metadata\MetaDataStorageHandler; + class AuthnRequest { + /** @var string|null */ private $issuer = null; + + /** @var string|null */ private $relayState = null; + + /** + * @param string|null $relayState + * @return void + */ public function setRelayState($relayState) { $this->relayState = $relayState; } + + /** + * @return string|null + */ public function getRelayState() { return $this->relayState; } + + /** + * @param string|null $issuer + * @return void + */ public function setIssuer($issuer) { $this->issuer = $issuer; } + + + /** + * @return string|null + */ public function getIssuer() { return $this->issuer; } + + /** + * @param string $destination + * @param string $shire + * @return string + */ public function createRedirect($destination, $shire) { - $metadata = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); + $metadata = MetaDataStorageHandler::getMetadataHandler(); $idpmetadata = $metadata->getMetaDataConfig($destination, 'shib13-idp-remote'); $desturl = $idpmetadata->getDefaultEndpoint( @@ -46,11 +77,13 @@ public function createRedirect($destination, $shire) $desturl = $desturl['Location']; $target = $this->getRelayState(); - - $url = $desturl.'?'. - 'providerId='.urlencode($this->getIssuer()). - '&shire='.urlencode($shire). - (isset($target) ? '&target='.urlencode($target) : ''); + $issuer = $this->getIssuer(); + assert($issuer !== null); + + $url = $desturl . '?' . + 'providerId=' . urlencode($issuer) . + '&shire=' . urlencode($shire) . + (isset($target) ? '&target=' . urlencode($target) : ''); return $url; } } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Shib13/AuthnResponse.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Shib13/AuthnResponse.php index 8b6c1fb6e3686a77638c6ddc625f649000a27bab..f50045d8f6f5a0f678ba63f8f035c49a15f504d3 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Shib13/AuthnResponse.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Shib13/AuthnResponse.php @@ -5,23 +5,25 @@ * * @author Andreas Åkre Solberg, UNINETT AS. <andreas.solberg@uninett.no> * @package SimpleSAMLphp + * @deprecated This class will be removed in a future release */ namespace SimpleSAML\XML\Shib13; use DOMDocument; use DOMNode; +use DOMXpath; use SAML2\DOMDocumentFactory; -use SAML2\Utils; -use SimpleSAML\Utils\Config; -use SimpleSAML\Utils\Random; -use SimpleSAML\Utils\Time; +use SimpleSAML\Configuration; +use SimpleSAML\Error; +use SimpleSAML\Metadata\MetaDataStorageHandler; +use SimpleSAML\Utils; use SimpleSAML\XML\Validator; class AuthnResponse { /** - * @var \SimpleSAML\XML\Validator This variable contains an XML validator for this message. + * @var \SimpleSAML\XML\Validator|null This variable contains an XML validator for this message. */ private $validator = null; @@ -32,14 +34,18 @@ class AuthnResponse private $messageValidated = false; + /** @var string */ const SHIB_PROTOCOL_NS = 'urn:oasis:names:tc:SAML:1.0:protocol'; + + + /** @var string */ const SHIB_ASSERT_NS = 'urn:oasis:names:tc:SAML:1.0:assertion'; /** - * @var \DOMDocument The DOMDocument which represents this message. + * @var \DOMDocument|null The DOMDocument which represents this message. */ - private $dom; + private $dom = null; /** * @var string|null The relaystate which is associated with this response. @@ -51,6 +57,7 @@ class AuthnResponse * Set whether this message was validated externally. * * @param bool $messageValidated TRUE if the message is already validated, FALSE if not. + * @return void */ public function setMessageValidated($messageValidated) { @@ -60,6 +67,11 @@ public function setMessageValidated($messageValidated) } + /** + * @param string $xml + * @throws \Exception + * @return void + */ public function setXML($xml) { assert(is_string($xml)); @@ -71,16 +83,30 @@ public function setXML($xml) } } + + /** + * @param string|null $relayState + * @return void + */ public function setRelayState($relayState) { $this->relayState = $relayState; } + + /** + * @return string|null + */ public function getRelayState() { return $this->relayState; } + + /** + * @throws \SimpleSAML\Error\Exception + * @return bool + */ public function validate() { assert($this->dom instanceof DOMDocument); @@ -97,7 +123,7 @@ public function validate() $issuer = $this->getIssuer(); // Get the metadata of the issuer - $metadata = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); + $metadata = MetaDataStorageHandler::getMetadataHandler(); $md = $metadata->getMetaDataConfig($issuer, 'shib13-idp-remote'); $publicKeys = $md->getPublicKeys('signing'); @@ -117,10 +143,10 @@ public function validate() $this->validator->validateFingerprint($certFingerprints); } elseif ($md->hasValue('caFile')) { // Validate against CA - $this->validator->validateCA(Config::getCertPath($md->getString('caFile'))); + $this->validator->validateCA(Utils\Config::getCertPath($md->getString('caFile'))); } else { - throw new \SimpleSAML\Error\Exception( - 'Missing certificate in Shibboleth 1.3 IdP Remote metadata for identity provider ['.$issuer.'].' + throw new Error\Exception( + 'Missing certificate in Shibboleth 1.3 IdP Remote metadata for identity provider [' . $issuer . '].' ); } @@ -131,7 +157,7 @@ public function validate() /** * Checks if the given node is validated by the signature on this response. * - * @param \DOMElement $node Node to be validated. + * @param \DOMElement|\SimpleXMLElement $node Node to be validated. * @return bool TRUE if the node is validated or FALSE if not. */ private function isNodeValidated($node) @@ -150,7 +176,7 @@ private function isNodeValidated($node) $node = dom_import_simplexml($node); } - assert($node instanceof \DOMNode); + assert($node instanceof DOMNode); return $this->validator->isNodeValidated($node); } @@ -167,21 +193,22 @@ private function isNodeValidated($node) private function doXPathQuery($query, $node = null) { assert(is_string($query)); - assert($this->dom instanceof \DOMDocument); + assert($this->dom instanceof DOMDocument); if ($node === null) { $node = $this->dom->documentElement; } - assert($node instanceof \DOMNode); + assert($node instanceof DOMNode); - $xPath = new \DOMXpath($this->dom); + $xPath = new DOMXpath($this->dom); $xPath->registerNamespace('shibp', self::SHIB_PROTOCOL_NS); $xPath->registerNamespace('shib', self::SHIB_ASSERT_NS); return $xPath->query($query, $node); } + /** * Retrieve the session index of this response. * @@ -201,13 +228,17 @@ public function getSessionIndex() } + /** + * @throws \Exception + * @return array + */ public function getAttributes() { - $metadata = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); + $metadata = MetaDataStorageHandler::getMetadataHandler(); $md = $metadata->getMetaData($this->getIssuer(), 'shib13-idp-remote'); $base64 = isset($md['base64attributes']) ? $md['base64attributes'] : false; - if (!($this->dom instanceof \DOMDocument)) { + if (!($this->dom instanceof DOMDocument)) { return []; } @@ -229,7 +260,7 @@ public function getAttributes() if ($start && $end) { if (!self::checkDateConditions($start, $end)) { - error_log('Date check failed ... (from '.$start.' to '.$end.')'); + error_log('Date check failed ... (from ' . $start . ' to ' . $end . ')'); continue; } } @@ -239,18 +270,22 @@ public function getAttributes() 'shib:AttributeStatement/shib:Attribute/shib:AttributeValue', $assertion ); - /** @var \DOMElement $attribute */ + foreach ($attribute_nodes as $attribute) { + /** @var \DOMElement $attribute */ + $value = $attribute->textContent; - $name = $attribute->parentNode->getAttribute('AttributeName'); + /** @var \DOMElement $parentNode */ + $parentNode = $attribute->parentNode; + $name = $parentNode->getAttribute('AttributeName'); if ($attribute->hasAttribute('Scope')) { - $scopePart = '@'.$attribute->getAttribute('Scope'); + $scopePart = '@' . $attribute->getAttribute('Scope'); } else { $scopePart = ''; } - if (!is_string($name)) { + if (empty($name)) { throw new \Exception('Shib13 Attribute node without an AttributeName.'); } @@ -261,10 +296,10 @@ public function getAttributes() if ($base64) { $encodedvalues = explode('_', $value); foreach ($encodedvalues as $v) { - $attributes[$name][] = base64_decode($v).$scopePart; + $attributes[$name][] = base64_decode($v) . $scopePart; } } else { - $attributes[$name][] = $value.$scopePart; + $attributes[$name][] = $value . $scopePart; } } } @@ -273,6 +308,10 @@ public function getAttributes() } + /** + * @throws \Exception + * @return string + */ public function getIssuer() { $query = '/shibp:Response/shib:Assertion/@Issuer'; @@ -285,6 +324,10 @@ public function getIssuer() } } + + /** + * @return array + */ public function getNameID() { $nameID = []; @@ -310,7 +353,7 @@ public function getNameID() * @param array|null $attributes The attributes which should be included in the response. * @return string The response. */ - public function generate(\SimpleSAML\Configuration $idp, \SimpleSAML\Configuration $sp, $shire, $attributes) + public function generate(Configuration $idp, Configuration $sp, $shire, $attributes) { assert(is_string($shire)); assert($attributes === null || is_array($attributes)); @@ -323,16 +366,16 @@ public function generate(\SimpleSAML\Configuration $idp, \SimpleSAML\Configurati $scopedAttributes = []; } - $id = Random::generateID(); + $id = Utils\Random::generateID(); - $issueInstant = Time::generateTimestamp(); + $issueInstant = Utils\Time::generateTimestamp(); // 30 seconds timeskew back in time to allow differing clocks - $notBefore = Time::generateTimestamp(time() - 30); + $notBefore = Utils\Time::generateTimestamp(time() - 30); - $assertionExpire = Time::generateTimestamp(time() + 300); // 5 minutes - $assertionid = Random::generateID(); + $assertionExpire = Utils\Time::generateTimestamp(time() + 300); // 5 minutes + $assertionid = Utils\Random::generateID(); $spEntityId = $sp->getString('entityid'); @@ -340,20 +383,20 @@ public function generate(\SimpleSAML\Configuration $idp, \SimpleSAML\Configurati $base64 = $sp->getBoolean('base64attributes', false); $namequalifier = $sp->getString('NameQualifier', $spEntityId); - $nameid = Random::generateID(); + $nameid = Utils\Random::generateID(); $subjectNode = - '<Subject>'. - '<NameIdentifier'. - ' Format="urn:mace:shibboleth:1.0:nameIdentifier"'. - ' NameQualifier="'.htmlspecialchars($namequalifier).'"'. - '>'. - htmlspecialchars($nameid). - '</NameIdentifier>'. - '<SubjectConfirmation>'. - '<ConfirmationMethod>'. - 'urn:oasis:names:tc:SAML:1.0:cm:bearer'. - '</ConfirmationMethod>'. - '</SubjectConfirmation>'. + '<Subject>' . + '<NameIdentifier' . + ' Format="urn:mace:shibboleth:1.0:nameIdentifier"' . + ' NameQualifier="' . htmlspecialchars($namequalifier) . '"' . + '>' . + htmlspecialchars($nameid) . + '</NameIdentifier>' . + '<SubjectConfirmation>' . + '<ConfirmationMethod>' . + 'urn:oasis:names:tc:SAML:1.0:cm:bearer' . + '</ConfirmationMethod>' . + '</SubjectConfirmation>' . '</Subject>'; $encodedattributes = ''; @@ -375,25 +418,25 @@ public function generate(\SimpleSAML\Configuration $idp, \SimpleSAML\Configurati $response = '<Response xmlns="urn:oasis:names:tc:SAML:1.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol" xmlns:xsd="http://www.w3.org/2001/XMLSchema" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" IssueInstant="'.$issueInstant.'" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" IssueInstant="' . $issueInstant . '" MajorVersion="1" MinorVersion="1" - Recipient="'.htmlspecialchars($shire).'" ResponseID="'.$id.'"> + Recipient="' . htmlspecialchars($shire) . '" ResponseID="' . $id . '"> <Status> <StatusCode Value="samlp:Success" /> </Status> <Assertion xmlns="urn:oasis:names:tc:SAML:1.0:assertion" - AssertionID="'.$assertionid.'" IssueInstant="'.$issueInstant.'" - Issuer="'.htmlspecialchars($idp->getString('entityid')).'" MajorVersion="1" MinorVersion="1"> - <Conditions NotBefore="'.$notBefore.'" NotOnOrAfter="'.$assertionExpire.'"> + AssertionID="' . $assertionid . '" IssueInstant="' . $issueInstant . '" + Issuer="' . htmlspecialchars($idp->getString('entityid')) . '" MajorVersion="1" MinorVersion="1"> + <Conditions NotBefore="' . $notBefore . '" NotOnOrAfter="' . $assertionExpire . '"> <AudienceRestrictionCondition> - <Audience>'.htmlspecialchars($audience).'</Audience> + <Audience>' . htmlspecialchars($audience) . '</Audience> </AudienceRestrictionCondition> </Conditions> - <AuthenticationStatement AuthenticationInstant="'.$issueInstant.'" - AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:unspecified">'. - $subjectNode.' + <AuthenticationStatement AuthenticationInstant="' . $issueInstant . '" + AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:unspecified">' . + $subjectNode . ' </AuthenticationStatement> - '.$encodedattributes.' + ' . $encodedattributes . ' </Assertion> </Response>'; @@ -423,7 +466,7 @@ private function encAttribute($name, $values, $base64, $scopedAttributes) $scoped = false; } - $attr = '<Attribute AttributeName="'.htmlspecialchars($name). + $attr = '<Attribute AttributeName="' . htmlspecialchars($name) . '" AttributeNamespace="urn:mace:shibboleth:1.0:attributeNamespace:uri">'; foreach ($values as $value) { $scopePart = ''; @@ -431,7 +474,7 @@ private function encAttribute($name, $values, $base64, $scopedAttributes) $tmp = explode('@', $value, 2); if (count($tmp) === 2) { $value = $tmp[0]; - $scopePart = ' Scope="'.htmlspecialchars($tmp[1]).'"'; + $scopePart = ' Scope="' . htmlspecialchars($tmp[1]) . '"'; } } @@ -439,7 +482,7 @@ private function encAttribute($name, $values, $base64, $scopedAttributes) $value = base64_encode($value); } - $attr .= '<AttributeValue'.$scopePart.'>'.htmlspecialchars($value).'</AttributeValue>'; + $attr .= '<AttributeValue' . $scopePart . '>' . htmlspecialchars($value) . '</AttributeValue>'; } $attr .= '</Attribute>'; @@ -468,14 +511,14 @@ protected static function checkDateConditions($start = null, $end = null) $currentTime = time(); if (!empty($start)) { - $startTime = Utils::xsDateTimeToTimestamp($start); + $startTime = \SAML2\Utils::xsDateTimeToTimestamp($start); // allow for a 10 minute difference in time if (($startTime < 0) || (($startTime - 600) > $currentTime)) { return false; } } if (!empty($end)) { - $endTime = Utils::xsDateTimeToTimestamp($end); + $endTime = \SAML2\Utils::xsDateTimeToTimestamp($end); if (($endTime < 0) || ($endTime <= $currentTime)) { return false; } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Signer.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Signer.php index 26f46ab62f3163f6a47896a6edafdf7b3c8e1e0b..bae8a0ce4f5a713ce05ed0dcd86fa571423d2ae3 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Signer.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Signer.php @@ -16,7 +16,7 @@ use DOMText; use RobRichards\XMLSecLibs\XMLSecurityDSig; use RobRichards\XMLSecLibs\XMLSecurityKey; -use SimpleSAML\Utils\Config; +use SimpleSAML\Utils; class Signer { @@ -26,7 +26,7 @@ class Signer private $idAttrName = ''; /** - * @var XMLSecurityKey|bool The private key (as an XMLSecurityKey). + * @var XMLSecurityKey|false The private key (as an XMLSecurityKey). */ private $privateKey = false; @@ -96,6 +96,7 @@ public function __construct($options = []) * by \SimpleSAML\Utils\Crypto::loadPrivateKey(...). * * @param array $privatekey The private key. + * @return void */ public function loadPrivateKeyArray($privatekey) { @@ -122,6 +123,7 @@ public function loadPrivateKeyArray($privatekey) * @param bool $full_path Whether the filename found in the configuration contains the * full path to the private key or not. Default to false. * @throws \Exception + * @return void */ public function loadPrivateKey($file, $pass = null, $full_path = false) { @@ -130,17 +132,17 @@ public function loadPrivateKey($file, $pass = null, $full_path = false) assert(is_bool($full_path)); if (!$full_path) { - $keyFile = Config::getCertPath($file); + $keyFile = Utils\Config::getCertPath($file); } else { $keyFile = $file; } if (!file_exists($keyFile)) { - throw new \Exception('Could not find private key file "'.$keyFile.'".'); + throw new \Exception('Could not find private key file "' . $keyFile . '".'); } $keyData = file_get_contents($keyFile); if ($keyData === false) { - throw new \Exception('Unable to read private key file "'.$keyFile.'".'); + throw new \Exception('Unable to read private key file "' . $keyFile . '".'); } $privatekey = ['PEM' => $keyData]; @@ -159,6 +161,7 @@ public function loadPrivateKey($file, $pass = null, $full_path = false) * * @param array $publickey The public key. * @throws \Exception + * @return void */ public function loadPublicKeyArray($publickey) { @@ -185,6 +188,7 @@ public function loadPublicKeyArray($publickey) * @param bool $full_path Whether the filename found in the configuration contains the * full path to the private key or not. Default to false. * @throws \Exception + * @return void */ public function loadCertificate($file, $full_path = false) { @@ -192,18 +196,18 @@ public function loadCertificate($file, $full_path = false) assert(is_bool($full_path)); if (!$full_path) { - $certFile = Config::getCertPath($file); + $certFile = Utils\Config::getCertPath($file); } else { $certFile = $file; } if (!file_exists($certFile)) { - throw new \Exception('Could not find certificate file "'.$certFile.'".'); + throw new \Exception('Could not find certificate file "' . $certFile . '".'); } $cert = file_get_contents($certFile); if ($cert === false) { - throw new \Exception('Unable to read certificate file "'.$certFile.'".'); + throw new \Exception('Unable to read certificate file "' . $certFile . '".'); } $this->certificate = $cert; } @@ -213,6 +217,7 @@ public function loadCertificate($file, $full_path = false) * Set the attribute name for the ID value. * * @param string $idAttrName The name of the attribute which contains the id. + * @return void */ public function setIDAttribute($idAttrName) { @@ -232,6 +237,7 @@ public function setIDAttribute($idAttrName) * @param bool $full_path Whether the filename found in the configuration contains the * full path to the private key or not. Default to false. * @throws \Exception + * @return void */ public function addCertificate($file, $full_path = false) { @@ -239,18 +245,18 @@ public function addCertificate($file, $full_path = false) assert(is_bool($full_path)); if (!$full_path) { - $certFile = Config::getCertPath($file); + $certFile = Utils\Config::getCertPath($file); } else { $certFile = $file; } if (!file_exists($certFile)) { - throw new \Exception('Could not find extra certificate file "'.$certFile.'".'); + throw new \Exception('Could not find extra certificate file "' . $certFile . '".'); } $certificate = file_get_contents($certFile); if ($certificate === false) { - throw new \Exception('Unable to read extra certificate file "'.$certFile.'".'); + throw new \Exception('Unable to read extra certificate file "' . $certFile . '".'); } $this->extraCertificates[] = $certificate; @@ -268,6 +274,7 @@ public function addCertificate($file, $full_path = false) * in which case the signature will be appended to the element spesified in * $insertInto. * @throws \Exception + * @return void */ public function sign($node, $insertInto, $insertBefore = null) { @@ -276,7 +283,8 @@ public function sign($node, $insertInto, $insertBefore = null) assert($insertBefore === null || $insertBefore instanceof DOMElement || $insertBefore instanceof DOMComment || $insertBefore instanceof DOMText); - if ($this->privateKey === false) { + $privateKey = $this->privateKey; + if ($privateKey === false) { throw new \Exception('Private key not set.'); } @@ -296,9 +304,7 @@ public function sign($node, $insertInto, $insertBefore = null) $options ); - /** @var \RobRichards\XMLSecLibs\XMLSecurityKey $this->privateKey */ - $objXMLSecDSig->sign($this->privateKey); - + $objXMLSecDSig->sign($privateKey); // Add the certificate to the signature $objXMLSecDSig->add509Cert($this->certificate, true); diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Validator.php b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Validator.php index 8dd46f8971c6c1bfd63fd17ed9f8e1db15428875..0e201c88984a74b077aab0a2c0ddc6a42e1e7518 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Validator.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/XML/Validator.php @@ -16,10 +16,10 @@ class Validator { /** - * @var string This variable contains the X509 certificate the XML document + * @var string|null This variable contains the X509 certificate the XML document * was signed with, or NULL if it wasn't signed with an X509 certificate. */ - private $x509Certificate; + private $x509Certificate = null; /** * @var array|null This variable contains the nodes which are signed. @@ -37,7 +37,7 @@ class Validator * - A string: Assumed to be a PEM-encoded certificate / public key. * - An array: Assumed to be an array returned by \SimpleSAML\Utils\Crypto::loadPublicKey. * - * @param \DOMNode $xmlNode The XML node which contains the Signature element. + * @param \DOMDocument $xmlNode The XML node which contains the Signature element. * @param string|array $idAttribute The ID attribute which is used in node references. If * this attribute is NULL (the default), then we will use whatever is the default * ID. Can be eigther a string with one value, or an array with multiple ID @@ -47,7 +47,7 @@ class Validator */ public function __construct($xmlNode, $idAttribute = null, $publickey = false) { - assert($xmlNode instanceof \DOMNode); + assert($xmlNode instanceof \DOMDocument); if ($publickey === null) { $publickey = false; @@ -115,7 +115,7 @@ public function __construct($xmlNode, $idAttribute = null, $publickey = false) $certificate = $objKey->getX509Certificate(); if ($certificate === null) { // Wasn't signed with an X509 certificate - throw new \Exception('Message wasn\'t signed with an X509 certificate,'. + throw new \Exception('Message wasn\'t signed with an X509 certificate,' . ' and no public key was provided in the metadata.'); } @@ -143,7 +143,7 @@ public function __construct($xmlNode, $idAttribute = null, $publickey = false) * This function will return the certificate as a PEM-encoded string. If the XML * wasn't signed by an X509 certificate, NULL will be returned. * - * @return string The certificate as a PEM-encoded string, or NULL if not signed with an X509 certificate. + * @return string|null The certificate as a PEM-encoded string, or NULL if not signed with an X509 certificate. */ public function getX509Certificate() { @@ -156,7 +156,7 @@ public function getX509Certificate() * * @param string $x509cert The certificate as a base64-encoded string. The string may optionally * be framed with '-----BEGIN CERTIFICATE-----' and '-----END CERTIFICATE-----'. - * @return string The fingerprint as a 40-character lowercase hexadecimal number. NULL is returned if the + * @return string|null The fingerprint as a 40-character lowercase hexadecimal number. NULL is returned if the * argument isn't an X509 certificate. */ private static function calculateX509Fingerprint($x509cert) @@ -201,6 +201,7 @@ private static function calculateX509Fingerprint($x509cert) * @param string $certificate The X509 certificate we should validate. * @param array $fingerprints The valid fingerprints. * @throws \Exception + * @return void */ private static function validateCertificateFingerprint($certificate, $fingerprints) { @@ -210,7 +211,7 @@ private static function validateCertificateFingerprint($certificate, $fingerprin $certFingerprint = self::calculateX509Fingerprint($certificate); if ($certFingerprint === null) { // Couldn't calculate fingerprint from X509 certificate. Should not happen. - throw new \Exception('Unable to calculate fingerprint from X509'. + throw new \Exception('Unable to calculate fingerprint from X509' . ' certificate. Maybe it isn\'t an X509 certificate?'); } @@ -224,8 +225,8 @@ private static function validateCertificateFingerprint($certificate, $fingerprin } // None of the fingerprints matched. Throw an exception describing the error. - throw new \Exception('Invalid fingerprint of certificate. Expected one of ['. - implode('], [', $fingerprints).'], but got ['.$certFingerprint.']'); + throw new \Exception('Invalid fingerprint of certificate. Expected one of [' . + implode('], [', $fingerprints) . '], but got [' . $certFingerprint . ']'); } @@ -239,6 +240,7 @@ private static function validateCertificateFingerprint($certificate, $fingerprin * @param string|array $fingerprints The fingerprints which should match. This can be a single string, * or an array of fingerprints. * @throws \Exception + * @return void */ public function validateFingerprint($fingerprints) { @@ -275,12 +277,14 @@ public function isNodeValidated($node) { assert($node instanceof \DOMNode); - while ($node !== null) { - if (in_array($node, $this->validNodes, true)) { - return true; - } + if ($this->validNodes !== null) { + while ($node !== null) { + if (in_array($node, $this->validNodes, true)) { + return true; + } - $node = $node->parentNode; + $node = $node->parentNode; + } } /* Neither this node nor any of the parent nodes could be found in the list of @@ -297,6 +301,7 @@ public function isNodeValidated($node) * * @param string $caFile File with trusted certificates, in PEM-format. * @throws \Exception + * @return void */ public function validateCA($caFile) { @@ -332,7 +337,7 @@ private static function validateCABuiltIn($certificate, $caFile) $errors = ''; // Log errors while (($error = openssl_error_string()) !== false) { - $errors .= ' ['.$error.']'; + $errors .= ' [' . $error . ']'; } if ($res !== true) { @@ -369,7 +374,7 @@ private static function validateCAExec($certificate, $caFile) $cmdline = ''; foreach ($command as $c) { - $cmdline .= escapeshellarg($c).' '; + $cmdline .= escapeshellarg($c) . ' '; } $cmdline .= '2>&1'; @@ -379,7 +384,7 @@ private static function validateCAExec($certificate, $caFile) ]; $process = proc_open($cmdline, $descSpec, $pipes); if (!is_resource($process)) { - throw new \Exception('Failed to execute verification command: '.$cmdline); + throw new \Exception('Failed to execute verification command: ' . $cmdline); } if (fwrite($pipes[0], $certificate) === false) { @@ -391,7 +396,7 @@ private static function validateCAExec($certificate, $caFile) while (!feof($pipes[1])) { $line = trim(fgets($pipes[1])); if (strlen($line) > 0) { - $out .= ' ['.$line.']'; + $out .= ' [' . $line . ']'; } } fclose($pipes[1]); @@ -413,6 +418,7 @@ private static function validateCAExec($certificate, $caFile) * @param string $certificate The certificate, in PEM format. * @param string $caFile File with trusted certificates, in PEM-format. * @throws \Exception + * @return void * @deprecated */ public static function validateCertificate($certificate, $caFile) @@ -421,21 +427,21 @@ public static function validateCertificate($certificate, $caFile) assert(is_string($caFile)); if (!file_exists($caFile)) { - throw new \Exception('Could not load CA file: '.$caFile); + throw new \Exception('Could not load CA file: ' . $caFile); } - Logger::debug('Validating certificate against CA file: '.var_export($caFile, true)); + Logger::debug('Validating certificate against CA file: ' . var_export($caFile, true)); $resBuiltin = self::validateCABuiltIn($certificate, $caFile); if ($resBuiltin !== true) { - Logger::debug('Failed to validate with internal function: '.var_export($resBuiltin, true)); + Logger::debug('Failed to validate with internal function: ' . var_export($resBuiltin, true)); $resExternal = self::validateCAExec($certificate, $caFile); if ($resExternal !== true) { - Logger::debug('Failed to validate with external function: '.var_export($resExternal, true)); - throw new \Exception('Could not verify certificate against CA file "'. - $caFile.'". Internal result:'.$resBuiltin. - ' External result:'.$resExternal); + Logger::debug('Failed to validate with external function: ' . var_export($resExternal, true)); + throw new \Exception('Could not verify certificate against CA file "' . + $caFile . '". Internal result:' . var_export($resBuiltin, true) . + ' External result:' . var_export($resExternal, true)); } } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/_autoload.php b/vendor/simplesamlphp/simplesamlphp/lib/_autoload.php index 245acd1e5561f4e1f7b1bc2fe270909b07997d36..e44c70f9774efcbb9815442d8d716445034592d1 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/_autoload.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/_autoload.php @@ -9,12 +9,12 @@ */ // SSP is loaded as a separate project -if (file_exists(dirname(dirname(__FILE__)).'/vendor/autoload.php')) { - require_once dirname(dirname(__FILE__)).'/vendor/autoload.php'; +if (file_exists(dirname(dirname(__FILE__)) . '/vendor/autoload.php')) { + require_once dirname(dirname(__FILE__)) . '/vendor/autoload.php'; } else { // SSP is loaded as a library - if (file_exists(dirname(dirname(__FILE__)).'/../../autoload.php')) { - require_once dirname(dirname(__FILE__)).'/../../autoload.php'; + if (file_exists(dirname(dirname(__FILE__)) . '/../../autoload.php')) { + require_once dirname(dirname(__FILE__)) . '/../../autoload.php'; } else { throw new Exception('Unable to load Composer autoloader'); } diff --git a/vendor/simplesamlphp/simplesamlphp/lib/_autoload_modules.php b/vendor/simplesamlphp/simplesamlphp/lib/_autoload_modules.php index 223ebc5fd64f3d4ec2f731fe5aefe2e49e0549af..765dfd899bdba52dca796c719755ade6a0478767 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/_autoload_modules.php +++ b/vendor/simplesamlphp/simplesamlphp/lib/_autoload_modules.php @@ -21,7 +21,7 @@ function temporaryLoader($class) { // handle the upgrade to the latest version of XMLSecLibs using namespaces if (strstr($class, 'XMLSec') && !strstr($class, '\\RobRichards\\XMLSecLibs\\')) { - $new = '\\RobRichards\\XMLSecLibs\\'.$class; + $new = '\\RobRichards\\XMLSecLibs\\' . $class; if (class_exists($new, true)) { class_alias($new, $class); SimpleSAML\Logger::warning("The class '$class' is now using namespaces, please use '$new'."); @@ -44,6 +44,7 @@ class_alias($new, $class); 'SimpleSAML_IdP_LogoutHandler' => 'SimpleSAML_IdP_LogoutHandlerInterface', 'SimpleSAML_IdP_LogoutIFrame' => 'SimpleSAML_IdP_IFrameLogoutHandler', 'SimpleSAML_IdP_LogoutTraditional' => 'SimpleSAML_IdP_TraditionalLogoutHandler', + 'SimpleSAML_Auth_Default' => 'SimpleSAML_Auth_DefaultAuth', ]; if (array_key_exists($class, $renamed)) { // the class has been renamed, try to load it and create an alias @@ -52,7 +53,7 @@ class_alias($new, $class); // try to load it from the corresponding file $path = explode('_', $class); - $file = dirname(__FILE__).DIRECTORY_SEPARATOR.join(DIRECTORY_SEPARATOR, $path).'.php'; + $file = dirname(__FILE__) . DIRECTORY_SEPARATOR . join(DIRECTORY_SEPARATOR, $path) . '.php'; if (file_exists($file)) { require_once $file; } @@ -110,7 +111,7 @@ function sspmodAutoloadPSR0($className) return; } - $file = \SimpleSAML\Module::getModuleDir($module).'/lib/'.join('/', $path).'.php'; + $file = \SimpleSAML\Module::getModuleDir($module) . '/lib/' . join('/', $path) . '.php'; if (!file_exists($file)) { return; } @@ -119,13 +120,14 @@ function sspmodAutoloadPSR0($className) if (!class_exists($className, false) && !interface_exists($className, false)) { // the file exists, but the class is not defined. Is it using namespaces? $nspath = join('\\', $path); - if (class_exists('SimpleSAML\\Module\\'.$module.'\\'.$nspath) || - interface_exists('SimpleSAML\\Module\\'.$module.'\\'.$nspath) + if ( + class_exists('SimpleSAML\\Module\\' . $module . '\\' . $nspath) + || interface_exists('SimpleSAML\\Module\\' . $module . '\\' . $nspath) ) { // the class has been migrated, create an alias and warn about it \SimpleSAML\Logger::warning( - "The class or interface '$className' is now using namespaces, please use 'SimpleSAML\\Module\\". - $module."\\".$nspath."' instead." + "The class or interface '$className' is now using namespaces, please use 'SimpleSAML\\Module\\" . + $module . "\\" . $nspath . "' instead." ); class_alias("SimpleSAML\\Module\\$module\\$nspath", $className); } @@ -161,7 +163,7 @@ function sspmodAutoloadPSR4($className) return; // module not enabled, avoid giving out any information at all } - $file = \SimpleSAML\Module::getModuleDir($module).'/lib/'.implode('/', $elements).'.php'; + $file = \SimpleSAML\Module::getModuleDir($module) . '/lib/' . implode('/', $elements) . '.php'; if (file_exists($file)) { require_once($file); diff --git a/vendor/simplesamlphp/simplesamlphp/locales/af/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/af/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..30634432a75b7c381135a79bd9ce4d48ef3b892a --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/af/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: af\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Algemene naam" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Algemene naam" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Algemene naam" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Domein komponent (DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Domein komponent (DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Domein komponent (DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Vertoon naam" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Vertoon naam" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Vertoon naam" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Organisasie tuisblad" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Organisasie tuisblad" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Organisasie tuisblad" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Wettige naam" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Wettige naam" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Wettige naam" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Affiliasie" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Affiliasie" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Affiliasie" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Identiteitsversekerings profiel" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Identiteitsversekerings profiel" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Identiteitsversekerings profiel" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Reg mbt. die diens" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Reg mbt. die diens" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Reg mbt. die diens" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Bynaam" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Bynaam" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Bynaam" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Kenmerkende naam (DN) van die person se tuisorganisasie" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Kenmerkende naam (DN) van die person se tuisorganisasie" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Kenmerkende naam (DN) van die person se tuisorganisasie" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Kenmerkende naam (DN) van die persoon se organisatoriese afdeling" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Kenmerkende naam (DN) van die persoon se organisatoriese afdeling" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Kenmerkende naam (DN) van die persoon se organisatoriese afdeling" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Primêre affiliasie" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Primêre affiliasie" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Primêre affiliasie" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Kenmerkende naam (DN) van die persoon se primêre organisatoriese afdeling" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Kenmerkende naam (DN) van die persoon se primêre organisatoriese afdeling" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Kenmerkende naam (DN) van die persoon se primêre organisatoriese afdeling" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Persoonlike ID by tuis organisasie" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Persoonlike ID by tuis organisasie" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Persoonlike ID by tuis organisasie" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Affiliasie by Tuis organisasie" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Affiliasie by Tuis organisasie" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Affiliasie by Tuis organisasie" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Aanhoudende anonieme ID" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Aanhoudende anonieme ID" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Aanhoudende anonieme ID" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Faksnommer" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Faksnommer" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Faksnommer" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Voornaam" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Voornaam" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Voornaam" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Tuistelefoon" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Tuistelefoon" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Tuistelefoon" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Tuis posadres" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Tuis posadres" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Tuis posadres" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "JPEG Foto" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "JPEG Foto" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "JPEG Foto" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Ligging" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Ligging" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Ligging" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "URI" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "URI" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "URI" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "E-pos" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "E-pos" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "E-pos" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Bestuurder" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Bestuurder" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Bestuurder" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Selfoon" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Selfoon" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Selfoon" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Organisasie nommer" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Organisasie nommer" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Organisasie nommer" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Geboorte datum" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Geboorte datum" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Geboorte datum" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Identiteitsnommer" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Identiteitsnommer" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Identiteitsnommer" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Identiteitsnommer" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Identiteitsnommer" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Identiteitsnommer" + +# English string: Organization name +msgid "o" +msgstr "Organisasie naam" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Organisasie naam" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Organisasie naam" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Organisasie eenheid" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Organisasie eenheid" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Organisasie eenheid" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Posbus" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Posbus" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Posbus" + +# English string: Postal address +msgid "postalAddress" +msgstr "Posadres" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Posadres" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Posadres" + +# English string: Postal code +msgid "postalCode" +msgstr "Poskode" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Poskode" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Poskode" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Taal voorkeur" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Taal voorkeur" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Taal voorkeur" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Tuis Organisasie domein naam" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Tuis Organisasie domein naam" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Tuis Organisasie domein naam" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Tuis Organisasie domein naam" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Private informasie elemente" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Private informasie elemente" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Private informasie elemente" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Private informasie elemente" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Van" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Van" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Van" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Straat" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Straat" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Straat" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Telefoon nommer" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Telefoon nommer" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Telefoon nommer" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Titel" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Titel" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Titel" + +# English string: User ID +msgid "uid" +msgstr "Gebruikers ID" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Gebruikers ID" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Gebruikers ID" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Gebruikerswagwoord" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Gebruikerswagwoord" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Gebruikerswagwoord" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Algemene naam" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Vertoon naam" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Vertoon naam" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Vertoon naam" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Vertoon naam" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Vertoon naam" + +# English string: Display name +msgid "twitter.name" +msgstr "Vertoon naam" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Vertoon naam" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Persoonlike ID by tuis organisasie" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Persoonlike ID by tuis organisasie" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Persoonlike ID by tuis organisasie" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Persoonlike ID by tuis organisasie" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Persoonlike ID by tuis organisasie" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Aanhoudende anonieme ID" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Aanhoudende anonieme ID" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Aanhoudende anonieme ID" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Aanhoudende anonieme ID" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Faksnommer" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Voornaam" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Voornaam" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Voornaam" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Voornaam" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Voornaam" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Tuistelefoon" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Ligging" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "URI" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "URI" + +# English string: Mail +msgid "facebook.email" +msgstr "E-pos" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "E-pos" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "E-pos" + +# English string: Mail +msgid "windowslive_mail" +msgstr "E-pos" + +# English string: Mail +msgid "windowslive.mail" +msgstr "E-pos" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Selfoon" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Organisasie naam" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Poskode" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Poskode" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Taal voorkeur" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Taal voorkeur" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Taal voorkeur" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Taal voorkeur" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Taal voorkeur" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Van" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Van" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Van" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Van" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Van" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Telefoon nommer" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Telefoon nommer" + +# English string: Title +msgid "linkedin.headline" +msgstr "Titel" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Titel" + +# English string: User ID +msgid "facebook.username" +msgstr "Gebruikers ID" + +# English string: User ID +msgid "linkedin.id" +msgstr "Gebruikers ID" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Gebruikers ID" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Gebruikers ID" + +# English string: User ID +msgid "windowslive.id" +msgstr "Gebruikers ID" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/af/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/af/LC_MESSAGES/messages.po index 6de84e3fbdc4a42ca067a5ba24321ff992d9f67d..011b77335c4c9e354fe5ebb9cdb0e7a205cec8c7 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/af/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/af/LC_MESSAGES/messages.po @@ -38,12 +38,6 @@ msgstr "Gebruikersnaam" msgid "{errors:title_METADATA}" msgstr "Fout met die laai van die metadata" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Reg mbt. die diens" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "JPEG Foto" - msgid "{errors:descr_LOGOUTINFOLOST}" msgstr "" "Die inligting vir die huidige uiteken sessie is verlore. Jy moet " @@ -122,15 +116,9 @@ msgstr "" "administrateur is van dié diens moet jy verseker dat jou metadata " "konfigurasie korrek is." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Kenmerkende naam (DN) van die person se tuisorganisasie" - msgid "{errors:title_BADREQUEST}" msgstr "Foutiewe versoek ontvang" -msgid "{attributes:attribute_postaladdress}" -msgstr "Posadres" - msgid "{logout:title}" msgstr "Afgemeld" @@ -143,41 +131,20 @@ msgstr "Kies jou tuisorganisasie" msgid "{logout:hold}" msgstr "Hou die verbinding" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Affiliasie by Tuis organisasie" - -msgid "{attributes:attribute_sn}" -msgstr "Van" - -msgid "{attributes:attribute_organisationname}" -msgstr "Organisasie naam" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Telefoon nommer" - msgid "{errors:descr_DISCOPARAMS}" msgstr "" "Die gestuurde parameters na die ontdekkings diens was not volgens die " "korrekte spesifikasies nie." -msgid "{attributes:attribute_mail}" -msgstr "E-pos" - msgid "{errors:descr_CREATEREQUEST}" msgstr "Daar was 'n fout met die skepping van die SAML versoek." msgid "{logout:return}" msgstr "Terug na diens" -msgid "{attributes:attribute_displayname}" -msgstr "Vertoon naam" - msgid "{logout:logout_all}" msgstr "Ja, alle dienste" -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Tuis posadres" - msgid "{disco:select}" msgstr "Kies" @@ -205,9 +172,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Wil jy van alle bogenoemde dienste afmeld?" -msgid "{attributes:attribute_title}" -msgstr "Titel" - msgid "{errors:title_NOACCESS}" msgstr "Geen toegang" @@ -224,9 +188,6 @@ msgstr "" "Toestandsinformasie verlore en daar is geen manier om die versoek weer te" " stuur nie" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Identiteitsnommer" - msgid "{login:password}" msgstr "Wagwoord" @@ -247,15 +208,9 @@ msgstr "Instellings fout" msgid "{errors:title_LOGOUTREQUEST}" msgstr "Fout met die verwerking van die Afmeldings Versoek" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Affiliasie" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Metadata nie gevind nie" -msgid "{attributes:attribute_givenname}" -msgstr "Voornaam" - msgid "{login:contact_info}" msgstr "Kontak detail:" @@ -279,9 +234,6 @@ msgstr "" "Verifikasie het misluk: die sertifikaat wat jou webblaaier gestuur het is" " onbekend" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Organisasie tuisblad" - msgid "{logout:logging_out_from}" msgstr "Afmelding van die volgende dienste:" @@ -291,36 +243,21 @@ msgstr "Jy is suksesvol afgemeld van %SP% af." msgid "{errors:errorreport_text}" msgstr "Die foutmeldings verslag is gestuur na die administrateurs." -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Geboorte datum" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "Daar was 'n probleem tydens die verwerking van die Afmelding Versoek" -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Aanhoudende anonieme ID" - msgid "{logout:success}" msgstr "Jy het suksesvol afgemeld." msgid "{errors:descr_USERABORTED}" msgstr "Die verifikasie is gestop deur die gebruiker" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Primêre affiliasie" - -msgid "{attributes:attribute_postalcode}" -msgstr "Poskode" - msgid "{errors:descr_CASERROR}" msgstr "Fout tydens kommunikasie met die CAS bediener." msgid "{general:no}" msgstr "Nee" -msgid "{attributes:attribute_cn}" -msgstr "Algemene naam" - msgid "{logout:completed}" msgstr "Voltooid" @@ -329,18 +266,9 @@ msgstr "" "Die wagwoord in die konfigurasie (auth.adminpassword) is nie aangepas " "nie. Redigeer asb die konfigurasie leër." -msgid "{attributes:attribute_ou}" -msgstr "Organisasie eenheid" - msgid "{general:service_provider}" msgstr "Diens Verskaffer" -msgid "{attributes:attribute_homephone}" -msgstr "Tuistelefoon" - -msgid "{attributes:attribute_dc}" -msgstr "Domein komponent (DC)" - msgid "{errors:descr_BADREQUEST}" msgstr "Daar is 'n fout in die versoek na die bladsy. Die rede is: %REASON%" @@ -359,23 +287,14 @@ msgstr "Voer jou gebruikersnaam en wagwoord in" msgid "{errors:report_explain}" msgstr "Verduidelik wat jy gedoen het toe jy die probleem ervaar..." -msgid "{attributes:attribute_manager}" -msgstr "Bestuurder" - msgid "{errors:title_ACSPARAMS}" msgstr "Geen SAML versoek gevind nie" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Bynaam" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Jy het toegang verkry na die SingleLogoutService koppelvlak('interface')," " maar het geen SAML LogoutRequest of LogoutResponse gestuur nie." -msgid "{attributes:attribute_street}" -msgstr "Straat" - msgid "{login:organization}" msgstr "Organisasie" @@ -401,9 +320,6 @@ msgstr "Fout in verifikasie bron %AUTHSOURCE%. Die rede was %REASON%" msgid "{login:change_home_org_button}" msgstr "Kies tuisorganisasie" -msgid "{attributes:attribute_labeleduri}" -msgstr "URI" - msgid "{errors:report_email}" msgstr "Epos adres:" @@ -418,12 +334,6 @@ msgstr "" "Die inisieerder van hierdie versoek het nie 'n aflos staat('RelayState') " "parameter wat aandui waarheen om volgende te gaan nie." -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Wettige naam" - -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Tuis Organisasie domein naam" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Bladsy nie gevind nie" @@ -433,33 +343,18 @@ msgstr "Foutmelding ontvang vanaf die Identiteits Verskaffer" msgid "{errors:title_NOTVALIDCERT}" msgstr "Ongeldige sertifikaat" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Kenmerkende naam (DN) van die persoon se organisatoriese afdeling" - msgid "{general:remember}" msgstr "Onthou" msgid "{disco:selectidp}" msgstr "Kies jou identiteits verskaffer" -msgid "{attributes:attribute_postofficebox}" -msgstr "Posbus" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Persoonlike ID by tuis organisasie" - msgid "{login:help_desk_email}" msgstr "Stuur e-pos aan hulplyn" msgid "{login:help_desk_link}" msgstr "Hulplyn-tuisblad" -msgid "{attributes:attribute_ismemberof}" -msgstr "Groeplidmaatskap" - -msgid "{attributes:attribute_uid}" -msgstr "Gebruikers ID" - msgid "{login:remember_me}" msgstr "Onthou my" @@ -480,12 +375,6 @@ msgstr "Ja, voortgaan" msgid "{disco:remember}" msgstr "Onthou my keuse" -msgid "{attributes:attribute_l}" -msgstr "Ligging" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Identiteitsversekerings profiel" - msgid "{disco:login_at}" msgstr "Meld aan by" @@ -513,9 +402,6 @@ msgstr "Jy is afgemeld." msgid "{errors:title_UNKNOWNCERT}" msgstr "Onbekende sertifikaat" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Faksnommer" - msgid "{errors:title_LDAPERROR}" msgstr "LDAP Fout" @@ -534,27 +420,12 @@ msgstr "" "instellings in SimpleSAMLphp. Kontak die administrateur in beheer van die" " aanmeld diens en stuur die bostaande fout boodskap aan." -msgid "{attributes:attribute_mobile}" -msgstr "Selfoon" - -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Taal voorkeur" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Jy het nie 'n geldige sertifikaat gestuur nie." msgid "{logout:logout_only}" msgstr "Nee, net %SP%" -msgid "{attributes:attribute_o}" -msgstr "Organisasie naam" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Kenmerkende naam (DN) van die persoon se primêre organisatoriese afdeling" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Identiteitsnommer" - msgid "{login:next}" msgstr "Volgende" @@ -574,29 +445,17 @@ msgstr "" msgid "{errors:title_NOCERT}" msgstr "Geen sertifikaat" -msgid "{attributes:attribute_userpassword}" -msgstr "Gebruikerswagwoord" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Afmelding informasie verlore" msgid "{errors:descr_CONFIG}" msgstr "SimpleSAMLphp is nie korrek ingestel nie" -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Private informasie elemente" - msgid "{errors:descr_INVALIDCERT}" msgstr "" "Verifikasie het misluk: Jou webblaaier het 'n ongeldige of korrupte " "sertifikaat gestuur" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Wettige naam" - -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Organisasie nommer" - msgid "Person's principal name at home organization" msgstr "Persoonlike ID by tuis organisasie" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/ar/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/ar/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..e5a3246ee9bfe555b2d270517b6e17eab9908396 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/ar/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ar\n" +"Plural-Forms: nplurals=6; plural=(n == 0) ? 0 : ((n == 1) ? 1 : ((n == 2) ? 2 : ((n % 100 >= 3 && n % 100 <= 10) ? 3 : ((n % 100 >= 11 && n % 100 <= 99) ? 4 : 5))));\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "أسماء اخري" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "أسماء اخري" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "أسماء اخري" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "مكونات النطاق" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "مكونات النطاق" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "مكونات النطاق" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "الاسم المستخدم " + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "الاسم المستخدم " + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "الاسم المستخدم " + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr " عنوان الصفحة الالكترونية للمنظمة" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr " عنوان الصفحة الالكترونية للمنظمة" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr " عنوان الصفحة الالكترونية للمنظمة" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "الاسم القانوني للمنظمة" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "الاسم القانوني للمنظمة" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "الاسم القانوني للمنظمة" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "جهة العمل" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "جهة العمل" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "جهة العمل" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "هوية الضمان" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "هوية الضمان" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "هوية الضمان" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "استحقاقات الخدمة" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "استحقاقات الخدمة" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "استحقاقات الخدمة" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "الكنية" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "الكنية" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "الكنية" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "الاسم المميز للمنظمة رب العمل" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "الاسم المميز للمنظمة رب العمل" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "الاسم المميز للمنظمة رب العمل" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "الاسم المميز للوحدة بالمنظمة رب العمل" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "الاسم المميز للوحدة بالمنظمة رب العمل" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "الاسم المميز للوحدة بالمنظمة رب العمل" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "الوظيفة الاساسية" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "الوظيفة الاساسية" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "الوظيفة الاساسية" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "الاسم المميز للوحدة الأساسية بالمنظمة رب العمل" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "الاسم المميز للوحدة الأساسية بالمنظمة رب العمل" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "الاسم المميز للوحدة الأساسية بالمنظمة رب العمل" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "ألاسم بالمنظمة الام\\الموقع الام " + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "ألاسم بالمنظمة الام\\الموقع الام " + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "ألاسم بالمنظمة الام\\الموقع الام " + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "الوضع أو الوظيفة بالمنظمةالام\\الموقع الام" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "الوضع أو الوظيفة بالمنظمةالام\\الموقع الام" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "الوضع أو الوظيفة بالمنظمةالام\\الموقع الام" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "الاسم المستعار " + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "الاسم المستعار " + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "الاسم المستعار " + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "رقم الفاكس" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "رقم الفاكس" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "رقم الفاكس" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "الاسم" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "الاسم" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "الاسم" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "رقم الهاتف المنزلي" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "رقم الهاتف المنزلي" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "رقم الهاتف المنزلي" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "العنوان البريدي" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "العنوان البريدي" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "العنوان البريدي" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "صورة (JPEG)" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "صورة (JPEG)" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "صورة (JPEG)" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "المحلية" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "المحلية" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "المحلية" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "URI أسم " + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "URI أسم " + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "URI أسم " + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "العنوان البريدي" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "العنوان البريدي" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "العنوان البريدي" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "المدير" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "المدير" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "المدير" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "رقم الهاتف السيار" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "رقم الهاتف السيار" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "رقم الهاتف السيار" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "الرقم بالمنظمة" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "الرقم بالمنظمة" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "الرقم بالمنظمة" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "تاريخ الميلاد" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "تاريخ الميلاد" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "تاريخ الميلاد" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "رقم الهوية المحلي" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "رقم الهوية المحلي" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "رقم الهوية المحلي" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "الرقم التعريفي المعين من قبل السلطات العامة " + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "الرقم التعريفي المعين من قبل السلطات العامة " + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "الرقم التعريفي المعين من قبل السلطات العامة " + +# English string: Organization name +msgid "o" +msgstr "اسم المنظمة" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "اسم المنظمة" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "اسم المنظمة" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "الوحدة" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "الوحدة" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "الوحدة" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "الصندوق البريدي" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "الصندوق البريدي" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "الصندوق البريدي" + +# English string: Postal address +msgid "postalAddress" +msgstr "العنوان البريدي للمنظمة" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "العنوان البريدي للمنظمة" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "العنوان البريدي للمنظمة" + +# English string: Postal code +msgid "postalCode" +msgstr "الرمز البريدي" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "الرمز البريدي" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "الرمز البريدي" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "اللغة المفضلة" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "اللغة المفضلة" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "اللغة المفضلة" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "اسم النطاق المخصص للمنظمةالام\\الموقع الام " + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "اسم النطاق المخصص للمنظمةالام\\الموقع الام " + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "اسم النطاق المخصص للمنظمةالام\\الموقع الام " + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "اسم النطاق المخصص للمنظمةالام\\الموقع الام " + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "وحدات التعريف الخاصة" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "وحدات التعريف الخاصة" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "وحدات التعريف الخاصة" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "وحدات التعريف الخاصة" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "اسم العائله" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "اسم العائله" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "اسم العائله" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "الشارع" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "الشارع" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "الشارع" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "رقم الهاتف" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "رقم الهاتف" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "رقم الهاتف" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "اللقب" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "اللقب" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "اللقب" + +# English string: User ID +msgid "uid" +msgstr "الاسم التعريفي للمستخدم" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "الاسم التعريفي للمستخدم" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "الاسم التعريفي للمستخدم" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "كلمة السر" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "كلمة السر" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "كلمة السر" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "أسماء اخري" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "الاسم المستخدم " + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "الاسم المستخدم " + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "الاسم المستخدم " + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "الاسم المستخدم " + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "الاسم المستخدم " + +# English string: Display name +msgid "twitter.name" +msgstr "الاسم المستخدم " + +# English string: Display name +msgid "windowslive.displayName" +msgstr "الاسم المستخدم " + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "ألاسم بالمنظمة الام\\الموقع الام " + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "ألاسم بالمنظمة الام\\الموقع الام " + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "ألاسم بالمنظمة الام\\الموقع الام " + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "ألاسم بالمنظمة الام\\الموقع الام " + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "ألاسم بالمنظمة الام\\الموقع الام " + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "الاسم المستعار " + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "الاسم المستعار " + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "الاسم المستعار " + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "الاسم المستعار " + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "رقم الفاكس" + +# English string: Given name +msgid "facebook.first_name" +msgstr "الاسم" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "الاسم" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "الاسم" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "الاسم" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "الاسم" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "رقم الهاتف المنزلي" + +# English string: Locality +msgid "windowslive.Location" +msgstr "المحلية" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "URI أسم " + +# English string: Labeled URI +msgid "twitter.url" +msgstr "URI أسم " + +# English string: Mail +msgid "facebook.email" +msgstr "العنوان البريدي" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "العنوان البريدي" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "العنوان البريدي" + +# English string: Mail +msgid "windowslive_mail" +msgstr "العنوان البريدي" + +# English string: Mail +msgid "windowslive.mail" +msgstr "العنوان البريدي" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "رقم الهاتف السيار" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "اسم المنظمة" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "الرمز البريدي" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "الرمز البريدي" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "اللغة المفضلة" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "اللغة المفضلة" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "اللغة المفضلة" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "اللغة المفضلة" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "اللغة المفضلة" + +# English string: Surname +msgid "facebook.last_name" +msgstr "اسم العائله" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "اسم العائله" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "اسم العائله" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "اسم العائله" + +# English string: Surname +msgid "windowslive.surname" +msgstr "اسم العائله" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "رقم الهاتف" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "رقم الهاتف" + +# English string: Title +msgid "linkedin.headline" +msgstr "اللقب" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "اللقب" + +# English string: User ID +msgid "facebook.username" +msgstr "الاسم التعريفي للمستخدم" + +# English string: User ID +msgid "linkedin.id" +msgstr "الاسم التعريفي للمستخدم" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "الاسم التعريفي للمستخدم" + +# English string: User ID +msgid "windowslive_uid" +msgstr "الاسم التعريفي للمستخدم" + +# English string: User ID +msgid "windowslive.id" +msgstr "الاسم التعريفي للمستخدم" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/ar/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/ar/LC_MESSAGES/messages.po index 657205af2a090aac219937b8b833976263036510..45600f9e771282ce924bc25a15b9831093219113 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/ar/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/ar/LC_MESSAGES/messages.po @@ -51,12 +51,6 @@ msgstr "خطا بتحميل البيانات الوصفية/ الميتادات msgid "{admin:metaconv_title}" msgstr "محلل البيانات الوصفية/الميتاداتا" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "استحقاقات الخدمة" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "صورة (JPEG)" - msgid "{admin:cfg_check_noerrors}" msgstr "لا توجد أخطاء " @@ -126,9 +120,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "عد لصفحة إنزال SimpleSAMLphp" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "مقدم خدمة WS-الفدرالية البعيد" - msgid "{errors:error_header}" msgstr "خطا ب SimpleSAMLphp" @@ -145,18 +136,12 @@ msgstr "" "هناك خطا بترتيب SimpleSAMLphp الخاص بك. ان كنت المشرف علي الموقع، تأكد " "رجاءاً من ان ترتيب الميتاداتا صحيح" -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "الاسم المميز للمنظمة رب العمل" - msgid "{errors:title_BADREQUEST}" msgstr "استقبال طلب سيء" msgid "{status:sessionsize}" msgstr "حجم الجلسة ٪حجم٪" -msgid "{attributes:attribute_postaladdress}" -msgstr "العنوان البريدي للمنظمة" - msgid "{logout:title}" msgstr "خروج" @@ -178,30 +163,15 @@ msgstr "بالانتظار " msgid "{admin:cfg_check_header}" msgstr "مراجعة الترتيب" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "الوضع أو الوظيفة بالمنظمةالام\\الموقع الام" - -msgid "{attributes:attribute_sn}" -msgstr "اسم العائله" - msgid "{admin:debug_sending_message_send}" msgstr "سلم الرسالة" msgid "{status:logout}" msgstr "تسجيل الخروج" -msgid "{attributes:attribute_organisationname}" -msgstr "اسم المنظمةالام\\الموقع الام" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "رقم الهاتف" - msgid "{errors:descr_DISCOPARAMS}" msgstr "الخصائص المرفقة لا تطابق المواصفات" -msgid "{attributes:attribute_mail}" -msgstr "العنوان البريدي" - msgid "{errors:descr_CREATEREQUEST}" msgstr "حدث خطا عند محاولة تكوين طلب SAML" @@ -211,9 +181,6 @@ msgstr "حقل اختياري" msgid "{logout:return}" msgstr "عد للخدمة" -msgid "{attributes:attribute_displayname}" -msgstr "الاسم المستخدم " - msgid "{admin:metadata_xmlurl}" msgstr "" "يمكنك الحصول علي بياناتك الوصفية بملف xml ب URL متخصص بإدخال<a " @@ -227,9 +194,6 @@ msgstr "" "يمكنك إغلاق حالة التصحيح بملف ترتيب " "SimpleSAMLphp<tt>config/config.php</tt>" -msgid "{attributes:attribute_homepostaladdress}" -msgstr "العنوان البريدي" - msgid "{disco:select}" msgstr "اختار" @@ -254,9 +218,6 @@ msgstr "حصل مقدم الهوية هذا علي طلب توثيق من مقد msgid "{logout:logout_all_question}" msgstr "هل ترغب بتسجيل الخروج من جميع الخدمات أعلا؟" -msgid "{attributes:attribute_title}" -msgstr "اللقب" - msgid "{errors:title_NOACCESS}" msgstr "ممنوع الدخول" @@ -271,9 +232,6 @@ msgstr "انعدام التقوية" msgid "{errors:descr_NOSTATE}" msgstr "فقدان معلومات الحالة و لا يمكن اعادة البدء للطلب" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "الرقم التعريفي المعين من قبل السلطات العامة " - msgid "{login:password}" msgstr "كلمة السر" @@ -298,15 +256,9 @@ msgstr "خطا عند تسجيل الخروج" msgid "{admin:metaover_errorentry}" msgstr "خطا بهذا البيان الوصفي/ الميتاداتا" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "جهة العمل" - msgid "{errors:title_METADATANOTFOUND}" msgstr "الميتاداتا مفقودة" -msgid "{attributes:attribute_givenname}" -msgstr "الاسم" - msgid "{login:contact_info}" msgstr "بيانات الاتصال" @@ -348,30 +300,18 @@ msgstr "اختارملف الترتيب الذي ترغب بمراجعته" msgid "{errors:descr_UNKNOWNCERT}" msgstr "فشل التوثيق لان متصفحك ارسل شهاده غير معلومة" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr " عنوان الصفحة الالكترونية للمنظمة" - msgid "{logout:logging_out_from}" msgstr "تسجيل خروج من الخدمات أدناه " msgid "{logout:loggedoutfrom}" msgstr "لقد خرجت بنجاح من %SP%" -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "مقدم خدمة WS-الفدرالية المستضاف " - msgid "{errors:errorreport_text}" msgstr "تم إرسال التقرير عن الخطأ للمشرف" -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "تاريخ الميلاد" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "خطا عند محاولة تسجيل الخروج" -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "الاسم المستعار " - msgid "{logout:success}" msgstr "تسجيل خروج ناجح من جميع الخدمات أعلاه " @@ -381,12 +321,6 @@ msgstr "ملحوظات" msgid "{errors:descr_USERABORTED}" msgstr "تم إيقاف التوثيق بواسطة المستخدم" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "الوظيفة الاساسية" - -msgid "{attributes:attribute_postalcode}" -msgstr "الرمز البريدي" - msgid "{errors:descr_CASERROR}" msgstr "خطا عند محاولة الاتصال بمقدم خدمة CAS" @@ -399,9 +333,6 @@ msgstr "البيانات الوصفية ل SAML 2.0 SP" msgid "{admin:metaconv_converted}" msgstr "بيانات وصفية محولة" -msgid "{attributes:attribute_cn}" -msgstr "أسماء اخري" - msgid "{logout:completed}" msgstr "اكتمل" @@ -410,18 +341,9 @@ msgstr "" "لم تقم بتغيير كلمة السر الافتراضية بالترتيب (auth.adminpassword). رجاءاً " "قم بتحرير ملف الترتيب" -msgid "{attributes:attribute_ou}" -msgstr "الوحدة" - msgid "{general:service_provider}" msgstr "مقدم خدمات" -msgid "{attributes:attribute_homephone}" -msgstr "رقم الهاتف المنزلي" - -msgid "{attributes:attribute_dc}" -msgstr "مكونات النطاق" - msgid "{errors:descr_BADREQUEST}" msgstr "خطا بطلب هذه الصفحة. السبب %REASON%" @@ -440,23 +362,14 @@ msgstr "ادخل اسم المستخدم و كلمة السر" msgid "{errors:report_explain}" msgstr "اشرح ما فعلته عند حدوث الخطأ " -msgid "{attributes:attribute_manager}" -msgstr "المدير" - msgid "{errors:title_ACSPARAMS}" msgstr "لا توجد استجابة SAML" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "الكنية" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "لقد وصلت لنقطة تسجيل الخروج الموحد لكنك لم توفر طلب تسجيل خروج SAML او " "استجابة لطلب الخروج" -msgid "{attributes:attribute_street}" -msgstr "الشارع" - msgid "{login:organization}" msgstr "الجهة " @@ -490,9 +403,6 @@ msgstr "اختار جهتك الام" msgid "{admin:cfg_check_superfluous}" msgstr "خيارات فائضة بملف الترتيب" -msgid "{attributes:attribute_labeleduri}" -msgstr "URI أسم " - msgid "{errors:report_email}" msgstr "عنوان الأميل" @@ -505,9 +415,6 @@ msgstr "لم تقم بتحديد كلمة السر" msgid "{errors:descr_NORELAYSTATE}" msgstr "لم يوفر طالب الخدمة خصائص تقوية تقود للخطوة التالية" -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "الاسم الشرعي" - msgid "{status:header_diagnostics}" msgstr "تشخيص SimpleSAMLphp" @@ -516,9 +423,6 @@ msgstr "" "مرحباً بكم في صفحة حالة SimpleSAMLphp. يمكنك هنا مراقبة وقت انتهاء جلستك،" " فترة استمرارها، متي ستنتهي و جميع السمات المرتبطة بالجلسة" -msgid "{attributes:attribute_schachomeorganization}" -msgstr "اسم النطاق المخصص للمنظمةالام\\الموقع الام " - msgid "{errors:title_NOTFOUNDREASON}" msgstr "الصفحة غير موجودة" @@ -537,30 +441,18 @@ msgstr "لإلغاء نظرة علي تفاصيل احدي وحدات SAML, اض msgid "{errors:title_NOTVALIDCERT}" msgstr "شهادة غير صحيحة" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "الاسم المميز للوحدة بالمنظمة رب العمل" - msgid "{general:remember}" msgstr "تذكرألغت ذكر" msgid "{disco:selectidp}" msgstr "اختار موقع هويتك" -msgid "{attributes:attribute_postofficebox}" -msgstr "الصندوق البريدي" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "ألاسم بالمنظمة الام\\الموقع الام " - msgid "{login:help_desk_email}" msgstr "ارسل إيميل لصفحة المساعدة" msgid "{login:help_desk_link}" msgstr "صفحة المساعدة" -msgid "{attributes:attribute_uid}" -msgstr "الاسم التعريفي للمستخدم" - msgid "{errors:title_CASERROR}" msgstr "خطا CAS" @@ -581,12 +473,6 @@ msgstr "تذكر خياراتي" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "مقدم خدمة SAML 2.0 (المستضاف)" -msgid "{attributes:attribute_l}" -msgstr "المحلية" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "هوية الضمان" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "بصيغة SimpleSAMLphp- استخدم هذه الصيغة ان كنت تستخدم وحدة SimpleSAMLphp " @@ -631,9 +517,6 @@ msgstr "رسالة" msgid "{errors:title_UNKNOWNCERT}" msgstr "شهادة غير معلومة" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "رقم الفاكس" - msgid "{errors:title_LDAPERROR}" msgstr "خطا LDAP" @@ -651,15 +534,9 @@ msgstr "" " بالمشرف علي تسجيل الدخول لهذه الخدمة و قم بإرسال تقرير الخطأ أعلاه لهم " "أيضاً " -msgid "{attributes:attribute_mobile}" -msgstr "رقم الهاتف السيار" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "مقدم هوية Shib 1.3 المستضاف" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "اللغة المفضلة" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "لم تقدم شهادة صحيحة" @@ -672,15 +549,6 @@ msgstr "الحقول الاختيارية أدناه مفقودة" msgid "{logout:logout_only}" msgstr "لا من %SP% فقط" -msgid "{attributes:attribute_o}" -msgstr "اسم المنظمة" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "الاسم المميز للوحدة الأساسية بالمنظمة رب العمل" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "رقم الهوية المحلي" - msgid "{login:next}" msgstr "التالي" @@ -696,9 +564,6 @@ msgstr "الصفحة غير موجودة. السبب %REASON% و العنوان msgid "{errors:title_NOCERT}" msgstr "الشهادات مفقودة" -msgid "{attributes:attribute_userpassword}" -msgstr "كلمة السر" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "معلومات تسجيل الخروج مفقودة" @@ -713,30 +578,18 @@ msgstr "" "هذه هي بياناتك الوصفية المجهزة بواسطة SAMLphp. للتجهيز لفدرالية موثوق بها" " قم بإرسال هذه الوثيقة لشركاء موثوق بهم" -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "وحدات التعريف الخاصة" - -msgid "{status:header_wsfed}" -msgstr "استعراض مثال ل WS-Fed" - msgid "{admin:metadata_cert}" msgstr "الشهادات" msgid "{errors:descr_INVALIDCERT}" msgstr "فشل التوثيق لان متصفحك ارسل شهادات غير صحيحة او لا يمكن قراءتها " -msgid "{attributes:attribute_eduorglegalname}" -msgstr "الاسم القانوني للمنظمة" - msgid "{status:header_shib}" msgstr "استعراض Shibboleth" msgid "{admin:metaconv_parse}" msgstr "حلل" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "الرقم بالمنظمة" - msgid "Person's principal name at home organization" msgstr "ألاسم بالمنظمة الام\\الموقع الام " @@ -1058,7 +911,7 @@ msgstr "" "أيضاً " #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." +msgid "Your session is valid for %remaining% seconds from now." msgstr "ستستمر جلستك ل٪عدد ثواني٪ ثانية تبدأ الان" msgid "Domain component (DC)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/ca/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/ca/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..1bb59063a9992e9ec7288fc4e5b3082305ad1a47 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/ca/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ca\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Nom comú" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Nom comú" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Nom comú" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Component de domini (DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Component de domini (DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Component de domini (DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Nom a mostrar" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Nom a mostrar" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Nom a mostrar" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Pàgina inicial d'organització" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Pàgina inicial d'organització" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Pàgina inicial d'organització" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Nom legal de l'organització" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Nom legal de l'organització" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Nom legal de l'organització" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Afiliació" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Afiliació" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Afiliació" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Perfil d'assegurament de la identitat" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Perfil d'assegurament de la identitat" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Perfil d'assegurament de la identitat" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Dret referent al servei" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Dret referent al servei" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Dret referent al servei" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Sobrenom" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Sobrenom" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Sobrenom" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Nom distingit (DN) de l'organització principal de la persona" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Nom distingit (DN) de l'organització principal de la persona" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Nom distingit (DN) de l'organització principal de la persona" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Nom distingit (DN) de la unitat organitzativa de la persona" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Nom distingit (DN) de la unitat organitzativa de la persona" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Nom distingit (DN) de la unitat organitzativa de la persona" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Afiliació primària" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Afiliació primària" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Afiliació primària" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Nom distingit (DN) de la unitat organitzativa principal de la persona" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Nom distingit (DN) de la unitat organitzativa principal de la persona" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Nom distingit (DN) de la unitat organitzativa principal de la persona" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "El nom principal de la persona a l'organització principal" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "El nom principal de la persona a l'organització principal" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "El nom principal de la persona a l'organització principal" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Afiliació a l’organització principal" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Afiliació a l’organització principal" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Afiliació a l’organització principal" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Identificació anònima persistent" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Identificació anònima persistent" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Identificació anònima persistent" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "Identificació anònima persistent i no reasignable de la persona a l'organització principal" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "Identificació anònima persistent i no reasignable de la persona a l'organització principal" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "Identificació anònima persistent i no reasignable de la persona a l'organització principal" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Número de fax" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Número de fax" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Número de fax" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Nom" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Nom" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Nom" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Telèfon de casa" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Telèfon de casa" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Telèfon de casa" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Adreça postal de casa" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Adreça postal de casa" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Adreça postal de casa" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "Foto JPEG" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "Foto JPEG" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "Foto JPEG" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Localitat" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Localitat" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Localitat" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "URI etiquetat" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "URI etiquetat" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "URI etiquetat" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "Correu electrònic" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "Correu electrònic" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "Correu electrònic" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Gestor" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Gestor" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Gestor" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Mòbil" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Mòbil" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Mòbil" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Número d’organització" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Número d’organització" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Número d’organització" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Data de naixement" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Data de naixement" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Data de naixement" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Número d'identitat local" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Número d'identitat local" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Número d'identitat local" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Número d’identitat assignat per autoritats públiques" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Número d’identitat assignat per autoritats públiques" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Número d’identitat assignat per autoritats públiques" + +# English string: Organization name +msgid "o" +msgstr "Nom de l'organització" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Nom de l'organització" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Nom de l'organització" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Unitat organitzativa" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Unitat organitzativa" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Unitat organitzativa" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "Identificació aònima específica del servei a l'organització principal" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "Identificació aònima específica del servei a l'organització principal" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Apartat de correus" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Apartat de correus" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Apartat de correus" + +# English string: Postal address +msgid "postalAddress" +msgstr "Adreça postal" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Adreça postal" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Adreça postal" + +# English string: Postal code +msgid "postalCode" +msgstr "Codi Postal" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Codi Postal" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Codi Postal" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Idioma preferit" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Idioma preferit" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Idioma preferit" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Nom de domini de l’organització principal" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Nom de domini de l’organització principal" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Nom de domini de l’organització principal" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Nom de domini de l’organització principal" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Elements d'informació privats" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Elements d'informació privats" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Elements d'informació privats" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Elements d'informació privats" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Cognom" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Cognom" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Cognom" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Carrer" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Carrer" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Carrer" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "Identificació pseudònima en l'organització principal" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "Identificació pseudònima en l'organització principal" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Número de telèfon" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Número de telèfon" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Número de telèfon" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Títol" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Títol" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Títol" + +# English string: User ID +msgid "uid" +msgstr "Identificador d'usuari" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Identificador d'usuari" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Identificador d'usuari" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Hash de la contrasenya de l'usuari" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Hash de la contrasenya de l'usuari" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Hash de la contrasenya de l'usuari" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Nom comú" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Nom a mostrar" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Nom a mostrar" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Nom a mostrar" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Nom a mostrar" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Nom a mostrar" + +# English string: Display name +msgid "twitter.name" +msgstr "Nom a mostrar" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Nom a mostrar" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Identificador únic de la persona a la seva organització d'origen" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Identificador únic de la persona a la seva organització d'origen" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Identificador únic de la persona a la seva organització d'origen" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Identificador únic de la persona a la seva organització d'origen" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Identificador únic de la persona a la seva organització d'origen" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Identificació anònima persistent" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Identificació anònima persistent" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Identificació anònima persistent" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Identificació anònima persistent" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Número de fax" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Nom" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Nom" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Nom" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Nom" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Nom" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Telèfon de domicili" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Localitat" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "URI etiquetat" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "URI etiquetat" + +# English string: Mail +msgid "facebook.email" +msgstr "Correu electrònic" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "Correu electrònic" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "Correu electrònic" + +# English string: Mail +msgid "windowslive_mail" +msgstr "Correu electrònic" + +# English string: Mail +msgid "windowslive.mail" +msgstr "Correu electrònic" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Mòbil" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Nom de l'organització" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Codi Postal" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Codi Postal" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Idioma preferit" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Idioma preferit" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Idioma preferit" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Idioma preferit" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Idioma preferit" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Cognom" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Cognom" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Cognom" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Cognom" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Cognom" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Número de telèfon" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Número de telèfon" + +# English string: Title +msgid "linkedin.headline" +msgstr "Títol" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Títol" + +# English string: User ID +msgid "facebook.username" +msgstr "Identificador d'usuari" + +# English string: User ID +msgid "linkedin.id" +msgstr "Identificador d'usuari" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Identificador d'usuari" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Identificador d'usuari" + +# English string: User ID +msgid "windowslive.id" +msgstr "Identificador d'usuari" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/ca/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/ca/LC_MESSAGES/messages.po index 94292d704a4204ea240f9d960faccf46c1295b03..ee71ca71933cf056460b56f036ca1101cfe96bef 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/ca/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/ca/LC_MESSAGES/messages.po @@ -15,148 +15,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.3.4\n" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Dret relatiu al servei" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "Fotografia en JPEG" - -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Nom distingit (DN) de l'organització d'origen" - -msgid "{attributes:attribute_postaladdress}" -msgstr "Adreça postal" - -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Afiliació a l'organització d'origen" - -msgid "{attributes:attribute_sn}" -msgstr "Cognoms" - -msgid "{attributes:attribute_organisationname}" -msgstr "Nom de l'organització" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Número de telèfon" - -msgid "{attributes:attribute_mail}" -msgstr "Correu electrònic" - -msgid "{attributes:attribute_displayname}" -msgstr "Nom de visualització" - -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Adreça del domicili" - -msgid "{attributes:attribute_title}" -msgstr "Tractament" - -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Número de la Seguretat Social" - -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Afiliació" - -msgid "{attributes:attribute_givenname}" -msgstr "Nom" - -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Pàgina inicial de l'organització" - -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Data de naixement" - -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Identificador pseudònim persistent" - -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Afiliació primària" - -msgid "{attributes:attribute_postalcode}" -msgstr "Codi postal" - -msgid "{attributes:attribute_cn}" -msgstr "Nom comú (CN)" - -msgid "{attributes:attribute_ou}" -msgstr "Unitat organitzativa" - -msgid "{attributes:attribute_homephone}" -msgstr "Telèfon del domicili" - -msgid "{attributes:attribute_dc}" -msgstr "Component de domini (DC)" - -msgid "{attributes:attribute_manager}" -msgstr "Gestor" - -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Àlies" - -msgid "{attributes:attribute_street}" -msgstr "Carrer" - -msgid "{attributes:attribute_labeleduri}" -msgstr "URI etiquetat" - -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Nom legal" - -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Identificador únic de l'organització d'origen" - -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "" -"Nom distingit (DN) de la Unitat Organitzativa (OU) de l'organització " -"d'origen" - -msgid "{attributes:attribute_postofficebox}" -msgstr "Apartat de correus" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Identificador únic de la persona a la seva organització d'origen" - -msgid "{attributes:attribute_uid}" -msgstr "Identificador d'usuari" - -msgid "{attributes:attribute_l}" -msgstr "Localitat" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Identificador del perfil de garantia" - -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Número de fax" - -msgid "{attributes:attribute_mobile}" -msgstr "Telèfon mòbil" - -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Idioma preferit" - -msgid "{attributes:attribute_o}" -msgstr "Nom de l'organització" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "" -"Nom distingit (DN) de l'entrada del directori que representa " -"l'identificador" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Número d'identificació local" - -msgid "{attributes:attribute_userpassword}" -msgstr "Clau o contrasenya i mètode d'encriptació usat" - -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Elements d'informació privada" - -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Nom legal de l'organització" - -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Número de l'organització" - msgid "Person's principal name at home organization" msgstr "Identificador únic de la persona a la seva organització d'origen" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/cs/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/cs/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..41457723290fe74bddc0bd53a1064c049faa40d1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/cs/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: cs\n" +"Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ((n >= 2 && n <= 4) ? 1 : 2);\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Celé jméno (CN)" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Celé jméno (CN)" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Celé jméno (CN)" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Doména (DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Doména (DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Doména (DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Jméno k zobrazení" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Jméno k zobrazení" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Jméno k zobrazení" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "URL organizace" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "URL organizace" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "URL organizace" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Plné jméno organizace" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Plné jméno organizace" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Plné jméno organizace" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Vztah k organizaci" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Vztah k organizaci" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Vztah k organizaci" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Poskytovatel identifikačního profilu" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Poskytovatel identifikačního profilu" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Poskytovatel identifikačního profilu" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Právo ke službě" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Právo ke službě" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Právo ke službě" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Přezdívka" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Přezdívka" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Přezdívka" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Uživatelské jméno přidělené organizací" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Uživatelské jméno přidělené organizací" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Uživatelské jméno přidělené organizací" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Uživatelské jméno přidělené organizační jednotkou" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Uživatelské jméno přidělené organizační jednotkou" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Uživatelské jméno přidělené organizační jednotkou" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Hlavní příslušnost" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Hlavní příslušnost" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Hlavní příslušnost" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Jméno hlavní organizační jednotky" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Jméno hlavní organizační jednotky" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Jméno hlavní organizační jednotky" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Jméno nadřízeného" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Jméno nadřízeného" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Jméno nadřízeného" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Vztah k domovksé organizaci" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Vztah k domovksé organizaci" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Vztah k domovksé organizaci" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Perzistentí pseudoanonymní ID" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Perzistentí pseudoanonymní ID" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Perzistentí pseudoanonymní ID" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Fax" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Fax" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Fax" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Křestní jméno" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Křestní jméno" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Křestní jméno" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Telefon domů" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Telefon domů" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Telefon domů" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Adresa domů" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Adresa domů" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Adresa domů" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "Foto JPEG" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "Foto JPEG" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "Foto JPEG" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Lokalita" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Lokalita" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Lokalita" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "URI" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "URI" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "URI" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "Email" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "Email" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "Email" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Manažer" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Manažer" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Manažer" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Mobil" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Mobil" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Mobil" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Čislo organizace" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Čislo organizace" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Čislo organizace" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Datum narozeni" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Datum narozeni" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Datum narozeni" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Lokální identifikační kód" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Lokální identifikační kód" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Lokální identifikační kód" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Identifikační kód přidělený veřejnou autoritou" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Identifikační kód přidělený veřejnou autoritou" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Identifikační kód přidělený veřejnou autoritou" + +# English string: Organization name +msgid "o" +msgstr "Jméno organizace" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Jméno organizace" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Jméno organizace" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Organizační jednotka" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Organizační jednotka" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Organizační jednotka" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Postbox" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Postbox" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Postbox" + +# English string: Postal address +msgid "postalAddress" +msgstr "Poštovní adresa" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Poštovní adresa" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Poštovní adresa" + +# English string: Postal code +msgid "postalCode" +msgstr "Poštovní kód PSČ" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Poštovní kód PSČ" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Poštovní kód PSČ" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Preferovaný jazyk" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Preferovaný jazyk" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Preferovaný jazyk" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Jméno organizace" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Jméno organizace" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Jméno organizace" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Jméno organizace" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Privátní informační elementy" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Privátní informační elementy" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Privátní informační elementy" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Privátní informační elementy" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Příjmení" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Příjmení" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Příjmení" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Ulice" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Ulice" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Ulice" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Telefon" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Telefon" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Telefon" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Nadpis" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Nadpis" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Nadpis" + +# English string: User ID +msgid "uid" +msgstr "Identifikátor (UID)" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Identifikátor (UID)" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Identifikátor (UID)" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Uživatelské heslo (hash)" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Uživatelské heslo (hash)" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Uživatelské heslo (hash)" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Celé jméno (CN)" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Jméno k zobrazení" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Jméno k zobrazení" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Jméno k zobrazení" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Jméno k zobrazení" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Jméno k zobrazení" + +# English string: Display name +msgid "twitter.name" +msgstr "Jméno k zobrazení" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Jméno k zobrazení" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Jméno nadřízeného" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Jméno nadřízeného" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Jméno nadřízeného" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Jméno nadřízeného" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Jméno nadřízeného" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Perzistentí pseudoanonymní ID" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Perzistentí pseudoanonymní ID" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Perzistentí pseudoanonymní ID" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Perzistentí pseudoanonymní ID" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Fax" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Křestní jméno" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Křestní jméno" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Křestní jméno" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Křestní jméno" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Křestní jméno" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Telefon domů" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Lokalita" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "URI" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "URI" + +# English string: Mail +msgid "facebook.email" +msgstr "Email" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "Email" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "Email" + +# English string: Mail +msgid "windowslive_mail" +msgstr "Email" + +# English string: Mail +msgid "windowslive.mail" +msgstr "Email" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Mobil" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Jméno organizace" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Poštovní kód PSČ" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Poštovní kód PSČ" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Preferovaný jazyk" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Preferovaný jazyk" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Preferovaný jazyk" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Preferovaný jazyk" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Preferovaný jazyk" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Příjmení" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Příjmení" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Příjmení" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Příjmení" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Příjmení" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Telefon" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Telefon" + +# English string: Title +msgid "linkedin.headline" +msgstr "Nadpis" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Nadpis" + +# English string: User ID +msgid "facebook.username" +msgstr "Identifikátor (UID)" + +# English string: User ID +msgid "linkedin.id" +msgstr "Identifikátor (UID)" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Identifikátor (UID)" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Identifikátor (UID)" + +# English string: User ID +msgid "windowslive.id" +msgstr "Identifikátor (UID)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/cs/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/cs/LC_MESSAGES/messages.po index 1f58c27e84d64864549361d48187eff2ebcc327e..ca82ad8b3489eafcba5f14c378726f6350bdd1ec 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/cs/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/cs/LC_MESSAGES/messages.po @@ -25,7 +25,7 @@ msgstr "" "zkontrolujte login a zkuste se přihlásit znovu." msgid "{logout:failed}" -msgstr "Odhlašení selhalo" +msgstr "Odhlášení selhalo" msgid "{status:attributes_header}" msgstr "Vaše atributy" @@ -46,17 +46,11 @@ msgid "{login:username}" msgstr "Uživatel" msgid "{errors:title_METADATA}" -msgstr "Chyba nahravání metadat" +msgstr "Chyba nahrávání metadat" msgid "{admin:metaconv_title}" msgstr "Metadata parser" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Právo ke službě" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "Foto JPEG" - msgid "{admin:cfg_check_noerrors}" msgstr "Nenalezeny žádné chyby" @@ -64,8 +58,8 @@ msgid "{errors:descr_LOGOUTINFOLOST}" msgstr "" "Informace o odhlašovací operaci byla ztracena. Můžete se vrátit do " "aplikace, ze které jste se odhlašovali a zkusit to znova. Tato chyba byla" -" způsobena vypršením odhlašovacíh informací. Ty jsou uloženy omezený čas " -"(jednotky hodin). To by mělo stači na normální odhlašení a tato chyba " +" způsobena vypršením odhlašovacích informací. Ty jsou uloženy po omezený čas " +"(jednotky hodin). To by mělo stačit na normální odhlášení a tato chyba " "může ukazovat na chyby v konfiguraci. Pokud problém přetrvává, " "kontaktujte administrátora." @@ -77,15 +71,15 @@ msgstr "Zpátky na seznam souborů" msgid "{errors:report_trackid}" msgstr "" -"Pokud budete reportovat tuto chybu, prosím zašlete také toto ID, toto " -"umožní najít vaší session v logu, který je dostupný systmovým " +"Pokud budete reportovat tuto chybu, prosím zašlete také toto ID, které " +"umožní najít vaši session v logu, který je dostupný systémovým " "administrátorem: " msgid "{login:change_home_org_title}" -msgstr "Změnte svou organizaci" +msgstr "Změňte svou organizaci" msgid "{errors:descr_METADATANOTFOUND}" -msgstr "Nebyly nalezeny metadata pro %ENTITYID%" +msgstr "Nebyla nalezena metadata pro %ENTITYID%" msgid "{admin:metadata_metadata}" msgstr "Metadata" @@ -101,7 +95,7 @@ msgstr "Oznámit chyby" msgid "{login:change_home_org_text}" msgstr "" "Máte nastavenu <b>%HOMEORG%</b> jako domovskou organizaci. Pokud je to " -"špatně zvolte jinou." +"špatně, zvolte jinou." msgid "{errors:title_PROCESSAUTHNREQUEST}" msgstr "Chyba provádění žádosti poskytovatele služby" @@ -113,7 +107,7 @@ msgid "{errors:debuginfo_header}" msgstr "Ladicí informace" msgid "{admin:debug_sending_message_msg_text}" -msgstr "Pokud jste v debug módu, můžete videt obsah zprávy, kterou posíláte:" +msgstr "Pokud jste v debug módu, můžete vidět obsah zprávy, kterou posíláte:" msgid "{errors:descr_RESPONSESTATUSNOSUCCESS}" msgstr "Poskytovatel identity odpověděl chybou. (Stavový kód v SAML nebyl úspěšný)" @@ -123,20 +117,17 @@ msgstr "Shib 1.3 IdP Metadata" msgid "{login:help_text}" msgstr "" -"Problém! Bez jména a hesla se nemůžete identifikovat. Existuje někdo kdo " -"vám pomůže. Konzultujte helpdesk vaší organizace." +"Bez jména a hesla se nemůžete identifikovat. Zkuste " +"kontaktovat helpdesk své organizace." msgid "{logout:default_link_text}" msgstr "Zpátky na SimpleSAMLphp instalační stránku" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "WS-Federation Identity Provider (Remote - vzdálený)" - msgid "{errors:error_header}" msgstr "SimpleSAMLphp chyba" msgid "{login:help_header}" -msgstr "Chci pomoci. Zapomněl jsem heslo." +msgstr "Zapomněl jsem heslo." msgid "{errors:descr_LDAPERROR}" msgstr "" @@ -145,11 +136,8 @@ msgstr "" msgid "{errors:descr_METADATA}" msgstr "" -"Je zde chyba v konfiguraci SimpleSAMLphp. Pokud jsi administrátorem " -"služby zkontroluj metadata." - -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Uživatelské jméno přidělené organizací" +"Je zde chyba v konfiguraci SimpleSAMLphp. Pokud jste administrátorem " +"služby, zkontrolujte metadata." msgid "{errors:title_BADREQUEST}" msgstr "Zaslán špatný požadavek" @@ -157,9 +145,6 @@ msgstr "Zaslán špatný požadavek" msgid "{status:sessionsize}" msgstr "Velikost sezeni: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Poštovní adresa" - msgid "{logout:title}" msgstr "Odhlášen" @@ -181,30 +166,15 @@ msgstr "Čekám" msgid "{admin:cfg_check_header}" msgstr "Verifikace konfigurace" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Vztah k domovksé organizaci" - -msgid "{attributes:attribute_sn}" -msgstr "Příjmení" - msgid "{admin:debug_sending_message_send}" msgstr "Poslat zprávu" msgid "{status:logout}" msgstr "Odhlášení" -msgid "{attributes:attribute_organisationname}" -msgstr "Jméno organizace" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Telefon" - msgid "{errors:descr_DISCOPARAMS}" msgstr "Parametr zaslaný vyhledávací službě neodpovídá specifikaci." -msgid "{attributes:attribute_mail}" -msgstr "Email" - msgid "{errors:descr_CREATEREQUEST}" msgstr "Chyba vznikla při vytváření SAML požadavku." @@ -214,9 +184,6 @@ msgstr "Volitelná pole" msgid "{logout:return}" msgstr "Zpátky na službu" -msgid "{attributes:attribute_displayname}" -msgstr "Jméno k zobrazení" - msgid "{admin:metadata_xmlurl}" msgstr "" "<a href=\"%METAURL%\">Získejte metadata v XML formátu na dedikované " @@ -227,17 +194,14 @@ msgstr "Ano, všechny služby" msgid "{admin:debug_disable_debug_mode}" msgstr "" -"Můžete vypnout debug mód v globalní konfiguraci SimpleSAMLphp " +"Můžete vypnout debug mód v globální konfiguraci SimpleSAMLphp " "<tt>config/config.php</tt>." -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Adresa domů" - msgid "{disco:select}" -msgstr "Zvol" +msgstr "Zvolte" msgid "{logout:also_from}" -msgstr "Jste ješte přihlášen na tyto služby:" +msgstr "Jste ještě přihlášen(a) na tyto služby:" msgid "{login:login_button}" msgstr "Přihlásit" @@ -246,7 +210,7 @@ msgid "{logout:progress}" msgstr "Odhlašuji..." msgid "{login:error_wrongpassword}" -msgstr "Nekorektní jmeno nebo heslo." +msgstr "Nesprávné jméno nebo heslo." msgid "{admin:metaover_group_metadata.shib13-sp-remote}" msgstr "Shib 1.3 Service Provider (Remote - vzdálený)" @@ -254,20 +218,17 @@ msgstr "Shib 1.3 Service Provider (Remote - vzdálený)" msgid "{errors:descr_PROCESSAUTHNREQUEST}" msgstr "" "Tento poskytovatel identity přijal požadavek od poskytovatele služby, ale" -" při jeho provádení vznikla chyba." +" při jeho provádění vznikla chyba." msgid "{logout:logout_all_question}" msgstr "Chcete se odhlásit ze všech těchto služeb?" -msgid "{attributes:attribute_title}" -msgstr "Nadpis" - msgid "{errors:title_NOACCESS}" msgstr "Nemáte přístup" msgid "{login:error_nopassword}" msgstr "" -"Odeslal jste data do přihlašovací stranky, ale z nějakého důvodu nebylo " +"Odeslal jste data do přihlašovací stránky, ale z nějakého důvodu nebylo " "odesláno heslo. Prosím zkuste to znovu." msgid "{errors:title_NORELAYSTATE}" @@ -276,9 +237,6 @@ msgstr "Nenalezen RelayState." msgid "{errors:descr_NOSTATE}" msgstr "Stavová informace " -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Identifikační kód přidělený veřejnou autoritou" - msgid "{login:password}" msgstr "Heslo" @@ -286,10 +244,10 @@ msgid "{errors:debuginfo_text}" msgstr "Následující ladicí informace může zajímat administrátora (helpdesk)" msgid "{admin:cfg_check_missing}" -msgstr "Chybejici polozky v konfiguracnim souboru" +msgstr "Chybějící položky v konfiguračním souboru" msgid "{errors:descr_UNHANDLEDEXCEPTION}" -msgstr "Neočekávaná vyjímka vznikla." +msgstr "Vznikla neočekávaná výjimka." msgid "{general:yes}" msgstr "Ano" @@ -303,23 +261,14 @@ msgstr "Chyba zpracování odhlašovacího požadavku" msgid "{admin:metaover_errorentry}" msgstr "Chyba v této položce metadat" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Vztah k organizaci" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Metadata nenalezena" -msgid "{attributes:attribute_givenname}" -msgstr "Křestní jméno" - msgid "{login:contact_info}" msgstr "Kontaktní informace" msgid "{errors:title_UNHANDLEDEXCEPTION}" -msgstr "Neočekávaná vyjímka" - -msgid "{status:validfor}" -msgstr "Vaše sezení je platné %SECONDS% sekund od teď." +msgstr "Neočekávaná výjimka" msgid "{status:header_saml20_sp}" msgstr "SAML 2.0 SP Demo" @@ -332,11 +281,11 @@ msgstr "Přihlášení odmítnuto" msgid "{logout:incapablesps}" msgstr "" -"Jedna, nebo více služeb, do kterých jste přihlašen, nepodporuje " +"Jedna nebo více služeb, do kterých jste přihlášen(a), nepodporuje " "odhlašení. Pokud se chcete odhlásit, musíte ukončit váš webový prohlížeč." msgid "{admin:metadata_xmlformat}" -msgstr "Ve SAML 2.0 metadata xml formátu:" +msgstr "V SAML 2.0 metadata XML formátu:" msgid "{admin:metaover_group_metadata.saml20-idp-remote}" msgstr "SAML 2.0 Identity Provider (Remote - vzdálený)" @@ -353,48 +302,30 @@ msgstr "Vyber konfiguračního souboru k verifikaci:" msgid "{errors:descr_UNKNOWNCERT}" msgstr "Přihlášení neproběhlo: certifikát který odeslal Váš prohlížeč je neznámý" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "URL organizace" - msgid "{logout:logging_out_from}" msgstr "Odhlášení z následujících služeb:" msgid "{logout:loggedoutfrom}" msgstr "" -"Zahájil jste <strong>globální odhlášení</strong> z služby " +"Zahájil jste <strong>globální odhlášení</strong> ze služby " "<strong>%REQUESTERNAME%</strong>. Globální odhlášení znamená, že budete " -"odhlášen z všech následující služeb." - -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "WS-Federation Service Provider (Hosted - lokální)" +"odhlášen ze všech následující služeb." msgid "{errors:errorreport_text}" -msgstr "Chybový report byl zaslán administrátorům." - -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Datum narozeni" +msgstr "Zpráva o chybě byla zaslána administrátorům." msgid "{errors:descr_LOGOUTREQUEST}" msgstr "Při procesu odhlášení vznikla chyba." -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Perzistentí pseudoanonymní ID" - msgid "{logout:success}" msgstr "Úspěšně jste se odhlásili z následujících služeb." msgid "{admin:cfg_check_notices}" -msgstr "Poznamky" +msgstr "Poznámky" msgid "{errors:descr_USERABORTED}" msgstr "Přihlášení bylo přerušeno uživatelem" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Hlavní příslušnost" - -msgid "{attributes:attribute_postalcode}" -msgstr "Poštovní kód PSČ" - msgid "{errors:descr_CASERROR}" msgstr "Chyba při komunikaci s CAS serverem." @@ -407,9 +338,6 @@ msgstr "SAML 2.0 SP Metadata" msgid "{admin:metaconv_converted}" msgstr "Konvertovaná metadata" -msgid "{attributes:attribute_cn}" -msgstr "Celé jméno (CN)" - msgid "{logout:completed}" msgstr "Dokončeno" @@ -418,20 +346,11 @@ msgstr "" "Heslo v konfiguraci (auth.adminpassword) není nastaveno. Prosím nastavte " "ho." -msgid "{attributes:attribute_ou}" -msgstr "Organizační jednotka" - msgid "{general:service_provider}" msgstr "Poskytovatel služby" -msgid "{attributes:attribute_homephone}" -msgstr "Telefon domů" - -msgid "{attributes:attribute_dc}" -msgstr "Doména (DC)" - msgid "{errors:descr_BADREQUEST}" -msgstr "Toho je chyba požadavku pro tuto stránku. Důvod je: %REASON%" +msgstr "Chyba požadavku pro tuto stránku. Důvod je: %REASON%" msgid "{logout:no}" msgstr "Ne" @@ -446,24 +365,15 @@ msgid "{login:user_pass_header}" msgstr "Vložte své jméno a heslo" msgid "{errors:report_explain}" -msgstr "Vysvětlete jak došlo k této chybě ..." - -msgid "{attributes:attribute_manager}" -msgstr "Manažer" +msgstr "Vysvětlete, jak došlo k této chybě ..." msgid "{errors:title_ACSPARAMS}" -msgstr "Žádná SAML odpověď nebyla zaslána" - -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Přezdívka" +msgstr "Nebyla zaslána SAML odpověď" msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Přistupujete k SingleLogoutService rozhraní, ale nezadáváte SAML " -"LogoutRequest, nebo LogoutResponse." - -msgid "{attributes:attribute_street}" -msgstr "Ulice" +"LogoutRequest ani LogoutResponse." msgid "{login:organization}" msgstr "Organizace" @@ -478,11 +388,11 @@ msgid "{errors:descr_NOACCESS}" msgstr "Tento koncový bod není povolen. Zkontrolujte konfiguraci (zapněte volby)." msgid "{errors:title_SLOSERVICEPARAMS}" -msgstr "Žádná SAML zpráva nebyla zaslána" +msgstr "Nebyla zaslána SAML zpráva" msgid "{errors:descr_ACSPARAMS}" msgstr "" -"Přistupujete k Assertion Consumer Service rozhraní, ale neposílálate SAML" +"Přistupujete k Assertion Consumer Service rozhraní, ale neposíláte SAML" " Authentication Response." msgid "{admin:debug_sending_message_text_link}" @@ -492,7 +402,7 @@ msgid "{errors:descr_AUTHSOURCEERROR}" msgstr "Autentizační chyba ve zdroji %AUTHSOURCE%. Důvodem bylo: %REASON%" msgid "{status:some_error_occurred}" -msgstr "Nalezena chyba" +msgstr "Chyba" msgid "{login:change_home_org_button}" msgstr "Zvolte domovskou organizaci" @@ -500,9 +410,6 @@ msgstr "Zvolte domovskou organizaci" msgid "{admin:cfg_check_superfluous}" msgstr "Nadbytečné položky v konfiguračním souboru" -msgid "{attributes:attribute_labeleduri}" -msgstr "URI" - msgid "{errors:report_email}" msgstr "Email" @@ -513,10 +420,7 @@ msgid "{errors:title_NOTSET}" msgstr "Heslo nebylo zadáno." msgid "{errors:descr_NORELAYSTATE}" -msgstr "Původce této žádosti nezadal parametr RelayState, který určuje kam dál." - -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Právní jméno" +msgstr "Původce této žádosti nezadal parametr RelayState, který určuje kam pokračovat." msgid "{status:header_diagnostics}" msgstr "SimpleSAMLphp diagnostika" @@ -526,9 +430,6 @@ msgstr "" "Vítejte na informační stránce. Zde uvidíte, pokud vypršelo vaše sezení, " "jak dlouho jste pryč a všechny atributy připojené k vašemu sezení." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Jméno organizace" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Stránka nenalezena" @@ -547,30 +448,18 @@ msgstr "Pro zobrazení detailu SAML entity, klikni na hlavičku entity" msgid "{errors:title_NOTVALIDCERT}" msgstr "Špatný certifikát" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Uživatelské jméno přidělené organizační jednotkou" - msgid "{general:remember}" msgstr "Zapamatuj" msgid "{disco:selectidp}" msgstr "Zvol svého poskytovatele identity (IdP)" -msgid "{attributes:attribute_postofficebox}" -msgstr "Postbox" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Jméno nadřízeného" - msgid "{login:help_desk_email}" msgstr "Email helpdesku zaslán." msgid "{login:help_desk_link}" msgstr "Help desk" -msgid "{attributes:attribute_uid}" -msgstr "Identifikátor (UID)" - msgid "{errors:title_CASERROR}" msgstr "CAS chyba" @@ -589,15 +478,9 @@ msgstr "Zapamatuj moji volbu" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "SAML 2.0 Service Provider (Hosted - lokální)" -msgid "{attributes:attribute_l}" -msgstr "Lokalita" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Poskytovatel identifikačního profilu" - msgid "{admin:metadata_simplesamlformat}" msgstr "" -"Ve SimpleSAMLphp souborovém formátu (flat-file) - použijte je, pokud " +"V SimpleSAMLphp souborovém formátu (flat-file) - použijte, pokud " "potřebujete používat SimpleSAMLphp na druhé straně:" msgid "{disco:login_at}" @@ -607,7 +490,7 @@ msgid "{errors:title_GENERATEAUTHNRESPONSE}" msgstr "Nelze vytvořit odpověď" msgid "{errors:errorreport_header}" -msgstr "Chybový report zaslán" +msgstr "Zpráva o chybě odeslána" msgid "{errors:title_CREATEREQUEST}" msgstr "Chyba při vytváření požadavku" @@ -616,10 +499,10 @@ msgid "{admin:metaover_header}" msgstr "Přehled metadat" msgid "{errors:report_submit}" -msgstr "Zaslat chybový report" +msgstr "Odeslat zprávu o chybě" msgid "{errors:title_INVALIDCERT}" -msgstr "Špatný certifikát" +msgstr "Nesprávný certifikát" msgid "{errors:title_NOTFOUND}" msgstr "Stránka nenalezena." @@ -639,9 +522,6 @@ msgstr "Zpráva" msgid "{errors:title_UNKNOWNCERT}" msgstr "Neznámý certifikát" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Fax" - msgid "{errors:title_LDAPERROR}" msgstr "LDAP chyba" @@ -657,18 +537,12 @@ msgstr "Stránka nenalezena. URL je: %URL%" msgid "{errors:howto_text}" msgstr "" "Tato chyba pravděpodobně vznikla neočekávanou událostí, nebo chybou v " -"konfiguraci. Kontaktujte administratora této přihlašovací služby a " +"konfiguraci. Kontaktujte administrátora této přihlašovací služby a " "zašlete mu tuto zprávu." -msgid "{attributes:attribute_mobile}" -msgstr "Mobil" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Shib 1.3 Identity Provider (Hosted - lokální)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Preferovaný jazyk" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Nepředložil jste validní certifikát." @@ -676,39 +550,27 @@ msgid "{admin:debug_sending_message_text_button}" msgstr "Můžete poslat zprávu. Požijte tlačítko k pokračování." msgid "{admin:metaover_optional_not_found}" -msgstr "Nasledující volitelná pole nenalezena" +msgstr "Následující volitelná pole nenalezena" msgid "{logout:logout_only}" msgstr "Ne, jen %SP%" -msgid "{attributes:attribute_o}" -msgstr "Jméno organizace" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Jméno hlavní organizační jednotky" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Lokální identifikační kód" - msgid "{login:next}" msgstr "Další" msgid "{errors:descr_GENERATEAUTHNRESPONSE}" msgstr "" -"Při vytváření přihlašovací odpovědi tímto poskytovatelem identity, " +"Při vytváření přihlašovací odpovědi tímto poskytovatelem identity " "vznikla chyba." msgid "{disco:selectidp_full}" -msgstr "Prosím zvolte sveého poskytovatele identity, který vám dovolí se přihlásit" +msgstr "Prosím zvolte svého poskytovatele identity, který vám dovolí se přihlásit" msgid "{errors:descr_NOTFOUNDREASON}" msgstr "Stránka nenalezena. Důvod je: %REASON% URL je: %URL%" msgid "{errors:title_NOCERT}" -msgstr "Chybí certiifikát" - -msgid "{attributes:attribute_userpassword}" -msgstr "Uživatelské heslo (hash)" +msgstr "Chybí certifikát" msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Odhlašovací informace ztracena" @@ -724,34 +586,22 @@ msgstr "" "Zde jsou metadata, která pro vás SimpleSAMLphp generuje. Můžete zaslat " "tento dokument svým důvěryhodným partnerům a založit tak federaci." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Privátní informační elementy" - -msgid "{status:header_wsfed}" -msgstr "WS-Fed SP Demo" - msgid "{admin:metadata_cert}" msgstr "Certifikáty" msgid "{errors:descr_INVALIDCERT}" msgstr "" -"Přihlášení neproběhlo: certifikát který odeslal Váš rohlížeč nemohl být " +"Přihlášení neproběhlo: certifikát, který odeslal Váš prohlížeč, nemohl být " "přečten" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Plné jméno organizace" - msgid "{status:header_shib}" msgstr "Shibboleth demo" msgid "{admin:metaconv_parse}" msgstr "Analýza" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Čislo organizace" - msgid "Person's principal name at home organization" -msgstr "Jméno nadřízeného" +msgstr "Hlavní jméno osoby v organizaci" msgid "Superfluous options in config file" msgstr "Nadbytečné položky v konfiguračním souboru" @@ -767,7 +617,7 @@ msgid "" "an LDAP database. An error occurred when we tried it this time." msgstr "" "LDAP je databáze uživatelů, a když se chcete přihlásit, je potřeba se " -"přihlásit do LDAP databáze. Chyba nastala během připojování." +"k ní připojit. Chyba nastala během připojování." msgid "" "Optionally enter your email address, for the administrators to be able " @@ -777,7 +627,7 @@ msgstr "" "kontaktovat:" msgid "Display name" -msgstr "Jméno k zobrazení" +msgstr "Zobrazované jméno" msgid "Remember my choice" msgstr "Zapamatuj moji volbu" @@ -786,7 +636,7 @@ msgid "SAML 2.0 SP Metadata" msgstr "SAML 2.0 SP Metadata" msgid "Notices" -msgstr "Poznamky" +msgstr "Poznámky" msgid "Home telephone" msgstr "Telefon domů" @@ -800,22 +650,22 @@ msgstr "" "jak dlouho jste pryč a všechny atributy připojené k vašemu sezení." msgid "Explain what you did when this error occurred..." -msgstr "Vysvětlete jak došlo k této chybě ..." +msgstr "Vysvětlete, jak došlo k této chybě ..." msgid "An unhandled exception was thrown." -msgstr "Neočekávaná vyjímka vznikla." +msgstr "Vznikla neočekávaná výjimka." msgid "Invalid certificate" -msgstr "Špatný certifikát" +msgstr "Nesprávný certifikát" msgid "Service Provider" msgstr "Poskytovatel služby" msgid "Incorrect username or password." -msgstr "Nekorektní jmeno nebo heslo." +msgstr "Nesprávné jméno nebo heslo." msgid "There is an error in the request to this page. The reason was: %REASON%" -msgstr "Toho je chyba požadavku pro tuto stránku. Důvod je: %REASON%" +msgstr "Chyba požadavku pro tuto stránku. Důvod je: %REASON%" msgid "E-mail address:" msgstr "Email" @@ -833,7 +683,7 @@ msgid "Locality" msgstr "Lokalita" msgid "Unhandled exception" -msgstr "Neočekávaná vyjímka" +msgstr "Neočekávaná výjimka" msgid "The following required fields was not found" msgstr "Následující požadovaná pole nenalezena" @@ -843,10 +693,10 @@ msgstr "Stáhněte certifikát X509 jako PEM-encoded soubor" #, python-format msgid "Unable to locate metadata for %ENTITYID%" -msgstr "Nebyly nalezeny metadata pro %ENTITYID%" +msgstr "Nebyla nalezena metadata pro %ENTITYID%" msgid "Organizational number" -msgstr "Čislo organizace" +msgstr "Číslo organizace" msgid "Password not set" msgstr "Heslo nebylo zadáno." @@ -910,7 +760,7 @@ msgid "" "wrong you may choose another one." msgstr "" "Máte nastavenu <b>%HOMEORG%</b> jako domovskou organizaci. Pokud je to " -"špatně zvolte jinou." +"špatně, zvolte jinou." msgid "Error processing request from Service Provider" msgstr "Chyba provádění žádosti poskytovatele služby" @@ -921,7 +771,7 @@ msgstr "Jméno hlavní organizační jednotky" msgid "" "To look at the details for an SAML entity, click on the SAML entity " "header." -msgstr "Pro zobrazení detailu SAML entity, klikni na hlavičku entity" +msgstr "Pro zobrazení detailu SAML entity klikni na hlavičku entity" msgid "Enter your username and password" msgstr "Vložte své jméno a heslo" @@ -948,7 +798,7 @@ msgid "Do you want to logout from all the services above?" msgstr "Chcete se odhlásit ze všech těchto služeb?" msgid "Select" -msgstr "Zvol" +msgstr "Zvolit" msgid "The authentication was aborted by the user" msgstr "Přihlášení bylo přerušeno uživatelem" @@ -972,7 +822,7 @@ msgid "Organization name" msgstr "Jméno organizace" msgid "Authentication failed: the certificate your browser sent is unknown" -msgstr "Přihlášení neproběhlo: certifikát který odeslal Váš prohlížeč je neznámý" +msgstr "Přihlášení neproběhlo: certifikát, který odeslal Váš prohlížeč, je neznámý" msgid "" "You are about to send a message. Hit the submit message button to " @@ -980,22 +830,22 @@ msgid "" msgstr "Můžete poslat zprávu. Požijte tlačítko k pokračování." msgid "Home organization domain name" -msgstr "Jméno organizace" +msgstr "Doménové jméno organizace" msgid "Go back to the file list" msgstr "Zpátky na seznam souborů" msgid "Error report sent" -msgstr "Chybový report zaslán" +msgstr "Zpráva o chybě odeslána" msgid "Common name" -msgstr "Celé jméno (CN)" +msgstr "Celé jméno" msgid "Please select the identity provider where you want to authenticate:" -msgstr "Prosím zvolte sveého poskytovatele identity, který vám dovolí se přihlásit" +msgstr "Prosím zvolte svého poskytovatele identity, který vám dovolí se přihlásit" msgid "Logout failed" -msgstr "Odhlašení selhalo" +msgstr "Odhlášení selhalo" msgid "Identity number assigned by public authorities" msgstr "Identifikační kód přidělený veřejnou autoritou" @@ -1020,9 +870,9 @@ msgid "" "provider." msgstr "" "Informace o odhlašovací operaci byla ztracena. Můžete se vrátit do " -"aplikace, ze které jste se odhlašovali a zkusit to znova. Tato chyba byla" -" způsobena vypršením odhlašovacíh informací. Ty jsou uloženy omezený čas " -"(jednotky hodin). To by mělo stači na normální odhlašení a tato chyba " +"aplikace, ze které jste se odhlašovali, a zkusit to znova. Tato chyba byla" +" způsobena vypršením odhlašovacích informací. Ty jsou uloženy po omezený čas " +"(jednotky hodin). To by mělo stačit na normální odhlášení a tato chyba " "může ukazovat na chyby v konfiguraci. Pokud problém přetrvává, " "kontaktujte administrátora." @@ -1033,16 +883,16 @@ msgid "Organization" msgstr "Organizace" msgid "No certificate" -msgstr "Chybí certiifikát" +msgstr "Chybí certifikát" msgid "Choose home organization" msgstr "Zvolte domovskou organizaci" msgid "Persistent pseudonymous ID" -msgstr "Perzistentí pseudoanonymní ID" +msgstr "Perzistentní pseudoanonymní ID" msgid "No SAML response provided" -msgstr "Žádná SAML odpověď nebyla zaslána" +msgstr "Nebyla zaslána SAML odpověď" msgid "No errors found." msgstr "Nenalezeny žádné chyby" @@ -1068,12 +918,12 @@ msgid "" "login service, and send them the error message above." msgstr "" "Tato chyba pravděpodobně vznikla neočekávanou událostí, nebo chybou v " -"konfiguraci. Kontaktujte administratora této přihlašovací služby a " +"konfiguraci. Kontaktujte administrátora této přihlašovací služby a " "zašlete mu tuto zprávu." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Vaše sezení je platné %SECONDS% sekund od teď." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Vaše sezení je platné ještě %remaining% sekund." msgid "Domain component (DC)" msgstr "Doména (DC)" @@ -1094,11 +944,11 @@ msgid "" "Authentication failed: the certificate your browser sent is invalid or " "cannot be read" msgstr "" -"Přihlášení neproběhlo: certifikát který odeslal Váš rohlížeč nemohl být " +"Přihlášení neproběhlo: certifikát, který odeslal Váš prohlížeč, nemohl být " "přečten" msgid "The error report has been sent to the administrators." -msgstr "Chybový report byl zaslán administrátorům." +msgstr "Zpráva o chybě byla zaslána administrátorům." msgid "Date of birth" msgstr "Datum narozeni" @@ -1107,7 +957,7 @@ msgid "Private information elements" msgstr "Privátní informační elementy" msgid "You are also logged in on these services:" -msgstr "Jste ješte přihlášen na tyto služby:" +msgstr "Jste ještě přihlášen k těmto službám:" msgid "SimpleSAMLphp Diagnostics" msgstr "SimpleSAMLphp diagnostika" @@ -1129,9 +979,9 @@ msgstr "Úspěšně jste se odhlásili z následujících služeb." msgid "You are now successfully logged out from %SP%." msgstr "" -"Zahájil jste <strong>globální odhlášení</strong> z služby " +"Zahájil jste <strong>globální odhlášení</strong> ze služby " "<strong>%REQUESTERNAME%</strong>. Globální odhlášení znamená, že budete " -"odhlášen z všech následující služeb." +"odhlášen ze všech následující služeb." msgid "Affiliation" msgstr "Vztah k organizaci" @@ -1179,7 +1029,7 @@ msgid "User ID" msgstr "Identifikátor (UID)" msgid "JPEG Photo" -msgstr "Foto JPEG" +msgstr "Fotografie (JPEG)" msgid "Postal address" msgstr "Poštovní adresa" @@ -1191,7 +1041,7 @@ msgid "Sending message" msgstr "Posílám zprávu" msgid "In SAML 2.0 Metadata XML format:" -msgstr "Ve SAML 2.0 metadata xml formátu:" +msgstr "Ve formátu SAML 2.0 XML metadata:" msgid "Logging out of the following services:" msgstr "Odhlášení z následujících služeb:" @@ -1226,7 +1076,7 @@ msgid "" "Provider, but an error occurred when trying to process the request." msgstr "" "Tento poskytovatel identity přijal požadavek od poskytovatele služby, ale" -" při jeho provádení vznikla chyba." +" při jeho provádění vznikla chyba." msgid "Yes, all services" msgstr "Ano, všechny služby" @@ -1235,7 +1085,7 @@ msgid "Logged out" msgstr "Odhlášen" msgid "Postal code" -msgstr "Poštovní kód PSČ" +msgstr "PSČ" msgid "Logging out..." msgstr "Odhlašuji..." @@ -1259,7 +1109,7 @@ msgstr "" "administrátorem: " msgid "XML metadata" -msgstr "XML Metadata" +msgstr "XML metadata" msgid "" "The parameters sent to the discovery service were not according to " @@ -1292,7 +1142,7 @@ msgstr "Shib 1.3 SP Metadata" msgid "" "As you are in debug mode, you get to see the content of the message you " "are sending:" -msgstr "Pokud jste v debug módu, můžete videt obsah zprávy, kterou posíláte:" +msgstr "Pokud jste v debug módu, můžete vidět obsah zprávy, kterou posíláte:" msgid "Certificates" msgstr "Certifikáty" @@ -1325,7 +1175,7 @@ msgid "Shib 1.3 IdP Metadata" msgstr "Shib 1.3 IdP Metadata" msgid "Change your home organization" -msgstr "Změnte svou organizaci" +msgstr "Změňte svou organizaci" msgid "User's password hash" msgstr "Uživatelské heslo (hash)" @@ -1334,7 +1184,7 @@ msgid "" "In SimpleSAMLphp flat file format - use this if you are using a " "SimpleSAMLphp entity on the other side:" msgstr "" -"Ve SimpleSAMLphp souborovém formátu (flat-file) - použijte je, pokud " +"V SimpleSAMLphp souborovém formátu (flat-file) - použijte, pokud " "potřebujete používat SimpleSAMLphp na druhé straně:" msgid "Yes, continue" @@ -1349,7 +1199,7 @@ msgid "" msgstr "Poskytovatel identity odpověděl chybou. (Stavový kód v SAML nebyl úspěšný)" msgid "Error loading metadata" -msgstr "Chyba nahravání metadat" +msgstr "Chyba nahrávání metadat" msgid "Select configuration file to check:" msgstr "Vyber konfiguračního souboru k verifikaci:" @@ -1361,16 +1211,16 @@ msgid "Error when communicating with the CAS server." msgstr "Chyba při komunikaci s CAS serverem." msgid "No SAML message provided" -msgstr "Žádná SAML zpráva nebyla zaslána" +msgstr "SAML zpráva nebyla zaslána" msgid "Help! I don't remember my password." -msgstr "Chci pomoci. Zapomněl jsem heslo." +msgstr "Zapomněl jsem heslo." msgid "" "You can turn off debug mode in the global SimpleSAMLphp configuration " "file <tt>config/config.php</tt>." msgstr "" -"Můžete vypnout debug mód v globalní konfiguraci SimpleSAMLphp " +"Můžete vypnout debug mód v globální konfiguraci SimpleSAMLphp " "<tt>config/config.php</tt>." msgid "How to get help" @@ -1382,7 +1232,7 @@ msgid "" "not intended to be accessed directly." msgstr "" "Přistupujete k SingleLogoutService rozhraní, ale nezadáváte SAML " -"LogoutRequest, nebo LogoutResponse." +"LogoutRequest ani LogoutResponse." msgid "SimpleSAMLphp error" msgstr "SimpleSAMLphp chyba" @@ -1392,17 +1242,17 @@ msgid "" "logout</i>. To ensure that all your sessions are closed, you are " "encouraged to <i>close your webbrowser</i>." msgstr "" -"Jedna, nebo více služeb, do kterých jste přihlašen, nepodporuje " -"odhlašení. Pokud se chcete odhlásit, musíte ukončit váš webový prohlížeč." +"Jedna nebo více služeb, do kterých jste přihlášen(a), nepodporuje " +"odhlášení. Pokud se chcete odhlásit, musíte ukončit váš webový prohlížeč." msgid "Organization's legal name" -msgstr "Plné jméno organizace" +msgstr "Oficiální jméno organizace" msgid "Options missing from config file" -msgstr "Chybejici polozky v konfiguracnim souboru" +msgstr "Chybějící položky v konfiguračním souboru" msgid "The following optional fields was not found" -msgstr "Nasledující volitelná pole nenalezena" +msgstr "Následující volitelná pole nenalezena" msgid "Authentication failed: your browser did not send any certificate" msgstr "Přihlášení neproběhlo: Váš prohlížeč neodeslal žádný certifikát" @@ -1425,8 +1275,8 @@ msgid "" " are the administrator of this service, you should make sure your " "metadata configuration is correctly setup." msgstr "" -"Je zde chyba v konfiguraci SimpleSAMLphp. Pokud jsi administrátorem " -"služby zkontroluj metadata." +"Chyba v konfiguraci SimpleSAMLphp. Pokud jste administrátorem " +"služby, zkontrolujte metadata." msgid "Incorrect username or password" msgstr "Špatné jméno a heslo." @@ -1441,7 +1291,7 @@ msgid "Unknown certificate" msgstr "Neznámý certifikát" msgid "Legal name" -msgstr "Právní jméno" +msgstr "Oficiální jméno" msgid "Optional fields" msgstr "Volitelná pole" @@ -1449,7 +1299,7 @@ msgstr "Volitelná pole" msgid "" "The initiator of this request did not provide a RelayState parameter " "indicating where to go next." -msgstr "Původce této žádosti nezadal parametr RelayState, který určuje kam dál." +msgstr "Původce této žádosti nezadal parametr RelayState, který určuje kam pokračovat." msgid "You have previously chosen to authenticate at" msgstr "Dříve jste zvolil(a) ověření u" @@ -1458,7 +1308,7 @@ msgid "" "You sent something to the login page, but for some reason the password " "was not sent. Try again please." msgstr "" -"Odeslal jste data do přihlašovací stranky, ale z nějakého důvodu nebylo " +"Odeslal jste data do přihlašovací stránky, ale z nějakého důvodu nebylo " "odesláno heslo. Prosím zkuste to znovu." msgid "Fax number" @@ -1481,8 +1331,8 @@ msgid "" "yourself for access to the service. There may be someone that can help " "you. Consult the help desk at your organization!" msgstr "" -"Problém! Bez jména a hesla se nemůžete identifikovat. Existuje někdo kdo " -"vám pomůže. Konzultujte helpdesk vaší organizace." +"Bez jména a hesla se nemůžete identifikovat. Zkuste " +"kontaktovat helpdesk své organizace." msgid "Metadata parser" msgstr "Metadata parser" @@ -1509,7 +1359,7 @@ msgid "Authentication source error" msgstr "Chyba autentizačního zdroje" msgid "Affiliation at home organization" -msgstr "Vztah k domovksé organizaci" +msgstr "Vztah k domovské organizaci" msgid "Help desk homepage" msgstr "Help desk" @@ -1545,7 +1395,7 @@ msgid "" "provide a SAML Authentication Response. Please note that this endpoint is" " not intended to be accessed directly." msgstr "" -"Přistupujete k Assertion Consumer Service rozhraní, ale neposílálate SAML" +"Přistupujete k Assertion Consumer Service rozhraní, ale neposíláte SAML" " Authentication Response." @@ -1556,4 +1406,4 @@ msgid "" "probably got the wrong link, and should <b>not be here</b>." msgstr "" "Právě přistupujete k testovacímu systému. Pokud nejste administrátor, " -"nebo tester, máte pravděpodobně špatný link." +"nebo tester, máte pravděpodobně špatný odkaz." diff --git a/vendor/simplesamlphp/simplesamlphp/locales/da/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/da/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..b2440db468b61042fe2b759bcd7e1c6427401a56 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/da/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: da\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Kaldenavn" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Kaldenavn" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Kaldenavn" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Domænekomponent" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Domænekomponent" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Domænekomponent" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Visningsnavn" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Visningsnavn" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Visningsnavn" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Hjemmeside" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Hjemmeside" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Hjemmeside" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Organisationens officielle navn" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Organisationens officielle navn" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Organisationens officielle navn" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Brugerens tilknytning til hjemmeorganisationen" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Brugerens tilknytning til hjemmeorganisationen" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Brugerens tilknytning til hjemmeorganisationen" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Tillidsniveau for autentificering" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Tillidsniveau for autentificering" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Tillidsniveau for autentificering" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Specifik rolle i forhold til tjenesten" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Specifik rolle i forhold til tjenesten" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Specifik rolle i forhold til tjenesten" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Kaldenavn" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Kaldenavn" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Kaldenavn" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Din hjemmeorganisations 'distinguished name' (DN)" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Din hjemmeorganisations 'distinguished name' (DN)" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Din hjemmeorganisations 'distinguished name' (DN)" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Din organisatoriske enheds 'distinguished name' (DN)" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Din organisatoriske enheds 'distinguished name' (DN)" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Din organisatoriske enheds 'distinguished name' (DN)" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Primær tilknytning" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Primær tilknytning" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Primær tilknytning" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Primær enhed/institution" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Primær enhed/institution" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Primær enhed/institution" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Bruger-ID hos hjemmeorganisationen" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Bruger-ID hos hjemmeorganisationen" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Bruger-ID hos hjemmeorganisationen" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Gruppemedlemskab" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Gruppemedlemskab" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Gruppemedlemskab" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Pseudonymt bruger-ID" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Pseudonymt bruger-ID" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Pseudonymt bruger-ID" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Faxnummer" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Faxnummer" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Faxnummer" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Fornavn(e)" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Fornavn(e)" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Fornavn(e)" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Telefonnummer (privat)" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Telefonnummer (privat)" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Telefonnummer (privat)" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Privatadresse" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Privatadresse" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Privatadresse" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "JPEG-foto" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "JPEG-foto" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "JPEG-foto" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Sted" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Sted" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Sted" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "Labeled URI" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "Labeled URI" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "Labeled URI" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "Emailadresse" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "Emailadresse" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "Emailadresse" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Manager" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Manager" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Manager" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Telefonnummer (mobil)" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Telefonnummer (mobil)" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Telefonnummer (mobil)" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "CVR-nummer" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "CVR-nummer" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "CVR-nummer" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Fødselsdato" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Fødselsdato" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Fødselsdato" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Lokalt identifikationsnummer" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Lokalt identifikationsnummer" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Lokalt identifikationsnummer" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "CPR-nummer" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "CPR-nummer" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "CPR-nummer" + +# English string: Organization name +msgid "o" +msgstr "Hjemmeorganisationens kaldenavn" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Hjemmeorganisationens kaldenavn" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Hjemmeorganisationens kaldenavn" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Organisatorisk enhed" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Organisatorisk enhed" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Organisatorisk enhed" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Postboks" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Postboks" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Postboks" + +# English string: Postal address +msgid "postalAddress" +msgstr "Adresse" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Adresse" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Adresse" + +# English string: Postal code +msgid "postalCode" +msgstr "Postnummer" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Postnummer" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Postnummer" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Foretrukket sprog (evt. flere)" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Foretrukket sprog (evt. flere)" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Foretrukket sprog (evt. flere)" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Hjemmeorganisationens entydige ID (domænenavn)" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Hjemmeorganisationens entydige ID (domænenavn)" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Hjemmeorganisationens entydige ID (domænenavn)" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Hjemmeorganisationens entydige ID (domænenavn)" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Private informationselementer" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Private informationselementer" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Private informationselementer" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Private informationselementer" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Efternavn" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Efternavn" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Efternavn" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Gade" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Gade" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Gade" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Telefonnummer" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Telefonnummer" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Telefonnummer" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Titel" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Titel" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Titel" + +# English string: User ID +msgid "uid" +msgstr "Brugernavn" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Brugernavn" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Brugernavn" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Hash-værdi af brugerens kodeord" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Hash-værdi af brugerens kodeord" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Hash-værdi af brugerens kodeord" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Kaldenavn" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Visningsnavn" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Visningsnavn" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Visningsnavn" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Visningsnavn" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Visningsnavn" + +# English string: Display name +msgid "twitter.name" +msgstr "Visningsnavn" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Visningsnavn" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Bruger-ID hos hjemmeorganisationen" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Bruger-ID hos hjemmeorganisationen" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Bruger-ID hos hjemmeorganisationen" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Bruger-ID hos hjemmeorganisationen" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Bruger-ID hos hjemmeorganisationen" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Pseudonymt bruger-ID" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Pseudonymt bruger-ID" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Pseudonymt bruger-ID" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Pseudonymt bruger-ID" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Faxnummer" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Fornavn(e)" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Fornavn(e)" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Fornavn(e)" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Fornavn(e)" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Fornavn(e)" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Telefonnummer (privat)" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Sted" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "Labeled URI" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "Labeled URI" + +# English string: Mail +msgid "facebook.email" +msgstr "Emailadresse" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "Emailadresse" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "Emailadresse" + +# English string: Mail +msgid "windowslive_mail" +msgstr "Emailadresse" + +# English string: Mail +msgid "windowslive.mail" +msgstr "Emailadresse" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Telefonnummer (mobil)" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Hjemmeorganisationens kaldenavn" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Postnummer" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Postnummer" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Foretrukket sprog (evt. flere)" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Foretrukket sprog (evt. flere)" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Foretrukket sprog (evt. flere)" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Foretrukket sprog (evt. flere)" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Foretrukket sprog (evt. flere)" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Efternavn" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Efternavn" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Efternavn" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Efternavn" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Efternavn" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Telefonnummer" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Telefonnummer" + +# English string: Title +msgid "linkedin.headline" +msgstr "Titel" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Titel" + +# English string: User ID +msgid "facebook.username" +msgstr "Brugernavn" + +# English string: User ID +msgid "linkedin.id" +msgstr "Brugernavn" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Brugernavn" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Brugernavn" + +# English string: User ID +msgid "windowslive.id" +msgstr "Brugernavn" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/da/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/da/LC_MESSAGES/messages.po index 1037383153cd70ac3cc2890eb6e05b495cc81b9e..fa8cbc6b15843c2959455bbdf5a7f2c82a6f4dff 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/da/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/da/LC_MESSAGES/messages.po @@ -50,12 +50,6 @@ msgstr "Fejl i læsning af metadata" msgid "{admin:metaconv_title}" msgstr "Metadata parser" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Specifik rolle i forhold til tjenesten" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "JPEG-foto" - msgid "{admin:cfg_check_noerrors}" msgstr "Ingen fejl" @@ -129,9 +123,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Tilbage til SimpleSAMLphp installationssiden" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "WS-Federation identitetsudbyder (remote)" - msgid "{errors:error_header}" msgstr "SimpleSAMLphp fejl" @@ -147,18 +138,12 @@ msgstr "" "du er administrator for denne server, check at din metadata konfiguration" " er korrekt." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Din hjemmeorganisations 'distinguished name' (DN)" - msgid "{errors:title_BADREQUEST}" msgstr "Fejlagtig forespørgsel" msgid "{status:sessionsize}" msgstr "Sessionsstørrelse: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Adresse" - msgid "{logout:title}" msgstr "Du er logget ud" @@ -186,30 +171,15 @@ msgstr "I kø" msgid "{admin:cfg_check_header}" msgstr "Undersøgelse af konfiguration" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Gruppemedlemskab" - -msgid "{attributes:attribute_sn}" -msgstr "Efternavn" - msgid "{admin:debug_sending_message_send}" msgstr "Send besked" msgid "{status:logout}" msgstr "Log ud" -msgid "{attributes:attribute_organisationname}" -msgstr "Hjemmeorganisationens kaldenavn" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Telefonnummer" - msgid "{errors:descr_DISCOPARAMS}" msgstr "De afsendte værdier overholder ikke Discovery Servicens' krav" -msgid "{attributes:attribute_mail}" -msgstr "Emailadresse" - msgid "{errors:descr_CREATEREQUEST}" msgstr "Fejl ved generering af SAML-forespørgsel" @@ -219,9 +189,6 @@ msgstr "Valgfrie felter" msgid "{logout:return}" msgstr "Tilbage til service" -msgid "{attributes:attribute_displayname}" -msgstr "Visningsnavn" - msgid "{admin:metadata_xmlurl}" msgstr "Du kan få metadata-xml <a href=\"%METAURL%\">her</a>:" @@ -233,9 +200,6 @@ msgstr "" "Du kan slå debug-mode fra i den globale SimpleSAMLphp-konfigurationsfil " "<tt>config/config.php</tt>" -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Privatadresse" - msgid "{disco:select}" msgstr "Vælg" @@ -265,9 +229,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Vil du logge ud fra alle ovenstående services?" -msgid "{attributes:attribute_title}" -msgstr "Titel" - msgid "{errors:title_NOACCESS}" msgstr "Ingen Adgang" @@ -280,9 +241,6 @@ msgstr "RelayState mangler" msgid "{errors:descr_NOSTATE}" msgstr "State information er tabt og der er ikke muligt at gentage forspørgelsen" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "CPR-nummer" - msgid "{login:password}" msgstr "Kodeord" @@ -307,24 +265,15 @@ msgstr "Fejl i Logout Request" msgid "{admin:metaover_errorentry}" msgstr "Fejl i denne sektion af metadata" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Brugerens tilknytning til hjemmeorganisationen" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Metadata ikke fundet" -msgid "{attributes:attribute_givenname}" -msgstr "Fornavn(e)" - msgid "{login:contact_info}" msgstr "Kontaktoplysninger" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Unhandled exception" -msgid "{status:validfor}" -msgstr "Du har %SECONDS% tilbage af din session" - msgid "{status:header_saml20_sp}" msgstr "SAML 2.0 tjenesteudbyder-demo" @@ -361,33 +310,21 @@ msgstr "Vælg den konfiguration som skal undersøges" msgid "{errors:descr_UNKNOWNCERT}" msgstr "Authentifikation fejlede: Certifikatet som din browser har send er ukendt" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Hjemmeside" - msgid "{logout:logging_out_from}" msgstr "Du logger ud af følgende services:" msgid "{logout:loggedoutfrom}" msgstr "Du er nu logget ud fra %SP%." -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "WS-Federation tjenesteudbyder (hosted)" - msgid "{errors:errorreport_text}" msgstr "Fejlrapporten er nu sendt til system-administrator" msgid "{status:subject_header}" msgstr "SAML emne" -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Fødselsdato" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "Der opstod en fejl under behandlingen af Logout forespørgelsen" -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Pseudonymt bruger-ID" - msgid "{logout:success}" msgstr "Du har logget ud fra alle overnævnte services. " @@ -397,12 +334,6 @@ msgstr "Beskeder" msgid "{errors:descr_USERABORTED}" msgstr "Autentificering blev afbrudt af brugeren" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Primær tilknytning" - -msgid "{attributes:attribute_postalcode}" -msgstr "Postnummer" - msgid "{errors:descr_CASERROR}" msgstr "Der opstod en fejl ved kommunikationen med CAS serveren" @@ -415,9 +346,6 @@ msgstr "SAML 2.0 tjenesteudbyders metadata" msgid "{admin:metaconv_converted}" msgstr "Konverteret metadata" -msgid "{attributes:attribute_cn}" -msgstr "Kaldenavn" - msgid "{logout:completed}" msgstr "Færdig" @@ -427,18 +355,9 @@ msgstr "" "(auth.adminpassword). Opdater konfigurationen med et nyt password, der er" " forskelligt fra stadardpasswordet." -msgid "{attributes:attribute_ou}" -msgstr "Organisatorisk enhed" - msgid "{general:service_provider}" msgstr "Tjenesteudbyder" -msgid "{attributes:attribute_homephone}" -msgstr "Telefonnummer (privat)" - -msgid "{attributes:attribute_dc}" -msgstr "Domænekomponent" - msgid "{errors:descr_BADREQUEST}" msgstr "Der er en fejl i forespørgslen til siden. Grunden er: %REASON%" @@ -457,23 +376,14 @@ msgstr "Indtast brugernavn og kodeord" msgid "{errors:report_explain}" msgstr "Forklar hvad du gjorde og hvordan fejlen opstod" -msgid "{attributes:attribute_manager}" -msgstr "Manager" - msgid "{errors:title_ACSPARAMS}" msgstr "SAML response mangler" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Kaldenavn" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Du forsøger at tilgå Single Logout grænsefladen, uden at sendet et SAML " "LogoutRequest eller LogoutResponse" -msgid "{attributes:attribute_street}" -msgstr "Gade" - msgid "{login:organization}" msgstr "Organisationsnavn" @@ -509,9 +419,6 @@ msgstr "Vælg hjemmeinstitution" msgid "{admin:cfg_check_superfluous}" msgstr "Overflødigt valg i konfigurationsfil" -msgid "{attributes:attribute_labeleduri}" -msgstr "Labeled URI" - msgid "{errors:report_email}" msgstr "E-mailadresse:" @@ -526,9 +433,6 @@ msgstr "" "Afsenderen af denne forespørgelse har ikke angivet en RelayStay " "parameter, der hvilket hvor der skal fortsættes" -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Officielt navn" - msgid "{status:header_diagnostics}" msgstr "SimpleSAMLphp diagnostik" @@ -538,9 +442,6 @@ msgstr "" "udløbet, hvor lang tid der er til at den udløber, samt alle øvrige " "oplysninger om din session." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Hjemmeorganisationens entydige ID (domænenavn)" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Siden kunne ikke findes" @@ -559,33 +460,18 @@ msgstr "For at se detaljer vedrørende SAML-entiteten, klik på entitets-headere msgid "{errors:title_NOTVALIDCERT}" msgstr "Ugyldigt Certifikat" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Din organisatoriske enheds 'distinguished name' (DN)" - msgid "{general:remember}" msgstr "Husk samtykke" msgid "{disco:selectidp}" msgstr "Vælg institution (identitetsudbyder)" -msgid "{attributes:attribute_postofficebox}" -msgstr "Postboks" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Bruger-ID hos hjemmeorganisationen" - msgid "{login:help_desk_email}" msgstr "Send en e-mail til servicedesk" msgid "{login:help_desk_link}" msgstr "Servicedesk" -msgid "{attributes:attribute_ismemberof}" -msgstr "Gruppemedlemsskab" - -msgid "{attributes:attribute_uid}" -msgstr "Brugernavn" - msgid "{login:remember_me}" msgstr "Husk mig" @@ -609,12 +495,6 @@ msgstr "Husk valget" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "SAML 2.0 tjenesteudbyder (hosted)" -msgid "{attributes:attribute_l}" -msgstr "Sted" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Tillidsniveau for autentificering" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "I SimpleSAMLphp flat-file format - brug dette hvis du også bruger " @@ -665,9 +545,6 @@ msgstr "ADFS identitetsudbyder (hosted)" msgid "{errors:title_UNKNOWNCERT}" msgstr "Ukendt certifikat" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Faxnummer" - msgid "{errors:title_LDAPERROR}" msgstr "LDAP fejl" @@ -685,18 +562,12 @@ msgstr "" "alternativt en ukendt fejl. Kontakt administratoren af denne tjeneste og " "rapportér så mange detaljer som muligt om fejlen" -msgid "{attributes:attribute_mobile}" -msgstr "Telefonnummer (mobil)" - msgid "{admin:metadata_adfs-idp}" msgstr "ADFS identitetsudbyder metadata" msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Shibboleth 1.3 identitetsudbyder (hosted)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Foretrukket sprog (evt. flere)" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Du har ikke valgt et gyldigt certifikat" @@ -709,15 +580,6 @@ msgstr "Følgende valgfrie felter kunne ikke findes" msgid "{logout:logout_only}" msgstr "Nej, kun %SP%" -msgid "{attributes:attribute_o}" -msgstr "Hjemmeorganisationens kaldenavn" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Primær enhed/institution" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Lokalt identifikationsnummer" - msgid "{login:next}" msgstr "Næste" @@ -733,9 +595,6 @@ msgstr "Siden kunne ikke findes på grund af %REASON%. Url'en var %URL%" msgid "{errors:title_NOCERT}" msgstr "Intet certifikat" -msgid "{attributes:attribute_userpassword}" -msgstr "Hash-værdi af brugerens kodeord" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Manglende logout-oplysninger" @@ -750,12 +609,6 @@ msgstr "" "Her er det metadata, som SimpleSAMLphp har genereret. Du kan sende det " "til dem du stoler i forbindelse med oprettelsen af en føderation." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Private informationselementer" - -msgid "{status:header_wsfed}" -msgstr "WS-Federation tjenesteudbyder-demo" - msgid "{admin:metadata_cert}" msgstr "Certifikater" @@ -764,18 +617,12 @@ msgstr "" "Authentifikation fejlede: Certifikatet som din browser har sendt er " "ugyldigt og kan ikke læses" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Organisationens officielle navn" - msgid "{status:header_shib}" msgstr "Shibboleth-demo" msgid "{admin:metaconv_parse}" msgstr "Parse" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "CVR-nummer" - msgid "Person's principal name at home organization" msgstr "Bruger-ID hos hjemmeorganisationen" @@ -1109,8 +956,8 @@ msgstr "" "rapportér så mange detaljer som muligt om fejlen" #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Du har %SECONDS% tilbage af din session" +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Du har %remaining% tilbage af din session" msgid "Domain component (DC)" msgstr "Domænekomponent" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/de/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/de/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..64fec7c1a4c8ae96ef8d7a0880976916e59168c6 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/de/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Voller Name" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Voller Name" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Voller Name" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Domain-Komponente" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Domain-Komponente" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Domain-Komponente" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Anzeigename" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Anzeigename" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Anzeigename" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Homepage der Organisation" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Homepage der Organisation" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Homepage der Organisation" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Name der Körperschaft" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Name der Körperschaft" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Name der Körperschaft" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Organisationszugehörigkeit" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Organisationszugehörigkeit" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Organisationszugehörigkeit" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Identity Assurance Profil" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Identity Assurance Profil" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Identity Assurance Profil" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Berechtigung" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Berechtigung" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Berechtigung" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Spitzname" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Spitzname" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Spitzname" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Distinguished name (DN) der Organisation" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Distinguished name (DN) der Organisation" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Distinguished name (DN) der Organisation" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Distinguished name (DN) der Organisationseinheit" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Distinguished name (DN) der Organisationseinheit" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Distinguished name (DN) der Organisationseinheit" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Primäre Organisationszugehörigkeit" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Primäre Organisationszugehörigkeit" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Primäre Organisationszugehörigkeit" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Distinguished name (DN) der primären Organisationseinheit" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Distinguished name (DN) der primären Organisationseinheit" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Distinguished name (DN) der primären Organisationseinheit" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Persönliche ID bei der Heimorganisation" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Persönliche ID bei der Heimorganisation" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Persönliche ID bei der Heimorganisation" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Organisationszugehörigkeit bei der Heimorganisation" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Organisationszugehörigkeit bei der Heimorganisation" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Organisationszugehörigkeit bei der Heimorganisation" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Persistente pseudonyme ID" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Persistente pseudonyme ID" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Persistente pseudonyme ID" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Faxnummer" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Faxnummer" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Faxnummer" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Vorname" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Vorname" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Vorname" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Private Telefonnummer" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Private Telefonnummer" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Private Telefonnummer" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Privatanschrift" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Privatanschrift" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Privatanschrift" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "JPEG Foto" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "JPEG Foto" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "JPEG Foto" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Ort" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Ort" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Ort" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "URI mit zusätzlicher Kennzeichnung" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "URI mit zusätzlicher Kennzeichnung" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "URI mit zusätzlicher Kennzeichnung" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "Emailadresse" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "Emailadresse" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "Emailadresse" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Manager/in" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Manager/in" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Manager/in" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Mobiltelefon" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Mobiltelefon" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Mobiltelefon" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Firmennummer nach dem Norwegischen Firmenregister" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Firmennummer nach dem Norwegischen Firmenregister" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Firmennummer nach dem Norwegischen Firmenregister" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Geburtsdatum" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Geburtsdatum" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Geburtsdatum" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Lokale Kennummer" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Lokale Kennummer" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Lokale Kennummer" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Norwegische Personenkennziffer" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Norwegische Personenkennziffer" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Norwegische Personenkennziffer" + +# English string: Organization name +msgid "o" +msgstr "Name der Organisation" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Name der Organisation" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Name der Organisation" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Organisationseinheit" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Organisationseinheit" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Organisationseinheit" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "Service-spezifische pseudonyme ID bei der Heimorganisation" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "Service-spezifische pseudonyme ID bei der Heimorganisation" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Postfach" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Postfach" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Postfach" + +# English string: Postal address +msgid "postalAddress" +msgstr "Anschrift" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Anschrift" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Anschrift" + +# English string: Postal code +msgid "postalCode" +msgstr "Postleitzahl" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Postleitzahl" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Postleitzahl" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Bevorzugte Sprache" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Bevorzugte Sprache" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Bevorzugte Sprache" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Domain-Name der Heimorganisation" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Domain-Name der Heimorganisation" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Domain-Name der Heimorganisation" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Domain-Name der Heimorganisation" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Private Informationselemente" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Private Informationselemente" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Private Informationselemente" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Private Informationselemente" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Nachname" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Nachname" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Nachname" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Straße" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Straße" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Straße" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "Pseudonyme ID bei der Heimorganisation" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "Pseudonyme ID bei der Heimorganisation" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Telefonnummer" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Telefonnummer" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Telefonnummer" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Titel" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Titel" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Titel" + +# English string: User ID +msgid "uid" +msgstr "Nutzer ID" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Nutzer ID" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Nutzer ID" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Passwort Hash des Benutzers" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Passwort Hash des Benutzers" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Passwort Hash des Benutzers" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Voller Name" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Anzeigename" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Anzeigename" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Anzeigename" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Anzeigename" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Anzeigename" + +# English string: Display name +msgid "twitter.name" +msgstr "Anzeigename" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Anzeigename" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Persönliche ID bei der Heimorganisation" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Persönliche ID bei der Heimorganisation" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Persönliche ID bei der Heimorganisation" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Persönliche ID bei der Heimorganisation" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Persönliche ID bei der Heimorganisation" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Persistente pseudonyme ID" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Persistente pseudonyme ID" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Persistente pseudonyme ID" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Persistente pseudonyme ID" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Faxnummer" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Vorname" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Vorname" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Vorname" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Vorname" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Vorname" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Private Telefonnummer" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Ort" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "URI mit zusätzlicher Kennzeichnung" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "URI mit zusätzlicher Kennzeichnung" + +# English string: Mail +msgid "facebook.email" +msgstr "Emailadresse" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "Emailadresse" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "Emailadresse" + +# English string: Mail +msgid "windowslive_mail" +msgstr "Emailadresse" + +# English string: Mail +msgid "windowslive.mail" +msgstr "Emailadresse" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Mobiltelefon" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Name der Organisation" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Postleitzahl" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Postleitzahl" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Bevorzugte Sprache" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Bevorzugte Sprache" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Bevorzugte Sprache" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Bevorzugte Sprache" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Bevorzugte Sprache" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Nachname" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Nachname" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Nachname" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Nachname" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Nachname" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Telefonnummer" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Telefonnummer" + +# English string: Title +msgid "linkedin.headline" +msgstr "Titel" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Titel" + +# English string: User ID +msgid "facebook.username" +msgstr "Nutzer ID" + +# English string: User ID +msgid "linkedin.id" +msgstr "Nutzer ID" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Nutzer ID" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Nutzer ID" + +# English string: User ID +msgid "windowslive.id" +msgstr "Nutzer ID" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/de/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/de/LC_MESSAGES/messages.po index 5093d0f4b29ce22b6c07d0d2dc7aea6761660618..a7dbdbf51ba5cdccbaae8924b52a57a58e346482 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/de/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/de/LC_MESSAGES/messages.po @@ -51,12 +51,6 @@ msgstr "Fehler beim Laden der Metadaten" msgid "{admin:metaconv_title}" msgstr "Metadaten-Parser" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Berechtigung" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "JPEG Foto" - msgid "{admin:cfg_check_noerrors}" msgstr "Keine Fehler gefunden." @@ -141,9 +135,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Zurück zur SimpleSAMLphp Installationsseite" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "WS-Federation Identity Provider (entfernt)" - msgid "{errors:error_header}" msgstr "SimpleSAMLphp Fehler" @@ -162,18 +153,12 @@ msgstr "" "der Administrator dieses Dienstes sind, sollten Sie sicherstellen, dass " "die Metadatenkonfiguration korrekt ist." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Distinguished name (DN) der Organisation" - msgid "{errors:title_BADREQUEST}" msgstr "Ungültige Anfrage" msgid "{status:sessionsize}" msgstr "Grösse der Sitzung: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Anschrift" - msgid "{logout:title}" msgstr "Abgemeldet" @@ -195,32 +180,17 @@ msgstr "In der Wartschleife" msgid "{admin:cfg_check_header}" msgstr "Konfigurationscheck" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Organisationszugehörigkeit bei der Heimorganisation" - -msgid "{attributes:attribute_sn}" -msgstr "Nachname" - msgid "{admin:debug_sending_message_send}" msgstr "Nachricht senden" msgid "{status:logout}" msgstr "Abmelden" -msgid "{attributes:attribute_organisationname}" -msgstr "Name der Organisation" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Telefonnummer" - msgid "{errors:descr_DISCOPARAMS}" msgstr "" "Die Parameter, die an den Discovery Service geschickt wurden, entsprachen" " nicht der Spezifikation." -msgid "{attributes:attribute_mail}" -msgstr "Emailadresse" - msgid "{errors:descr_CREATEREQUEST}" msgstr "Ein Fehler beim Erzeugen der SAML-Anfrage ist aufgetreten." @@ -230,9 +200,6 @@ msgstr "Optionale Felder" msgid "{logout:return}" msgstr "Zum Dienst zurückkehren" -msgid "{attributes:attribute_displayname}" -msgstr "Anzeigename" - msgid "{admin:metadata_xmlurl}" msgstr "" "Sie können <a href=\"%METAURL%\">das Metadaten-XML auf dieser URL " @@ -246,9 +213,6 @@ msgstr "" "Sie können den Debug-Modus in der globalen SimpleSAMLphp " "Konfigurationsdatei <tt>config/config.php</tt> ausschalten." -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Privatanschrift" - msgid "{disco:select}" msgstr "Auswahl" @@ -276,9 +240,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Wollen Sie sich von allen obenstehenden Diensten abmelden?" -msgid "{attributes:attribute_title}" -msgstr "Titel" - msgid "{errors:title_NOACCESS}" msgstr "Kein Zugriff" @@ -296,9 +257,6 @@ msgstr "" "Die Statusinformationen gingen verloren und die Anfrage kann nicht neu " "gestartet werden" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Norwegische Personenkennziffer" - msgid "{login:password}" msgstr "Passwort" @@ -325,24 +283,15 @@ msgstr "Fehler beim Bearbeiten der Abmeldeanfrage" msgid "{admin:metaover_errorentry}" msgstr "Fehler in diesem Metadaten Eintrag" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Organisationszugehörigkeit" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Keine Metadaten gefunden" -msgid "{attributes:attribute_givenname}" -msgstr "Vorname" - msgid "{login:contact_info}" msgstr "Kontakt" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Nicht abgefangene Code-Exception" -msgid "{status:validfor}" -msgstr "Ihre Sitzung ist noch für %SECONDS% gültig." - msgid "{status:header_saml20_sp}" msgstr "SAML 2.0 SP Demo Beispiel" @@ -378,30 +327,18 @@ msgstr "" "Authentifizierung fehlgeschlagen: das von ihrem Browser gesandte " "Zertifikat ist unbekannt" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Homepage der Organisation" - msgid "{logout:logging_out_from}" msgstr "Melde Sie von den folgenden Diensten ab:" msgid "{logout:loggedoutfrom}" msgstr "Sie wurden nun erfolgreich von %SP% abgemeldet" -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "WS-Federation Service Provider (gehosted)" - msgid "{errors:errorreport_text}" msgstr "Der Fehlerbericht wurde an den Administrator gesandt." -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Geburtsdatum" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "Beim Versuch die Abmeldeanfrage zu bearbeiten ist ein Fehler aufgetreten." -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Persistente pseudonyme ID" - msgid "{logout:success}" msgstr "Sie haben sich erfolgreich von allen obenstehenden Diensten abgemeldet." @@ -411,12 +348,6 @@ msgstr "Anmerkungen" msgid "{errors:descr_USERABORTED}" msgstr "Die Authentifizierung wurde durch den Benutzer abgebrochen" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Primäre Organisationszugehörigkeit" - -msgid "{attributes:attribute_postalcode}" -msgstr "Postleitzahl" - msgid "{errors:descr_CASERROR}" msgstr "Fehler bei der Kommunikation mit dem CAS Server." @@ -429,9 +360,6 @@ msgstr "SAML 2.0 SP Metadaten" msgid "{admin:metaconv_converted}" msgstr "Konvertierte Metadaten" -msgid "{attributes:attribute_cn}" -msgstr "Voller Name" - msgid "{logout:completed}" msgstr "abgeschlossen" @@ -440,18 +368,9 @@ msgstr "" "Sie benutzen noch immer das Standardpasswort, bitte ändern Sie die " "Konfiguration (auth.adminpassword)." -msgid "{attributes:attribute_ou}" -msgstr "Organisationseinheit" - msgid "{general:service_provider}" msgstr "Service-Provider" -msgid "{attributes:attribute_homephone}" -msgstr "Private Telefonnummer" - -msgid "{attributes:attribute_dc}" -msgstr "Domain-Komponente" - msgid "{errors:descr_BADREQUEST}" msgstr "In der Anfrage dieser Seite trat ein Fehler auf, der Grund ist: %REASON%" @@ -470,23 +389,14 @@ msgstr "Bitte geben Sie Ihren Nutzernamen und Ihr Passwort ein" msgid "{errors:report_explain}" msgstr "Erläutern Sie, wodurch der Fehler auftrat..." -msgid "{attributes:attribute_manager}" -msgstr "Manager/in" - msgid "{errors:title_ACSPARAMS}" msgstr "Keine SAML Antwort bereit gestellt" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Spitzname" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Sie haben auf die SingleLogoutService Schnittstelle zugegriffen, aber " "keine SAML Abmeldeanfrage oder Abmeldeantwort bereit gestellt." -msgid "{attributes:attribute_street}" -msgstr "Straße" - msgid "{login:organization}" msgstr "Organisation" @@ -528,9 +438,6 @@ msgstr "Einrichtung auswählen" msgid "{admin:cfg_check_superfluous}" msgstr "Überflüssige Optionen in der Konfigurationsdatei" -msgid "{attributes:attribute_labeleduri}" -msgstr "URI mit zusätzlicher Kennzeichnung" - msgid "{errors:report_email}" msgstr "E-Mail-Adresse:" @@ -545,9 +452,6 @@ msgstr "" "Der Initiator dieser Anfrage hat keinen Weiterleitungsparameter bereit " "gestellt, der Auskunft gibt, wohin es als nächstes gehen soll." -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Offizeller Name" - msgid "{status:header_diagnostics}" msgstr "SimpleSAMLphp Diagnose" @@ -557,9 +461,6 @@ msgstr "" "ob Ihre Sitzung ausgelaufen ist, wie lange die Sitzung noch gültig ist " "und alle Attribute Ihrer Sitzung." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Domain-Name der Heimorganisation" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Seite nicht gefunden" @@ -580,30 +481,18 @@ msgstr "" msgid "{errors:title_NOTVALIDCERT}" msgstr "Ungültiges Zertifikat" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Distinguished name (DN) der Organisationseinheit" - msgid "{general:remember}" msgstr "Zustimmung merken" msgid "{disco:selectidp}" msgstr "Wählen Sie Ihren Identity Provider" -msgid "{attributes:attribute_postofficebox}" -msgstr "Postfach" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Persönliche ID bei der Heimorganisation" - msgid "{login:help_desk_email}" msgstr "Email an den Helpdesk senden" msgid "{login:help_desk_link}" msgstr "Seite des Helpdesk" -msgid "{attributes:attribute_uid}" -msgstr "Nutzer ID" - msgid "{errors:title_CASERROR}" msgstr "CAS Fehler" @@ -624,12 +513,6 @@ msgstr "Meine Auswahl merken" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "SAML 2.0 Service Provider (gehosted)" -msgid "{attributes:attribute_l}" -msgstr "Ort" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Identity Assurance Profil" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "Im SimpleSAMLphp flat-file Format - verwenden Sie das, falls auf der " @@ -674,9 +557,6 @@ msgstr "Nachricht" msgid "{errors:title_UNKNOWNCERT}" msgstr "Unbekanntes Zertifikat" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Faxnummer" - msgid "{errors:title_LDAPERROR}" msgstr "LDAP Fehler" @@ -698,15 +578,9 @@ msgstr "" "Kontaktieren Sie bitte den Administrator dieses Dienstes und teilen die " "obige Fehlermeldung mit." -msgid "{attributes:attribute_mobile}" -msgstr "Mobiltelefon" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Shib 1.3 Identity Provider (gehosted)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Bevorzugte Sprache" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Sie haben kein gültiges Zertifikat benutzt." @@ -721,15 +595,6 @@ msgstr "Die folgenden optionalen Felder wurden nicht gefunden" msgid "{logout:logout_only}" msgstr "Nein, nur %SP%" -msgid "{attributes:attribute_o}" -msgstr "Name der Organisation" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Distinguished name (DN) der primären Organisationseinheit" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Lokale Kennummer" - msgid "{login:next}" msgstr "Weiter" @@ -751,9 +616,6 @@ msgstr "" msgid "{errors:title_NOCERT}" msgstr "Kein Zertifikat" -msgid "{attributes:attribute_userpassword}" -msgstr "Passwort Hash des Benutzers" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Abmeldeinformation verloren gegangen" @@ -769,12 +631,6 @@ msgstr "" " können dieses Metadaten-Dokument zu Partnern schicken, denen Sie " "vertrauen, um eine vertrauensbasierte Föderation aufzusetzen." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Private Informationselemente" - -msgid "{status:header_wsfed}" -msgstr "WS-Fed SP Demo Beispiel" - msgid "{admin:metadata_cert}" msgstr "Zertifikate" @@ -783,18 +639,12 @@ msgstr "" "Authentifizierung fehlgeschlagen: das von ihrem Browser gesandte " "Zertifikat ist ungültig oder kann nicht gelesen werden" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Name der Körperschaft" - msgid "{status:header_shib}" msgstr "Shibboleth Demo" msgid "{admin:metaconv_parse}" msgstr "Parse" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Firmennummer nach dem Norwegischen Firmenregister" - msgid "Person's principal name at home organization" msgstr "Persönliche ID bei der Heimorganisation" @@ -1139,8 +989,8 @@ msgstr "" "obige Fehlermeldung mit." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Ihre Sitzung ist noch für %SECONDS% gültig." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Ihre Sitzung ist noch für %remaining% gültig." msgid "Domain component (DC)" msgstr "Domain-Komponente" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/el/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/el/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..1caa0926733a19990303d8d9cc7338d3c3c24a1f --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/el/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: el\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Κοινό όνομα (CN)" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Κοινό όνομα (CN)" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Κοινό όνομα (CN)" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Συστατικό Τομέα (DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Συστατικό Τομέα (DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Συστατικό Τομέα (DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Εμφανιζόμενο όνομα" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Εμφανιζόμενο όνομα" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Εμφανιζόμενο όνομα" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Διεύθυνση αρχικής σελίδας οικείου οργανισμού" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Διεύθυνση αρχικής σελίδας οικείου οργανισμού" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Διεύθυνση αρχικής σελίδας οικείου οργανισμού" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Επίσημη επωνυμία οικείου οργανισμού" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Επίσημη επωνυμία οικείου οργανισμού" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Επίσημη επωνυμία οικείου οργανισμού" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Ιδιότητα/ες" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Ιδιότητα/ες" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Ιδιότητα/ες" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Επίπεδο αξιοπιστίας ταυτοποίησης" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Επίπεδο αξιοπιστίας ταυτοποίησης" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Επίπεδο αξιοπιστίας ταυτοποίησης" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Δικαιώματα πρόσβασης στην υπηρεσία" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Δικαιώματα πρόσβασης στην υπηρεσία" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Δικαιώματα πρόσβασης στην υπηρεσία" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Ψευδώνυμο χρήστη" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Ψευδώνυμο χρήστη" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Ψευδώνυμο χρήστη" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Διακεκριμένο όνομα (DN) οικείου οργανισμού" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Διακεκριμένο όνομα (DN) οικείου οργανισμού" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Διακεκριμένο όνομα (DN) οικείου οργανισμού" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Διακεκριμένο όνομα (DN) οικείας οργανωτικής μονάδας" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Διακεκριμένο όνομα (DN) οικείας οργανωτικής μονάδας" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Διακεκριμένο όνομα (DN) οικείας οργανωτικής μονάδας" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Κύρια ιδιότητα" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Κύρια ιδιότητα" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Κύρια ιδιότητα" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Διακεκριμένο όνομα (DN) κύριας οργανωτικής μονάδας" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Διακεκριμένο όνομα (DN) κύριας οργανωτικής μονάδας" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Διακεκριμένο όνομα (DN) κύριας οργανωτικής μονάδας" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Αναγνωριστικό χρήστη στον οικείο οργανισμό" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Αναγνωριστικό χρήστη στον οικείο οργανισμό" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Αναγνωριστικό χρήστη στον οικείο οργανισμό" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Ιδιότητα ανά διαχειριστική περιοχή (administrative domain)" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Ιδιότητα ανά διαχειριστική περιοχή (administrative domain)" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Ιδιότητα ανά διαχειριστική περιοχή (administrative domain)" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Αδιαφανές αναγνωριστικό χρήστη μακράς διάρκειας" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Αδιαφανές αναγνωριστικό χρήστη μακράς διάρκειας" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Αδιαφανές αναγνωριστικό χρήστη μακράς διάρκειας" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "Μόνιμο, αδιαφανές αναγνωριστικό χρήστη στον οικείο οργανισμό" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "Μόνιμο, αδιαφανές αναγνωριστικό χρήστη στον οικείο οργανισμό" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "Μόνιμο, αδιαφανές αναγνωριστικό χρήστη στον οικείο οργανισμό" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Fax" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Fax" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Fax" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Όνομα" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Όνομα" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Όνομα" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Τηλέφωνο οικίας" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Τηλέφωνο οικίας" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Τηλέφωνο οικίας" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Ταχυδρομική διεύθυνση οικίας" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Ταχυδρομική διεύθυνση οικίας" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Ταχυδρομική διεύθυνση οικίας" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "Φωτογραφία σε μορφή JPEG" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "Φωτογραφία σε μορφή JPEG" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "Φωτογραφία σε μορφή JPEG" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Τοποθεσία" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Τοποθεσία" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Τοποθεσία" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "Επισημασμένα URI" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "Επισημασμένα URI" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "Επισημασμένα URI" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "Email" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "Email" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "Email" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Διακεκριμένο όνομα (DN) διαχειριστή" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Διακεκριμένο όνομα (DN) διαχειριστή" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Διακεκριμένο όνομα (DN) διαχειριστή" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Κινητό τηλέφωνο" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Κινητό τηλέφωνο" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Κινητό τηλέφωνο" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Αριθμός οικείου οργανισμού" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Αριθμός οικείου οργανισμού" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Αριθμός οικείου οργανισμού" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Ημερομηνία γέννησης" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Ημερομηνία γέννησης" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Ημερομηνία γέννησης" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Αριθμός ταυτότητας" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Αριθμός ταυτότητας" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Αριθμός ταυτότητας" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Αριθμός ταυτότητας από δημόσια αρχή" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Αριθμός ταυτότητας από δημόσια αρχή" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Αριθμός ταυτότητας από δημόσια αρχή" + +# English string: Organization name +msgid "o" +msgstr "Όνομα οργανισμού" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Όνομα οργανισμού" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Όνομα οργανισμού" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Οργανωτική μονάδα" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Οργανωτική μονάδα" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Οργανωτική μονάδα" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Ταχυδρομική θυρίδα" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Ταχυδρομική θυρίδα" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Ταχυδρομική θυρίδα" + +# English string: Postal address +msgid "postalAddress" +msgstr "Ταχυδρομική διεύθυνση" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Ταχυδρομική διεύθυνση" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Ταχυδρομική διεύθυνση" + +# English string: Postal code +msgid "postalCode" +msgstr "Ταχυδρομικός κωδικός" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Ταχυδρομικός κωδικός" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Ταχυδρομικός κωδικός" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Προτιμώμενη γλώσσα" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Προτιμώμενη γλώσσα" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Προτιμώμενη γλώσσα" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Όνομα περιοχής (domain) οικείου οργανισμού" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Όνομα περιοχής (domain) οικείου οργανισμού" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Όνομα περιοχής (domain) οικείου οργανισμού" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Όνομα περιοχής (domain) οικείου οργανισμού" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Απόρρητα προσωπικά στοιχεία" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Απόρρητα προσωπικά στοιχεία" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Απόρρητα προσωπικά στοιχεία" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Απόρρητα προσωπικά στοιχεία" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Επώνυμο" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Επώνυμο" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Επώνυμο" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Οδός" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Οδός" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Οδός" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Τηλέφωνο" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Τηλέφωνο" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Τηλέφωνο" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Τίτλος" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Τίτλος" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Τίτλος" + +# English string: User ID +msgid "uid" +msgstr "Αναγνωριστικό χρήστη" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Αναγνωριστικό χρήστη" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Αναγνωριστικό χρήστη" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Κρυπτογραφημένος κωδικός" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Κρυπτογραφημένος κωδικός" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Κρυπτογραφημένος κωδικός" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Κοινό όνομα (CN)" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Εμφανιζόμενο όνομα" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Εμφανιζόμενο όνομα" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Εμφανιζόμενο όνομα" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Εμφανιζόμενο όνομα" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Εμφανιζόμενο όνομα" + +# English string: Display name +msgid "twitter.name" +msgstr "Εμφανιζόμενο όνομα" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Εμφανιζόμενο όνομα" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Αναγνωριστικό χρήστη στον οικείο οργανισμό" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Αναγνωριστικό χρήστη στον οικείο οργανισμό" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Αναγνωριστικό χρήστη στον οικείο οργανισμό" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Αναγνωριστικό χρήστη στον οικείο οργανισμό" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Αναγνωριστικό χρήστη στον οικείο οργανισμό" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Αδιαφανές αναγνωριστικό χρήστη μακράς διάρκειας" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Αδιαφανές αναγνωριστικό χρήστη μακράς διάρκειας" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Αδιαφανές αναγνωριστικό χρήστη μακράς διάρκειας" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Αδιαφανές αναγνωριστικό χρήστη μακράς διάρκειας" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Fax" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Όνομα" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Όνομα" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Όνομα" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Όνομα" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Όνομα" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Τηλέφωνο οικίας" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Τοποθεσία" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "Επισημασμένα URI" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "Επισημασμένα URI" + +# English string: Mail +msgid "facebook.email" +msgstr "Email" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "Email" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "Email" + +# English string: Mail +msgid "windowslive_mail" +msgstr "Email" + +# English string: Mail +msgid "windowslive.mail" +msgstr "Email" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Κινητό τηλέφωνο" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Όνομα οργανισμού" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Ταχυδρομικός κωδικός" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Ταχυδρομικός κωδικός" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Προτιμώμενη γλώσσα" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Προτιμώμενη γλώσσα" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Προτιμώμενη γλώσσα" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Προτιμώμενη γλώσσα" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Προτιμώμενη γλώσσα" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Επώνυμο" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Επώνυμο" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Επώνυμο" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Επώνυμο" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Επώνυμο" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Τηλέφωνο" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Τηλέφωνο" + +# English string: Title +msgid "linkedin.headline" +msgstr "Τίτλος" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Τίτλος" + +# English string: User ID +msgid "facebook.username" +msgstr "Αναγνωριστικό χρήστη" + +# English string: User ID +msgid "linkedin.id" +msgstr "Αναγνωριστικό χρήστη" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Αναγνωριστικό χρήστη" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Αναγνωριστικό χρήστη" + +# English string: User ID +msgid "windowslive.id" +msgstr "Αναγνωριστικό χρήστη" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/el/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/el/LC_MESSAGES/messages.po index ee4679c65069a174e863a96152d64f2046d8cce6..c0bc349fc2c3e63f256c8c2c77c0557420b99db8 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/el/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/el/LC_MESSAGES/messages.po @@ -52,12 +52,6 @@ msgstr "Σφάλμα κατά τη φόρτωση μεταδεδομένων" msgid "{admin:metaconv_title}" msgstr "Αναλυτής (parser) μεταδεδομένων" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Δικαιώματα πρόσβασης στην υπηρεσία" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "Φωτογραφία σε μορφή JPEG" - msgid "{admin:cfg_check_noerrors}" msgstr "Δεν εντοπίστηκαν λάθη." @@ -139,9 +133,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Επιστροφή στην αρχική σελίδα" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "Πάροχος Ταυτότητας WS-Federation (Απομακρυσμένος)" - msgid "{errors:error_header}" msgstr "Σφάλμα του SimpleSAMLphp" @@ -159,18 +150,12 @@ msgstr "" "διαχειριστής της υπηρεσίας αυτής, βεβαιωθείτε ότι τα μεταδεδομένα έχουν " "ρυθμιστεί σωστά." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Διακεκριμένο όνομα (DN) οικείου οργανισμού" - msgid "{errors:title_BADREQUEST}" msgstr "Εσφαλμένο αίτημα" msgid "{status:sessionsize}" msgstr "Μέγεθος συνεδρίας: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Ταχυδρομική διεύθυνση" - msgid "{logout:title}" msgstr "Αποσυνδεδεμένος/η" @@ -198,32 +183,17 @@ msgstr "Σε αναμονή" msgid "{admin:cfg_check_header}" msgstr "Έλεγχος ρυθμίσεων" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Ιδιότητα ανά διαχειριστική περιοχή (administrative domain)" - -msgid "{attributes:attribute_sn}" -msgstr "Επώνυμο" - msgid "{admin:debug_sending_message_send}" msgstr "Υποβολή μηνύματος" msgid "{status:logout}" msgstr "Αποσύνδεση" -msgid "{attributes:attribute_organisationname}" -msgstr "Όνομα οργανισμού" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Τηλέφωνο" - msgid "{errors:descr_DISCOPARAMS}" msgstr "" "Οι παράμετροι που στάλθηκαν στην υπηρεσία ανεύρεσης παρόχου ταυτότητας " "ήταν εσφαλμένες." -msgid "{attributes:attribute_mail}" -msgstr "Email" - msgid "{errors:descr_CREATEREQUEST}" msgstr "Παρουσιάστηκε σφάλμα κατά τη δημιουργία του αιτήματος SAML." @@ -236,9 +206,6 @@ msgstr "Επιστροφή στην υπηρεσία" msgid "{errors:title_MEMCACHEDOWN}" msgstr "Δεν είναι δυνατή η ανάκτηση δεδομένων συνεδρίας" -msgid "{attributes:attribute_displayname}" -msgstr "Εμφανιζόμενο όνομα" - msgid "{admin:metadata_xmlurl}" msgstr "Διεύθυνση <a href=\"%METAURL%\">λήψης</a> μεταδεδομένων:" @@ -250,9 +217,6 @@ msgstr "" "Μπορείτε να απενεργοποιήσετε τη λειτουργία εντοπισμού σφαλμάτων (debug) " "στο αρχείο ρυθμίσεων του SimpleSAMLphp <tt>config/config.php</tt>." -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Ταχυδρομική διεύθυνση οικίας" - msgid "{disco:select}" msgstr "Επιλογή" @@ -282,9 +246,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Επιθυμείτε να αποσυνδεθείτε από όλες τις παραπάνω υπηρεσίες;" -msgid "{attributes:attribute_title}" -msgstr "Τίτλος" - msgid "{errors:title_NOACCESS}" msgstr "Σφάλμα κατά την πρόσβαση" @@ -299,9 +260,6 @@ msgstr "" "Δεν ήταν δυνατό να εξυπηρετηθεί το αίτημά σας καθώς δεν βρέθηκαν " "πληροφορίες σχετικά με την κατάστασή του" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Αριθμός ταυτότητας από δημόσια αρχή" - msgid "{login:password}" msgstr "Κωδικός" @@ -328,27 +286,15 @@ msgstr "Σφάλμα κατά τη διαδικασία αποσύνδεσης" msgid "{admin:metaover_errorentry}" msgstr "Σφάλμα σε αυτή την καταχώρηση μεταδεδομένων" -msgid "{attributes:attribute_edupersonuniqueid}" -msgstr "Μόνιμο, αδιαφανές αναγνωριστικό χρήστη στον οικείο οργανισμό" - -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Ιδιότητα/ες" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Δεν βρέθηκαν μεταδεδομένα" -msgid "{attributes:attribute_givenname}" -msgstr "Όνομα" - msgid "{login:contact_info}" msgstr "Στοιχεία επικοινωνίας:" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Ανεπίλυτη εξαίρεση" -msgid "{status:validfor}" -msgstr "Απομένουν %SECONDS% δευτερόλεπτα μέχρι τη λήξη της συνεδρίας σας." - msgid "{status:header_saml20_sp}" msgstr "Δοκιμαστικός Παροχέας Υπηρεσιών SAML 2.0" @@ -391,33 +337,21 @@ msgstr "" "Η ταυτοποίηση απέτυχε: Το πιστοποιητικό που έστειλε το πρόγραμμα " "περιήγησης ιστού που χρησιμοποιείτε δεν ήταν δυνατό να αναγνωριστεί." -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Διεύθυνση αρχικής σελίδας οικείου οργανισμού" - msgid "{logout:logging_out_from}" msgstr "Γίνεται αποσύνδεση από τις ακόλουθες υπηρεσίες:" msgid "{logout:loggedoutfrom}" msgstr "Έχετε αποσυνδεθεί με επιτυχία από την υπηρεσία %SP%." -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "Πάροχος Υπηρεσιών WS-Federation (Φιλοξενούμενος)" - msgid "{errors:errorreport_text}" msgstr "Η αποστολή της αναφοράς σφάλματος στους διαχειριστές ολοκληρώθηκε." msgid "{status:subject_header}" msgstr "Υποκείμενο (subject) SAML" -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Ημερομηνία γέννησης" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "Παρουσιαστήκε σφάλμα κατά την επεξεργασία του αιτήματος αποσύνδεσης." -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Αδιαφανές αναγνωριστικό χρήστη μακράς διάρκειας" - msgid "{logout:success}" msgstr "" "Έχετε αποσυνδεθεί με επιτυχία από όλες τις υπηρεσίες που αναφέρονται " @@ -429,12 +363,6 @@ msgstr "Ειδοποιήσεις" msgid "{errors:descr_USERABORTED}" msgstr "Η ταυτοποίηση ματαιώθηκε από τον χρήστη." -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Κύρια ιδιότητα" - -msgid "{attributes:attribute_postalcode}" -msgstr "Ταχυδρομικός κωδικός" - msgid "{errors:descr_CASERROR}" msgstr "Παρουσιάστηκε σφάλμα κατά την επικοινωνία με τον εξυπηρετητή CAS." @@ -447,9 +375,6 @@ msgstr "Μεταδεδομένα Παρόχου Υπηρεσιών SAML 2.0" msgid "{admin:metaconv_converted}" msgstr "Μετατραπέντα μεταδεδομένα" -msgid "{attributes:attribute_cn}" -msgstr "Κοινό όνομα (CN)" - msgid "{logout:completed}" msgstr "Ολοκληρώθηκε" @@ -458,18 +383,9 @@ msgstr "" "Χρησιμοποιείται η προκαθορισμένη τιμή του κωδικού πρόσβασης. Παρακαλούμε " "επεξεργαστείτε το αρχείο ρυθμίσεων." -msgid "{attributes:attribute_ou}" -msgstr "Οργανωτική μονάδα" - msgid "{general:service_provider}" msgstr "Πάροχος υπηρεσίας" -msgid "{attributes:attribute_homephone}" -msgstr "Τηλέφωνο οικίας" - -msgid "{attributes:attribute_dc}" -msgstr "Συστατικό Τομέα (DC)" - msgid "{errors:descr_BADREQUEST}" msgstr "Παρουσιάστηκε σφάλμα κατά την επεξεργασία του αιτήματος: %REASON%" @@ -488,15 +404,9 @@ msgstr "Εισάγετε όνομα χρήστη και κωδικό πρόσβ msgid "{errors:report_explain}" msgstr "Περιγράψτε τις ενέργειές σας όταν συνέβη το σφάλμα..." -msgid "{attributes:attribute_manager}" -msgstr "Διακεκριμένο όνομα (DN) διαχειριστή" - msgid "{errors:title_ACSPARAMS}" msgstr "Σφάλμα κατά την πρόσβαση στη διεπαφή AssertionConsumerService" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Ψευδώνυμο χρήστη" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Κατά την πρόσβασή σας στη διεπαφή SingleLogoutService παραλείψατε να " @@ -504,9 +414,6 @@ msgstr "" " Σημειώστε ότι αυτό το τελικό σημείο (endpoint) δεν προορίζεται να είναι " "άμεσα προσβάσιμο." -msgid "{attributes:attribute_street}" -msgstr "Οδός" - msgid "{login:organization}" msgstr "Οργανισμός" @@ -551,9 +458,6 @@ msgstr "Επιλογή οικείου φορέα" msgid "{admin:cfg_check_superfluous}" msgstr "Περιττές επιλογές στο αρχείο ρυθμίσεων" -msgid "{attributes:attribute_labeleduri}" -msgstr "Επισημασμένα URI" - msgid "{errors:report_email}" msgstr "Email:" @@ -569,9 +473,6 @@ msgstr "" "έγκυρη με αποτέλεσμα να μην είναι δυνατή η μετάβαση σε κάποιον πόρο του " "παρόχου υπηρεσιών0." -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Επίσημο όνομα" - msgid "{status:header_diagnostics}" msgstr "Διαγνωστικά SimpleSAMLphp" @@ -582,9 +483,6 @@ msgstr "" "διαρκεί έως ότου λήξει, καθώς και όλες τις πληροφορίες που συνδέονται με " "τη συνεδρία σας." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Όνομα περιοχής (domain) οικείου οργανισμού" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Η σελίδα δεν βρέθηκε" @@ -605,33 +503,18 @@ msgstr "" msgid "{errors:title_NOTVALIDCERT}" msgstr "Μη έγκυρο πιστοποιητικό" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Διακεκριμένο όνομα (DN) οικείας οργανωτικής μονάδας" - msgid "{general:remember}" msgstr "Να θυμάσαι την επιλογή μου" msgid "{disco:selectidp}" msgstr "Επιλογή οικείου φορέα" -msgid "{attributes:attribute_postofficebox}" -msgstr "Ταχυδρομική θυρίδα" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Αναγνωριστικό χρήστη στον οικείο οργανισμό" - msgid "{login:help_desk_email}" msgstr "Αποστολή email στην υπηρεσία αρωγής χρηστών" msgid "{login:help_desk_link}" msgstr "Σελίδα υπηρεσίας αρωγής χρηστών" -msgid "{attributes:attribute_ismemberof}" -msgstr "Συμμετοχή σε ομάδες" - -msgid "{attributes:attribute_uid}" -msgstr "Αναγνωριστικό χρήστη" - msgid "{login:remember_me}" msgstr "Να με θυμάσαι" @@ -655,12 +538,6 @@ msgstr "Να θυμάσαι την επιλογή μού" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "Πάροχος Υπηρεσιών SAML 2.0 (Φιλοξενούμενος)" -msgid "{attributes:attribute_l}" -msgstr "Τοποθεσία" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Επίπεδο αξιοπιστίας ταυτοποίησης" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "Σε μορφή απλού αρχείου SimpleSAMLphp - μπορείτε να στείλετε τα " @@ -712,9 +589,6 @@ msgstr "Πάροχος Ταυτότητας ADFS (Φιλοξενούμενος)" msgid "{errors:title_UNKNOWNCERT}" msgstr "Άγνωστο πιστοποιητικό" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Fax" - msgid "{errors:title_LDAPERROR}" msgstr "Σφάλμα LDAP" @@ -733,21 +607,12 @@ msgstr "" "εσφαλμένη ρύθμιση του SimpleSAMLphp. Επικοινωνήστε με τον διαχειριστή " "αυτής της υπηρεσίας συμπεριλαμβάνοντας το παραπάνω μήνυμα σφάλματος." -msgid "{attributes:attribute_mobile}" -msgstr "Κινητό τηλέφωνο" - msgid "{admin:metadata_adfs-idp}" msgstr "Μεταδεδομένα Παρόχου Ταυτότητας ADFS" -msgid "{attributes:attribute_edupersonorcid}" -msgstr "Αναγνωριστικά ερευνητή ORCID" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Πάροχος Ταυτότητας Shib 1.3 (Φιλοξενούμενος)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Προτιμώμενη γλώσσα" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Παρουσιάστηκε σφάλμα λόγω μη έγκυρου πιστοποιητικού." @@ -762,15 +627,6 @@ msgstr "Τα παρακάτω προαιρετικά πεδία δεν βρέθ msgid "{logout:logout_only}" msgstr "Όχι, μόνο από την υπηρεσία %SP%" -msgid "{attributes:attribute_o}" -msgstr "Όνομα οργανισμού" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Διακεκριμένο όνομα (DN) κύριας οργανωτικής μονάδας" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Αριθμός ταυτότητας" - msgid "{login:next}" msgstr "Επόμενο" @@ -788,9 +644,6 @@ msgstr "Η σελίδα που ζητήσατε στη διεύθυνση %URL% msgid "{errors:title_NOCERT}" msgstr "Δεν υπάρχει πιστοποιητικό" -msgid "{attributes:attribute_userpassword}" -msgstr "Κρυπτογραφημένος κωδικός" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Σφάλμα αποσύνδεσης" @@ -810,12 +663,6 @@ msgstr "" "εσάς. Μπορείτε να τα στείλετε σε οντότητες που εμπιστεύεστε προκειμένου " "να δημιουργήσετε ομοσπονδία." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Απόρρητα προσωπικά στοιχεία" - -msgid "{status:header_wsfed}" -msgstr "Δοκιμαστικός Παροχέας Υπηρεσιών WS-Fed" - msgid "{admin:metadata_cert}" msgstr "Πιστοποιητικά" @@ -825,18 +672,12 @@ msgstr "" "περιήγησης ιστού που χρησιμοποιείτε δεν είναι έγκυρο ή δεν ήταν δυνατή η " "ανάγνωσή του." -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Επίσημη επωνυμία οικείου οργανισμού" - msgid "{status:header_shib}" msgstr "Δοκιμαστικός Παροχέας Υπηρεσιών Shibboleth" msgid "{admin:metaconv_parse}" msgstr "Ανάλυση" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Αριθμός οικείου οργανισμού" - msgid "Person's principal name at home organization" msgstr "Αναγνωριστικό χρήστη στον οικείο οργανισμό" @@ -1185,8 +1026,8 @@ msgstr "" "αυτής της υπηρεσίας συμπεριλαμβάνοντας το παραπάνω μήνυμα σφάλματος." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Απομένουν %SECONDS% δευτερόλεπτα μέχρι τη λήξη της συνεδρίας σας." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Απομένουν %remaining% δευτερόλεπτα μέχρι τη λήξη της συνεδρίας σας." msgid "Domain component (DC)" msgstr "Συστατικό Τομέα (DC)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/en/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/en/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..87987ba8baf25cf95742dd55358c829246652c86 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/en/LC_MESSAGES/attributes.po @@ -0,0 +1,1862 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: en\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +msgid "cn" +msgstr "Common name" + +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Common name" + +msgid "urn:oid:2.5.4.3" +msgstr "Common name" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +msgid "dc" +msgstr "Domain component (DC)" + +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Domain component (DC)" + +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Domain component (DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +msgid "displayName" +msgstr "Display name" + +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Display name" + +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Display name" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +msgid "eduOrgHomePageURI" +msgstr "Organizational homepage" + +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Organizational homepage" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Organizational homepage" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +msgid "eduOrgLegalName" +msgstr "Organization's legal name" + +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Organization's legal name" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Organization's legal name" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +msgid "eduPersonAffiliation" +msgstr "Affiliation" + +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Affiliation" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Affiliation" + +msgid "eduPersonAssurance" +msgstr "Identity assurance profile" + +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Identity assurance profile" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Identity assurance profile" + +msgid "eduPersonEntitlement" +msgstr "Entitlement regarding the service" + +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Entitlement regarding the service" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Entitlement regarding the service" + +msgid "eduPersonNickname" +msgstr "Nickname" + +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Nickname" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Nickname" + +msgid "eduPersonOrgDN" +msgstr "Distinguished name (DN) of person's home organization" + +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Distinguished name (DN) of person's home organization" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Distinguished name (DN) of person's home organization" + +msgid "eduPersonOrgUnitDN" +msgstr "Distinguished name (DN) of the person's home organizational unit" + +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Distinguished name (DN) of the person's home organizational unit" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Distinguished name (DN) of the person's home organizational unit" + +msgid "eduPersonPrimaryAffiliation" +msgstr "Primary affiliation" + +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Primary affiliation" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Primary affiliation" + +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Distinguished name (DN) of person's primary Organizational Unit" + +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Distinguished name (DN) of person's primary Organizational Unit" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Distinguished name (DN) of person's primary Organizational Unit" + +msgid "eduPersonPrincipalName" +msgstr "Person's principal name at home organization" + +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Person's principal name at home organization" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Person's principal name at home organization" + +msgid "eduPersonScopedAffiliation" +msgstr "Affiliation at home organization" + +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Affiliation at home organization" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Affiliation at home organization" + +msgid "eduPersonTargetedID" +msgstr "Persistent pseudonymous ID" + +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Persistent pseudonymous ID" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Persistent pseudonymous ID" + +msgid "eduPersonUniqueId" +msgstr "Person's non-reassignable, persistent pseudonymous ID at home organization" + +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "Person's non-reassignable, persistent pseudonymous ID at home organization" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "Person's non-reassignable, persistent pseudonymous ID at home organization" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +msgid "facsimileTelephoneNumber" +msgstr "Fax number" + +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Fax number" + +msgid "urn:oid:2.5.4.23" +msgstr "Fax number" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +msgid "givenName" +msgstr "Given name" + +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Given name" + +msgid "urn:oid:2.5.4.42" +msgstr "Given name" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +msgid "homePhone" +msgstr "Home telephone" + +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Home telephone" + +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Home telephone" + +msgid "homePostalAddress" +msgstr "Home postal address" + +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Home postal address" + +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Home postal address" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +msgid "jpegPhoto" +msgstr "JPEG Photo" + +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "JPEG Photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "JPEG Photo" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +msgid "l" +msgstr "Locality" + +msgid "urn:mace:dir:attribute-def:l" +msgstr "Locality" + +msgid "urn:oid:2.5.4.7" +msgstr "Locality" + +msgid "labeledURI" +msgstr "Labeled URI" + +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "Labeled URI" + +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "Labeled URI" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +msgid "mail" +msgstr "Mail" + +msgid "urn:mace:dir:attribute-def:mail" +msgstr "Mail" + +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "Mail" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +msgid "manager" +msgstr "Manager" + +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Manager" + +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Manager" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +msgid "mobile" +msgstr "Mobile" + +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Mobile" + +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Mobile" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +msgid "norEduOrgNIN" +msgstr "Organizational number" + +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Organizational number" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Organizational number" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +msgid "norEduPersonBirthDate" +msgstr "Date of birth" + +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Date of birth" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Date of birth" + +msgid "norEduPersonLIN" +msgstr "Local identity number" + +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Local identity number" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Local identity number" + +msgid "norEduPersonNIN" +msgstr "Identity number assigned by public authorities" + +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Identity number assigned by public authorities" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Identity number assigned by public authorities" + +msgid "o" +msgstr "Organization name" + +msgid "urn:mace:dir:attribute-def:o" +msgstr "Organization name" + +msgid "urn:oid:2.5.4.10" +msgstr "Organization name" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +msgid "urn:oid:2.5.4.11" +msgstr "Organizational unit" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +msgid "ou" +msgstr "Organizational unit" + +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Organizational unit" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +msgid "pairwise-id" +msgstr "Service-specific pseudonymous ID at home organization" + +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "Service-specific pseudonymous ID at home organization" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +msgid "postOfficeBox" +msgstr "Post office box" + +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Post office box" + +msgid "urn:oid:2.5.4.18" +msgstr "Post office box" + +msgid "postalAddress" +msgstr "Postal address" + +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Postal address" + +msgid "urn:oid:2.5.4.16" +msgstr "Postal address" + +msgid "postalCode" +msgstr "Postal code" + +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Postal code" + +msgid "urn:oid:2.5.4.17" +msgstr "Postal code" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +msgid "preferredLanguage" +msgstr "Preferred language" + +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Preferred language" + +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Preferred language" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +msgid "schacHomeOrganization" +msgstr "Home organization domain name" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Home organization domain name" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Home organization domain name" + +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Home organization domain name" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +msgid "schacUserPrivateAttribute" +msgstr "Private information elements" + +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Private information elements" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Private information elements" + +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Private information elements" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +msgid "sn" +msgstr "Surname" + +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Surname" + +msgid "urn:oid:2.5.4.4" +msgstr "Surname" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +msgid "street" +msgstr "Street" + +msgid "urn:mace:dir:attribute-def:street" +msgstr "Street" + +msgid "urn:oid:2.5.4.9" +msgstr "Street" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +msgid "subject-id" +msgstr "Pseudonymous ID at home organization" + +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "Pseudonymous ID at home organization" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +msgid "telephoneNumber" +msgstr "Telephone number" + +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Telephone number" + +msgid "urn:oid:2.5.4.20" +msgstr "Telephone number" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +msgid "title" +msgstr "Title" + +msgid "urn:mace:dir:attribute-def:title" +msgstr "Title" + +msgid "urn:oid:2.5.4.12" +msgstr "Title" + +msgid "uid" +msgstr "User ID" + +msgid "urn:mace:dir:attribute-def:uid" +msgstr "User ID" + +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "User ID" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +msgid "userPassword" +msgstr "User's password hash" + +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "User's password hash" + +msgid "urn:oid:2.5.4.35" +msgstr "User's password hash" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +msgid "facebook_cn" +msgstr "Common name" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +msgid "facebook.name" +msgstr "Display name" + +msgid "http://axschema.org/namePerson/friendly" +msgstr "Display name" + +msgid "openid.sreg.nickname" +msgstr "Display name" + +msgid "http://axschema.org/namePerson" +msgstr "Display name" + +msgid "openid.sreg.fullname" +msgstr "Display name" + +msgid "twitter.name" +msgstr "Display name" + +msgid "windowslive.displayName" +msgstr "Display name" + +msgid "facebook_user" +msgstr "Person's principal name at home organization" + +msgid "linkedin_user" +msgstr "Person's principal name at home organization" + +msgid "twitter_screen_n_realm" +msgstr "Person's principal name at home organization" + +msgid "windowslive_user" +msgstr "Person's principal name at home organization" + +msgid "windowslive.userPrincipalName" +msgstr "Person's principal name at home organization" + +msgid "facebook_targetedID" +msgstr "Persistent pseudonymous ID" + +msgid "linkedin_targetedID" +msgstr "Persistent pseudonymous ID" + +msgid "twitter_targetedID" +msgstr "Persistent pseudonymous ID" + +msgid "windowslive_targetedID" +msgstr "Persistent pseudonymous ID" + +msgid "http://axschema.org/contact/phone/fax" +msgstr "Fax number" + +msgid "facebook.first_name" +msgstr "Given name" + +msgid "linkedin.firstName" +msgstr "Given name" + +msgid "http://axschema.org/namePerson/first" +msgstr "Given name" + +msgid "windowslive.FirstName" +msgstr "Given name" + +msgid "windowslive.givenName" +msgstr "Given name" + +msgid "http://axschema.org/contact/phone/home" +msgstr "Home telephone" + +msgid "windowslive.Location" +msgstr "Locality" + +msgid "facebook.profile_url" +msgstr "Labeled URI" + +msgid "twitter.url" +msgstr "Labeled URI" + +msgid "facebook.email" +msgstr "Mail" + +msgid "http://axschema.org/contact/email" +msgstr "Mail" + +msgid "openid.sreg.email" +msgstr "Mail" + +msgid "windowslive_mail" +msgstr "Mail" + +msgid "windowslive.mail" +msgstr "Mail" + +msgid "http://axschema.org/contact/phone/cell" +msgstr "Mobile" + +msgid "http://axschema.org/company/name" +msgstr "Organization name" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Postal code" + +msgid "openid.sreg.postcode" +msgstr "Postal code" + +msgid "facebook.locale" +msgstr "Preferred language" + +msgid "http://axschema.org/pref/language" +msgstr "Preferred language" + +msgid "openid.sreg.language" +msgstr "Preferred language" + +msgid "twitter.lang" +msgstr "Preferred language" + +msgid "windowslive.preferredLanguage" +msgstr "Preferred language" + +msgid "facebook.last_name" +msgstr "Surname" + +msgid "linkedin.lastName" +msgstr "Surname" + +msgid "http://axschema.org/namePerson/last" +msgstr "Surname" + +msgid "windowslive.LastName" +msgstr "Surname" + +msgid "windowslive.surname" +msgstr "Surname" + +msgid "http://axschema.org/contact/phone/default" +msgstr "Telephone number" + +msgid "http://axschema.org/contact/phone/business" +msgstr "Telephone number" + +msgid "linkedin.headline" +msgstr "Title" + +msgid "http://axschema.org/company/title" +msgstr "Title" + +msgid "facebook.username" +msgstr "User ID" + +msgid "linkedin.id" +msgstr "User ID" + +msgid "twitter.screen_name" +msgstr "User ID" + +msgid "windowslive_uid" +msgstr "User ID" + +msgid "windowslive.id" +msgstr "User ID" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/en/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/en/LC_MESSAGES/messages.po index be62029f06c07ae661be56638b063fcd25ee233f..eac57388e8c9cb5b2177104124d7759d35b7ef46 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/en/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/en/LC_MESSAGES/messages.po @@ -56,12 +56,6 @@ msgstr "Error loading metadata" msgid "{admin:metaconv_title}" msgstr "Metadata parser" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Entitlement regarding the service" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "JPEG Photo" - msgid "{admin:cfg_check_noerrors}" msgstr "No errors found." @@ -144,9 +138,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Go back to SimpleSAMLphp installation page" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "WS-Federation Identity Provider (Remote)" - msgid "{errors:error_header}" msgstr "SimpleSAMLphp error" @@ -164,18 +155,12 @@ msgstr "" " are the administrator of this service, you should make sure your " "metadata configuration is correctly setup." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Distinguished name (DN) of person's home organization" - msgid "{errors:title_BADREQUEST}" msgstr "Bad request received" msgid "{status:sessionsize}" msgstr "Session size: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Postal address" - msgid "{logout:title}" msgstr "Logged out" @@ -203,24 +188,12 @@ msgstr "On hold" msgid "{admin:cfg_check_header}" msgstr "Configuration check" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Affiliation at home organization" - -msgid "{attributes:attribute_sn}" -msgstr "Surname" - msgid "{admin:debug_sending_message_send}" msgstr "Submit message" msgid "{status:logout}" msgstr "Logout" -msgid "{attributes:attribute_organisationname}" -msgstr "Organization name" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Telephone number" - msgid "{errors:descr_DISCOPARAMS}" msgstr "" "The parameters sent to the discovery service were not according to " @@ -229,9 +202,6 @@ msgstr "" msgid "{errors:title_ARSPARAMS}" msgstr "No SAML message provided" -msgid "{attributes:attribute_mail}" -msgstr "Mail" - msgid "{errors:descr_CREATEREQUEST}" msgstr "An error occurred when trying to create the SAML request." @@ -244,9 +214,6 @@ msgstr "Return to service" msgid "{errors:title_MEMCACHEDOWN}" msgstr "Cannot retrieve session data" -msgid "{attributes:attribute_displayname}" -msgstr "Display name" - msgid "{admin:metadata_xmlurl}" msgstr "You can <a href=\"%METAURL%\">get the metadata xml on a dedicated URL</a>:" @@ -258,9 +225,6 @@ msgstr "" "You can turn off debug mode in the global SimpleSAMLphp configuration " "file <tt>config/config.php</tt>." -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Home postal address" - msgid "{disco:select}" msgstr "Select" @@ -290,9 +254,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Do you want to logout from all the services above?" -msgid "{attributes:attribute_title}" -msgstr "Title" - msgid "{errors:title_NOACCESS}" msgstr "No access" @@ -307,9 +268,6 @@ msgstr "No RelayState" msgid "{errors:descr_NOSTATE}" msgstr "State information lost, and no way to restart the request" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Identity number assigned by public authorities" - msgid "{login:password}" msgstr "Password" @@ -336,27 +294,15 @@ msgstr "Error processing the Logout Request" msgid "{admin:metaover_errorentry}" msgstr "Error in this metadata entry" -msgid "{attributes:attribute_edupersonuniqueid}" -msgstr "Person's non-reassignable, persistent pseudonymous ID at home organization" - -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Affiliation" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Metadata not found" -msgid "{attributes:attribute_givenname}" -msgstr "Given name" - msgid "{login:contact_info}" msgstr "Contact information:" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Unhandled exception" -msgid "{status:validfor}" -msgstr "Your session is valid for %SECONDS% seconds from now." - msgid "{status:header_saml20_sp}" msgstr "SAML 2.0 SP Demo Example" @@ -396,33 +342,21 @@ msgstr "Select configuration file to check:" msgid "{errors:descr_UNKNOWNCERT}" msgstr "Authentication failed: the certificate your browser sent is unknown" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Organizational homepage" - msgid "{logout:logging_out_from}" msgstr "Logging out of the following services:" msgid "{logout:loggedoutfrom}" msgstr "You are now successfully logged out from %SP%." -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "WS-Federation Service Provider (Hosted)" - msgid "{errors:errorreport_text}" msgstr "The error report has been sent to the administrators." msgid "{status:subject_header}" msgstr "SAML Subject" -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Date of birth" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "An error occurred when trying to process the Logout Request." -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Persistent pseudonymous ID" - msgid "{logout:success}" msgstr "You have successfully logged out from all services listed above." @@ -432,12 +366,6 @@ msgstr "Notices" msgid "{errors:descr_USERABORTED}" msgstr "The authentication was aborted by the user" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Primary affiliation" - -msgid "{attributes:attribute_postalcode}" -msgstr "Postal code" - msgid "{errors:descr_CASERROR}" msgstr "Error when communicating with the CAS server." @@ -450,9 +378,6 @@ msgstr "SAML 2.0 SP Metadata" msgid "{admin:metaconv_converted}" msgstr "Converted metadata" -msgid "{attributes:attribute_cn}" -msgstr "Common name" - msgid "{logout:completed}" msgstr "Completed" @@ -461,18 +386,9 @@ msgstr "" "The password in the configuration (auth.adminpassword) is not changed " "from the default value. Please edit the configuration file." -msgid "{attributes:attribute_ou}" -msgstr "Organizational unit" - msgid "{general:service_provider}" msgstr "Service Provider" -msgid "{attributes:attribute_homephone}" -msgstr "Home telephone" - -msgid "{attributes:attribute_dc}" -msgstr "Domain component (DC)" - msgid "{errors:descr_BADREQUEST}" msgstr "There is an error in the request to this page. The reason was: %REASON%" @@ -491,24 +407,15 @@ msgstr "Enter your username and password" msgid "{errors:report_explain}" msgstr "Explain what you did when this error occurred..." -msgid "{attributes:attribute_manager}" -msgstr "Manager" - msgid "{errors:title_ACSPARAMS}" msgstr "No SAML response provided" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Nickname" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "You accessed the SingleLogoutService interface, but did not provide a " "SAML LogoutRequest or LogoutResponse. Please note that this endpoint is " "not intended to be accessed directly." -msgid "{attributes:attribute_street}" -msgstr "Street" - msgid "{login:organization}" msgstr "Organization" @@ -547,9 +454,6 @@ msgstr "Choose home organization" msgid "{admin:cfg_check_superfluous}" msgstr "Superfluous options in config file" -msgid "{attributes:attribute_labeleduri}" -msgstr "Labeled URI" - msgid "{errors:report_email}" msgstr "E-mail address:" @@ -564,9 +468,6 @@ msgstr "" "The initiator of this request did not provide a RelayState parameter " "indicating where to go next." -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Legal name" - msgid "{status:header_diagnostics}" msgstr "SimpleSAMLphp Diagnostics" @@ -576,9 +477,6 @@ msgstr "" "session is timed out, how long it lasts until it times out and all the " "attributes that are attached to your session." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Home organization domain name" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Page not found" @@ -599,39 +497,24 @@ msgstr "" msgid "{errors:title_NOTVALIDCERT}" msgstr "Invalid certificate" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Distinguished name (DN) of the person's home organizational unit" - msgid "{general:remember}" msgstr "Remember" msgid "{disco:selectidp}" msgstr "Select your identity provider" -msgid "{attributes:attribute_postofficebox}" -msgstr "Post office box" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Person's principal name at home organization" - msgid "{login:help_desk_email}" msgstr "Send e-mail to help desk" msgid "{login:help_desk_link}" msgstr "Help desk homepage" -msgid "{attributes:attribute_ismemberof}" -msgstr "Group membership" - msgid "{errors:descr_ARSPARAMS}" msgstr "" "You accessed the Artifact Resolution Service interface, but did not " "provide a SAML ArtifactResolve message. Please note that this endpoint is" " not intended to be accessed directly." -msgid "{attributes:attribute_uid}" -msgstr "User ID" - msgid "{login:remember_me}" msgstr "Remember me" @@ -655,12 +538,6 @@ msgstr "Remember my choice" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "SAML 2.0 Service Provider (Hosted)" -msgid "{attributes:attribute_l}" -msgstr "Locality" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Identity assurance profile" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "In SimpleSAMLphp flat file format - use this if you are using a " @@ -711,9 +588,6 @@ msgstr "ADFS Identity Provider (Hosted)" msgid "{errors:title_UNKNOWNCERT}" msgstr "Unknown certificate" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Fax number" - msgid "{errors:title_LDAPERROR}" msgstr "LDAP Error" @@ -731,21 +605,12 @@ msgstr "" "misconfiguration of SimpleSAMLphp. Contact the administrator of this " "login service, and send them the error message above." -msgid "{attributes:attribute_mobile}" -msgstr "Mobile" - msgid "{admin:metadata_adfs-idp}" msgstr "ADFS IdP Metadata" -msgid "{attributes:attribute_edupersonorcid}" -msgstr "ORCID researcher identifiers" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Shib 1.3 Identity Provider (Hosted)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Preferred language" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "You did not present a valid certificate." @@ -760,15 +625,6 @@ msgstr "The following optional fields was not found" msgid "{logout:logout_only}" msgstr "No, only %SP%" -msgid "{attributes:attribute_o}" -msgstr "Organization name" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Distinguished name (DN) of person's primary Organizational Unit" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Local identity number" - msgid "{login:next}" msgstr "Next" @@ -792,9 +648,6 @@ msgstr "The given page was not found. The reason was: %REASON% The URL was: %UR msgid "{errors:title_NOCERT}" msgstr "No certificate" -msgid "{attributes:attribute_userpassword}" -msgstr "User's password hash" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Logout information lost" @@ -815,12 +668,6 @@ msgstr "" "send this metadata document to trusted partners to setup a trusted " "federation." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Private information elements" - -msgid "{status:header_wsfed}" -msgstr "WS-Fed SP Demo Example" - msgid "{admin:metadata_cert}" msgstr "Certificates" @@ -829,18 +676,12 @@ msgstr "" "Authentication failed: the certificate your browser sent is invalid or " "cannot be read" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Organization's legal name" - msgid "{status:header_shib}" msgstr "Shibboleth demo" msgid "{admin:metaconv_parse}" msgstr "Parse" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Organizational number" - msgid "Hello, Untranslated World!" msgstr "Hello, Translated World!" @@ -1207,8 +1048,8 @@ msgstr "" "login service, and send them the error message above." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Your session is valid for %SECONDS% seconds from now." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Your session is valid for %remaining% seconds from now." msgid "Domain component (DC)" msgstr "Domain component (DC)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/es/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/es/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..b90edbaf59f79fd715e0f20efd92352b32f1c976 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/es/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Nombre común (CN)" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Nombre común (CN)" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Nombre común (CN)" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Componente de dominio (DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Componente de dominio (DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Componente de dominio (DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Nombre para mostrar" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Nombre para mostrar" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Nombre para mostrar" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Página de su organización" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Página de su organización" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Página de su organización" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Nombre legal de su organización" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Nombre legal de su organización" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Nombre legal de su organización" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Afiliación" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Afiliación" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Afiliación" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Identificador del perfil de garantía" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Identificador del perfil de garantía" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Identificador del perfil de garantía" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Derecho relativo al servicio" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Derecho relativo al servicio" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Derecho relativo al servicio" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Alias" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Alias" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Alias" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "DN de su organización origen" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "DN de su organización origen" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "DN de su organización origen" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "DN de la Unidad Organizativa (OU) de su organización origen" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "DN de la Unidad Organizativa (OU) de su organización origen" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "DN de la Unidad Organizativa (OU) de su organización origen" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Afiliación primaria" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Afiliación primaria" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Afiliación primaria" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Distinguished name (DN) de la entrada del directorio que representa el identificador primario de la Unidad Organizativa." + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Distinguished name (DN) de la entrada del directorio que representa el identificador primario de la Unidad Organizativa." + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Distinguished name (DN) de la entrada del directorio que representa el identificador primario de la Unidad Organizativa." + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Identificador único de la persona en su organización de origen" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Identificador único de la persona en su organización de origen" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Identificador único de la persona en su organización de origen" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Grupo" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Grupo" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Grupo" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "ID anónimo persistente" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "ID anónimo persistente" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "ID anónimo persistente" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Número de fax" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Número de fax" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Número de fax" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Nombre" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Nombre" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Nombre" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Teléfono de su domicilio" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Teléfono de su domicilio" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Teléfono de su domicilio" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Dirección de su domicilio" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Dirección de su domicilio" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Dirección de su domicilio" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "Fotografía en JPEG" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "Fotografía en JPEG" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "Fotografía en JPEG" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Localidad" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Localidad" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Localidad" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "URI etiquetado" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "URI etiquetado" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "URI etiquetado" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "Correo electrónico" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "Correo electrónico" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "Correo electrónico" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Gestor" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Gestor" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Gestor" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Teléfono móvil" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Teléfono móvil" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Teléfono móvil" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Número de la organización" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Número de la organización" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Número de la organización" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Fecha de nacimiento" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Fecha de nacimiento" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Fecha de nacimiento" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Número de identificación local" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Número de identificación local" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Número de identificación local" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Número de la Seguridad Social" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Número de la Seguridad Social" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Número de la Seguridad Social" + +# English string: Organization name +msgid "o" +msgstr "Nombre de la organización" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Nombre de la organización" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Nombre de la organización" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Unidad organizativa" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Unidad organizativa" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Unidad organizativa" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "Identificador opaco en su organización específico para este servicio" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "Identificador opaco en su organización específico para este servicio" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "Fotografía" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "Fotografía" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "Fotografía" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Código postal" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Código postal" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Código postal" + +# English string: Postal address +msgid "postalAddress" +msgstr "Dirección postal" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Dirección postal" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Dirección postal" + +# English string: Postal code +msgid "postalCode" +msgstr "Código postal" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Código postal" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Código postal" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Idioma preferido" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Idioma preferido" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Idioma preferido" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "Pseudónimo" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "Pseudónimo" + +msgid "urn:oid:2.5.4.65" +msgstr "Pseudónimo" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "Nacionalidad" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "Nacionalidad" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "Nacionalidad" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "Nacionalidad" + +msgid "schacCountryOfResidence" +msgstr "País de residencia" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "País de residencia" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "País de residencia" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "País de residencia" + +msgid "schacDateOfBirth" +msgstr "Fecha de nacimiento" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "Fecha de nacimiento" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "Fecha de nacimiento" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "Fecha de nacimiento" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "Género" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "Género" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "Género" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "Género" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Identificador único de la organización de origen" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Identificador único de la organización de origen" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Identificador único de la organización de origen" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Identificador único de la organización de origen" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "Lengua materna" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "Lengua materna" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "Lengua materna" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "Lengua materna" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "Lugar de nacimiento" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "Lugar de nacimiento" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "Lugar de nacimiento" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "Lugar de nacimiento" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "Primer apellido" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "Primer apellido" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "Primer apellido" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "Primer apellido" + +msgid "schacSn2" +msgstr "Segundo apellido" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "Segundo apellido" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "Segundo apellido" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "Segundo apellido" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Elementos de información privada" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Elementos de información privada" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Elementos de información privada" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Elementos de información privada" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "Año de nacimiento" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "Año de nacimiento" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "Año de nacimiento" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "Año de nacimiento" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Apellidos" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Apellidos" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Apellidos" + +msgid "st" +msgstr "Calle" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "Calle" + +msgid "urn:oid:2.5.4.8" +msgstr "Calle" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Calle" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Calle" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Calle" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "Identificador opaco en su organización" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "Identificador opaco en su organización" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Número de teléfono" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Número de teléfono" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Número de teléfono" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Tratamiento" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Tratamiento" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Tratamiento" + +# English string: User ID +msgid "uid" +msgstr "Identificador de usuario" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Identificador de usuario" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Identificador de usuario" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Contraseña codificada" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Contraseña codificada" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Contraseña codificada" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Nombre común (CN)" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Nombre en Facebook" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Nombre para mostrar" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Alias" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Nombre para mostrar" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Nombre para mostrar" + +# English string: Display name +msgid "twitter.name" +msgstr "Nombre de usuario en Twitter" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Nombre de usuario en Windows Live" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Nombre de usuario de Facebook" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Nombre de usuario de LinkedIn" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Identificador único de la persona en su organización de origen" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Nombre de usuario de Windows Live" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Identificador único de la persona en su organización de origen" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "ID anónimo persistente" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "ID anónimo persistente" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "ID anónimo persistente" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "ID anónimo persistente" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Número de fax" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Nombre en Facebook" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Nombre en LinkedIn" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Nombre" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Nombre en Windows Live" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Nombre en Windows Live" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Teléfono de su domicilio" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Localidad" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "Perfil de Facebook" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "Perfil de Twitter" + +# English string: Mail +msgid "facebook.email" +msgstr "Correo electrónico asociado con Facebook" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "Correo electrónico" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "Correo electrónico" + +# English string: Mail +msgid "windowslive_mail" +msgstr "Correo electrónico de Windows Live" + +# English string: Mail +msgid "windowslive.mail" +msgstr "Correo electrónico de Windows Live" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Teléfono móvil" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Nombre de la organización" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Código postal" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Código postal" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Idioma preferido en Facebook" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Idioma preferido" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Idioma preferido" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Idioma preferido en Twitter" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Idioma preferido en Windows Live" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Apellidos en Facebook" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Apellidos en LinkedIn" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Apellidos" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Apellidos en Windows Live" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Apellidos en Windows Live" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Número de teléfono" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Número de teléfono" + +# English string: Title +msgid "linkedin.headline" +msgstr "Encabezado de LinkedIn" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Tratamiento" + +# English string: User ID +msgid "facebook.username" +msgstr "Identificador de usuario" + +# English string: User ID +msgid "linkedin.id" +msgstr "Identificador de usuario de LinkedIn" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Identificador de usuario de Twitter" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Identificador de usuario de Windows Live" + +# English string: User ID +msgid "windowslive.id" +msgstr "Identificador de Windows Live" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/es/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/es/LC_MESSAGES/messages.po index c68754ea35cc5241cf60f8fe8575c633818c82ab..c6eb2c1f37cf120a6e269b3b797117896bb5b3a2 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/es/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/es/LC_MESSAGES/messages.po @@ -51,12 +51,6 @@ msgstr "Error al cargar los metadatos" msgid "{admin:metaconv_title}" msgstr "Analizar metadatos" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Derecho relativo al servicio" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "Fotografía en JPEG" - msgid "{admin:cfg_check_noerrors}" msgstr "No se han encontrado errores" @@ -139,9 +133,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Volver a la página de instalación de SimpleSAMLphp" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "Proveedor de Identidad WS-Federation (remoto)" - msgid "{errors:error_header}" msgstr "Error de SimpleSAMLphp" @@ -160,18 +151,12 @@ msgstr "" "cerciórese de que la configuración de los metadatos es " "correcta." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "DN de su organización origen" - msgid "{errors:title_BADREQUEST}" msgstr "Recibida una solicitud incorrecta" msgid "{status:sessionsize}" msgstr "Tamaño de la sesión: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Dirección postal" - msgid "{logout:title}" msgstr "Desconectado" @@ -199,32 +184,17 @@ msgstr "En espera" msgid "{admin:cfg_check_header}" msgstr "Comprobar configuración" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Grupo" - -msgid "{attributes:attribute_sn}" -msgstr "Apellidos" - msgid "{admin:debug_sending_message_send}" msgstr "Enviar mensaje" msgid "{status:logout}" msgstr "Salir" -msgid "{attributes:attribute_organisationname}" -msgstr "Nombre de la organización" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Número de teléfono" - msgid "{errors:descr_DISCOPARAMS}" msgstr "" "Los parametros enviados al servicio de descubrimiento no se ajustan a la " "especificación." -msgid "{attributes:attribute_mail}" -msgstr "Correo electrónico" - msgid "{errors:descr_CREATEREQUEST}" msgstr "Se ha producido un error al tratar de crear la petición SAML." @@ -234,9 +204,6 @@ msgstr "Datos opcionales" msgid "{logout:return}" msgstr "Volver al servicio" -msgid "{attributes:attribute_displayname}" -msgstr "Nombre para mostrar" - msgid "{admin:metadata_xmlurl}" msgstr "Puede <a href=\"%METAURL%\">obtener una URL con los metadatos xml</a>:" @@ -248,9 +215,6 @@ msgstr "" "Puede desactivar el modo de depuración en el fichero de configuración " "global de SimpleSAMLphp <tt>config/config.php</tt>." -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Dirección de su domicilio" - msgid "{disco:select}" msgstr "Seleccione" @@ -280,9 +244,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "¿Desea desconectarse de todos los servicios que se muestran más arriba?" -msgid "{attributes:attribute_title}" -msgstr "Tratamiento" - msgid "{errors:title_NOACCESS}" msgstr "Acceso no definido" @@ -297,9 +258,6 @@ msgstr "RelayState no definido" msgid "{errors:descr_NOSTATE}" msgstr "Información de estado perdida y no hay manera de restablecer la petición" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Número de la Seguridad Social" - msgid "{login:password}" msgstr "Clave de acceso" @@ -326,24 +284,15 @@ msgstr "Error al procesar la solicitud de cierre de sesión" msgid "{admin:metaover_errorentry}" msgstr "Error en los metadatos de la entrada" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Afiliación" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Metadatos no econtrados" -msgid "{attributes:attribute_givenname}" -msgstr "Nombre" - msgid "{login:contact_info}" msgstr "Información de contacto:" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Excepción no controlada" -msgid "{status:validfor}" -msgstr "Su sesión será valida durante %SECONDS% segundos." - msgid "{status:header_saml20_sp}" msgstr "Ejemplo de SAML 2.0 SP" @@ -382,35 +331,23 @@ msgstr "" "Fallo de autenticación:el certificado enviado por su navegador es " "desconocido" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Página de su organización" - msgid "{logout:logging_out_from}" msgstr "Desconectarse de los siguientes servicios:" msgid "{logout:loggedoutfrom}" msgstr "Ha sido desconectado correctamente de %SP%." -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "Proveedor de Servicios WS-Federation (local)" - msgid "{errors:errorreport_text}" msgstr "El informe de error ha sido enviado a los administradores." msgid "{status:subject_header}" msgstr "Identificador SAML" -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Fecha de nacimiento" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "" "Se ha producido un error al tratar de procesar la solicitud de cierre de " "sesión." -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "ID anónimo persistente" - msgid "{logout:success}" msgstr "" "Ha sido correctamente desconectado de todo los servicios listados a " @@ -422,12 +359,6 @@ msgstr "Avisos" msgid "{errors:descr_USERABORTED}" msgstr "La Autenticacion fue abortada por el usuario" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Afiliación primaria" - -msgid "{attributes:attribute_postalcode}" -msgstr "Código postal" - msgid "{errors:descr_CASERROR}" msgstr "Error al tratar de comunicar con el servidor CAS" @@ -440,9 +371,6 @@ msgstr "Metadatos SP SAML 2.0" msgid "{admin:metaconv_converted}" msgstr "Metadatos convertidos" -msgid "{attributes:attribute_cn}" -msgstr "Nombre común (CN)" - msgid "{logout:completed}" msgstr "Terminado" @@ -451,18 +379,9 @@ msgstr "" "La clave de acceso del fichero de configuración (auth.adminpassword) no " "ha sido cambiada de su valor por defecto. Por favor, edite dicho fichero" -msgid "{attributes:attribute_ou}" -msgstr "Unidad organizativa" - msgid "{general:service_provider}" msgstr "Proveedor de servicio" -msgid "{attributes:attribute_homephone}" -msgstr "Teléfono de su domicilio" - -msgid "{attributes:attribute_dc}" -msgstr "Componente de dominio (DC)" - msgid "{errors:descr_BADREQUEST}" msgstr "Existe un error en la solicitud de esta página. La razón es: %REASON%" @@ -481,23 +400,14 @@ msgstr "Indique su nombre de usuario y clave de acceso" msgid "{errors:report_explain}" msgstr "Explique lo que ha hecho para llegar a este error..." -msgid "{attributes:attribute_manager}" -msgstr "Gestor" - msgid "{errors:title_ACSPARAMS}" msgstr "Falta la respuesta SAML" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Alias" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Usted accedió a la interfaz SingleLogoutService pero no incluyó un " "mensaje SAML LogoutRequest o LogoutResponse" -msgid "{attributes:attribute_street}" -msgstr "Calle" - msgid "{login:organization}" msgstr "Organización" @@ -539,9 +449,6 @@ msgstr "Seleccionar la organización origen" msgid "{admin:cfg_check_superfluous}" msgstr "Opciones sobrantes en el fichero de configuración" -msgid "{attributes:attribute_labeleduri}" -msgstr "URI etiquetado" - msgid "{errors:report_email}" msgstr "Correo-e:" @@ -556,9 +463,6 @@ msgstr "" "El iniciador de esta solicitud no proporcionó el parámetro " "RelayState que indica donde ir a continuación" -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Nombre legal" - msgid "{status:header_diagnostics}" msgstr "Diagnóstico SimpleSAMLphp" @@ -568,9 +472,6 @@ msgstr "" "si su sesión ha caducado, cuanto queda hasta que lo haga y todos los " "atributos existentes en su sesión." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Identificador único de la organización de origen" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Página no encontrada" @@ -591,33 +492,18 @@ msgstr "" msgid "{errors:title_NOTVALIDCERT}" msgstr "Certificado no válido" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "DN de la Unidad Organizativa (OU) de su organización origen" - msgid "{general:remember}" msgstr "Recordar el consentimiento" msgid "{disco:selectidp}" msgstr "Seleccione su proveedor de identidad" -msgid "{attributes:attribute_postofficebox}" -msgstr "Código postal" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Identificador único de la persona en su organización de origen" - msgid "{login:help_desk_email}" msgstr "Enviar correo electrónico al soporte técnico" msgid "{login:help_desk_link}" msgstr "Página de soporte técnico" -msgid "{attributes:attribute_ismemberof}" -msgstr "Membresía a grupos" - -msgid "{attributes:attribute_uid}" -msgstr "Identificador de usuario" - msgid "{login:remember_me}" msgstr "Recordarme" @@ -641,12 +527,6 @@ msgstr "Recordar mi elección" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "Proveedor de Servicio SAML 2.0 (local)" -msgid "{attributes:attribute_l}" -msgstr "Localidad" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Identificador del perfil de garantía" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "En un fichero de formato SimpleSAMLphp - utilice esta opción si está " @@ -697,9 +577,6 @@ msgstr "Proveedor de Identidad ADFS (local)" msgid "{errors:title_UNKNOWNCERT}" msgstr "Certificado desconocido" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Número de fax" - msgid "{errors:title_LDAPERROR}" msgstr "Error de LDAP" @@ -719,18 +596,12 @@ msgstr "" "administrador de este servicio de conexión y envíele el mensaje de error " "anterior." -msgid "{attributes:attribute_mobile}" -msgstr "Teléfono móvil" - msgid "{admin:metadata_adfs-idp}" msgstr "Metadatos IdP ADFS" msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Proveedor de Identidad Shib 1.3 (local)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Idioma preferido" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "No se ha podido validar el certificado recibido" @@ -745,17 +616,6 @@ msgstr "Los siguientes datos opcionales no se han encontrado" msgid "{logout:logout_only}" msgstr "No, sólo %SPS" -msgid "{attributes:attribute_o}" -msgstr "Nombre de la organización" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "" -"Distinguished name (DN) de la entrada del directorio que representa el " -"identificador primario de la Unidad Organizativa." - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Número de identificación local" - msgid "{login:next}" msgstr "Siguiente" @@ -775,9 +635,6 @@ msgstr "" msgid "{errors:title_NOCERT}" msgstr "No certificado" -msgid "{attributes:attribute_userpassword}" -msgstr "Clave o contraseña y método de encriptación utilizado" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Se perdió la información para cerrar la sesión" @@ -793,12 +650,6 @@ msgstr "" " documento de metadatos a sus socios de confianza para configurar una " "federación." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Elementos de información privada" - -msgid "{status:header_wsfed}" -msgstr "Ejemplo WS-Fed SP" - msgid "{admin:metadata_cert}" msgstr "Certificados" @@ -807,18 +658,12 @@ msgstr "" "Fallo de autenticación: El certificado enviado por su navegador es " "inválido o no puede ser leído" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Nombre legal de su organización" - msgid "{status:header_shib}" msgstr "Ejemplo Shibboleth" msgid "{admin:metaconv_parse}" msgstr "Analizar" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Número de la organización" - msgid "Hello, Untranslated World!" msgstr "Hola, mundo traducido!" @@ -1176,8 +1021,8 @@ msgstr "" "anterior." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Su sesión será valida durante %SECONDS% segundos." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Su sesión será valida durante %remaining% segundos." msgid "Domain component (DC)" msgstr "Componente de dominio (DC)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/et/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/et/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..262432c553426d255cc7e24f5d302e0f7cf2ac64 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/et/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: et\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Üldnimi" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Üldnimi" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Üldnimi" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Domeeni komponent (DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Domeeni komponent (DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Domeeni komponent (DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Kuvatav nimi" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Kuvatav nimi" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Kuvatav nimi" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Organisatsiooni koduleht" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Organisatsiooni koduleht" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Organisatsiooni koduleht" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Organisatsiooni ametlik nimetus" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Organisatsiooni ametlik nimetus" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Organisatsiooni ametlik nimetus" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Rollid" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Rollid" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Rollid" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Identiteedi tagamise profiil" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Identiteedi tagamise profiil" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Identiteedi tagamise profiil" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Volitused selle teenuse suhtes" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Volitused selle teenuse suhtes" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Volitused selle teenuse suhtes" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Hüüdnimi" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Hüüdnimi" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Hüüdnimi" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Koduorganisatsiooni unikaalne nimi (DN)" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Koduorganisatsiooni unikaalne nimi (DN)" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Koduorganisatsiooni unikaalne nimi (DN)" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Koduorganisatsiooni allüksuse unikaalne nimi (DN)" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Koduorganisatsiooni allüksuse unikaalne nimi (DN)" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Koduorganisatsiooni allüksuse unikaalne nimi (DN)" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Peamine kuuluvus" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Peamine kuuluvus" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Peamine kuuluvus" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Peamise allüksuse unikaalne nimi (DN)" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Peamise allüksuse unikaalne nimi (DN)" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Peamise allüksuse unikaalne nimi (DN)" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Isiku põhinimi koduasutuses" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Isiku põhinimi koduasutuses" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Isiku põhinimi koduasutuses" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Rollid koduorganisatsioonis" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Rollid koduorganisatsioonis" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Rollid koduorganisatsioonis" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Püsiv pseudonüümne ID" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Püsiv pseudonüümne ID" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Püsiv pseudonüümne ID" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Faksinumber" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Faksinumber" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Faksinumber" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Eesnimi" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Eesnimi" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Eesnimi" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Kodune telefon" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Kodune telefon" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Kodune telefon" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Kodune postiaadress" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Kodune postiaadress" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Kodune postiaadress" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "JPEG-foto" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "JPEG-foto" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "JPEG-foto" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Asukoht" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Asukoht" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Asukoht" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "Sildistatud URI" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "Sildistatud URI" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "Sildistatud URI" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "E-post" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "E-post" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "E-post" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Juhataja" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Juhataja" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Juhataja" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Mobiil" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Mobiil" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Mobiil" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Registrikood" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Registrikood" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Registrikood" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Sünniaeg" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Sünniaeg" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Sünniaeg" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Kohalik isikukood" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Kohalik isikukood" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Kohalik isikukood" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Isikukood" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Isikukood" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Isikukood" + +# English string: Organization name +msgid "o" +msgstr "Organisatsiooni nimi" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Organisatsiooni nimi" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Organisatsiooni nimi" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Allüksus" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Allüksus" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Allüksus" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Postkast" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Postkast" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Postkast" + +# English string: Postal address +msgid "postalAddress" +msgstr "Postiaadress" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Postiaadress" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Postiaadress" + +# English string: Postal code +msgid "postalCode" +msgstr "Postiindeks" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Postiindeks" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Postiindeks" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Eelistatud keel" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Eelistatud keel" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Eelistatud keel" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Koduorganisatsiooni domeen" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Koduorganisatsiooni domeen" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Koduorganisatsiooni domeen" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Koduorganisatsiooni domeen" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Privaatandmete elemendid" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Privaatandmete elemendid" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Privaatandmete elemendid" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Privaatandmete elemendid" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Perekonnanimi" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Perekonnanimi" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Perekonnanimi" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Tänav" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Tänav" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Tänav" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Telefoninumber" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Telefoninumber" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Telefoninumber" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Tiitel" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Tiitel" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Tiitel" + +# English string: User ID +msgid "uid" +msgstr "Kasutaja ID" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Kasutaja ID" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Kasutaja ID" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Kasutaja parooliräsi" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Kasutaja parooliräsi" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Kasutaja parooliräsi" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Üldnimi" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Kuvatav nimi" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Kuvatav nimi" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Kuvatav nimi" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Kuvatav nimi" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Kuvatav nimi" + +# English string: Display name +msgid "twitter.name" +msgstr "Kuvatav nimi" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Kuvatav nimi" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Isiku põhinimi koduasutuses" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Isiku põhinimi koduasutuses" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Isiku põhinimi koduasutuses" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Isiku põhinimi koduasutuses" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Isiku põhinimi koduasutuses" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Püsiv pseudonüümne ID" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Püsiv pseudonüümne ID" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Püsiv pseudonüümne ID" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Püsiv pseudonüümne ID" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Faksinumber" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Eesnimi" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Eesnimi" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Eesnimi" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Eesnimi" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Eesnimi" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Kodune telefon" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Asukoht" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "Sildistatud URI" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "Sildistatud URI" + +# English string: Mail +msgid "facebook.email" +msgstr "E-post" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "E-post" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "E-post" + +# English string: Mail +msgid "windowslive_mail" +msgstr "E-post" + +# English string: Mail +msgid "windowslive.mail" +msgstr "E-post" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Mobiil" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Organisatsiooni nimi" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Postiindeks" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Postiindeks" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Eelistatud keel" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Eelistatud keel" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Eelistatud keel" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Eelistatud keel" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Eelistatud keel" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Perekonnanimi" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Perekonnanimi" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Perekonnanimi" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Perekonnanimi" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Perekonnanimi" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Telefoninumber" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Telefoninumber" + +# English string: Title +msgid "linkedin.headline" +msgstr "Tiitel" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Tiitel" + +# English string: User ID +msgid "facebook.username" +msgstr "Kasutaja ID" + +# English string: User ID +msgid "linkedin.id" +msgstr "Kasutaja ID" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Kasutaja ID" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Kasutaja ID" + +# English string: User ID +msgid "windowslive.id" +msgstr "Kasutaja ID" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/et/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/et/LC_MESSAGES/messages.po index f0010796e41d6321f9184d42551d729b6d07eb5d..c4eb2f2a5f9d475ea389fe5b538e0da456ac0389 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/et/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/et/LC_MESSAGES/messages.po @@ -51,12 +51,6 @@ msgstr "Metaandmete laadimise tõrge" msgid "{admin:metaconv_title}" msgstr "Metaandmete parsija" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Volitused selle teenuse suhtes" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "JPEG-foto" - msgid "{admin:cfg_check_noerrors}" msgstr "Tõrkeid ei leitud" @@ -133,9 +127,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Mine tagasi SimpleSAMLphp paigaldusleheküljele" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "WS-Federation identiteedipakkuja (kaug)" - msgid "{errors:error_header}" msgstr "SimpleSAMLphp tõrge" @@ -153,18 +144,12 @@ msgstr "" "selle teenuse administraator, siis peaksid kontrollima, et metaandmete " "seadistused oleks korrektselt seadistatud." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Koduorganisatsiooni unikaalne nimi (DN)" - msgid "{errors:title_BADREQUEST}" msgstr "Saabus halb päring" msgid "{status:sessionsize}" msgstr "Sessiooni suurus: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Postiaadress" - msgid "{logout:title}" msgstr "Logis välja" @@ -186,30 +171,15 @@ msgstr "Ootel" msgid "{admin:cfg_check_header}" msgstr "Seadistuste kontroll" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Rollid koduorganisatsioonis" - -msgid "{attributes:attribute_sn}" -msgstr "Perekonnanimi" - msgid "{admin:debug_sending_message_send}" msgstr "Saada teade" msgid "{status:logout}" msgstr "Logi välja" -msgid "{attributes:attribute_organisationname}" -msgstr "Organisatsiooni nimi" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Telefoninumber" - msgid "{errors:descr_DISCOPARAMS}" msgstr "Tuvastusteenusele saadetud parameetrid ei vastanud nõuetele." -msgid "{attributes:attribute_mail}" -msgstr "E-post" - msgid "{errors:descr_CREATEREQUEST}" msgstr "SAML päringu loomisel ilmnes tõrge." @@ -219,9 +189,6 @@ msgstr "Lisaväljad" msgid "{logout:return}" msgstr "Tagasi teenuse juurde" -msgid "{attributes:attribute_displayname}" -msgstr "Kuvatav nimi" - msgid "{admin:metadata_xmlurl}" msgstr "" "<a href=\"%METAURL%\">Metaandmete XML-i on võimalik saada spetsiaalselt " @@ -235,9 +202,6 @@ msgstr "" "Silumisrežiimi on võimalik välja lülitada SimpleSAMLphp " "seadistustefailist <tt>config/config.php</tt>." -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Kodune postiaadress" - msgid "{disco:select}" msgstr "Vali" @@ -264,9 +228,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Kas sa soovid kõigist ülal loetletud teenustest välja logida?" -msgid "{attributes:attribute_title}" -msgstr "Tiitel" - msgid "{errors:title_NOACCESS}" msgstr "Ligipääs puudub" @@ -281,9 +242,6 @@ msgstr "RelayState puudub" msgid "{errors:descr_NOSTATE}" msgstr "Olekuinfo läks kaduma ja päringut pole võimalik uuesti käivitada" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Isikukood" - msgid "{login:password}" msgstr "Parool" @@ -310,24 +268,15 @@ msgstr "Tõrge väljalogimispäringu töötlemisel" msgid "{admin:metaover_errorentry}" msgstr "Tõrge selles metaandmete kirjes" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Rollid" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Metaandmeid ei leitud" -msgid "{attributes:attribute_givenname}" -msgstr "Eesnimi" - msgid "{login:contact_info}" msgstr "Kontaktinfo:" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Käsitlemata tõrge" -msgid "{status:validfor}" -msgstr "Sinu sessioon kehtib veel %SECONDS% sekundit." - msgid "{status:header_saml20_sp}" msgstr "SAML 2.0 SP demonäide" @@ -361,30 +310,18 @@ msgstr "Vali seadistustefail, mida kontrollida:" msgid "{errors:descr_UNKNOWNCERT}" msgstr "Autentimine ei õnnestunud: brauser saatis tundmatu sertifikaadi" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Organisatsiooni koduleht" - msgid "{logout:logging_out_from}" msgstr "Välja logimine järgmistest teenustest:" msgid "{logout:loggedoutfrom}" msgstr "Sa oled nüüd edukalt välja logitud teenusest %SP%." -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "WS-Federation teenusepakkuja (hostitud)" - msgid "{errors:errorreport_text}" msgstr "Tõrkeraport saadeti administraatoritele." -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Sünniaeg" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "Väljalogimispäringu töötlemisel tekkis tõrge" -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Püsiv pseudonüümne ID" - msgid "{logout:success}" msgstr "Sa oled kõigist ülal loetletud teenustest edukalt välja logitud." @@ -394,12 +331,6 @@ msgstr "Märkused" msgid "{errors:descr_USERABORTED}" msgstr "Autentimine katkestati kasutaja poolt" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Peamine kuuluvus" - -msgid "{attributes:attribute_postalcode}" -msgstr "Postiindeks" - msgid "{errors:descr_CASERROR}" msgstr "CAS-serveriga suhtlemisel tekkis tõrge." @@ -412,9 +343,6 @@ msgstr "SAML 2.0 SP metaandmed" msgid "{admin:metaconv_converted}" msgstr "Teisendatud metaandmed" -msgid "{attributes:attribute_cn}" -msgstr "Üldnimi" - msgid "{logout:completed}" msgstr "Lõpetatud" @@ -423,18 +351,9 @@ msgstr "" "Seadistustes on vaikimisi parool (auth.adminpassword) muutmata. Palun " "muuda seadistustefaili." -msgid "{attributes:attribute_ou}" -msgstr "Allüksus" - msgid "{general:service_provider}" msgstr "Teenusepakkuja" -msgid "{attributes:attribute_homephone}" -msgstr "Kodune telefon" - -msgid "{attributes:attribute_dc}" -msgstr "Domeeni komponent (DC)" - msgid "{errors:descr_BADREQUEST}" msgstr "Leheküljele esitati vigane päring. Põhjus: %REASON%" @@ -453,23 +372,14 @@ msgstr "Sisesta oma kasutajatunnus ja parool" msgid "{errors:report_explain}" msgstr "Kirjelda, millega tegelesid, kui see tõrge ilmnes..." -msgid "{attributes:attribute_manager}" -msgstr "Juhataja" - msgid "{errors:title_ACSPARAMS}" msgstr "SAML-vastust ei pakutud" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Hüüdnimi" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Sa külastasid SingleLogoutService liidest, kui ei pakkunud SAML " "LogoutRequest või LogoutResponse." -msgid "{attributes:attribute_street}" -msgstr "Tänav" - msgid "{login:organization}" msgstr "Organisatsioon" @@ -505,9 +415,6 @@ msgstr "Vali koduorganisatsioon" msgid "{admin:cfg_check_superfluous}" msgstr "Üleliigne seadistus seadistustefailis" -msgid "{attributes:attribute_labeleduri}" -msgstr "Sildistatud URI" - msgid "{errors:report_email}" msgstr "E-posti aadress:" @@ -522,9 +429,6 @@ msgstr "" "Selle päringu algataja ei täitnud RelayState parameetrit, mis näitab, " "kuhu edasi minna." -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Ametlik nimi" - msgid "{status:header_diagnostics}" msgstr "SimpleSAMLphp diagnostika" @@ -534,9 +438,6 @@ msgstr "" "sessioon on aegunud, kui kaua see veel kestab ja kõiki teisi sessiooniga " "seotud atribuute." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Koduorganisatsiooni domeen" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Lehekülge ei leitud" @@ -555,30 +456,18 @@ msgstr "SAML olemi detailide vaatamiseks klõpsa SAML olemi päisel." msgid "{errors:title_NOTVALIDCERT}" msgstr "Vigane sertifikaat" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Koduorganisatsiooni allüksuse unikaalne nimi (DN)" - msgid "{general:remember}" msgstr "Jäta meelde" msgid "{disco:selectidp}" msgstr "Vali oma identiteedipakkuja" -msgid "{attributes:attribute_postofficebox}" -msgstr "Postkast" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Isiku põhinimi koduasutuses" - msgid "{login:help_desk_email}" msgstr "Saada kasutajatoele e-kiri." msgid "{login:help_desk_link}" msgstr "Kasutajatoe koduleht" -msgid "{attributes:attribute_uid}" -msgstr "Kasutaja ID" - msgid "{errors:title_CASERROR}" msgstr "CAS tõrge" @@ -599,12 +488,6 @@ msgstr "Jäta valik meelde" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "SAML 2.0 teenusepakkuja (hostitud)" -msgid "{attributes:attribute_l}" -msgstr "Asukoht" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Identiteedi tagamise profiil" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "SimpleSAMLphp formaadis: kasuta seda siis, kui ka teine pool kasutab " @@ -649,9 +532,6 @@ msgstr "Teade" msgid "{errors:title_UNKNOWNCERT}" msgstr "Tundmatu sertifikaat" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Faksinumber" - msgid "{errors:title_LDAPERROR}" msgstr "LDAP-tõrge" @@ -670,15 +550,9 @@ msgstr "" "valesti seadistamise tõttu. Võta ühendust selle sisselogimisteenuse " "administraatoriga ja saada talle ülalolev veateade." -msgid "{attributes:attribute_mobile}" -msgstr "Mobiil" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Shib 1.3 identiteedipakkuja (hostitud)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Eelistatud keel" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Sa ei esitanud kehtivat sertifikaati." @@ -691,15 +565,6 @@ msgstr "Järgmisi lisavälju ei leitud" msgid "{logout:logout_only}" msgstr "Ei, ainult %SP%" -msgid "{attributes:attribute_o}" -msgstr "Organisatsiooni nimi" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Peamise allüksuse unikaalne nimi (DN)" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Kohalik isikukood" - msgid "{login:next}" msgstr "Edasi" @@ -715,9 +580,6 @@ msgstr "Seda lehekülge ei leitud. Põhjus oli %REASON%. Aadress oli: %URL%" msgid "{errors:title_NOCERT}" msgstr "Sertifikaat puudub" -msgid "{attributes:attribute_userpassword}" -msgstr "Kasutaja parooliräsi" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Väljalogimisinfo läks kaotsi" @@ -733,12 +595,6 @@ msgstr "" "need metaandmed usaldatavatele partneritele usaldatava föderatsiooni " "loomiseks." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Privaatandmete elemendid" - -msgid "{status:header_wsfed}" -msgstr "WS-Fed SP demonäide" - msgid "{admin:metadata_cert}" msgstr "Sertifikaadid" @@ -747,18 +603,12 @@ msgstr "" "Autentimine ei õnnestunud: brauseri poolt saadetud sertifikaat on vigane " "või pole loetav" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Organisatsiooni ametlik nimetus" - msgid "{status:header_shib}" msgstr "Shibbolethi demo" msgid "{admin:metaconv_parse}" msgstr "Parsi" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Registrikood" - msgid "Person's principal name at home organization" msgstr "Isiku põhinimi koduasutuses" @@ -1088,8 +938,8 @@ msgstr "" "administraatoriga ja saada talle ülalolev veateade." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Sinu sessioon kehtib veel %SECONDS% sekundit." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Sinu sessioon kehtib veel %remaining% sekundit." msgid "Domain component (DC)" msgstr "Domeeni komponent (DC)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/eu/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/eu/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..223120040d7451d5b130982e7dc383dcabba67e9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/eu/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: eu\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Izen arrunta (CN)" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Izen arrunta (CN)" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Izen arrunta (CN)" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Domeinuaren osagaia (DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Domeinuaren osagaia (DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Domeinuaren osagaia (DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Bistaratzeko izena" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Bistaratzeko izena" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Bistaratzeko izena" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Erakundearen hasiera-orria" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Erakundearen hasiera-orria" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Erakundearen hasiera-orria" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Erakundearen izen legala" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Erakundearen izen legala" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Erakundearen izen legala" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Afiliazioa" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Afiliazioa" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Afiliazioa" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Bermearen profilaren identifikatzailea" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Bermearen profilaren identifikatzailea" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Bermearen profilaren identifikatzailea" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Zerbitzuari dagokion eskubidea" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Zerbitzuari dagokion eskubidea" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Zerbitzuari dagokion eskubidea" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Ezizena" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Ezizena" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Ezizena" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Pertsonaren jatorrizko erakundearen izen osatua (DN)" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Pertsonaren jatorrizko erakundearen izen osatua (DN)" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Pertsonaren jatorrizko erakundearen izen osatua (DN)" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Pertsonaren jatorrizko erakundeko antolamendu-unitatearen izen osatua (DN)" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Pertsonaren jatorrizko erakundeko antolamendu-unitatearen izen osatua (DN)" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Pertsonaren jatorrizko erakundeko antolamendu-unitatearen izen osatua (DN)" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Lehen afiliazioa" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Lehen afiliazioa" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Lehen afiliazioa" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Pertsonaren antolamendu-unitatearen izen osatua (DN)" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Pertsonaren antolamendu-unitatearen izen osatua (DN)" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Pertsonaren antolamendu-unitatearen izen osatua (DN)" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Jatorrizko erakundean pertsonak duen izen nagusia" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Jatorrizko erakundean pertsonak duen izen nagusia" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Jatorrizko erakundean pertsonak duen izen nagusia" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Afiliazioa jatorrizko erakundean" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Afiliazioa jatorrizko erakundean" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Afiliazioa jatorrizko erakundean" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Goitizen ID etengabea" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Goitizen ID etengabea" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Goitizen ID etengabea" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Fax-zenbakia" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Fax-zenbakia" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Fax-zenbakia" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Izena" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Izena" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Izena" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Etxeko telefonoa" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Etxeko telefonoa" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Etxeko telefonoa" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Etxeko helbidea" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Etxeko helbidea" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Etxeko helbidea" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "JPEG argazkia" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "JPEG argazkia" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "JPEG argazkia" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Herria" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Herria" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Herria" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "URI etiketatua" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "URI etiketatua" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "URI etiketatua" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "Posta" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "Posta" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "Posta" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Kudeatzailea" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Kudeatzailea" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Kudeatzailea" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Mugikorra" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Mugikorra" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Mugikorra" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Erakundearen zenbakia" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Erakundearen zenbakia" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Erakundearen zenbakia" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Jaioteguna" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Jaioteguna" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Jaioteguna" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Tokiko zenbaki identifikatzailea" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Tokiko zenbaki identifikatzailea" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Tokiko zenbaki identifikatzailea" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Gizarte-segurantzako zenbakia" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Gizarte-segurantzako zenbakia" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Gizarte-segurantzako zenbakia" + +# English string: Organization name +msgid "o" +msgstr "Erakundearen izena" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Erakundearen izena" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Erakundearen izena" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Antolamendu-unitatea" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Antolamendu-unitatea" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Antolamendu-unitatea" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Posta-bulegoko ontzia" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Posta-bulegoko ontzia" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Posta-bulegoko ontzia" + +# English string: Postal address +msgid "postalAddress" +msgstr "Posta-helbidea" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Posta-helbidea" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Posta-helbidea" + +# English string: Postal code +msgid "postalCode" +msgstr "Posta-kodea" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Posta-kodea" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Posta-kodea" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Hizkuntza lehenetsia" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Hizkuntza lehenetsia" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Hizkuntza lehenetsia" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Jatorrizko erakundearen domeinu izena" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Jatorrizko erakundearen domeinu izena" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Jatorrizko erakundearen domeinu izena" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Jatorrizko erakundearen domeinu izena" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Informazio pribatuaren elementuak" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Informazio pribatuaren elementuak" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Informazio pribatuaren elementuak" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Informazio pribatuaren elementuak" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Abizenak" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Abizenak" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Abizenak" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Kalea" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Kalea" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Kalea" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Telefono zenbakia" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Telefono zenbakia" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Telefono zenbakia" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Tratamendua" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Tratamendua" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Tratamendua" + +# English string: User ID +msgid "uid" +msgstr "Erabiltzaile ID" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Erabiltzaile ID" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Erabiltzaile ID" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Erabiltzailearen pasahitzaren hash-a" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Erabiltzailearen pasahitzaren hash-a" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Erabiltzailearen pasahitzaren hash-a" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Izen arrunta (CN)" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Bistaratzeko izena" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Bistaratzeko izena" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Bistaratzeko izena" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Bistaratzeko izena" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Bistaratzeko izena" + +# English string: Display name +msgid "twitter.name" +msgstr "Bistaratzeko izena" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Bistaratzeko izena" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Jatorrizko erakundean pertsonak duen izen nagusia" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Jatorrizko erakundean pertsonak duen izen nagusia" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Jatorrizko erakundean pertsonak duen izen nagusia" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Jatorrizko erakundean pertsonak duen izen nagusia" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Jatorrizko erakundean pertsonak duen izen nagusia" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Goitizen ID etengabea" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Goitizen ID etengabea" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Goitizen ID etengabea" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Goitizen ID etengabea" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Fax-zenbakia" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Izena" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Izena" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Izena" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Izena" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Izena" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Etxeko telefonoa" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Herria" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "URI etiketatua" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "URI etiketatua" + +# English string: Mail +msgid "facebook.email" +msgstr "Posta" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "Posta" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "Posta" + +# English string: Mail +msgid "windowslive_mail" +msgstr "Posta" + +# English string: Mail +msgid "windowslive.mail" +msgstr "Posta" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Mugikorra" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Erakundearen izena" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Posta-kodea" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Posta-kodea" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Hizkuntza lehenetsia" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Hizkuntza lehenetsia" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Hizkuntza lehenetsia" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Hizkuntza lehenetsia" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Hizkuntza lehenetsia" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Abizenak" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Abizenak" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Abizenak" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Abizenak" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Abizenak" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Telefono zenbakia" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Telefono zenbakia" + +# English string: Title +msgid "linkedin.headline" +msgstr "Tratamendua" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Tratamendua" + +# English string: User ID +msgid "facebook.username" +msgstr "Erabiltzaile ID" + +# English string: User ID +msgid "linkedin.id" +msgstr "Erabiltzaile ID" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Erabiltzaile ID" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Erabiltzaile ID" + +# English string: User ID +msgid "windowslive.id" +msgstr "Erabiltzaile ID" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/eu/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/eu/LC_MESSAGES/messages.po index ff123121eed50ab4eaaff7bd7e329277a9031a2f..83dc59edea4e6188006700c02b130a6c863141b6 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/eu/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/eu/LC_MESSAGES/messages.po @@ -51,12 +51,6 @@ msgstr "Errorea metadatuak kargatzean" msgid "{admin:metaconv_title}" msgstr "Metadatuak aztertu" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Zerbitzuari dagokion eskubidea" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "JPEG argazkia" - msgid "{admin:cfg_check_noerrors}" msgstr "Ez da errorerik aurkitu" @@ -135,9 +129,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Itzuli SimpleSAMLphp instalazio orrira " -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "WS-Federation Identitate hornitzailea (Urrunekoa)" - msgid "{errors:error_header}" msgstr "SimpleSAMLphp-en errorea" @@ -156,18 +147,12 @@ msgstr "" "Zerbitzuaren administratzailea bazara, ziurta ezazu metadatuen " "konfigurazioa zuzena dela." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Pertsonaren jatorrizko erakundearen izen osatua (DN)" - msgid "{errors:title_BADREQUEST}" msgstr "Eskaera oker bat jaso da." msgid "{status:sessionsize}" msgstr "Saioaren tamaina: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Posta-helbidea" - msgid "{logout:title}" msgstr "Saioa itxita." @@ -189,32 +174,17 @@ msgstr "Itxaroten" msgid "{admin:cfg_check_header}" msgstr "Konfigurazioa egiaztatu" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Afiliazioa jatorrizko erakundean" - -msgid "{attributes:attribute_sn}" -msgstr "Abizenak" - msgid "{admin:debug_sending_message_send}" msgstr "Mezua bidali" msgid "{status:logout}" msgstr "Irten" -msgid "{attributes:attribute_organisationname}" -msgstr "Erakundearen izena" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Telefono zenbakia" - msgid "{errors:descr_DISCOPARAMS}" msgstr "" "Aurkikuntza zerbitzuari bidalitako prametroak ez dira zehaztapenera " "doitzen." -msgid "{attributes:attribute_mail}" -msgstr "Posta" - msgid "{errors:descr_CREATEREQUEST}" msgstr "Errore bat jazo da SAML eskaera sortzen saiatzean." @@ -224,9 +194,6 @@ msgstr "Hautazko datuak" msgid "{logout:return}" msgstr "Itzuli zerbitzura" -msgid "{attributes:attribute_displayname}" -msgstr "Bistaratzeko izena" - msgid "{admin:metadata_xmlurl}" msgstr "<a href=\"%METAURL%\">xml metadatuekin URL bat</a> eskura dezakezu:" @@ -238,9 +205,6 @@ msgstr "" "Arazketa modua desaktibatu daiteke SimpleSAMLphp " "<tt>config/config.php</tt> konfigurazio orokorreko fitxategian." -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Etxeko helbidea" - msgid "{disco:select}" msgstr "Hautatu" @@ -267,9 +231,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Goian agertzen diren zerbitzu guztietako saioak itxi nahi al dituzu?" -msgid "{attributes:attribute_title}" -msgstr "Tratamendua" - msgid "{errors:title_NOACCESS}" msgstr "Sarrera zehaztu gabe" @@ -284,9 +245,6 @@ msgstr "RelayState zehaztu gabe" msgid "{errors:descr_NOSTATE}" msgstr "Egoera informazioa galdua eta ez dago modurik eskaera berrabiarazteko" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Gizarte-segurantzako zenbakia" - msgid "{login:password}" msgstr "Pasahitza" @@ -313,24 +271,15 @@ msgstr "Errorea saioa ixteko eskaera prozesatzean " msgid "{admin:metaover_errorentry}" msgstr "Metadatu sarrera honetan errorea" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Afiliazioa" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Ez dira metadatuak aurkitu" -msgid "{attributes:attribute_givenname}" -msgstr "Izena" - msgid "{login:contact_info}" msgstr "Harremanetarako informazioa:" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Kudeatu gabeko salbuespena" -msgid "{status:validfor}" -msgstr "Zure saioa %SECONDS% segundoz izango da baliagarri." - msgid "{status:header_saml20_sp}" msgstr "SAML 2.0 SP Adibidea" @@ -364,30 +313,18 @@ msgstr "Hautatu ezazu egiaztatu beharreko konfigurazio fitxategia: " msgid "{errors:descr_UNKNOWNCERT}" msgstr "Kautotze okerra: zure nabigatzaileak bidalitako ziurtagiria ezezaguna da" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Erakundearen hasiera-orria" - msgid "{logout:logging_out_from}" msgstr "Honako zerbitzu hauen saioak itxi:" msgid "{logout:loggedoutfrom}" msgstr "%SP% saioa zuzen itxi da." -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "WS-Federation Zerbitzu hornitzailea (Anfitrioia)" - msgid "{errors:errorreport_text}" msgstr "Errore txostena administratzaileei bidali zaie." -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Jaioteguna" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "Errore bat jazo da saioa ixteko eskaera prozesatzean." -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Goitizen ID etengabea" - msgid "{logout:success}" msgstr "Hemen adierazten den zerrendako zerbitzu guztietako saioak zuzen itxi dira" @@ -397,12 +334,6 @@ msgstr "Oharrak" msgid "{errors:descr_USERABORTED}" msgstr "Kautotzea bertan behera utzi du erabiltzaileak" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Lehen afiliazioa" - -msgid "{attributes:attribute_postalcode}" -msgstr "Posta-kodea" - msgid "{errors:descr_CASERROR}" msgstr "Errorea CAS zerbitzariarekin komunikatzen saiatzean" @@ -412,9 +343,6 @@ msgstr "Ez" msgid "{admin:metaconv_converted}" msgstr "Bihurtutako metadatuak" -msgid "{attributes:attribute_cn}" -msgstr "Izen arrunta (CN)" - msgid "{logout:completed}" msgstr "Amaitua" @@ -423,18 +351,9 @@ msgstr "" "Ez da aldatu konfigurazio fitxategiaren pasahitzaren (auth.adminpassword)" " balio lehenetsia. Mesedez, edita ezazu fitxategia" -msgid "{attributes:attribute_ou}" -msgstr "Antolamendu-unitatea" - msgid "{general:service_provider}" msgstr "Zerbitzu hornitzailea" -msgid "{attributes:attribute_homephone}" -msgstr "Etxeko telefonoa" - -msgid "{attributes:attribute_dc}" -msgstr "Domeinuaren osagaia (DC)" - msgid "{errors:descr_BADREQUEST}" msgstr "Errore bat dago orri honen eskaeran. Arrazoia hau da: %REASON%" @@ -453,23 +372,14 @@ msgstr "Sartu erabiltzaile-izena eta pasahitza" msgid "{errors:report_explain}" msgstr "Azal ezazu zer egin duzun errore honetara iristeko..." -msgid "{attributes:attribute_manager}" -msgstr "Kudeatzailea" - msgid "{errors:title_ACSPARAMS}" msgstr "SAML erantzuna falta da" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Ezizena" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "SingleLogoutService interfazera sartu zara baina ez duzu erantsi SAML " "LogoutRequest edo LogoutResponse mezurik" -msgid "{attributes:attribute_street}" -msgstr "Kalea" - msgid "{login:organization}" msgstr "Erakundea" @@ -509,9 +419,6 @@ msgstr "Jatorrizko erakundea hautatu" msgid "{admin:cfg_check_superfluous}" msgstr "Konfigurazio fitxategian soberan dauden aukerak" -msgid "{attributes:attribute_labeleduri}" -msgstr "URI etiketatua" - msgid "{errors:report_email}" msgstr "E-posta:" @@ -526,9 +433,6 @@ msgstr "" "Eskaera honen abiarazleak ez du ematen ondoren nora joan adierazten duen " "RelayState parametroa" -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Izen legala" - msgid "{status:header_diagnostics}" msgstr "SimpleSAMLphp Diagnostikoa" @@ -538,9 +442,6 @@ msgstr "" " saioa iraungi den, zenbat denbora geratzen den hau gerta dadin eta zure " "saioan dauden atributu guztiak." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Jatorrizko erakundearen domeinu izena" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Ez da orria aurkitu" @@ -559,30 +460,18 @@ msgstr "SAML entitate baten xehetasunak ikusteko, klikatu entitatearen goiburua. msgid "{errors:title_NOTVALIDCERT}" msgstr "Ziurtagiri balio gabea" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Pertsonaren jatorrizko erakundeko antolamendu-unitatearen izen osatua (DN)" - msgid "{general:remember}" msgstr "Onespena gogoratu" msgid "{disco:selectidp}" msgstr "Hauta ezazu zure identitate hornitzailea" -msgid "{attributes:attribute_postofficebox}" -msgstr "Posta-bulegoko ontzia" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Jatorrizko erakundean pertsonak duen izen nagusia" - msgid "{login:help_desk_email}" msgstr "Bidali posta laguntza teknikoari " msgid "{login:help_desk_link}" msgstr "Laguntza teknikoaren orria " -msgid "{attributes:attribute_uid}" -msgstr "Erabiltzaile ID" - msgid "{errors:title_CASERROR}" msgstr "CAS Errorea" @@ -603,12 +492,6 @@ msgstr "Nire hautaketa gogoratu" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "SAML 2.0 Zerbitzu hornitzailea (Anfitrioia)" -msgid "{attributes:attribute_l}" -msgstr "Herria" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Bermearen profilaren identifikatzailea" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "SimpleSAMLphp formatuko fitxategi batean - beste muturrean SimpleSAMLphp " @@ -653,9 +536,6 @@ msgstr "Mezua" msgid "{errors:title_UNKNOWNCERT}" msgstr "Ziurtagiri ezezaguna" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Fax-zenbakia" - msgid "{errors:title_LDAPERROR}" msgstr "LDAP Errorea" @@ -674,15 +554,9 @@ msgstr "" "okerra izan da. Jar zaitez harremanetan identifikazio zerbitzu honen " "administratzailearekin eta bidal iezaiozu lehenagoko errore mezua. " -msgid "{attributes:attribute_mobile}" -msgstr "Mugikorra" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Shib 1.3 Identitate hornitzailea (Anfitrioia)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Hizkuntza lehenetsia" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Ez duzu baliozko ziurtagiririk aurkeztu " @@ -697,15 +571,6 @@ msgstr "Hautazko datu hauek ez dira aurkitu" msgid "{logout:logout_only}" msgstr "Ez, %SPS bakarrik" -msgid "{attributes:attribute_o}" -msgstr "Erakundearen izena" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Pertsonaren antolamendu-unitatearen izen osatua (DN)" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Tokiko zenbaki identifikatzailea" - msgid "{login:next}" msgstr "Hurrengoa" @@ -725,9 +590,6 @@ msgstr "" msgid "{errors:title_NOCERT}" msgstr "Ziurtagiri gabe" -msgid "{attributes:attribute_userpassword}" -msgstr "Erabiltzailearen pasahitzaren hash-a" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Saioa ixteko informazioa galdu da" @@ -743,12 +605,6 @@ msgstr "" "dokumentu hau konfidantzazko zure kideei bidal diezaiekezu federazio bat " "konfiguratzeko." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Informazio pribatuaren elementuak" - -msgid "{status:header_wsfed}" -msgstr "WS-Fed SP Adibidea" - msgid "{admin:metadata_cert}" msgstr "Ziurtagiriak" @@ -757,18 +613,12 @@ msgstr "" "Kautotze okerra: Zure nabigatzaileak bidalitako ziurtagiria baliogabea da" " edo ezin da irakurri" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Erakundearen izen legala" - msgid "{status:header_shib}" msgstr "Shibboleth Adibidea" msgid "{admin:metaconv_parse}" msgstr "Aztertu" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Erakundearen zenbakia" - msgid "Person's principal name at home organization" msgstr "Jatorrizko erakundean pertsonak duen izen nagusia" @@ -1098,8 +948,8 @@ msgstr "" "administratzailearekin eta bidal iezaiozu lehenagoko errore mezua. " #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Zure saioa %SECONDS% segundoz izango da baliagarri." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Zure saioa %remaining% segundoz izango da baliagarri." msgid "Domain component (DC)" msgstr "Domeinuaren osagaia (DC)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/fa/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/fa/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..29364f1a86c60a8ca755f293369a6e651fc9071f --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/fa/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fa\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "cn" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "urn:mace:dir:attribute-def:cn" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "urn:oid:2.5.4.3" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "dc" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "urn:mace:dir:attribute-def:dc" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "urn:oid:0.9.2342.19200300.100.1.25" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "displayName" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "urn:mace:dir:attribute-def:displayName" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "urn:oid:2.16.840.1.113730.3.1.241" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "eduOrgHomePageURI" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "urn:mace:dir:attribute-def:eduOrgHomePageURI" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "eduOrgLegalName" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "urn:mace:dir:attribute-def:eduOrgLegalName" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "eduPersonAffiliation" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "urn:mace:dir:attribute-def:eduPersonAffiliation" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "eduPersonAssurance" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "urn:mace:dir:attribute-def:eduPersonAssurance" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "eduPersonEntitlement" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "urn:mace:dir:attribute-def:eduPersonEntitlement" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "eduPersonNickname" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "urn:mace:dir:attribute-def:eduPersonNickname" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "eduPersonOrgDN" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "urn:mace:dir:attribute-def:eduPersonOrgDN" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "eduPersonOrgUnitDN" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "eduPersonPrimaryAffiliation" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "eduPersonPrimaryOrgUnitDN" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "eduPersonPrincipalName" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "urn:mace:dir:attribute-def:eduPersonPrincipalName" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "eduPersonScopedAffiliation" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "eduPersonTargetedID" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "urn:mace:dir:attribute-def:eduPersonTargetedID" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "facsimileTelephoneNumber" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:facsimileTelephoneNumber" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "urn:oid:2.5.4.23" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "givenName" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "urn:mace:dir:attribute-def:givenName" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "urn:oid:2.5.4.42" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "homePhone" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "urn:mace:dir:attribute-def:homePhone" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "urn:oid:0.9.2342.19200300.100.1.20" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "homePostalAddress" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "urn:mace:dir:attribute-def:homePostalAddress" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "urn:oid:0.9.2342.19200300.100.1.39" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "jpegPhoto" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "urn:mace:dir:attribute-def:jpegPhoto" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "urn:oid:0.9.2342.19200300.100.1.60" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "l" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "urn:mace:dir:attribute-def:l" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "urn:oid:2.5.4.7" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "labeledURI" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "urn:mace:dir:attribute-def:labeledURI" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "urn:oid:1.3.6.1.4.1.250.1.57" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "mail" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "urn:mace:dir:attribute-def:mail" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "urn:oid:0.9.2342.19200300.100.1.3" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "manager" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "urn:mace:dir:attribute-def:manager" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "urn:oid:0.9.2342.19200300.100.1.10" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "mobile" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "urn:mace:dir:attribute-def:mobile" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "urn:oid:0.9.2342.19200300.100.1.41" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "norEduOrgNIN" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "urn:mace:dir:attribute-def:norEduOrgNIN" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.12" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "norEduPersonBirthDate" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "urn:mace:dir:attribute-def:norEduPersonBirthDate" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.3" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "norEduPersonLIN" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "urn:mace:dir:attribute-def:norEduPersonLIN" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.4" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "norEduPersonNIN" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "urn:mace:dir:attribute-def:norEduPersonNIN" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.5" + +# English string: Organization name +msgid "o" +msgstr "o" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "urn:mace:dir:attribute-def:o" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "urn:oid:2.5.4.10" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "urn:oid:2.5.4.11" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "ou" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "urn:mace:dir:attribute-def:ou" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "postOfficeBox" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "urn:mace:dir:attribute-def:postOfficeBox" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "urn:oid:2.5.4.18" + +# English string: Postal address +msgid "postalAddress" +msgstr "postalAddress" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "urn:mace:dir:attribute-def:postalAddress" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "urn:oid:2.5.4.16" + +# English string: Postal code +msgid "postalCode" +msgstr "postalCode" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "urn:mace:dir:attribute-def:postalCode" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "urn:oid:2.5.4.17" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "preferredLanguage" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "urn:mace:dir:attribute-def:preferredLanguage" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "urn:oid:2.16.840.1.113730.3.1.39" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "schacHomeOrganization" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganization" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.9" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "urn:schac:attribute-def:schacHomeOrganization" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "schacUserPrivateAttribute" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.18" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "urn:schac:attribute-def:schacUserPrivateAttribute" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "sn" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "urn:mace:dir:attribute-def:sn" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "urn:oid:2.5.4.4" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "street" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "urn:mace:dir:attribute-def:street" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "urn:oid:2.5.4.9" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "telephoneNumber" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "urn:mace:dir:attribute-def:telephoneNumber" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "urn:oid:2.5.4.20" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "title" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "urn:mace:dir:attribute-def:title" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "urn:oid:2.5.4.12" + +# English string: User ID +msgid "uid" +msgstr "uid" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "urn:mace:dir:attribute-def:uid" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "urn:oid:0.9.2342.19200300.100.1.1" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "userPassword" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "urn:mace:dir:attribute-def:userPassword" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "urn:oid:2.5.4.35" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "facebook_cn" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "facebook.name" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "http://axschema.org/namePerson/friendly" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "openid.sreg.nickname" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "http://axschema.org/namePerson" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "openid.sreg.fullname" + +# English string: Display name +msgid "twitter.name" +msgstr "twitter.name" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "windowslive.displayName" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "facebook_user" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "linkedin_user" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "twitter_screen_n_realm" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "windowslive_user" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "windowslive.userPrincipalName" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "facebook_targetedID" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "linkedin_targetedID" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "twitter_targetedID" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "windowslive_targetedID" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "http://axschema.org/contact/phone/fax" + +# English string: Given name +msgid "facebook.first_name" +msgstr "facebook.first_name" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "linkedin.firstName" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "http://axschema.org/namePerson/first" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "windowslive.FirstName" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "windowslive.givenName" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "http://axschema.org/contact/phone/home" + +# English string: Locality +msgid "windowslive.Location" +msgstr "windowslive.Location" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "facebook.profile_url" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "twitter.url" + +# English string: Mail +msgid "facebook.email" +msgstr "facebook.email" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "http://axschema.org/contact/email" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "openid.sreg.email" + +# English string: Mail +msgid "windowslive_mail" +msgstr "windowslive_mail" + +# English string: Mail +msgid "windowslive.mail" +msgstr "windowslive.mail" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "http://axschema.org/contact/phone/cell" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "http://axschema.org/company/name" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "http://axschema.org/contact/postalCode/home" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "openid.sreg.postcode" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "facebook.locale" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "http://axschema.org/pref/language" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "openid.sreg.language" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "twitter.lang" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "windowslive.preferredLanguage" + +# English string: Surname +msgid "facebook.last_name" +msgstr "facebook.last_name" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "linkedin.lastName" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "http://axschema.org/namePerson/last" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "windowslive.LastName" + +# English string: Surname +msgid "windowslive.surname" +msgstr "windowslive.surname" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "http://axschema.org/contact/phone/default" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "http://axschema.org/contact/phone/business" + +# English string: Title +msgid "linkedin.headline" +msgstr "linkedin.headline" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "http://axschema.org/company/title" + +# English string: User ID +msgid "facebook.username" +msgstr "facebook.username" + +# English string: User ID +msgid "linkedin.id" +msgstr "linkedin.id" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "twitter.screen_name" + +# English string: User ID +msgid "windowslive_uid" +msgstr "windowslive_uid" + +# English string: User ID +msgid "windowslive.id" +msgstr "windowslive.id" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/fi/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/fi/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..cfaa83efaad2838679af95fa88f5b85e4c58d66c --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/fi/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fi\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Käyttönimi" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Käyttönimi" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Käyttönimi" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Domain-osio" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Domain-osio" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Domain-osio" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Näyttönimi" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Näyttönimi" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Näyttönimi" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Organisaation kotisivu" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Organisaation kotisivu" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Organisaation kotisivu" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Organisaation virallinen nimi" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Organisaation virallinen nimi" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Organisaation virallinen nimi" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Suhde organisaatioon" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Suhde organisaatioon" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Suhde organisaatioon" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "eduPersonAssurance" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "urn:mace:dir:attribute-def:eduPersonAssurance" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Organisaationoikeudet" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Organisaationoikeudet" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Organisaationoikeudet" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Kutsumanimi" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Kutsumanimi" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Kutsumanimi" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "DN-osio organisaation nimestä" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "DN-osio organisaation nimestä" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "DN-osio organisaation nimestä" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "DN-osio organisaatioyksikön nimestä" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "DN-osio organisaatioyksikön nimestä" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "DN-osio organisaatioyksikön nimestä" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Ensisijainen suhde organisaatioon" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Ensisijainen suhde organisaatioon" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Ensisijainen suhde organisaatioon" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "eduPersonPrimaryOrgUnitDN" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Henkilön universaali nimi" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Henkilön universaali nimi" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Henkilön universaali nimi" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Henkilön rooli kotiorganisaatiossa" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Henkilön rooli kotiorganisaatiossa" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Henkilön rooli kotiorganisaatiossa" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Pseudonyymi-identiteetti" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Pseudonyymi-identiteetti" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Pseudonyymi-identiteetti" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Faksinumero" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Faksinumero" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Faksinumero" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Etunimet" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Etunimet" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Etunimet" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Kotipuhelin" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Kotipuhelin" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Kotipuhelin" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Kodin postiosoite" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Kodin postiosoite" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Kodin postiosoite" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "JPEG kuva" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "JPEG kuva" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "JPEG kuva" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Paikkakunta" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Paikkakunta" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Paikkakunta" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "Kotisivu" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "Kotisivu" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "Kotisivu" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "Sähköposti" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "Sähköposti" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "Sähköposti" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Manager" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Manager" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Manager" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Kännykkä" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Kännykkä" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Kännykkä" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Organisaation numero" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Organisaation numero" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Organisaation numero" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Syntymäaika" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Syntymäaika" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Syntymäaika" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Henkilönumero" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Henkilönumero" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Henkilönumero" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Henkilötunnus" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Henkilötunnus" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Henkilötunnus" + +# English string: Organization name +msgid "o" +msgstr "Organisaation nimi" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Organisaation nimi" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Organisaation nimi" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Organisaation yksikkö" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Organisaation yksikkö" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Organisaation yksikkö" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Postilokero" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Postilokero" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Postilokero" + +# English string: Postal address +msgid "postalAddress" +msgstr "Postiosoite" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Postiosoite" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Postiosoite" + +# English string: Postal code +msgid "postalCode" +msgstr "Postinumero" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Postinumero" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Postinumero" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Ensisijainen kieli" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Ensisijainen kieli" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Ensisijainen kieli" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Organisaation domain-nimi" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Organisaation domain-nimi" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Organisaation domain-nimi" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Organisaation domain-nimi" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Yksilöivät tunnisteet" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Yksilöivät tunnisteet" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Yksilöivät tunnisteet" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Yksilöivät tunnisteet" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Sukunimi" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Sukunimi" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Sukunimi" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Katu" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Katu" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Katu" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Puhelinnumero" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Puhelinnumero" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Puhelinnumero" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Titteli" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Titteli" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Titteli" + +# English string: User ID +msgid "uid" +msgstr "uid" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "uid" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "uid" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Käyttäjän salasanatiiviste" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Käyttäjän salasanatiiviste" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Käyttäjän salasanatiiviste" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Käyttönimi" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Näyttönimi" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Näyttönimi" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Näyttönimi" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Näyttönimi" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Näyttönimi" + +# English string: Display name +msgid "twitter.name" +msgstr "Näyttönimi" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Näyttönimi" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Henkilön universaali nimi" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Henkilön universaali nimi" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Henkilön universaali nimi" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Henkilön universaali nimi" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Henkilön universaali nimi" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Pseudonyymi-identiteetti" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Pseudonyymi-identiteetti" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Pseudonyymi-identiteetti" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Pseudonyymi-identiteetti" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Faksinumero" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Etunimet" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Etunimet" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Etunimet" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Etunimet" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Etunimet" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Kotipuhelin" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Paikkakunta" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "Kotisivu" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "Kotisivu" + +# English string: Mail +msgid "facebook.email" +msgstr "Sähköposti" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "Sähköposti" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "Sähköposti" + +# English string: Mail +msgid "windowslive_mail" +msgstr "Sähköposti" + +# English string: Mail +msgid "windowslive.mail" +msgstr "Sähköposti" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Kännykkä" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Organisaation nimi" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Postinumero" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Postinumero" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Ensisijainen kieli" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Ensisijainen kieli" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Ensisijainen kieli" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Ensisijainen kieli" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Ensisijainen kieli" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Sukunimi" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Sukunimi" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Sukunimi" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Sukunimi" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Sukunimi" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Puhelinnumero" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Puhelinnumero" + +# English string: Title +msgid "linkedin.headline" +msgstr "Titteli" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Titteli" + +# English string: User ID +msgid "facebook.username" +msgstr "uid" + +# English string: User ID +msgid "linkedin.id" +msgstr "uid" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "uid" + +# English string: User ID +msgid "windowslive_uid" +msgstr "uid" + +# English string: User ID +msgid "windowslive.id" +msgstr "uid" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/fi/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/fi/LC_MESSAGES/messages.po index 6d1706d3ed2b08e6ec744cf9ae63e7c25276f5ad..5655dff804b6014d090a4f6d0385360a52754777 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/fi/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/fi/LC_MESSAGES/messages.po @@ -30,12 +30,6 @@ msgstr "Tunnus" msgid "{errors:title_METADATA}" msgstr "Metadatan lataaminen epäonnistui" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Organisaationoikeudet" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "JPEG kuva" - msgid "{errors:descr_LOGOUTINFOLOST}" msgstr "" "Uloskirjautumistiedot hävisivät. Sinun tulee palata siihen palveluun " @@ -110,18 +104,12 @@ msgstr "" "SimpleSAMLphp-asenuksen määrittelyissä on virhe. Mikäli olet tämän " "palvelun ylläpitäjä tulee sinun varmistua metadatan oikeellisuudesta." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "DN-osio organisaation nimestä" - msgid "{errors:title_BADREQUEST}" msgstr "Vääränlainen pyyntö vastaanotettu" msgid "{status:sessionsize}" msgstr "Istunnon koko: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Postiosoite" - msgid "{logout:title}" msgstr "Uloskirjautunut" @@ -131,42 +119,21 @@ msgstr "Valitse kotiorganisaatiosi" msgid "{logout:hold}" msgstr "Odota" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Henkilön rooli kotiorganisaatiossa" - -msgid "{attributes:attribute_sn}" -msgstr "Sukunimi" - msgid "{status:logout}" msgstr "Uloskirjautuminen" -msgid "{attributes:attribute_organisationname}" -msgstr "Organisaation nimi" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Puhelinnumero" - msgid "{errors:descr_DISCOPARAMS}" msgstr "Discovery-palveluun lähetetyt tiedot eivät vastanneet määräyksiä." -msgid "{attributes:attribute_mail}" -msgstr "Sähköposti" - msgid "{errors:descr_CREATEREQUEST}" msgstr "SAML-pyynnin luonnissa tapahtui virhe virhe virhe virhe" msgid "{logout:return}" msgstr "Palaa palveluun" -msgid "{attributes:attribute_displayname}" -msgstr "Näyttönimi" - msgid "{logout:logout_all}" msgstr "Kyllä, kaikista palveluista" -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Kodin postiosoite" - msgid "{disco:select}" msgstr "Valitse" @@ -190,9 +157,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Haluatko uloskirjautua edellämainituista palveluista?" -msgid "{attributes:attribute_title}" -msgstr "Titteli" - msgid "{errors:title_NOACCESS}" msgstr "Ei oikeutta" @@ -204,9 +168,6 @@ msgstr "" msgid "{errors:title_NORELAYSTATE}" msgstr "Ei RelayState " -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Henkilötunnus" - msgid "{login:password}" msgstr "Salasana" @@ -227,21 +188,12 @@ msgstr "Virhe asetuksissa" msgid "{errors:title_LOGOUTREQUEST}" msgstr "Uloskirjautumispyynnön käsittelyssä tapahtui virhe" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Suhde organisaatioon" - -msgid "{attributes:attribute_givenname}" -msgstr "Etunimet" - msgid "{login:contact_info}" msgstr "Yhteystiedot" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Käsittelemätön poikkeus" -msgid "{status:validfor}" -msgstr "Istuntosi on vielä voimassa %SECONDS% sekuntia" - msgid "{status:header_saml20_sp}" msgstr "SAML 2.0 SP esimerkki" @@ -254,9 +206,6 @@ msgstr "" "uloskirjautumista</i>. Varmistaaksesi, että kaikki istuntosi sulkeutuvat," " olet velvollinen <i>sulkemaan web-selaimesi</i>." -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Organisaation kotisivu" - msgid "{logout:logging_out_from}" msgstr "Kirjaudutaan ulos seuraavista palveluista:" @@ -266,33 +215,18 @@ msgstr "Olet kirjautunut ulos palvelusta %SP%." msgid "{errors:errorreport_text}" msgstr "Virheraportti on lähetetty ylläpitäjille." -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Syntymäaika" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "Uloskirjautumispyynnön käsittelyn yrityksessä tapahtui virhe" -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Pseudonyymi-identiteetti" - msgid "{logout:success}" msgstr "Olet onnistuneesti kirjautunut ulos kaikista yllä listatuista palveluista." -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Ensisijainen suhde organisaatioon" - -msgid "{attributes:attribute_postalcode}" -msgstr "Postinumero" - msgid "{errors:descr_CASERROR}" msgstr "CAS-palvelun kättelyvirhe" msgid "{general:no}" msgstr "ei" -msgid "{attributes:attribute_cn}" -msgstr "Käyttönimi" - msgid "{logout:completed}" msgstr "Valmis" @@ -301,18 +235,9 @@ msgstr "" "Ylläpitäjän salasanaa (auth.adminpassword) ei ole vaihtunut " "oletusarvosta. Ole hyvä ja muokkaa asetustiedostoa." -msgid "{attributes:attribute_ou}" -msgstr "Organisaation yksikkö" - msgid "{general:service_provider}" msgstr "Palveluntarjoaja" -msgid "{attributes:attribute_homephone}" -msgstr "Kotipuhelin" - -msgid "{attributes:attribute_dc}" -msgstr "Domain-osio" - msgid "{logout:no}" msgstr "Ei" @@ -328,23 +253,14 @@ msgstr "Syötä tunnuksesi ja salasanasi" msgid "{errors:report_explain}" msgstr "Kerro mitä teit kun virhe ilmeni:" -msgid "{attributes:attribute_manager}" -msgstr "Manager" - msgid "{errors:title_ACSPARAMS}" msgstr "SAML-vastaus puuttuu" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Kutsumanimi" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Yritit kertauloskirjautumisliittymään, mutta et tarjonnut SAML " "LogoutRequest:iä tai LogoutRespons:ia." -msgid "{attributes:attribute_street}" -msgstr "Katu" - msgid "{login:organization}" msgstr "Organisaatio" @@ -370,9 +286,6 @@ msgstr "Virhe" msgid "{login:change_home_org_button}" msgstr "Valitse kotiorganisaatiosi" -msgid "{attributes:attribute_labeleduri}" -msgstr "Kotisivu" - msgid "{errors:report_email}" msgstr "sähköpostiosoite:" @@ -385,9 +298,6 @@ msgstr "Salasanaa ei ole asetettu" msgid "{errors:descr_NORELAYSTATE}" msgstr "Pyynnön luoja ei tarjonnut RelayState arvoa, joka ilmaisisi minne jatkaa." -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Virallinen nimi" - msgid "{status:header_diagnostics}" msgstr "SimpleSAMLphp diagnostiikka" @@ -396,9 +306,6 @@ msgstr "" "Tämä on SimpleSAMLphp:n statussivu. Näet onko istuntosi voimassa, kauanko" " se on voimassa ja kaikki istuuntosi liitetyt attribuutit." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Organisaation domain-nimi" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Sivua ei löytynyt" @@ -408,33 +315,18 @@ msgstr "Virhe vastaanotettu Identiteetintarjoajalta." msgid "{errors:title_NOTVALIDCERT}" msgstr "Epäkelvollinen sertifikaatti" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "DN-osio organisaatioyksikön nimestä" - msgid "{general:remember}" msgstr "Muista" msgid "{disco:selectidp}" msgstr "Valitse identiteettillähteesi" -msgid "{attributes:attribute_postofficebox}" -msgstr "Postilokero" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Henkilön universaali nimi" - msgid "{login:help_desk_email}" msgstr "Lähetä sähköposti helpdeskille." msgid "{login:help_desk_link}" msgstr "Helpdeskin kotisivu" -msgid "{attributes:attribute_ismemberof}" -msgstr "Ryhmän jäsenyys" - -msgid "{attributes:attribute_uid}" -msgstr "uid" - msgid "{errors:title_CASERROR}" msgstr "CAS virhe" @@ -452,9 +344,6 @@ msgstr "Kyllä" msgid "{disco:remember}" msgstr "Muista valintani" -msgid "{attributes:attribute_l}" -msgstr "Paikkakunta" - msgid "{disco:login_at}" msgstr "Kirjaudu" @@ -482,9 +371,6 @@ msgstr "Olet kirjautunut ulos" msgid "{errors:title_UNKNOWNCERT}" msgstr "Tuntematon sertifikaatti" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Faksinumero" - msgid "{errors:title_LDAPERROR}" msgstr "LDAP-virhe" @@ -502,24 +388,12 @@ msgstr "" "asetuksista. Ota yhteyttä identiteettipalvelun ylläpitäjään, ja sisällytä" " yllä oleva virheilmoitus." -msgid "{attributes:attribute_mobile}" -msgstr "Kännykkä" - -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Ensisijainen kieli" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Et tarjonnut voimassaolevaa sertifikaattia" msgid "{logout:logout_only}" msgstr "Ei, vain %SP%" -msgid "{attributes:attribute_o}" -msgstr "Organisaation nimi" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Henkilönumero" - msgid "{login:next}" msgstr "Seuraava" @@ -537,30 +411,15 @@ msgstr "Sivua ei löytynyt. Syynä oli: %REASON% Osoite oli %URL%" msgid "{errors:title_NOCERT}" msgstr "Ei sertifikaattia" -msgid "{attributes:attribute_userpassword}" -msgstr "Käyttäjän salasanatiiviste" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Uloskirjautumistiedot hävisivät" msgid "{errors:descr_CONFIG}" msgstr "Vaikuttaa siltä, että SimpleSAMLphp:na asetuksissa on virhe." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Yksilöivät tunnisteet" - -msgid "{status:header_wsfed}" -msgstr "WS-FED SP esimerkki" - -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Organisaation virallinen nimi" - msgid "{status:header_shib}" msgstr "Shibboleth esimerkki" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Organisaation numero" - msgid "Person's principal name at home organization" msgstr "Henkilön universaali nimi" @@ -804,8 +663,8 @@ msgstr "" " yllä oleva virheilmoitus." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Istuntosi on vielä voimassa %SECONDS% sekuntia" +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Istuntosi on vielä voimassa %remaining% sekuntia" msgid "Domain component (DC)" msgstr "Domain-osio" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/fr/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/fr/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..e4267a5af8fbac3ac0b8e07abf138e763aa0288c --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/fr/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Nom usuel" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Nom usuel" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Nom usuel" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Fragment de domaine (DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Fragment de domaine (DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Fragment de domaine (DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Nom pour affichage" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Nom pour affichage" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Nom pour affichage" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Site web institutionnel" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Site web institutionnel" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Site web institutionnel" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Nom légal de l'institution" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Nom légal de l'institution" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Nom légal de l'institution" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Affiliation" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Affiliation" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Affiliation" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Profil d'assertion d'identité" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Profil d'assertion d'identité" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Profil d'assertion d'identité" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Appartenance à un groupe" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Appartenance à un groupe" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Appartenance à un groupe" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Pseudonyme" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Pseudonyme" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Pseudonyme" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Nom unique (DN) de l'institution d'origine" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Nom unique (DN) de l'institution d'origine" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Nom unique (DN) de l'institution d'origine" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Nom unique (DN) de la section d'origine" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Nom unique (DN) de la section d'origine" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Nom unique (DN) de la section d'origine" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Affiliation primaire" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Affiliation primaire" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Affiliation primaire" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Nom unique (DN) de la section d'origine" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Nom unique (DN) de la section d'origine" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Nom unique (DN) de la section d'origine" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Nom de l'utilisateur dans l'organisation de rattachement" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Nom de l'utilisateur dans l'organisation de rattachement" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Nom de l'utilisateur dans l'organisation de rattachement" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Rôles pour ce service" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Rôles pour ce service" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Rôles pour ce service" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Identifiant persistant anonyme" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Identifiant persistant anonyme" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Identifiant persistant anonyme" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Numéro de fax" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Numéro de fax" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Numéro de fax" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Prénom" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Prénom" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Prénom" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Téléphone personnel" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Téléphone personnel" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Téléphone personnel" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Adresse postale personnelle" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Adresse postale personnelle" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Adresse postale personnelle" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "Photo JPEG" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "Photo JPEG" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "Photo JPEG" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Lieu" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Lieu" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Lieu" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "URI" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "URI" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "URI" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "Courriel" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "Courriel" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "Courriel" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Gestionnaire" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Gestionnaire" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Gestionnaire" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Mobile" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Mobile" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Mobile" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Immatriculation de l'institution" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Immatriculation de l'institution" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Immatriculation de l'institution" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Date de naissance" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Date de naissance" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Date de naissance" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Immatriculation territoriale" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Immatriculation territoriale" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Immatriculation territoriale" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Numéro de sécurité sociale" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Numéro de sécurité sociale" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Numéro de sécurité sociale" + +# English string: Organization name +msgid "o" +msgstr "Rôles pour ce service" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Rôles pour ce service" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Rôles pour ce service" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Section" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Section" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Section" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Boite postale" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Boite postale" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Boite postale" + +# English string: Postal address +msgid "postalAddress" +msgstr "Adresse postale" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Adresse postale" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Adresse postale" + +# English string: Postal code +msgid "postalCode" +msgstr "Code postal" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Code postal" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Code postal" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Langue préférée" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Langue préférée" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Langue préférée" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Identifiant unique de l'organisation de rattachement" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Identifiant unique de l'organisation de rattachement" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Identifiant unique de l'organisation de rattachement" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Identifiant unique de l'organisation de rattachement" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Éléments d'informations privées" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Éléments d'informations privées" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Éléments d'informations privées" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Éléments d'informations privées" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Nom" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Nom" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Nom" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Rue" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Rue" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Rue" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Numéro de téléphone" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Numéro de téléphone" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Numéro de téléphone" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Titre" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Titre" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Titre" + +# English string: User ID +msgid "uid" +msgstr "ID Utilisateur" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "ID Utilisateur" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "ID Utilisateur" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Mot de passe chiffré" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Mot de passe chiffré" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Mot de passe chiffré" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Nom usuel" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Nom pour affichage" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Nom pour affichage" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Nom pour affichage" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Nom pour affichage" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Nom pour affichage" + +# English string: Display name +msgid "twitter.name" +msgstr "Nom pour affichage" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Nom pour affichage" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Nom de l'utilisateur dans l'organisation de rattachement" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Nom de l'utilisateur dans l'organisation de rattachement" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Nom de l'utilisateur dans l'organisation de rattachement" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Nom de l'utilisateur dans l'organisation de rattachement" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Nom de l'utilisateur dans l'organisation de rattachement" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Identifiant persistant anonyme" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Identifiant persistant anonyme" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Identifiant persistant anonyme" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Identifiant persistant anonyme" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Numéro de fax" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Prénom" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Prénom" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Prénom" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Prénom" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Prénom" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Téléphone personnel" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Lieu" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "URI" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "URI" + +# English string: Mail +msgid "facebook.email" +msgstr "Courriel" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "Courriel" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "Courriel" + +# English string: Mail +msgid "windowslive_mail" +msgstr "Courriel" + +# English string: Mail +msgid "windowslive.mail" +msgstr "Courriel" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Mobile" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Rôles pour ce service" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Code postal" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Code postal" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Langue préférée" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Langue préférée" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Langue préférée" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Langue préférée" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Langue préférée" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Nom" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Nom" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Nom" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Nom" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Nom" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Numéro de téléphone" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Numéro de téléphone" + +# English string: Title +msgid "linkedin.headline" +msgstr "Titre" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Titre" + +# English string: User ID +msgid "facebook.username" +msgstr "ID Utilisateur" + +# English string: User ID +msgid "linkedin.id" +msgstr "ID Utilisateur" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "ID Utilisateur" + +# English string: User ID +msgid "windowslive_uid" +msgstr "ID Utilisateur" + +# English string: User ID +msgid "windowslive.id" +msgstr "ID Utilisateur" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/fr/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/fr/LC_MESSAGES/messages.po index cb8bd91da8ae45b0706832219d9fd9412d862071..7e004a7c47f7abda489fa603063cacbb653c0e6a 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/fr/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/fr/LC_MESSAGES/messages.po @@ -52,12 +52,6 @@ msgstr "Erreur lors du chargement des métadonnées (metadata)" msgid "{admin:metaconv_title}" msgstr "Analyseur de métadonnées" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Appartenance à un groupe" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "Photo JPEG" - msgid "{admin:cfg_check_noerrors}" msgstr "Aucune erreur." @@ -137,9 +131,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Retournez à la page d'installation de SimpleSAML." -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "Fournisseur d'identité Shib 1.3 distant" - msgid "{errors:error_header}" msgstr "erreur de SimpleSAMLphp" @@ -160,18 +151,12 @@ msgstr "" "vous assurer que votre configuration des métadonnées est correctement " "réalisée." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Nom unique (DN) de l'institution d'origine" - msgid "{errors:title_BADREQUEST}" msgstr "Requête invalide" msgid "{status:sessionsize}" msgstr "Taille de la session : %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Adresse postale" - msgid "{logout:title}" msgstr "Déconnecté" @@ -193,32 +178,17 @@ msgstr "En cours" msgid "{admin:cfg_check_header}" msgstr "Vérification de la configuration" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Rôles pour ce service" - -msgid "{attributes:attribute_sn}" -msgstr "Nom" - msgid "{admin:debug_sending_message_send}" msgstr "Envoi du message" msgid "{status:logout}" msgstr "Déconnexion" -msgid "{attributes:attribute_organisationname}" -msgstr "Rôles pour ce service" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Numéro de téléphone" - msgid "{errors:descr_DISCOPARAMS}" msgstr "" "Les paramètres envoyés au service de découverte automatique (discovery " "service) ne respectent pas les spécifications." -msgid "{attributes:attribute_mail}" -msgstr "Courriel" - msgid "{errors:descr_CREATEREQUEST}" msgstr "Une erreur s'est produite lors de la tentative de créer la requête SAML." @@ -228,9 +198,6 @@ msgstr "Champs optionnels" msgid "{logout:return}" msgstr "Retour au service" -msgid "{attributes:attribute_displayname}" -msgstr "Nom pour affichage" - msgid "{admin:metadata_xmlurl}" msgstr "" "Vous pouvez <a href=\"%METAURL%\">obtenir ces métadonnées XML depuis une " @@ -244,9 +211,6 @@ msgstr "" "Vous pouvez désactivez le mode débogage dans le fichier de configuration " "globale de SimpleSAMLphp (<tt>config/config.php</tt>)." -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Adresse postale personnelle" - msgid "{disco:select}" msgstr "Sélectionner" @@ -274,9 +238,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Voulez vous réellement terminer les connexions à tout ces services?" -msgid "{attributes:attribute_title}" -msgstr "Titre" - msgid "{errors:title_NOACCESS}" msgstr "Pas d'accès" @@ -292,9 +253,6 @@ msgstr "Pas d'information RelayState" msgid "{errors:descr_NOSTATE}" msgstr "Information d'état perdue, et aucun moyen de relancer la requête" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Numéro de sécurité sociale" - msgid "{login:password}" msgstr "Mot de passe" @@ -321,24 +279,15 @@ msgstr "Erreur lors du traitement de la requête de déconnexion" msgid "{admin:metaover_errorentry}" msgstr "Erreur dans les métadonnées de cet élément" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Affiliation" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Métadonnées non trouvées" -msgid "{attributes:attribute_givenname}" -msgstr "Prénom" - msgid "{login:contact_info}" msgstr "Coordonnées :" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Exception non gérée" -msgid "{status:validfor}" -msgstr "Votre session est encore valide pour %SECONDS% secondes." - msgid "{status:header_saml20_sp}" msgstr "Exemple de démonstration de SP SAML 2.0" @@ -374,32 +323,20 @@ msgstr "" "Échec de l'authentification : le certificat présenté par votre navigateur" " n'est pas connu" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Site web institutionnel" - msgid "{logout:logging_out_from}" msgstr "Déconnexion des services suivants :" msgid "{logout:loggedoutfrom}" msgstr "Vous avez été déconnecté de %SP%." -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "Fournisseur de service WS-federation local" - msgid "{errors:errorreport_text}" msgstr "Le rapport d'erreur a été envoyé aux administrateurs." -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Date de naissance" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "" "Une erreur s'est produite lors de la tentative de traiter la demande de " "déconnexion." -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Identifiant persistant anonyme" - msgid "{logout:success}" msgstr "Vous avez été déconnecté avec succès des services listés ci dessus" @@ -409,12 +346,6 @@ msgstr "A noter" msgid "{errors:descr_USERABORTED}" msgstr "L'authentification a été abandonnée par l'usager" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Affiliation primaire" - -msgid "{attributes:attribute_postalcode}" -msgstr "Code postal" - msgid "{errors:descr_CASERROR}" msgstr "Erreur de communication avec le serveur CAS" @@ -427,9 +358,6 @@ msgstr "Métadonnées de SP SAML 2.0" msgid "{admin:metaconv_converted}" msgstr "Métadonnées converties" -msgid "{attributes:attribute_cn}" -msgstr "Nom usuel" - msgid "{logout:completed}" msgstr "Fait" @@ -439,18 +367,9 @@ msgstr "" "changé par rapport à la valeur par défaut. Veuillez modifier la " "configuration." -msgid "{attributes:attribute_ou}" -msgstr "Section" - msgid "{general:service_provider}" msgstr "Fournisseur de service" -msgid "{attributes:attribute_homephone}" -msgstr "Téléphone personnel" - -msgid "{attributes:attribute_dc}" -msgstr "Fragment de domaine (DC)" - msgid "{errors:descr_BADREQUEST}" msgstr "Erreur dans la requête de cette page. Motif : %REASON%" @@ -469,23 +388,14 @@ msgstr "Entrez votre identifiant et votre mot de passe" msgid "{errors:report_explain}" msgstr "Expliquez ce que vous faisiez lorsque cette erreur est apparue..." -msgid "{attributes:attribute_manager}" -msgstr "Gestionnaire" - msgid "{errors:title_ACSPARAMS}" msgstr "Aucune réponse SAML fournie" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Pseudonyme" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Vous avez accédé à l'interface SingleLogoutService, mais vous n'avez pas " "fourni de LogoutRequest ou LogoutResponse SAML." -msgid "{attributes:attribute_street}" -msgstr "Rue" - msgid "{login:organization}" msgstr "Fournisseur" @@ -525,9 +435,6 @@ msgstr "Choisissez votre fournisseur." msgid "{admin:cfg_check_superfluous}" msgstr "Options superflues dans le fichier de configuration" -msgid "{attributes:attribute_labeleduri}" -msgstr "URI" - msgid "{errors:report_email}" msgstr "Adresse de courriel :" @@ -542,9 +449,6 @@ msgstr "" "L'émetteur de cette requête n'a pas fourni de paramètre RelayState " "indiquant quelle page afficher ensuite." -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "État civil" - msgid "{status:header_diagnostics}" msgstr "Diagnostics SimpleSAMLphp" @@ -554,9 +458,6 @@ msgstr "" "consulter ici le temps restant sur votre session, ainsi que les attributs" " qui y sont attachés." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Identifiant unique de l'organisation de rattachement" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Page introuvable" @@ -575,30 +476,18 @@ msgstr "Pour examiner les détails d'une entité SAML, cliquez sur son en-tête. msgid "{errors:title_NOTVALIDCERT}" msgstr "Certificat invalide" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Nom unique (DN) de la section d'origine" - msgid "{general:remember}" msgstr "Se souvenir du consentement" msgid "{disco:selectidp}" msgstr "Sélectionnez votre fournisseur d'identité" -msgid "{attributes:attribute_postofficebox}" -msgstr "Boite postale" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Nom de l'utilisateur dans l'organisation de rattachement" - msgid "{login:help_desk_email}" msgstr "Assistance technique par courriel" msgid "{login:help_desk_link}" msgstr "Page web de l'assistance technique" -msgid "{attributes:attribute_uid}" -msgstr "ID Utilisateur" - msgid "{errors:title_CASERROR}" msgstr "Erreur CAS" @@ -620,12 +509,6 @@ msgstr "Retenir ce choix" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "Fournisseur de service SAML 2.0 local" -msgid "{attributes:attribute_l}" -msgstr "Lieu" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Profil d'assertion d'identité" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "Au format à plat SimpleSAMLphp - à utiliser si vous avez une installation" @@ -670,9 +553,6 @@ msgstr "Message" msgid "{errors:title_UNKNOWNCERT}" msgstr "Certificat inconnu" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Numéro de fax" - msgid "{errors:title_LDAPERROR}" msgstr "Erreur LDAP" @@ -691,15 +571,9 @@ msgstr "" "mauvaise configuration de SimpleSAMLphp. Contactez l'administrateur de " "ce service d'identification et envoyez lui le message d'erreur." -msgid "{attributes:attribute_mobile}" -msgstr "Mobile" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Fournisseur d'identité Shib 1.3 local" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Langue préférée" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Vous n'avez pas présenté de certificat valide" @@ -714,15 +588,6 @@ msgstr "Les champs optionnels suivants n'ont pas été trouvés" msgid "{logout:logout_only}" msgstr "Non, seulement de %SP%" -msgid "{attributes:attribute_o}" -msgstr "Rôles pour ce service" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Nom unique (DN) de la section d'origine" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Immatriculation territoriale" - msgid "{login:next}" msgstr "Suivant" @@ -742,9 +607,6 @@ msgstr "La page demandée est introuvable. Motif : %REASON% L'url était : %URL msgid "{errors:title_NOCERT}" msgstr "Aucun certificat présenté" -msgid "{attributes:attribute_userpassword}" -msgstr "Mot de passe chiffré" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Information de déconnexion perdue" @@ -760,12 +622,6 @@ msgstr "" " à vos partenaires de confiances pour construire une fédération " "d'identité." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Éléments d'informations privées" - -msgid "{status:header_wsfed}" -msgstr "Exemple de démonstration de WS-Fed SP" - msgid "{admin:metadata_cert}" msgstr "Certificats" @@ -774,18 +630,12 @@ msgstr "" "Échec de l'authentification : le certificat présenté par votre navigateur" " est invalide ou illisible" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Nom légal de l'institution" - msgid "{status:header_shib}" msgstr "Exemple de démonstration de Shibboleth" msgid "{admin:metaconv_parse}" msgstr "Analyser" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Immatriculation de l'institution" - msgid "Person's principal name at home organization" msgstr "Nom de l'utilisateur dans l'organisation de rattachement" @@ -1127,8 +977,8 @@ msgstr "" "ce service d'identification et envoyez lui le message d'erreur." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Votre session est encore valide pour %SECONDS% secondes." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Votre session est encore valide pour %remaining% secondes." msgid "Domain component (DC)" msgstr "Fragment de domaine (DC)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/he/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/he/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..99f614744458ede3e71d242fa114d0b6949bb3cd --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/he/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: he\n" +"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && n % 10 == 0) ? 2 : 3));\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "שם רווח " + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "שם רווח " + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "שם רווח " + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "מרכיב מתחם (DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "מרכיב מתחם (DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "מרכיב מתחם (DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "הראה שם" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "הראה שם" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "הראה שם" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "דף-בית של האירגון" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "דף-בית של האירגון" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "דף-בית של האירגון" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "השם הרשמי של האירגון" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "השם הרשמי של האירגון" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "השם הרשמי של האירגון" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "השתייכות" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "השתייכות" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "השתייכות" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "פרופיל הבטחת זהות" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "פרופיל הבטחת זהות" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "פרופיל הבטחת זהות" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "אישור הקשור לשירות" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "אישור הקשור לשירות" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "אישור הקשור לשירות" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "כינוי" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "כינוי" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "כינוי" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "שם מזהה (DN) של אירגון הבית" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "שם מזהה (DN) של אירגון הבית" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "שם מזהה (DN) של אירגון הבית" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "שם מזהה (DN) של היחידה באירגון הבית" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "שם מזהה (DN) של היחידה באירגון הבית" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "שם מזהה (DN) של היחידה באירגון הבית" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "השתייכות עיקרית" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "השתייכות עיקרית" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "השתייכות עיקרית" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "שם מזהה (DN) של היחידה העיקרית באירגון הבית" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "שם מזהה (DN) של היחידה העיקרית באירגון הבית" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "שם מזהה (DN) של היחידה העיקרית באירגון הבית" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "השם העיקרי באירגון הבית" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "השם העיקרי באירגון הבית" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "השם העיקרי באירגון הבית" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "שייכות באירגון הבית" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "שייכות באירגון הבית" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "שייכות באירגון הבית" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "מזהה משתמש גלובלי" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "מזהה משתמש גלובלי" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "מזהה משתמש גלובלי" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "מס' פקס" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "מס' פקס" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "מס' פקס" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "שם פרטי" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "שם פרטי" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "שם פרטי" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "טלפון בבית" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "טלפון בבית" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "טלפון בבית" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "כתובת דואר בבית" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "כתובת דואר בבית" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "כתובת דואר בבית" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "תמונה" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "תמונה" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "תמונה" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "איזור" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "איזור" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "איזור" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "סיווג URI" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "סיווג URI" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "סיווג URI" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "דואר" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "דואר" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "דואר" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "מנהל" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "מנהל" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "מנהל" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "נייד" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "נייד" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "נייד" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "מספר אירגוני" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "מספר אירגוני" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "מספר אירגוני" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "תאריך לידה" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "תאריך לידה" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "תאריך לידה" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "מספר זהות מקומי" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "מספר זהות מקומי" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "מספר זהות מקומי" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "מספר מזהה שניתן על ידי הרשויות הציבוריות" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "מספר מזהה שניתן על ידי הרשויות הציבוריות" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "מספר מזהה שניתן על ידי הרשויות הציבוריות" + +# English string: Organization name +msgid "o" +msgstr "שם אירגון" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "שם אירגון" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "שם אירגון" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "יחידה בארגון" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "יחידה בארגון" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "יחידה בארגון" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "תא דואר" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "תא דואר" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "תא דואר" + +# English string: Postal address +msgid "postalAddress" +msgstr "כתובת דואר" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "כתובת דואר" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "כתובת דואר" + +# English string: Postal code +msgid "postalCode" +msgstr "מיקוד" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "מיקוד" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "מיקוד" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "שפה מועדפת" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "שפה מועדפת" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "שפה מועדפת" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "שם המתחם של אירגון הבית" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "שם המתחם של אירגון הבית" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "שם המתחם של אירגון הבית" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "שם המתחם של אירגון הבית" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "רכיבי המידע האישי" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "רכיבי המידע האישי" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "רכיבי המידע האישי" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "רכיבי המידע האישי" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "שם משפחה" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "שם משפחה" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "שם משפחה" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "רחוב" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "רחוב" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "רחוב" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "מספר טלפון" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "מספר טלפון" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "מספר טלפון" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "תואר" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "תואר" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "תואר" + +# English string: User ID +msgid "uid" +msgstr "מזהה משתמש" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "מזהה משתמש" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "מזהה משתמש" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "הגיבוב של סיסמת המשתמש" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "הגיבוב של סיסמת המשתמש" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "הגיבוב של סיסמת המשתמש" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "שם רווח " + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "הראה שם" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "הראה שם" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "הראה שם" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "הראה שם" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "הראה שם" + +# English string: Display name +msgid "twitter.name" +msgstr "הראה שם" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "הראה שם" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "השם העיקרי באירגון הבית" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "השם העיקרי באירגון הבית" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "השם העיקרי באירגון הבית" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "השם העיקרי באירגון הבית" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "השם העיקרי באירגון הבית" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "מזהה משתמש גלובלי" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "מזהה משתמש גלובלי" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "מזהה משתמש גלובלי" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "מזהה משתמש גלובלי" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "מס' פקס" + +# English string: Given name +msgid "facebook.first_name" +msgstr "שם פרטי" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "שם פרטי" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "שם פרטי" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "שם פרטי" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "שם פרטי" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "טלפון בבית" + +# English string: Locality +msgid "windowslive.Location" +msgstr "איזור" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "סיווג URI" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "סיווג URI" + +# English string: Mail +msgid "facebook.email" +msgstr "דואר" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "דואר" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "דואר" + +# English string: Mail +msgid "windowslive_mail" +msgstr "דואר" + +# English string: Mail +msgid "windowslive.mail" +msgstr "דואר" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "נייד" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "שם אירגון" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "מיקוד" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "מיקוד" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "שפה מועדפת" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "שפה מועדפת" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "שפה מועדפת" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "שפה מועדפת" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "שפה מועדפת" + +# English string: Surname +msgid "facebook.last_name" +msgstr "שם משפחה" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "שם משפחה" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "שם משפחה" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "שם משפחה" + +# English string: Surname +msgid "windowslive.surname" +msgstr "שם משפחה" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "מספר טלפון" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "מספר טלפון" + +# English string: Title +msgid "linkedin.headline" +msgstr "תואר" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "תואר" + +# English string: User ID +msgid "facebook.username" +msgstr "מזהה משתמש" + +# English string: User ID +msgid "linkedin.id" +msgstr "מזהה משתמש" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "מזהה משתמש" + +# English string: User ID +msgid "windowslive_uid" +msgstr "מזהה משתמש" + +# English string: User ID +msgid "windowslive.id" +msgstr "מזהה משתמש" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/he/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/he/LC_MESSAGES/messages.po index 05975ac5118c76eea43fc3f623c2fb2c76e49dde..4983a25aa8d7f8636762501338376abf29700f12 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/he/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/he/LC_MESSAGES/messages.po @@ -50,12 +50,6 @@ msgstr "שגיאה בטעינת המטא-מידע" msgid "{admin:metaconv_title}" msgstr "מנתח מטא-מידע" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "אישור הקשור לשירות" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "תמונה" - msgid "{admin:cfg_check_noerrors}" msgstr "לא נמצאו שגיאות." @@ -126,9 +120,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "חזור לדף ההתקנה של SimpleSAMLphp" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "ספק זהות מרוחק מסוג איחוד-WS" - msgid "{errors:error_header}" msgstr "שגיאה ב SimpleSAMLphp" @@ -145,18 +136,12 @@ msgstr "" "ישנה בעייה בהגדרות של התקנת ה SimpleSAMLphp שלך. אם אתה מנהל המערכת של " "שירות זה, כדי שתוודא שהגדרות מהמטא-מידע שלך נכונות." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "שם מזהה (DN) של אירגון הבית" - msgid "{errors:title_BADREQUEST}" msgstr "התקבלה בקשה לא חוקית" msgid "{status:sessionsize}" msgstr "גודל שיחה: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "כתובת דואר" - msgid "{logout:title}" msgstr "התנתקות מהמערכת" @@ -178,30 +163,15 @@ msgstr "בהשעייה" msgid "{admin:cfg_check_header}" msgstr "בדיקת הגדרות" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "שייכות באירגון הבית" - -msgid "{attributes:attribute_sn}" -msgstr "שם משפחה" - msgid "{admin:debug_sending_message_send}" msgstr "שלח הודעה" msgid "{status:logout}" msgstr "התנתקות" -msgid "{attributes:attribute_organisationname}" -msgstr "שם אירגון" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "מספר טלפון" - msgid "{errors:descr_DISCOPARAMS}" msgstr "הפרמטרים שנשלחו לשירות גילוי לא היו על פי מפרט." -msgid "{attributes:attribute_mail}" -msgstr "דואר" - msgid "{errors:descr_CREATEREQUEST}" msgstr "שגיאה אירעה בניסיון ליצור את בקשת ה- SAML." @@ -211,9 +181,6 @@ msgstr "שדות רשות" msgid "{logout:return}" msgstr "חזרה לשרות" -msgid "{attributes:attribute_displayname}" -msgstr "הראה שם" - msgid "{admin:metadata_xmlurl}" msgstr "אתה יכול <a href=\"%METAURL%\">לקבל את המטא מידע בכתובת נפרדת</a>:" @@ -225,9 +192,6 @@ msgstr "" "אתה יכול לכבות את מצב בדיקת הבאגים בקובץ בההגדרות הגלובלי של " "SimpleSAMLphp <tt>config/config.php</tt>." -msgid "{attributes:attribute_homepostaladdress}" -msgstr "כתובת דואר בבית" - msgid "{disco:select}" msgstr "בחר" @@ -252,9 +216,6 @@ msgstr "ספק זהות זה קיבל בקשת הזדהות מספק שירות, msgid "{logout:logout_all_question}" msgstr "האם אתה רוצה להתנתק מכל השרותים המוזכרים למעלה?" -msgid "{attributes:attribute_title}" -msgstr "תואר" - msgid "{errors:title_NOACCESS}" msgstr "אין גישה" @@ -269,9 +230,6 @@ msgstr "אין RelayState" msgid "{errors:descr_NOSTATE}" msgstr "אבד מידע המצב, ואי אפשר להתחל מחדש את הבקשה" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "מספר מזהה שניתן על ידי הרשויות הציבוריות" - msgid "{login:password}" msgstr "סיסמה" @@ -296,24 +254,15 @@ msgstr "שגיאה בעיבוד בקשת התנתקות" msgid "{admin:metaover_errorentry}" msgstr "שגיאה ברשומת מטא-מידע זו" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "השתייכות" - msgid "{errors:title_METADATANOTFOUND}" msgstr "לא נמצא מטא-מידע" -msgid "{attributes:attribute_givenname}" -msgstr "שם פרטי" - msgid "{login:contact_info}" msgstr "צור קשר" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "חריגה לא מטופלת " -msgid "{status:validfor}" -msgstr "השיחה שלך ברת-תוקף לעוד %SECONDS% שניות מעכשיו." - msgid "{status:header_saml20_sp}" msgstr "הדגמת דוגמה לס\"ש מסוג SAML 2.0" @@ -346,30 +295,18 @@ msgstr "בחר קובץ הגדרות לבדיקה:" msgid "{errors:descr_UNKNOWNCERT}" msgstr "ההיזדהות נכשלה: התעודה שהדפדפן שלח לא ידועה" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "דף-בית של האירגון" - msgid "{logout:logging_out_from}" msgstr "מתנתק מהשרותים הבאים:" msgid "{logout:loggedoutfrom}" msgstr "%SP%-נותקת בהצלחה מ" -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "ספק שירות מקומי מסוג איחוד-WS" - msgid "{errors:errorreport_text}" msgstr "דוח השגיאה נשלח למנהל המערכת." -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "תאריך לידה" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "שגיאה בזמן הניסיון לעבד את בקשת התנתקות." -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "מזהה משתמש גלובלי" - msgid "{logout:success}" msgstr "התנתקת בהצלחה מכל השרותים הכתובים למעלה" @@ -379,12 +316,6 @@ msgstr "הודעות" msgid "{errors:descr_USERABORTED}" msgstr "ההיזדהות בוטלה על ידי המשתמש" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "השתייכות עיקרית" - -msgid "{attributes:attribute_postalcode}" -msgstr "מיקוד" - msgid "{errors:descr_CASERROR}" msgstr "שגיאה בהתקשרות עם שרת שהם." @@ -397,9 +328,6 @@ msgstr "מטא-מידע של סש מסוג SAML 2.0 " msgid "{admin:metaconv_converted}" msgstr "מטא-מידע מומר" -msgid "{attributes:attribute_cn}" -msgstr "שם רווח " - msgid "{logout:completed}" msgstr "הסתיים" @@ -408,18 +336,9 @@ msgstr "" "הסיסמה בהגדרות (auth.adminpassword) לא שונתה מהערך ההתחלתי. אנא ערוך את " "קובץ ההגדרות." -msgid "{attributes:attribute_ou}" -msgstr "יחידה בארגון" - msgid "{general:service_provider}" msgstr "ספק שירות" -msgid "{attributes:attribute_homephone}" -msgstr "טלפון בבית" - -msgid "{attributes:attribute_dc}" -msgstr "מרכיב מתחם (DC)" - msgid "{errors:descr_BADREQUEST}" msgstr "ישנה שגיאה בבקשה לדף זה. הסיבה הייתה: %REASON%" @@ -438,23 +357,14 @@ msgstr "הכנס שם משתמש וסיסמה" msgid "{errors:report_explain}" msgstr "הסבר מה עשית כשהתרחשה השגיאה..." -msgid "{attributes:attribute_manager}" -msgstr "מנהל" - msgid "{errors:title_ACSPARAMS}" msgstr "לא סופקה תגובת SAML" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "כינוי" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "ניגשת לממשק שירות ההתנתקות הכללית, אבל לא סיפקת בקשת או תגובת התנתקות של " "SAML." -msgid "{attributes:attribute_street}" -msgstr "רחוב" - msgid "{login:organization}" msgstr "אירגון" @@ -488,9 +398,6 @@ msgstr "החלף אירגון בית" msgid "{admin:cfg_check_superfluous}" msgstr "אפשרויות מיותרות בקובץ ההגדרות" -msgid "{attributes:attribute_labeleduri}" -msgstr "סיווג URI" - msgid "{errors:report_email}" msgstr "כתובת דואל:" @@ -503,9 +410,6 @@ msgstr "סיסמה לא מוגדרת" msgid "{errors:descr_NORELAYSTATE}" msgstr "יוזם הבקשה לא סיפק פרמטר RelayState המציין לאן ללכת ." -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "שם רשמי" - msgid "{status:header_diagnostics}" msgstr "איבחון SimpleSAMLphp" @@ -514,9 +418,6 @@ msgstr "" "שלום, זהו דף המצב של SimpleSAMLphp. כאן אפשר לראות אם השיחה הופסקה, כמה " "זמן היא תמשיך עד להפסקתה וכל התכונות המצורפות לשיחה." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "שם המתחם של אירגון הבית" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "דף לא נמצא" @@ -535,30 +436,18 @@ msgstr "כדי להסתכל על הפרטים של ישות SAML, לחץ על כ msgid "{errors:title_NOTVALIDCERT}" msgstr "תעודה לא-חוקית" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "שם מזהה (DN) של היחידה באירגון הבית" - msgid "{general:remember}" msgstr "זכור" msgid "{disco:selectidp}" msgstr "בחר את ספק הזהות שלך" -msgid "{attributes:attribute_postofficebox}" -msgstr "תא דואר" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "השם העיקרי באירגון הבית" - msgid "{login:help_desk_email}" msgstr "שלח דואל לתיכה הטכנית" msgid "{login:help_desk_link}" msgstr "תמיכה טכנית" -msgid "{attributes:attribute_uid}" -msgstr "מזהה משתמש" - msgid "{errors:title_CASERROR}" msgstr "שגיאת שהם" @@ -577,12 +466,6 @@ msgstr "זכור את הבחירה שלי" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "ספק שירות מקומי מסוג SAML 2.0" -msgid "{attributes:attribute_l}" -msgstr "איזור" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "פרופיל הבטחת זהות" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "בתבנית קובץ SimpleSAMLphp שטוח - למקרים בהם אתה משתמש בישות SimpleSAMLphp" @@ -627,9 +510,6 @@ msgstr "הודעה" msgid "{errors:title_UNKNOWNCERT}" msgstr "תעודה לא ידועה" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "מס' פקס" - msgid "{errors:title_LDAPERROR}" msgstr "שגיאת LDAP" @@ -646,15 +526,9 @@ msgstr "" "שגיאה זו היא ככל הנראה בשל התנהגות בלתי צפויה או שגויה של SimpleSAMLphp. " "צור קשר עם מנהל המערכת של שירות ההתחברות הזה, ושלח לו את השגיאה למעלה." -msgid "{attributes:attribute_mobile}" -msgstr "נייד" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "ספק זהות מקומי מסוג Shib 1.3" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "שפה מועדפת" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "לא הצגת תעודה חוקית " @@ -667,15 +541,6 @@ msgstr "שדות הרשות הבאים לא נמצאו" msgid "{logout:logout_only}" msgstr "לא, רק %SP%" -msgid "{attributes:attribute_o}" -msgstr "שם אירגון" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "שם מזהה (DN) של היחידה העיקרית באירגון הבית" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "מספר זהות מקומי" - msgid "{login:next}" msgstr "הבא" @@ -691,9 +556,6 @@ msgstr "הדף הניתן לא נמצא. הסיבה הייתה %REASON% והכת msgid "{errors:title_NOCERT}" msgstr "אין תעודה" -msgid "{attributes:attribute_userpassword}" -msgstr "הגיבוב של סיסמת המשתמש" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "מידע ההתנתקות אבד" @@ -708,30 +570,18 @@ msgstr "" "הנה המטא-מידע ש SimpleSAMLphp ייצר עבורך. אתה יכול לשלוח את מסמך " "המטא-מידע לשותפים מהימנים כדי ליצור איחוד מאובטח. " -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "רכיבי המידע האישי" - -msgid "{status:header_wsfed}" -msgstr "הדגמת דוגמה לס\"ש מסוג WS-Fed" - msgid "{admin:metadata_cert}" msgstr "תעודות" msgid "{errors:descr_INVALIDCERT}" msgstr "ההיזדהות נכשלה: התעודה שהדפדפן שלח לא חוקית או לא ניתנת לקריאה" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "השם הרשמי של האירגון" - msgid "{status:header_shib}" msgstr "הדגמה ל- Shibboleth" msgid "{admin:metaconv_parse}" msgstr "נתח" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "מספר אירגוני" - msgid "Person's principal name at home organization" msgstr "השם העיקרי באירגון הבית" @@ -1052,8 +902,8 @@ msgstr "" "צור קשר עם מנהל המערכת של שירות ההתחברות הזה, ושלח לו את השגיאה למעלה." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "השיחה שלך ברת-תוקף לעוד %SECONDS% שניות מעכשיו." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "השיחה שלך ברת-תוקף לעוד %remaining% שניות מעכשיו." msgid "Domain component (DC)" msgstr "מרכיב מתחם (DC)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/hr/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/hr/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..ff787bb93fca41aa3a2fb869f1196958b4aac55c --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/hr/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hr\n" +"Plural-Forms: nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Ime i prezime" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Ime i prezime" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Ime i prezime" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Domenska komponenta (DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Domenska komponenta (DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Domenska komponenta (DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Mrežno ime" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Mrežno ime" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Mrežno ime" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Web stranice ustanove" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Web stranice ustanove" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Web stranice ustanove" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Službeni naziv ustanove" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Službeni naziv ustanove" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Službeni naziv ustanove" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Povezanost s ustanovom" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Povezanost s ustanovom" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Povezanost s ustanovom" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Usklađenost sa standardima zaštite korisničkih podataka" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Usklađenost sa standardima zaštite korisničkih podataka" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Usklađenost sa standardima zaštite korisničkih podataka" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Pripadnost grupi" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Pripadnost grupi" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Pripadnost grupi" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Nadimak" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Nadimak" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Nadimak" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Jedinstveni naziv (DN) korisnikove matične ustanove" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Jedinstveni naziv (DN) korisnikove matične ustanove" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Jedinstveni naziv (DN) korisnikove matične ustanove" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Jedinstveni naziv (DN) korisnikove organizacijske jedinice" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Jedinstveni naziv (DN) korisnikove organizacijske jedinice" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Jedinstveni naziv (DN) korisnikove organizacijske jedinice" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Temeljna povezanost s ustanovom" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Temeljna povezanost s ustanovom" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Temeljna povezanost s ustanovom" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Jedinstveni naziv (DN) korisnikove primarne organizacijske jedinice" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Jedinstveni naziv (DN) korisnikove primarne organizacijske jedinice" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Jedinstveni naziv (DN) korisnikove primarne organizacijske jedinice" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Korisnička oznaka" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Korisnička oznaka" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Korisnička oznaka" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Povezanost s matičnom ustanovom" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Povezanost s matičnom ustanovom" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Povezanost s matičnom ustanovom" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Trajni anonimni identifikator" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Trajni anonimni identifikator" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Trajni anonimni identifikator" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Broj telefaksa" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Broj telefaksa" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Broj telefaksa" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Ime" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Ime" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Ime" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Kućni telefonski broj" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Kućni telefonski broj" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Kućni telefonski broj" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Kućna poštanska adresa" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Kućna poštanska adresa" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Kućna poštanska adresa" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "Slika u JPEG formatu" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "Slika u JPEG formatu" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "Slika u JPEG formatu" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Mjesto (lokalitet)" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Mjesto (lokalitet)" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Mjesto (lokalitet)" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "URI adresa" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "URI adresa" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "URI adresa" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "Elektronička adresa" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "Elektronička adresa" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "Elektronička adresa" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Voditelj" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Voditelj" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Voditelj" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Broj mobilnog telefona" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Broj mobilnog telefona" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Broj mobilnog telefona" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Brojčani identifikator ustanove" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Brojčani identifikator ustanove" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Brojčani identifikator ustanove" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Datum rođenja" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Datum rođenja" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Datum rođenja" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Lokalni brojčani identifikator osobe u ustanovi (LOCAL_NO)" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Lokalni brojčani identifikator osobe u ustanovi (LOCAL_NO)" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Lokalni brojčani identifikator osobe u ustanovi (LOCAL_NO)" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Brojčani identifikator osobe" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Brojčani identifikator osobe" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Brojčani identifikator osobe" + +# English string: Organization name +msgid "o" +msgstr "Naziv matične ustanove" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Naziv matične ustanove" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Naziv matične ustanove" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Organizacijska jedinica" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Organizacijska jedinica" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Organizacijska jedinica" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Broj poštanskog pretinca" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Broj poštanskog pretinca" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Broj poštanskog pretinca" + +# English string: Postal address +msgid "postalAddress" +msgstr "Poštanska adresa" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Poštanska adresa" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Poštanska adresa" + +# English string: Postal code +msgid "postalCode" +msgstr "Broj pošte" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Broj pošte" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Broj pošte" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Primarni jezik" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Primarni jezik" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Primarni jezik" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Oznaka matične ustanove" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Oznaka matične ustanove" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Oznaka matične ustanove" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Oznaka matične ustanove" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Postavke privatnosti" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Postavke privatnosti" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Postavke privatnosti" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Postavke privatnosti" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Prezime" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Prezime" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Prezime" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Ulica" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Ulica" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Ulica" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Broj telefona" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Broj telefona" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Broj telefona" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Naziv" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Naziv" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Naziv" + +# English string: User ID +msgid "uid" +msgstr "Identifikator korisnika u ustanovi" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Identifikator korisnika u ustanovi" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Identifikator korisnika u ustanovi" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Kriptirana zaporka" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Kriptirana zaporka" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Kriptirana zaporka" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Ime i prezime" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Mrežno ime" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Mrežno ime" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Mrežno ime" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Mrežno ime" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Mrežno ime" + +# English string: Display name +msgid "twitter.name" +msgstr "Mrežno ime" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Mrežno ime" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Korisnička oznaka" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Korisnička oznaka" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Korisnička oznaka" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Korisnička oznaka" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Korisnička oznaka" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Trajni anonimni identifikator" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Trajni anonimni identifikator" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Trajni anonimni identifikator" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Trajni anonimni identifikator" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Broj telefaksa" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Ime" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Ime" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Ime" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Ime" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Ime" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Kućni telefonski broj" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Mjesto (lokalitet)" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "URI adresa" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "URI adresa" + +# English string: Mail +msgid "facebook.email" +msgstr "Elektronička adresa" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "Elektronička adresa" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "Elektronička adresa" + +# English string: Mail +msgid "windowslive_mail" +msgstr "Elektronička adresa" + +# English string: Mail +msgid "windowslive.mail" +msgstr "Elektronička adresa" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Broj mobilnog telefona" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Naziv matične ustanove" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Broj pošte" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Broj pošte" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Primarni jezik" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Primarni jezik" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Primarni jezik" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Primarni jezik" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Primarni jezik" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Prezime" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Prezime" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Prezime" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Prezime" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Prezime" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Broj telefona" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Broj telefona" + +# English string: Title +msgid "linkedin.headline" +msgstr "Naziv" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Naziv" + +# English string: User ID +msgid "facebook.username" +msgstr "Identifikator korisnika u ustanovi" + +# English string: User ID +msgid "linkedin.id" +msgstr "Identifikator korisnika u ustanovi" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Identifikator korisnika u ustanovi" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Identifikator korisnika u ustanovi" + +# English string: User ID +msgid "windowslive.id" +msgstr "Identifikator korisnika u ustanovi" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/hr/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/hr/LC_MESSAGES/messages.po index 7e3e9bdc11e8f81e1e55fb7103aaf2d03daf908e..0903bbbf654e568c96fadd94da0cca5519f0c37b 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/hr/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/hr/LC_MESSAGES/messages.po @@ -54,12 +54,6 @@ msgstr "Greška prilikom učitavanja metapodataka" msgid "{admin:metaconv_title}" msgstr "Analizator metapodataka" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Pripadnost grupi" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "Slika u JPEG formatu" - msgid "{admin:cfg_check_noerrors}" msgstr "Nije pronađena niti jedna greška." @@ -140,9 +134,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Natrag na početnu stranicu SimpleSAMLphp instalacije" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "WS-Federation autentifikacijski servis (udaljeni)" - msgid "{errors:error_header}" msgstr "SimpleSAMLphp greška" @@ -162,18 +153,12 @@ msgstr "" "administrator ovog servisa, provjerite jesu li svi metapodaci u " "konfiguraciji ispravni." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Jedinstveni naziv (DN) korisnikove matične ustanove" - msgid "{errors:title_BADREQUEST}" msgstr "Dobiveni zahtjev nije ispravan" msgid "{status:sessionsize}" msgstr "Veličina sjednice: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Poštanska adresa" - msgid "{logout:title}" msgstr "Odjavljeni ste" @@ -195,30 +180,15 @@ msgstr "Na čekanju" msgid "{admin:cfg_check_header}" msgstr "Provjera konfiguracije" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Povezanost s matičnom ustanovom" - -msgid "{attributes:attribute_sn}" -msgstr "Prezime" - msgid "{admin:debug_sending_message_send}" msgstr "Pošalji poruku" msgid "{status:logout}" msgstr "Odjava" -msgid "{attributes:attribute_organisationname}" -msgstr "Naziv ustanove" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Broj telefona" - msgid "{errors:descr_DISCOPARAMS}" msgstr "Parametri poslani lokacijskom servisu nisu u ispravnom formatu." -msgid "{attributes:attribute_mail}" -msgstr "Elektronička adresa" - msgid "{errors:descr_CREATEREQUEST}" msgstr "Pojavila se greška prilikom kreiranja SAML zahtjeva." @@ -228,9 +198,6 @@ msgstr "Opcionalna polja" msgid "{logout:return}" msgstr "Povratak u aplikaciju" -msgid "{attributes:attribute_displayname}" -msgstr "Mrežno ime" - msgid "{admin:metadata_xmlurl}" msgstr "Metapodaci su dostupni na <a href=\"%METAURL%\">ovoj adresi</a>:" @@ -242,9 +209,6 @@ msgstr "" "Mod za otkrivanje grešaka možete isključiti u glavnoj SimpleSAMLphp " "konfiguracijskoj datoteci <tt>config/config.php</tt>. " -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Kućna poštanska adresa" - msgid "{disco:select}" msgstr "Odaberi" @@ -271,9 +235,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Želite li se odjaviti iz svih gore navedenih servisa?" -msgid "{attributes:attribute_title}" -msgstr "Naziv" - msgid "{errors:title_NOACCESS}" msgstr "Pristup nije dozvoljen" @@ -288,9 +249,6 @@ msgstr "Parametar RelayState nije zadan" msgid "{errors:descr_NOSTATE}" msgstr "Podaci o stanju su izgubljeni i zahtjev se ne može reproducirati" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Brojčani identifikator osobe" - msgid "{login:password}" msgstr "Zaporka" @@ -317,24 +275,15 @@ msgstr "Greška prilikom odjavljivanja" msgid "{admin:metaover_errorentry}" msgstr "Ovaj zapis metapodataka sadrži grešku" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Povezanost s ustanovom" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Metapodaci nisu pronađeni" -msgid "{attributes:attribute_givenname}" -msgstr "Ime" - msgid "{login:contact_info}" msgstr "Kontakt podaci:" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Neobrađena iznimka" -msgid "{status:validfor}" -msgstr "Vaša sjednica bit će valjana još %SECONDS% sekundi." - msgid "{status:header_saml20_sp}" msgstr "Primjer SAML 2.0 davatelja usluge" @@ -370,30 +319,18 @@ msgstr "" "Neuspješna autentifikacija: digitalni certifikat kojeg je poslao vaš web " "preglednik je nepoznat" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Web stranice ustanove" - msgid "{logout:logging_out_from}" msgstr "Odjavljujete se iz sljedećih servisa:" msgid "{logout:loggedoutfrom}" msgstr "Uspješno ste odjavljeni iz %SP%." -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "WS-Federation davatelj usluge (lokalni)" - msgid "{errors:errorreport_text}" msgstr "Prijava greške poslana je administratorima." -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Datum rođenja" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "Došlo je do greške prilikom obrade zahtjeva za odjavljivanjem." -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Trajni anonimni identifikator" - msgid "{logout:success}" msgstr "Uspješno ste se odjavili iz svih gore navedenih servisa." @@ -403,12 +340,6 @@ msgstr "Napomene" msgid "{errors:descr_USERABORTED}" msgstr "Korisnik je prekinuo proces autentifikacie" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Temeljna povezanost s ustanovom" - -msgid "{attributes:attribute_postalcode}" -msgstr "Broj pošte" - msgid "{errors:descr_CASERROR}" msgstr "Greška u komunikaciji sa CAS poslužiteljem." @@ -421,9 +352,6 @@ msgstr "SAML 2.0 metapodaci o davatelju usluge" msgid "{admin:metaconv_converted}" msgstr "Pretvoreni metapodaci" -msgid "{attributes:attribute_cn}" -msgstr "Ime i prezime" - msgid "{logout:completed}" msgstr "Završeno" @@ -433,18 +361,9 @@ msgstr "" "auth.adminpassword) u konfiguraciji nije promjenjena. Molimo promjenite " "administratorsku zaporku u konfiguracijskoj datoteci." -msgid "{attributes:attribute_ou}" -msgstr "Organizacijska jedinica" - msgid "{general:service_provider}" msgstr "Davatelj usluge" -msgid "{attributes:attribute_homephone}" -msgstr "Kućni telefonski broj" - -msgid "{attributes:attribute_dc}" -msgstr "Domenska komponenta (DC)" - msgid "{errors:descr_BADREQUEST}" msgstr "Dogodila se greška prilikom dohvaćanja ove stranice. Razlog: %REASON%" @@ -463,24 +382,15 @@ msgstr "Unesite korisničku oznaku i zaporku" msgid "{errors:report_explain}" msgstr "Opišite što ste radili kad se pojavila greška..." -msgid "{attributes:attribute_manager}" -msgstr "Voditelj" - msgid "{errors:title_ACSPARAMS}" msgstr "Nije dostavljen nikakav SAML odgovor" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Nadimak" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Pristupili ste sučelju za odjavljivanje iz sustava jedinstvene " "autentifikacije, ali niste dostavili SAML LogoutRequest ili " "LogoutResponse poruku." -msgid "{attributes:attribute_street}" -msgstr "Ulica" - msgid "{login:organization}" msgstr "Ustanova" @@ -520,9 +430,6 @@ msgstr "Odaberite matičnu ustanovu" msgid "{admin:cfg_check_superfluous}" msgstr "Suvišni parametri u konfiguracijskoj datoteci" -msgid "{attributes:attribute_labeleduri}" -msgstr "URI adresa" - msgid "{errors:report_email}" msgstr "E-mail adresa:" @@ -538,9 +445,6 @@ msgstr "" "parametar koji sadrži adresu na koju treba preusmjeriti korisnikov web " "preglednik nakon uspješne autentifikacije." -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Službeni naziv" - msgid "{status:header_diagnostics}" msgstr "SimpleSAMLphp dijagnostika" @@ -551,9 +455,6 @@ msgstr "" "dugo vaša sjednica trajati te sve atribute koji su vezani uz vašu " "sjednicu." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Oznaka matične ustanove" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Stranica nije pronađena" @@ -572,30 +473,18 @@ msgstr "Da biste vidjeli detalje o SAML entitetu, kliknite na njegovo zaglavlje. msgid "{errors:title_NOTVALIDCERT}" msgstr "Certifikat nije valjan" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Jedinstveni naziv (DN) korisnikove organizacijske jedinice" - msgid "{general:remember}" msgstr "Zapamti moj odabir" msgid "{disco:selectidp}" msgstr "Odaberite autentifikacijski servis" -msgid "{attributes:attribute_postofficebox}" -msgstr "Broj poštanskog pretinca" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Korisnička oznaka" - msgid "{login:help_desk_email}" msgstr "Pošaljite e-mail službi za podršku korisnicima" msgid "{login:help_desk_link}" msgstr "Stranice službe za podršku korisnicima" -msgid "{attributes:attribute_uid}" -msgstr "Identifikator korisnika u ustanovi" - msgid "{errors:title_CASERROR}" msgstr "CAS greška" @@ -616,12 +505,6 @@ msgstr "Zapamti moj odabir" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "SAML 2.0 davatelj usluge (lokalni)" -msgid "{attributes:attribute_l}" -msgstr "Mjesto (lokalitet)" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Usklađenost sa standardima zaštite korisničkih podataka" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "U SimpleSAMLphp formatu - koristite ovu opciju ako se na drugoj strani " @@ -666,9 +549,6 @@ msgstr "Poruka" msgid "{errors:title_UNKNOWNCERT}" msgstr "Nepoznat digitalni certifikat" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Broj telefaksa" - msgid "{errors:title_LDAPERROR}" msgstr "LDAP greška" @@ -687,15 +567,9 @@ msgstr "" "neispravne konfiguracije programskog alata SimpleSAMLphp. Kontaktirajte " "administratore ovog servisa i pošaljite im gore navedenu poruku o greški." -msgid "{attributes:attribute_mobile}" -msgstr "Broj mobilnog telefona" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Shib 1.3 autentifikacijski servis (lokalni)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Primarni jezik" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Niste predočili valjani certifikat." @@ -708,15 +582,6 @@ msgstr "Nisu pronađena sljedeća opcionalna polja" msgid "{logout:logout_only}" msgstr "Ne, samo iz %SP%" -msgid "{attributes:attribute_o}" -msgstr "Naziv matične ustanove" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Jedinstveni naziv (DN) korisnikove primarne organizacijske jedinice" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Lokalni brojčani identifikator osobe u ustanovi (LOCAL_NO)" - msgid "{login:next}" msgstr "Dalje" @@ -736,9 +601,6 @@ msgstr "" msgid "{errors:title_NOCERT}" msgstr "Nema digitalnog certifikata" -msgid "{attributes:attribute_userpassword}" -msgstr "Kriptirana zaporka" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Informacija o odjavljivanju je izgubljena" @@ -755,12 +617,6 @@ msgstr "" "identiteta u koje imate povjerenja i s kojima želite uspostaviti " "federaciju." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Postavke privatnosti" - -msgid "{status:header_wsfed}" -msgstr "Primjer WS-Fed davatelja usluge" - msgid "{admin:metadata_cert}" msgstr "Certifikati" @@ -769,18 +625,12 @@ msgstr "" "Neuspješna autentifikacija: digitalni certifikat koji je poslao vaš web " "preglednik nije ispravan ili se ne može pročitati" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Službeni naziv ustanove" - msgid "{status:header_shib}" msgstr "Shibboleth primjer" msgid "{admin:metaconv_parse}" msgstr "Analiziraj" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Brojčani identifikator ustanove" - msgid "Person's principal name at home organization" msgstr "Korisnička oznaka" @@ -1117,8 +967,8 @@ msgstr "" "administratore ovog servisa i pošaljite im gore navedenu poruku o greški." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Vaša sjednica bit će valjana još %SECONDS% sekundi." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Vaša sjednica bit će valjana još %remaining% sekundi." msgid "Domain component (DC)" msgstr "Domenska komponenta (DC)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/hu/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/hu/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..34b2c4536d03e1c3d0e58147157c5b1d01209291 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/hu/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Teljes név" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Teljes név" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Teljes név" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Domain összetevő (DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Domain összetevő (DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Domain összetevő (DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Megjeleníthető név" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Megjeleníthető név" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Megjeleníthető név" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Szervezet weboldala" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Szervezet weboldala" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Szervezet weboldala" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Szervezet hivatalos neve" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Szervezet hivatalos neve" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Szervezet hivatalos neve" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Viszony" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Viszony" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Viszony" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "eduPersonAssurance" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "urn:mace:dir:attribute-def:eduPersonAssurance" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Ezekre a szolgáltatásokra jogosult" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Ezekre a szolgáltatásokra jogosult" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Ezekre a szolgáltatásokra jogosult" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Becenév" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Becenév" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Becenév" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "A felhasználó munkahelyének azonosító neve (DN-je)" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "A felhasználó munkahelyének azonosító neve (DN-je)" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "A felhasználó munkahelyének azonosító neve (DN-je)" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "A felhasználó szervezeti egység azonosító neve (DN-je)" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "A felhasználó szervezeti egység azonosító neve (DN-je)" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "A felhasználó szervezeti egység azonosító neve (DN-je)" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Elsődleges viszony" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Elsődleges viszony" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Elsődleges viszony" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "A személy elsődleges szervezeti egységének azonosító neve (DN-je)" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "A személy elsődleges szervezeti egységének azonosító neve (DN-je)" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "A személy elsődleges szervezeti egységének azonosító neve (DN-je)" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Állandó azonosító a saját intézményben" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Állandó azonosító a saját intézményben" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Állandó azonosító a saját intézményben" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Saját intézményhez való viszony" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Saját intézményhez való viszony" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Saját intézményhez való viszony" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Állandó anonim azonosító" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Állandó anonim azonosító" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Állandó anonim azonosító" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Fax" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Fax" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Fax" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Keresztnév" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Keresztnév" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Keresztnév" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Otthoni telefon" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Otthoni telefon" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Otthoni telefon" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Otthoni levelezési cím" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Otthoni levelezési cím" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Otthoni levelezési cím" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "Fotó JPEG formátumban" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "Fotó JPEG formátumban" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "Fotó JPEG formátumban" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Település" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Település" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Település" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "Honlap cím" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "Honlap cím" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "Honlap cím" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "E-mail" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "E-mail" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "E-mail" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Manager" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Manager" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Manager" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Mobil" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Mobil" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Mobil" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Szervezeti szám" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Szervezeti szám" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Szervezeti szám" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Születési dátum" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Születési dátum" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Születési dátum" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Helyi azonosító szám" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Helyi azonosító szám" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Helyi azonosító szám" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Társadalombiztosítási azonosító szám" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Társadalombiztosítási azonosító szám" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Társadalombiztosítási azonosító szám" + +# English string: Organization name +msgid "o" +msgstr "Szervezet neve" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Szervezet neve" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Szervezet neve" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Szervezeti egység" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Szervezeti egység" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Szervezeti egység" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Postafiók" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Postafiók" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Postafiók" + +# English string: Postal address +msgid "postalAddress" +msgstr "Levelezési cím" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Levelezési cím" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Levelezési cím" + +# English string: Postal code +msgid "postalCode" +msgstr "Irányítószám" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Irányítószám" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Irányítószám" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Elsődleges nyelv" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Elsődleges nyelv" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Elsődleges nyelv" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Saját intézmény domain neve" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Saját intézmény domain neve" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Saját intézmény domain neve" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Saját intézmény domain neve" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Védett adatokat tartalmazó attribútumok" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Védett adatokat tartalmazó attribútumok" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Védett adatokat tartalmazó attribútumok" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Védett adatokat tartalmazó attribútumok" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Vezetéknév" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Vezetéknév" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Vezetéknév" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Utca" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Utca" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Utca" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Telefonszám" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Telefonszám" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Telefonszám" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Cím" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Cím" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Cím" + +# English string: User ID +msgid "uid" +msgstr "Felhasználói azonosító" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Felhasználói azonosító" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Felhasználói azonosító" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "A felhasználó jelszava (kódolva)" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "A felhasználó jelszava (kódolva)" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "A felhasználó jelszava (kódolva)" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Teljes név" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Megjeleníthető név" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Megjeleníthető név" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Megjeleníthető név" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Megjeleníthető név" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Megjeleníthető név" + +# English string: Display name +msgid "twitter.name" +msgstr "Megjeleníthető név" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Megjeleníthető név" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Állandó azonosító a saját intézményben" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Állandó azonosító a saját intézményben" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Állandó azonosító a saját intézményben" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Állandó azonosító a saját intézményben" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Állandó azonosító a saját intézményben" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Állandó anonim azonosító" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Állandó anonim azonosító" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Állandó anonim azonosító" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Állandó anonim azonosító" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Fax" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Keresztnév" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Keresztnév" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Keresztnév" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Keresztnév" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Keresztnév" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Otthoni telefon" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Település" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "Honlap cím" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "Honlap cím" + +# English string: Mail +msgid "facebook.email" +msgstr "E-mail" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "E-mail" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "E-mail" + +# English string: Mail +msgid "windowslive_mail" +msgstr "E-mail" + +# English string: Mail +msgid "windowslive.mail" +msgstr "E-mail" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Mobil" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Szervezet neve" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Irányítószám" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Irányítószám" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Elsődleges nyelv" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Elsődleges nyelv" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Elsődleges nyelv" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Elsődleges nyelv" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Elsődleges nyelv" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Vezetéknév" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Vezetéknév" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Vezetéknév" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Vezetéknév" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Vezetéknév" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Telefonszám" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Telefonszám" + +# English string: Title +msgid "linkedin.headline" +msgstr "Cím" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Cím" + +# English string: User ID +msgid "facebook.username" +msgstr "Felhasználói azonosító" + +# English string: User ID +msgid "linkedin.id" +msgstr "Felhasználói azonosító" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Felhasználói azonosító" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Felhasználói azonosító" + +# English string: User ID +msgid "windowslive.id" +msgstr "Felhasználói azonosító" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/hu/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/hu/LC_MESSAGES/messages.po index 863e652e359086d7c345c11517a16ccd7490afa8..12c1bee662316443a53fbba620c0e6e7e285cae9 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/hu/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/hu/LC_MESSAGES/messages.po @@ -48,12 +48,6 @@ msgstr "Metaadat betöltési hiba" msgid "{admin:metaconv_title}" msgstr "Metaadat értelmező" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Ezekre a szolgáltatásokra jogosult" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "Fotó JPEG formátumban" - msgid "{admin:cfg_check_noerrors}" msgstr "Nincs hiba." @@ -132,9 +126,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Vissza a SimpleSAMLphp telepítő oldalára" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "WS-Federation alkalmazásszolgáltató (távoli)" - msgid "{errors:error_header}" msgstr "SimpleSAMLphp hiba" @@ -152,18 +143,12 @@ msgstr "" "adminisztrátora, bizonyosodjon meg arról, hogy a metaadatok helyesen " "vannak beállítva!" -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "A felhasználó munkahelyének azonosító neve (DN-je)" - msgid "{errors:title_BADREQUEST}" msgstr "Hibás kérés" msgid "{status:sessionsize}" msgstr "Munkamenet mérete: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Levelezési cím" - msgid "{logout:title}" msgstr "Sikeres kilépés" @@ -185,32 +170,17 @@ msgstr "Felfüggesztve" msgid "{admin:cfg_check_header}" msgstr "Beállítások ellenőrzése" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Saját intézményhez való viszony" - -msgid "{attributes:attribute_sn}" -msgstr "Vezetéknév" - msgid "{admin:debug_sending_message_send}" msgstr "Üzenet küldése" msgid "{status:logout}" msgstr "Kilépés" -msgid "{attributes:attribute_organisationname}" -msgstr "Szervezet neve" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Telefonszám" - msgid "{errors:descr_DISCOPARAMS}" msgstr "" "A felfedező szolgáltatás (discovery service) olyan paramétereket kapott, " "amelyek nem felelnek meg a specifikációnak." -msgid "{attributes:attribute_mail}" -msgstr "E-mail" - msgid "{errors:descr_CREATEREQUEST}" msgstr "Hiba történt a SAML kérés létrehozása közben." @@ -220,9 +190,6 @@ msgstr "Opcionális mező" msgid "{logout:return}" msgstr "Vissza a szolgáltatáshoz" -msgid "{attributes:attribute_displayname}" -msgstr "Megjeleníthető név" - msgid "{admin:metadata_xmlurl}" msgstr "A következő címről <a href=\"%METAURL%\">töltheti le a metaadatokat</a>:" @@ -234,9 +201,6 @@ msgstr "" "A SimpleSAMLphp <tt>config/config.php</tt> fájljában kikapcsolhatja a " "hibakereső módot." -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Otthoni levelezési cím" - msgid "{disco:select}" msgstr "Választ" @@ -266,9 +230,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Ki akar jelentkezni az összes fenti alkalmazásból?" -msgid "{attributes:attribute_title}" -msgstr "Cím" - msgid "{errors:title_NOACCESS}" msgstr "Hozzáférés megtagadva" @@ -281,9 +242,6 @@ msgstr "Nincs RelayState paraméter" msgid "{errors:descr_NOSTATE}" msgstr "Állapotinformáció elveszett, a kérést nem lehet újraindítani" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Társadalombiztosítási azonosító szám" - msgid "{login:password}" msgstr "Jelszó" @@ -310,24 +268,15 @@ msgstr "Feldolgozhatatlan kijelentkezési kérés" msgid "{admin:metaover_errorentry}" msgstr "Hiba ebben a metaadat bejegyzésben" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Viszony" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Metadata nem található" -msgid "{attributes:attribute_givenname}" -msgstr "Keresztnév" - msgid "{login:contact_info}" msgstr "Elérési információk" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Kezeletlen kivétel" -msgid "{status:validfor}" -msgstr "Az ön munkamenete még %SECONDS% másodpercig érvényes" - msgid "{status:header_saml20_sp}" msgstr "SAML 2.0 SP próba példa" @@ -361,30 +310,18 @@ msgstr "Válassza ki az ellenőrizendő konfigurációs állományt" msgid "{errors:descr_UNKNOWNCERT}" msgstr "Azonosítási hiba: a böngésző által küldött tanúsítványt ismeretlen típusú." -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Szervezet weboldala" - msgid "{logout:logging_out_from}" msgstr "Kilépés az alábbi szolgáltatásokból:" msgid "{logout:loggedoutfrom}" msgstr "Sikeresen kilépett a(z) %SP% szolgáltatásból" -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "WS-Federation alkalmazásszolgáltató (helyi)" - msgid "{errors:errorreport_text}" msgstr "A hibabejelentést elküldtük az adminisztrátoroknak." -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Születési dátum" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "A kijelentkezési kérés (logout request) feldolgozása során hiba történt." -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Állandó anonim azonosító" - msgid "{logout:success}" msgstr "Sikeresen kijelentkezett az fent felsorolt összes alkalmazásból." @@ -394,12 +331,6 @@ msgstr "Megjegyzések" msgid "{errors:descr_USERABORTED}" msgstr "Az azonosítást a felhasználó megszakította" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Elsődleges viszony" - -msgid "{attributes:attribute_postalcode}" -msgstr "Irányítószám" - msgid "{errors:descr_CASERROR}" msgstr "Hiba történt a CAS kiszolgálóval való kommunikáció közben." @@ -412,9 +343,6 @@ msgstr "SAML 2.0 SP Metaadatok" msgid "{admin:metaconv_converted}" msgstr "Konvertált metaadatok" -msgid "{attributes:attribute_cn}" -msgstr "Teljes név" - msgid "{logout:completed}" msgstr "Befejezve" @@ -423,18 +351,9 @@ msgstr "" "Még nem lett megváltoztatva a karbantartói jelszó (auth.adminpassword) a " "konfigurációs fájlban, kérjük, változtassa meg most! " -msgid "{attributes:attribute_ou}" -msgstr "Szervezeti egység" - msgid "{general:service_provider}" msgstr "Alkalmazásszolgáltató" -msgid "{attributes:attribute_homephone}" -msgstr "Otthoni telefon" - -msgid "{attributes:attribute_dc}" -msgstr "Domain összetevő (DC)" - msgid "{errors:descr_BADREQUEST}" msgstr "Hiba történt az oldal lekérdezése közben. A hibaüzenet: %REASON%" @@ -453,23 +372,14 @@ msgstr "Felhasználónév és jelszó" msgid "{errors:report_explain}" msgstr "Írja le milyen lépéseket hajtott végre, aminek végén hiba történt..." -msgid "{attributes:attribute_manager}" -msgstr "Manager" - msgid "{errors:title_ACSPARAMS}" msgstr "Nincs SAML válasz" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Becenév" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "A Single Logout interfészen vagy SAML LogoutRequest vagy LogoutResponse " "üzenetet kell megadni." -msgid "{attributes:attribute_street}" -msgstr "Utca" - msgid "{login:organization}" msgstr "Szervezet" @@ -507,9 +417,6 @@ msgstr "Válassza ki a szervezetét" msgid "{admin:cfg_check_superfluous}" msgstr "Felesleges opciók a konfigurációs állományban" -msgid "{attributes:attribute_labeleduri}" -msgstr "Honlap cím" - msgid "{errors:report_email}" msgstr "E-mail címek:" @@ -524,9 +431,6 @@ msgstr "" "A kérés összeállítója nem adta meg a RelayState paramétert, amely azt " "határozza meg, hogy hová irányítsuk tovább." -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Hivatalos név (noreduperson)" - msgid "{status:header_diagnostics}" msgstr "SimpleSAMLphp hibakeresés" @@ -536,9 +440,6 @@ msgstr "" "munkamenete, mikor lépett be utoljára és a munkamenethez tartozó " "attribútumokat." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Saját intézmény domain neve" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Oldal nem található" @@ -557,30 +458,18 @@ msgstr "A SAML entitások részleteiért kattintson a SAML entitás fejlécére" msgid "{errors:title_NOTVALIDCERT}" msgstr "Érvénytelen tanúsítvány" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "A felhasználó szervezeti egység azonosító neve (DN-je)" - msgid "{general:remember}" msgstr "Emlékezzen a hozzájárulásra" msgid "{disco:selectidp}" msgstr "Válasszon személyazonosság-szolgáltatót (IdP)" -msgid "{attributes:attribute_postofficebox}" -msgstr "Postafiók" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Állandó azonosító a saját intézményben" - msgid "{login:help_desk_email}" msgstr "Küldjön e-mailt az ügyfélszolgálatnak" msgid "{login:help_desk_link}" msgstr "Ügyfélszolgálat weboldala" -msgid "{attributes:attribute_uid}" -msgstr "Felhasználói azonosító" - msgid "{login:remember_me}" msgstr "Emlékezzen rám" @@ -604,9 +493,6 @@ msgstr "Emlékezzen erre" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "SAML 2.0 alkalmazásszolgáltató (helyi)" -msgid "{attributes:attribute_l}" -msgstr "Település" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "SimpleSAMLphp fájl formátumban - akkor használható, ha a másik oldalon " @@ -651,9 +537,6 @@ msgstr "Üzenet" msgid "{errors:title_UNKNOWNCERT}" msgstr "Ismeretlen tanúsítvány" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Fax" - msgid "{errors:title_LDAPERROR}" msgstr "LDAP hiba" @@ -671,15 +554,9 @@ msgstr "" "félrekonfigurálásával kapcsolatos. Kérjük, keresse meg a bejelentkező " "szolgáltatás adminisztrátorát, és küldje el neki a fenti hibaüzenetet!" -msgid "{attributes:attribute_mobile}" -msgstr "Mobil" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Shib 1.3 személyazonosság-szolgáltató (helyi)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Elsődleges nyelv" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Nem található hiteles tanúsítvány" @@ -692,15 +569,6 @@ msgstr "A következő opcionális mezők nem találhatók" msgid "{logout:logout_only}" msgstr "Nem, csak innen: %SP%" -msgid "{attributes:attribute_o}" -msgstr "Szervezet neve" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "A személy elsődleges szervezeti egységének azonosító neve (DN-je)" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Helyi azonosító szám" - msgid "{login:next}" msgstr "Következő" @@ -718,9 +586,6 @@ msgstr "%URL% oldal nem található, a következő ok miatt: %REASON% " msgid "{errors:title_NOCERT}" msgstr "Hiányzó tanúsítvány." -msgid "{attributes:attribute_userpassword}" -msgstr "A felhasználó jelszava (kódolva)" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Elveszett kijelentkezési információk" @@ -735,30 +600,18 @@ msgstr "" "Ezeket a metaadatokat a SimpleSAMLphp generálta. Ezt a dokumentumot " "küldheti el föderációs partnerei számára." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Védett adatokat tartalmazó attribútumok" - -msgid "{status:header_wsfed}" -msgstr "WS-Fed SP próba példa" - msgid "{admin:metadata_cert}" msgstr "Tanúsítványok." msgid "{errors:descr_INVALIDCERT}" msgstr "Azonosítási hiba: a böngésző által küldött tanúsítvány hibás." -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Szervezet hivatalos neve" - msgid "{status:header_shib}" msgstr "Shibboleth próba" msgid "{admin:metaconv_parse}" msgstr "Értelmez" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Szervezeti szám" - msgid "Person's principal name at home organization" msgstr "Állandó azonosító a saját intézményben" @@ -1085,8 +938,8 @@ msgstr "" "szolgáltatás adminisztrátorát, és küldje el neki a fenti hibaüzenetet!" #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Az ön munkamenete még %SECONDS% másodpercig érvényes" +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Az ön munkamenete még %remaining% másodpercig érvényes" msgid "Domain component (DC)" msgstr "Domain összetevő (DC)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/id/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/id/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..ff63bab78549564bdaeafbab080adba6b822c16a --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/id/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: id\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Common Name" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Common Name" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Common Name" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Domain component(DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Domain component(DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Domain component(DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Nama yang ditampilkan" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Nama yang ditampilkan" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Nama yang ditampilkan" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Homepage organisasi" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Homepage organisasi" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Homepage organisasi" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Nama legal Organisasi" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Nama legal Organisasi" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Nama legal Organisasi" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Afiliasi" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Afiliasi" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Afiliasi" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Profil penjamin identitas" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Profil penjamin identitas" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Profil penjamin identitas" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Hak mengenai layanan ini" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Hak mengenai layanan ini" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Hak mengenai layanan ini" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Nama panggilan" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Nama panggilan" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Nama panggilan" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Distinguished name (DN) of person's home organization" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Distinguished name (DN) of person's home organization" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Distinguished name (DN) of person's home organization" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Distinguished name (DN) of the person's home organizational unit" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Distinguished name (DN) of the person's home organizational unit" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Distinguished name (DN) of the person's home organizational unit" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Afiliasi utama" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Afiliasi utama" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Afiliasi utama" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Distinguished name (DN) of person's primary Organizational Unit" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Distinguished name (DN) of person's primary Organizational Unit" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Distinguished name (DN) of person's primary Organizational Unit" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Nama kepala pada organisasi asal" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Nama kepala pada organisasi asal" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Nama kepala pada organisasi asal" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Afiliasi di organisasi asal" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Afiliasi di organisasi asal" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Afiliasi di organisasi asal" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Persistent pseudonymous ID" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Persistent pseudonymous ID" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Persistent pseudonymous ID" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "No Fax" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "No Fax" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "No Fax" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Nama" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Nama" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Nama" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Telepon rumah" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Telepon rumah" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Telepon rumah" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Alamat pos rumah" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Alamat pos rumah" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Alamat pos rumah" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "Foto JPEG" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "Foto JPEG" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "Foto JPEG" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Lokalitas" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Lokalitas" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Lokalitas" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "Berlabel URL" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "Berlabel URL" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "Berlabel URL" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "Mail" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "Mail" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "Mail" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Manager" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Manager" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Manager" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Handphone" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Handphone" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Handphone" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Nomor Organisasi" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Nomor Organisasi" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Nomor Organisasi" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Tanggal lahir" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Tanggal lahir" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Tanggal lahir" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Nomor identitas lokal" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Nomor identitas lokal" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Nomor identitas lokal" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Identity number assigned by public authorities" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Identity number assigned by public authorities" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Identity number assigned by public authorities" + +# English string: Organization name +msgid "o" +msgstr "Nama organisasi" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Nama organisasi" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Nama organisasi" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Organizational unit" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Organizational unit" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Organizational unit" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "PO Box" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "PO Box" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "PO Box" + +# English string: Postal address +msgid "postalAddress" +msgstr "Alamat pos" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Alamat pos" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Alamat pos" + +# English string: Postal code +msgid "postalCode" +msgstr "Kode pos" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Kode pos" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Kode pos" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Pilihan Bahasa" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Pilihan Bahasa" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Pilihan Bahasa" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Home organization domain name" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Home organization domain name" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Home organization domain name" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Home organization domain name" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Elemen-elemen informasi personal" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Elemen-elemen informasi personal" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Elemen-elemen informasi personal" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Elemen-elemen informasi personal" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Nama Keluaga" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Nama Keluaga" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Nama Keluaga" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Jalan" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Jalan" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Jalan" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "No Telepon" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "No Telepon" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "No Telepon" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Gelar" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Gelar" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Gelar" + +# English string: User ID +msgid "uid" +msgstr "User ID" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "User ID" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "User ID" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Hash password user" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Hash password user" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Hash password user" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Common Name" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Nama yang ditampilkan" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Nama yang ditampilkan" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Nama yang ditampilkan" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Nama yang ditampilkan" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Nama yang ditampilkan" + +# English string: Display name +msgid "twitter.name" +msgstr "Nama yang ditampilkan" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Nama yang ditampilkan" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Nama kepala pada organisasi asal" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Nama kepala pada organisasi asal" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Nama kepala pada organisasi asal" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Nama kepala pada organisasi asal" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Nama kepala pada organisasi asal" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Persistent pseudonymous ID" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Persistent pseudonymous ID" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Persistent pseudonymous ID" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Persistent pseudonymous ID" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "No Fax" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Nama" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Nama" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Nama" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Nama" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Nama" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Telepon rumah" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Lokalitas" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "Berlabel URL" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "Berlabel URL" + +# English string: Mail +msgid "facebook.email" +msgstr "Mail" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "Mail" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "Mail" + +# English string: Mail +msgid "windowslive_mail" +msgstr "Mail" + +# English string: Mail +msgid "windowslive.mail" +msgstr "Mail" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Handphone" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Nama organisasi" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Kode pos" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Kode pos" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Pilihan Bahasa" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Pilihan Bahasa" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Pilihan Bahasa" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Pilihan Bahasa" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Pilihan Bahasa" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Nama Keluaga" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Nama Keluaga" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Nama Keluaga" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Nama Keluaga" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Nama Keluaga" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "No Telepon" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "No Telepon" + +# English string: Title +msgid "linkedin.headline" +msgstr "Gelar" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Gelar" + +# English string: User ID +msgid "facebook.username" +msgstr "User ID" + +# English string: User ID +msgid "linkedin.id" +msgstr "User ID" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "User ID" + +# English string: User ID +msgid "windowslive_uid" +msgstr "User ID" + +# English string: User ID +msgid "windowslive.id" +msgstr "User ID" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/id/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/id/LC_MESSAGES/messages.po index 5a678b68a7ee5fe34ca2c54dfde2809885d8f97b..35c3a2a36f59976253c16caa27871da4da8b649d 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/id/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/id/LC_MESSAGES/messages.po @@ -50,12 +50,6 @@ msgstr "Error meload metadata" msgid "{admin:metaconv_title}" msgstr "Parser metadata" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Hak mengenai layanan ini" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "Foto JPEG" - msgid "{admin:cfg_check_noerrors}" msgstr "Tidak ada error yang ditemukan" @@ -135,9 +129,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Kembali ke halaman instalasi SimpleSAMLphp" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "Identity Provider WS-Federation (Remote)" - msgid "{errors:error_header}" msgstr "Error simpelSAMLphp" @@ -156,18 +147,12 @@ msgstr "" "Jika Anda adalah administrator dari layanan ini, Anda harus memastikan " "konfigurasi metdata Anda telah disetup dengan benar. " -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Distinguished name (DN) of person's home organization" - msgid "{errors:title_BADREQUEST}" msgstr "Request buruk diterima" msgid "{status:sessionsize}" msgstr "Ukuran session: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Alamat pos" - msgid "{logout:title}" msgstr "Log out" @@ -189,32 +174,17 @@ msgstr "Ditahan" msgid "{admin:cfg_check_header}" msgstr "Pemeriksaan konfigurasi" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Afiliasi di organisasi asal" - -msgid "{attributes:attribute_sn}" -msgstr "Nama Keluaga" - msgid "{admin:debug_sending_message_send}" msgstr "Submit pesan" msgid "{status:logout}" msgstr "Logout" -msgid "{attributes:attribute_organisationname}" -msgstr "Organization name" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "No Telepon" - msgid "{errors:descr_DISCOPARAMS}" msgstr "" "Parameter-parameter yang dikirimkan ke layanan penemuan tidak sesuai " "dengan spesifikasi" -msgid "{attributes:attribute_mail}" -msgstr "Mail" - msgid "{errors:descr_CREATEREQUEST}" msgstr "Sebuah error telah terjadi ketika membuat request SAML." @@ -224,9 +194,6 @@ msgstr "Field-field opsional" msgid "{logout:return}" msgstr "Kembali ke layanan" -msgid "{attributes:attribute_displayname}" -msgstr "Nama yang ditampilkan" - msgid "{admin:metadata_xmlurl}" msgstr "" "Anda dapat <a href=\"%METAURL%\">mendapatkan xml metadata pada URL " @@ -240,9 +207,6 @@ msgstr "" "Anda dapat menonaktifkan mode debuh pada file konfigurasi global " "simpleSAMLhphp <tt>config/config.php</tt>." -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Alamat pos rumah" - msgid "{disco:select}" msgstr "Pilih" @@ -269,9 +233,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Apakah anda ingin logout dari semua layanan diatas ?" -msgid "{attributes:attribute_title}" -msgstr "Gelar" - msgid "{errors:title_NOACCESS}" msgstr "Tiaak ada akses" @@ -286,9 +247,6 @@ msgstr "Tidak ada RelayState" msgid "{errors:descr_NOSTATE}" msgstr "Informasi state hilang, dan tidak ada cara untuk me-restat request" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Identity number assigned by public authorities" - msgid "{login:password}" msgstr "Password" @@ -313,24 +271,15 @@ msgstr "Error memproses Request Logout" msgid "{admin:metaover_errorentry}" msgstr "Error pada entri metadata ini" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Afiliasi" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Metadata tidak ditemukan" -msgid "{attributes:attribute_givenname}" -msgstr "Nama" - msgid "{login:contact_info}" msgstr "Informasi Kontak" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Exception yang tidak tertangani" -msgid "{status:validfor}" -msgstr "Session anda valid untuk %SECONDS% detik dari sekarang." - msgid "{status:header_saml20_sp}" msgstr "Contoh Demo SAML 2.0 SP" @@ -364,30 +313,18 @@ msgstr "Pilih file konfigurasi untuk diperiksa" msgid "{errors:descr_UNKNOWNCERT}" msgstr "Autentifikasi gagal: sertifikat yang browser anda kirimkan tidak dikenal" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Homepage organisasi" - msgid "{logout:logging_out_from}" msgstr "Log out dari layanan-layanan berikut:" msgid "{logout:loggedoutfrom}" msgstr "Sekarang anda telah sukses log out dari %SP%." -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "Servide Provider WS-Federation (Hosted)" - msgid "{errors:errorreport_text}" msgstr "Laporan error telah dikirimkan ke administrator" -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Tanggal lahir" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "Sebuah error telah terjadi ketika memproses Request Logout." -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Persistent pseudonymous ID" - msgid "{logout:success}" msgstr "Anda telah berhasil log out dari semua layanan yang tercantuh diatas." @@ -397,12 +334,6 @@ msgstr "Pemberitahuan" msgid "{errors:descr_USERABORTED}" msgstr "Autentifikasi dibatalkan oleh user" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Afiliasi utama" - -msgid "{attributes:attribute_postalcode}" -msgstr "Kode pos" - msgid "{errors:descr_CASERROR}" msgstr "Error ketika berkomunikasi dengans server CAS." @@ -415,9 +346,6 @@ msgstr "Metadata SAML 2.0 SP" msgid "{admin:metaconv_converted}" msgstr "Metadata yang telah dikonvesi" -msgid "{attributes:attribute_cn}" -msgstr "Common Name" - msgid "{logout:completed}" msgstr "Selesai" @@ -426,18 +354,9 @@ msgstr "" "Password di konfigurasi (auth.adminspassword) tidak berubah dari nilai " "default. Silahkan edit file konfigurasi." -msgid "{attributes:attribute_ou}" -msgstr "Organizational unit" - msgid "{general:service_provider}" msgstr "Service Provider" -msgid "{attributes:attribute_homephone}" -msgstr "Telepon rumah" - -msgid "{attributes:attribute_dc}" -msgstr "Domain component(DC)" - msgid "{errors:descr_BADREQUEST}" msgstr "Terjadi error pada request ke halaman ini. Alasannya adalah: %REASON%" @@ -456,23 +375,14 @@ msgstr "Masukkan username dan password Anda" msgid "{errors:report_explain}" msgstr "Jelaskan apa yang Anda lakukan ketika error ini terjadi..." -msgid "{attributes:attribute_manager}" -msgstr "Manager" - msgid "{errors:title_ACSPARAMS}" msgstr "Tidak ada response SAML yang disediakan" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Nama panggilan" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Anda mengakses antarmuka SingleLogout, tetapi tidak menyediakan " "LogoutRequest SAML atau LogoutResponse." -msgid "{attributes:attribute_street}" -msgstr "Jalan" - msgid "{login:organization}" msgstr "Organisasi" @@ -512,9 +422,6 @@ msgstr "Pilih basis organisasi" msgid "{admin:cfg_check_superfluous}" msgstr "Pilihan tak beguna di file konfigurasi" -msgid "{attributes:attribute_labeleduri}" -msgstr "Berlabel URL" - msgid "{errors:report_email}" msgstr "Alamat E-mail:" @@ -529,9 +436,6 @@ msgstr "" "Inisiator dari request ini tidak menyediakan parameter RelayState yang " "mengindikasikan kemana selanjutnya pergi." -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Nama legal" - msgid "{status:header_diagnostics}" msgstr "Diagnostik SimpleSAMLphp" @@ -541,9 +445,6 @@ msgstr "" "melihat jika session anda telah time out, berapa lama ia berlaku sampai " "time out dan semua attribut yang menempel pada session anda." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Home organization domain name" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Halaman tidak ditemukan" @@ -562,30 +463,18 @@ msgstr "Untuk melihat detail entiti SAML, klik pada bagian header entiti SAML" msgid "{errors:title_NOTVALIDCERT}" msgstr "Sertifikat invalid" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Distinguished name (DN) of the person's home organizational unit" - msgid "{general:remember}" msgstr "Ingat" msgid "{disco:selectidp}" msgstr "Pilih identity provider anda" -msgid "{attributes:attribute_postofficebox}" -msgstr "PO Box" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Nama kepala pada organisasi asal" - msgid "{login:help_desk_email}" msgstr "Kirim e-mail ke help dek" msgid "{login:help_desk_link}" msgstr "Homepage Help desk" -msgid "{attributes:attribute_uid}" -msgstr "User ID" - msgid "{errors:title_CASERROR}" msgstr "Error CAS" @@ -606,12 +495,6 @@ msgstr "Ingat pilihan saya" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "Service Provider SAML 2.0 (Hosted)" -msgid "{attributes:attribute_l}" -msgstr "Lokalitas" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Profil penjamin identitas" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "Dalam format file biasa SimpleSAMLphp - gunakan ini jika Anda menggunakan" @@ -656,9 +539,6 @@ msgstr "Pesan" msgid "{errors:title_UNKNOWNCERT}" msgstr "Sertifikat tidak dikenal" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "No Fax" - msgid "{errors:title_LDAPERROR}" msgstr "Error LDAP" @@ -677,15 +557,9 @@ msgstr "" " yang salah di SimpleSAMLphp. Hubungi administrator dari layanan login " "ini, dan kirimkan kepada mereka pesan error diatas." -msgid "{attributes:attribute_mobile}" -msgstr "Handphone" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Identity Provider Shib 1.3 (Hosted)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Pilihan Bahasa" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Anda tidak menyediakan sertifikat yang valid." @@ -700,15 +574,6 @@ msgstr "Field-field opsional berikut tidak dapat ditemukan" msgid "{logout:logout_only}" msgstr "Tidak, hanya %SP%" -msgid "{attributes:attribute_o}" -msgstr "Nama organisasi" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Distinguished name (DN) of person's primary Organizational Unit" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Nomor identitas lokal" - msgid "{login:next}" msgstr "Selanjutnya" @@ -728,9 +593,6 @@ msgstr "" msgid "{errors:title_NOCERT}" msgstr "Tidak ada sertifikat" -msgid "{attributes:attribute_userpassword}" -msgstr "Hash password user" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Informasi logout hilang" @@ -746,12 +608,6 @@ msgstr "" "Anda. Anda dapat mengirim dokumen metadata ini kepada rekan yang " "dipercayai untuk mensetup federasi terpercaya." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Elemen-elemen informasi personal" - -msgid "{status:header_wsfed}" -msgstr "Contoh Demo WS-Fed SP" - msgid "{admin:metadata_cert}" msgstr "Sertifikat" @@ -760,18 +616,12 @@ msgstr "" "Autentifikasi gagal: Sertifikat yang browser Anda kirimkan invalid atau " "tidak dapat dibaca" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Nama legal Organisasi" - msgid "{status:header_shib}" msgstr "Demo Shibboleth" msgid "{admin:metaconv_parse}" msgstr "Parse" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Nomor Organisasi" - msgid "Person's principal name at home organization" msgstr "Nama kepala pada organisasi asal" @@ -1102,8 +952,8 @@ msgstr "" "ini, dan kirimkan kepada mereka pesan error diatas." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Session anda valid untuk %SECONDS% detik dari sekarang." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Session anda valid untuk %remaining% detik dari sekarang." msgid "Domain component (DC)" msgstr "Domain component(DC)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/it/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/it/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..e7ddfd7e75cebed180df452e14771dca2f63609b --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/it/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Nome completo" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Nome completo" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Nome completo" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Componente di dominio (DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Componente di dominio (DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Componente di dominio (DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Nome da visualizzare" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Nome da visualizzare" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Nome da visualizzare" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Homepage della propria organizzazione" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Homepage della propria organizzazione" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Homepage della propria organizzazione" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Nome legale della propria organizzazione" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Nome legale della propria organizzazione" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Nome legale della propria organizzazione" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Affiliazione" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Affiliazione" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Affiliazione" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Profilo di garanzia sull'identità" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Profilo di garanzia sull'identità" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Profilo di garanzia sull'identità" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Qualifica rispetto al servizio" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Qualifica rispetto al servizio" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Qualifica rispetto al servizio" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Soprannome (nick)" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Soprannome (nick)" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Soprannome (nick)" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Distinguished name (DN) dell'organizzazione " + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Distinguished name (DN) dell'organizzazione " + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Distinguished name (DN) dell'organizzazione " + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Distinguished name (DN) dell'unità organizzativa della persona" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Distinguished name (DN) dell'unità organizzativa della persona" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Distinguished name (DN) dell'unità organizzativa della persona" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Affiliazione primaria" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Affiliazione primaria" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Affiliazione primaria" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Distinguished name (DN) dell'unità organizzativa della persona" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Distinguished name (DN) dell'unità organizzativa della persona" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Distinguished name (DN) dell'unità organizzativa della persona" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Nome identificativo (principal name) nella propria organizzazione" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Nome identificativo (principal name) nella propria organizzazione" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Nome identificativo (principal name) nella propria organizzazione" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Affiliazione nella propria organizzazione" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Affiliazione nella propria organizzazione" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Affiliazione nella propria organizzazione" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Pseudonimo identificativo persistente" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Pseudonimo identificativo persistente" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Pseudonimo identificativo persistente" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Numero di fax" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Numero di fax" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Numero di fax" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Nome " + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Nome " + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Nome " + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Telefono" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Telefono" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Telefono" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Indirizzo postale" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Indirizzo postale" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Indirizzo postale" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "Foto JPEG" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "Foto JPEG" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "Foto JPEG" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Località" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Località" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Località" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "Etichetta URI" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "Etichetta URI" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "Etichetta URI" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "Mail" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "Mail" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "Mail" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Manager" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Manager" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Manager" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Cellulare" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Cellulare" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Cellulare" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Numero organizzativo" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Numero organizzativo" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Numero organizzativo" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Data di nascita" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Data di nascita" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Data di nascita" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Numero identificativo locale" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Numero identificativo locale" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Numero identificativo locale" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Numero di identità assegnato dall'autorità pubblica" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Numero di identità assegnato dall'autorità pubblica" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Numero di identità assegnato dall'autorità pubblica" + +# English string: Organization name +msgid "o" +msgstr "Nome dell'organizzazione" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Nome dell'organizzazione" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Nome dell'organizzazione" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Unità organizzativa" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Unità organizzativa" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Unità organizzativa" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Casella postale" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Casella postale" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Casella postale" + +# English string: Postal address +msgid "postalAddress" +msgstr "Indirizzo postale" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Indirizzo postale" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Indirizzo postale" + +# English string: Postal code +msgid "postalCode" +msgstr "CAP" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "CAP" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "CAP" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Lingua preferita" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Lingua preferita" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Lingua preferita" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Nome del dominio della propria organizzazione" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Nome del dominio della propria organizzazione" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Nome del dominio della propria organizzazione" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Nome del dominio della propria organizzazione" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Elementi informativi privati" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Elementi informativi privati" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Elementi informativi privati" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Elementi informativi privati" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Cognome" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Cognome" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Cognome" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Via" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Via" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Via" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Numero di telefono" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Numero di telefono" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Numero di telefono" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Titolo" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Titolo" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Titolo" + +# English string: User ID +msgid "uid" +msgstr "Identificativo utente" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Identificativo utente" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Identificativo utente" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Hash della password utente" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Hash della password utente" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Hash della password utente" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Nome completo" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Nome da visualizzare" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Nome da visualizzare" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Nome da visualizzare" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Nome da visualizzare" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Nome da visualizzare" + +# English string: Display name +msgid "twitter.name" +msgstr "Nome da visualizzare" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Nome da visualizzare" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Nome identificativo (principal name) nella propria organizzazione" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Nome identificativo (principal name) nella propria organizzazione" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Nome identificativo (principal name) nella propria organizzazione" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Nome identificativo (principal name) nella propria organizzazione" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Nome identificativo (principal name) nella propria organizzazione" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Pseudonimo identificativo persistente" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Pseudonimo identificativo persistente" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Pseudonimo identificativo persistente" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Pseudonimo identificativo persistente" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Numero di fax" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Nome " + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Nome " + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Nome " + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Nome " + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Nome " + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Telefono" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Località" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "Etichetta URI" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "Etichetta URI" + +# English string: Mail +msgid "facebook.email" +msgstr "Mail" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "Mail" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "Mail" + +# English string: Mail +msgid "windowslive_mail" +msgstr "Mail" + +# English string: Mail +msgid "windowslive.mail" +msgstr "Mail" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Cellulare" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Nome dell'organizzazione" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "CAP" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "CAP" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Lingua preferita" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Lingua preferita" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Lingua preferita" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Lingua preferita" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Lingua preferita" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Cognome" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Cognome" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Cognome" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Cognome" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Cognome" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Numero di telefono" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Numero di telefono" + +# English string: Title +msgid "linkedin.headline" +msgstr "Titolo" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Titolo" + +# English string: User ID +msgid "facebook.username" +msgstr "Identificativo utente" + +# English string: User ID +msgid "linkedin.id" +msgstr "Identificativo utente" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Identificativo utente" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Identificativo utente" + +# English string: User ID +msgid "windowslive.id" +msgstr "Identificativo utente" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/it/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/it/LC_MESSAGES/messages.po index f34a236f7e11cfb95882f45177adf69589583035..3a52011922b24665c2acee35ed4a482dd1b83332 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/it/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/it/LC_MESSAGES/messages.po @@ -52,12 +52,6 @@ msgstr "Errore nel caricamento dei metadati" msgid "{admin:metaconv_title}" msgstr "Parser dei metadati" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Qualifica rispetto al servizio" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "Foto JPEG" - msgid "{admin:cfg_check_noerrors}" msgstr "Nessun errore trovato." @@ -138,9 +132,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Torna alla pagine di installazione di SimpleSAMLphp" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "WS-Federation Identity Provider (Remoto)" - msgid "{errors:error_header}" msgstr "Errore di SimpleSAMLphp" @@ -159,18 +150,12 @@ msgstr "" "SimpleSAMLphp. Se sei l'amministratore di sistema, assicurati che la " "configurazione dei metadati sia corretta." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Distinguished name (DN) dell'organizzazione " - msgid "{errors:title_BADREQUEST}" msgstr "E' stata ricevuta una richiesta erronea." msgid "{status:sessionsize}" msgstr "Dimensione della session: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Indirizzo postale" - msgid "{logout:title}" msgstr "Disconnesso" @@ -192,30 +177,15 @@ msgstr "In attesa" msgid "{admin:cfg_check_header}" msgstr "Verifica della configurazione" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Affiliazione nella propria organizzazione" - -msgid "{attributes:attribute_sn}" -msgstr "Cognome" - msgid "{admin:debug_sending_message_send}" msgstr "Invio messaggio" msgid "{status:logout}" msgstr "Disconnessione" -msgid "{attributes:attribute_organisationname}" -msgstr "Nome dell'organizzazione" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Numero di telefono" - msgid "{errors:descr_DISCOPARAMS}" msgstr "I parametri inviati al discovery service non rispettano le specifiche." -msgid "{attributes:attribute_mail}" -msgstr "Mail" - msgid "{errors:descr_CREATEREQUEST}" msgstr "Si è verificato un errore durante la creazione della richiesta SAML." @@ -225,9 +195,6 @@ msgstr "Campi opzionali" msgid "{logout:return}" msgstr "Ritornare al servizio" -msgid "{attributes:attribute_displayname}" -msgstr "Nome da visualizzare" - msgid "{admin:metadata_xmlurl}" msgstr "" "Si possono <a href=\"%METAURL%\">ottenere i metadati in XML dall'URL " @@ -241,9 +208,6 @@ msgstr "" "E' possibile disabilitare la modalità di debug nel file di configurazione" " globale di SimpleSAMLphp, <tt>config/config.php</tt>." -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Indirizzo postale" - msgid "{disco:select}" msgstr "Selezionare" @@ -271,9 +235,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Vuoi disconnetterti da tutti i servizi qui sopra riportati?" -msgid "{attributes:attribute_title}" -msgstr "Titolo" - msgid "{errors:title_NOACCESS}" msgstr "Nessun accesso" @@ -290,9 +251,6 @@ msgstr "" "Le informazioni di stato sono andate perse, e non c'è modo di far " "ripartire la richiesta" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Numero di identità assegnato dall'autorità pubblica" - msgid "{login:password}" msgstr "Password" @@ -321,24 +279,15 @@ msgstr "" msgid "{admin:metaover_errorentry}" msgstr "Errore in questo elemento dei metadati" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Affiliazione" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Metadati non trovati" -msgid "{attributes:attribute_givenname}" -msgstr "Nome " - msgid "{login:contact_info}" msgstr "Informazioni di contatto:" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Eccezione non gestita" -msgid "{status:validfor}" -msgstr "La tua sessione è valida per ulteriori %SECONDS% secondi." - msgid "{status:header_saml20_sp}" msgstr "Demo di SAML 2.0 SP" @@ -374,32 +323,20 @@ msgstr "" "L'autenticazione è fallita perché il tuo browser ha inviato un certificat" " sconosciuto." -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Homepage della propria organizzazione" - msgid "{logout:logging_out_from}" msgstr "Disconnessione in corso dai seguenti servizi:" msgid "{logout:loggedoutfrom}" msgstr "Adesso sei correttamente disconnesso da %SP%" -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "WS-Federation Service Provider (Hosted)" - msgid "{errors:errorreport_text}" msgstr "Il rapporto dell'errore è stato inviato agli amministratori." -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Data di nascita" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "" "Si è verificato un errore quando si è tentato di elaborare la richiesta " "di disconnessione (Logout Request)." -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Pseudonimo identificativo persistente" - msgid "{logout:success}" msgstr "Sei stato disconnesso da tutti i servizi sopra elencati." @@ -409,12 +346,6 @@ msgstr "Notifiche" msgid "{errors:descr_USERABORTED}" msgstr "L'autenticazione è stata interrotta dall'utente" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Affiliazione primaria" - -msgid "{attributes:attribute_postalcode}" -msgstr "CAP" - msgid "{errors:descr_CASERROR}" msgstr "Errore nella comunicazione con il server CAS." @@ -427,9 +358,6 @@ msgstr "Metadati SAML 2.0 SP" msgid "{admin:metaconv_converted}" msgstr "Metadati convertiti" -msgid "{attributes:attribute_cn}" -msgstr "Nome completo" - msgid "{logout:completed}" msgstr "Completato" @@ -439,18 +367,9 @@ msgstr "" "stata cambiata dal valore di default. Si prega di editare il file di " "configurazione." -msgid "{attributes:attribute_ou}" -msgstr "Unità organizzativa" - msgid "{general:service_provider}" msgstr "Fornitore di servizi" -msgid "{attributes:attribute_homephone}" -msgstr "Telefono" - -msgid "{attributes:attribute_dc}" -msgstr "Componente di dominio (DC)" - msgid "{errors:descr_BADREQUEST}" msgstr "C'è un errore nella richiesta di questa pagina: %REASON%" @@ -469,23 +388,14 @@ msgstr "Inserire nome utente e password" msgid "{errors:report_explain}" msgstr "Descrivi cosa stavi facendo al momento dell'errore" -msgid "{attributes:attribute_manager}" -msgstr "Manager" - msgid "{errors:title_ACSPARAMS}" msgstr "Nessuna risposta SAML fornita." -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Soprannome (nick)" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Hai acceduto all'interfaccia di SingleLogoutService, ma senza fornire un " "messaggio SAML di LogoutRequest o LogoutResponse." -msgid "{attributes:attribute_street}" -msgstr "Via" - msgid "{login:organization}" msgstr "Organizzazione" @@ -525,9 +435,6 @@ msgstr "Selezionare la propria organizzazione" msgid "{admin:cfg_check_superfluous}" msgstr "Opzioni superflue nel file di configurazione" -msgid "{attributes:attribute_labeleduri}" -msgstr "Etichetta URI" - msgid "{errors:report_email}" msgstr "Indirizzo di e-mail:" @@ -542,9 +449,6 @@ msgstr "" "Chi ha iniziato la richiesta non ha fornito un parametro RelayState per " "specificare come proseguire dopo il login." -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Nome legale" - msgid "{status:header_diagnostics}" msgstr "Diagnostici di SimpleSAMLphp" @@ -554,9 +458,6 @@ msgstr "" "vedere se la sessione è scaduta, quanto è durata prima di scadere e tutti" " gli attributi ad essa collegati." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Nome del dominio della propria organizzazione" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Pagina non trovata" @@ -577,30 +478,18 @@ msgstr "" msgid "{errors:title_NOTVALIDCERT}" msgstr "Certificato non valido" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Distinguished name (DN) dell'unità organizzativa della persona" - msgid "{general:remember}" msgstr "Ricordare" msgid "{disco:selectidp}" msgstr "Selezionare il proprio identity provider" -msgid "{attributes:attribute_postofficebox}" -msgstr "Casella postale" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Nome identificativo (principal name) nella propria organizzazione" - msgid "{login:help_desk_email}" msgstr "Invia una mail al servizio di assistenza" msgid "{login:help_desk_link}" msgstr "Homepage del servizio di assistenza" -msgid "{attributes:attribute_uid}" -msgstr "Identificativo utente" - msgid "{errors:title_CASERROR}" msgstr "Errore CAS" @@ -621,12 +510,6 @@ msgstr "Ricorda la mia scelta" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "SAML 2.0 Service Provider (Hosted)" -msgid "{attributes:attribute_l}" -msgstr "Località" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Profilo di garanzia sull'identità" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "In formato flat per SimpleSAMLphp - da utilizzare se dall'altra parte c'è" @@ -671,9 +554,6 @@ msgstr "Messaggio" msgid "{errors:title_UNKNOWNCERT}" msgstr "Certificato sconosciuto" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Numero di fax" - msgid "{errors:title_LDAPERROR}" msgstr "Errore LDAP" @@ -692,15 +572,9 @@ msgstr "" " di questo servizio di login con una copia del messaggio di errore " "riportato qui sopra." -msgid "{attributes:attribute_mobile}" -msgstr "Cellulare" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Shib 1.3 Identity Provider (Hosted)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Lingua preferita" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Non hai fornito un certificato valido." @@ -715,15 +589,6 @@ msgstr "I seguenti campi, opzionali, non sono stati trovati" msgid "{logout:logout_only}" msgstr "No, solo da %SP%" -msgid "{attributes:attribute_o}" -msgstr "Nome dell'organizzazione" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Distinguished name (DN) dell'unità organizzativa della persona" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Numero identificativo locale" - msgid "{login:next}" msgstr "Avanti" @@ -741,9 +606,6 @@ msgstr "La pagina data non è stata trovata. Motivo: %REASON%, URL: %URL%" msgid "{errors:title_NOCERT}" msgstr "Nessun certificato" -msgid "{attributes:attribute_userpassword}" -msgstr "Hash della password utente" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Informazioni di disconnessione smarrite." @@ -758,12 +620,6 @@ msgstr "" "Questi sono i metadati che SimpleSAMLphp ha generato e che possono essere" " inviati ai partner fidati per creare una federazione tra siti." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Elementi informativi privati" - -msgid "{status:header_wsfed}" -msgstr "Demo di WS-Fed SP" - msgid "{admin:metadata_cert}" msgstr "Certificati" @@ -772,18 +628,12 @@ msgstr "" "L'autenticazione è fallita perché il tuo browser ha inviato un " "certificato non valido o illegibile." -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Nome legale della propria organizzazione" - msgid "{status:header_shib}" msgstr "Demo di Shibboleth" msgid "{admin:metaconv_parse}" msgstr "Analisi" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Numero organizzativo" - msgid "Person's principal name at home organization" msgstr "Nome identificativo (principal name) nella propria organizzazione" @@ -1125,8 +975,8 @@ msgstr "" "riportato qui sopra." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "La tua sessione è valida per ulteriori %SECONDS% secondi." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "La tua sessione è valida per ulteriori %remaining% secondi." msgid "Domain component (DC)" msgstr "Componente di dominio (DC)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/ja/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/ja/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..c5897cbdba8f0160916285582609fb9ce331379d --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/ja/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ja\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "一般名" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "一般名" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "一般名" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "ドメイン名" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "ドメイン名" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "ドメイン名" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "表示名" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "表示名" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "表示名" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "組織のホームページ" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "組織のホームページ" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "組織のホームページ" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "組織の正式名称" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "組織の正式名称" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "組織の正式名称" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "所属" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "所属" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "所属" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "識別子保証プロファイル" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "識別子保証プロファイル" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "識別子保証プロファイル" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "サービスに関する資格" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "サービスに関する資格" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "サービスに関する資格" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "ニックネーム" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "ニックネーム" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "ニックネーム" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "組織識別名" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "組織識別名" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "組織識別名" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "組織単位識別名" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "組織単位識別名" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "組織単位識別名" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "主所属" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "主所属" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "主所属" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "主要組織単位識別名" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "主要組織単位識別名" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "主要組織単位識別名" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "永続的利用者名" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "永続的利用者名" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "永続的利用者名" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "組織内職種" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "組織内職種" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "組織内職種" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "永続的匿名ID" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "永続的匿名ID" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "永続的匿名ID" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Fax番号" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Fax番号" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Fax番号" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "名" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "名" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "名" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "電話番号" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "電話番号" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "電話番号" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "住所" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "住所" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "住所" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "JPEG写真" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "JPEG写真" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "JPEG写真" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "地域" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "地域" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "地域" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "URI" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "URI" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "URI" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "メールアドレス" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "メールアドレス" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "メールアドレス" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "管理者" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "管理者" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "管理者" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "携帯電話" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "携帯電話" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "携帯電話" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "組織番号" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "組織番号" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "組織番号" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "生年月日" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "生年月日" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "生年月日" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "支部ID" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "支部ID" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "支部ID" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "公開認証局によって割り当てられた識別番号" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "公開認証局によって割り当てられた識別番号" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "公開認証局によって割り当てられた識別番号" + +# English string: Organization name +msgid "o" +msgstr "所属組織" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "所属組織" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "所属組織" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "組織単位" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "組織単位" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "組織単位" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "オフィスボックスポスト" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "オフィスボックスポスト" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "オフィスボックスポスト" + +# English string: Postal address +msgid "postalAddress" +msgstr "住所" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "住所" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "住所" + +# English string: Postal code +msgid "postalCode" +msgstr "郵便番号" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "郵便番号" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "郵便番号" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "言語" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "言語" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "言語" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "組織内ドメイン" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "組織内ドメイン" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "組織内ドメイン" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "組織内ドメイン" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "個人情報要素" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "個人情報要素" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "個人情報要素" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "個人情報要素" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "姓" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "姓" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "姓" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "番地" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "番地" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "番地" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "電話番号" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "電話番号" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "電話番号" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "タイトル" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "タイトル" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "タイトル" + +# English string: User ID +msgid "uid" +msgstr "ユーザーID" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "ユーザーID" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "ユーザーID" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "パスワードハッシュ" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "パスワードハッシュ" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "パスワードハッシュ" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "一般名" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "表示名" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "表示名" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "表示名" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "表示名" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "表示名" + +# English string: Display name +msgid "twitter.name" +msgstr "表示名" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "表示名" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "永続的利用者名" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "永続的利用者名" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "永続的利用者名" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "永続的利用者名" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "永続的利用者名" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "永続的匿名ID" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "永続的匿名ID" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "永続的匿名ID" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "永続的匿名ID" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Fax番号" + +# English string: Given name +msgid "facebook.first_name" +msgstr "名" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "名" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "名" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "名" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "名" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "電話番号" + +# English string: Locality +msgid "windowslive.Location" +msgstr "地域" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "URI" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "URI" + +# English string: Mail +msgid "facebook.email" +msgstr "メールアドレス" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "メールアドレス" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "メールアドレス" + +# English string: Mail +msgid "windowslive_mail" +msgstr "メールアドレス" + +# English string: Mail +msgid "windowslive.mail" +msgstr "メールアドレス" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "携帯電話" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "所属組織" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "郵便番号" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "郵便番号" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "言語" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "言語" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "言語" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "言語" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "言語" + +# English string: Surname +msgid "facebook.last_name" +msgstr "姓" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "姓" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "姓" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "姓" + +# English string: Surname +msgid "windowslive.surname" +msgstr "姓" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "電話番号" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "電話番号" + +# English string: Title +msgid "linkedin.headline" +msgstr "タイトル" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "タイトル" + +# English string: User ID +msgid "facebook.username" +msgstr "ユーザーID" + +# English string: User ID +msgid "linkedin.id" +msgstr "ユーザーID" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "ユーザーID" + +# English string: User ID +msgid "windowslive_uid" +msgstr "ユーザーID" + +# English string: User ID +msgid "windowslive.id" +msgstr "ユーザーID" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/ja/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/ja/LC_MESSAGES/messages.po index a8250f4eebf41ae3606e6b859d35e2ab83537a94..a70892416f3c40bf4d2e033d47c6d43547fdc979 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/ja/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/ja/LC_MESSAGES/messages.po @@ -48,12 +48,6 @@ msgstr "目らーデータの読み込み中にエラーが発生しました" msgid "{admin:metaconv_title}" msgstr "メタデータパーサ" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "サービスに関する資格" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "JPEG写真" - msgid "{admin:cfg_check_noerrors}" msgstr "エラーは見つかりませんでした。" @@ -121,9 +115,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "SimpleSAMLphpの設定ページに戻る" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "WS-Federationアイデンティティプロバイダ(リモート)" - msgid "{errors:error_header}" msgstr "SimpleSAMLphpエラー" @@ -136,18 +127,12 @@ msgstr "あなたがログインを行う時、LDAPというユーザーデー msgid "{errors:descr_METADATA}" msgstr "SimpleSAMLphpの設定に誤りがありました。もしあなたがこのサービスの管理者であればメタデータ設定を正しくセットアップする必要があります。" -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "組織識別名" - msgid "{errors:title_BADREQUEST}" msgstr "不正なリクエストを受信しました" msgid "{status:sessionsize}" msgstr "セッションサイズ: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "住所" - msgid "{logout:title}" msgstr "ログアウト" @@ -169,30 +154,15 @@ msgstr "保留" msgid "{admin:cfg_check_header}" msgstr "設定確認" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "組織内職種" - -msgid "{attributes:attribute_sn}" -msgstr "姓" - msgid "{admin:debug_sending_message_send}" msgstr "メッセージを送信" msgid "{status:logout}" msgstr "ログアウト" -msgid "{attributes:attribute_organisationname}" -msgstr "組織名" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "電話番号" - msgid "{errors:descr_DISCOPARAMS}" msgstr "サービスディスカバリに送信したパラメータが仕様に従っていません。" -msgid "{attributes:attribute_mail}" -msgstr "メールアドレス" - msgid "{errors:descr_CREATEREQUEST}" msgstr "SAMLリクエストの生成中にエラーが発生しました。" @@ -202,9 +172,6 @@ msgstr "任意項目" msgid "{logout:return}" msgstr "サービスへ戻る" -msgid "{attributes:attribute_displayname}" -msgstr "表示名" - msgid "{admin:metadata_xmlurl}" msgstr "<a href=\"%METAURL%\">このURLでメタデータのXMLを取得できます</a>:" @@ -214,9 +181,6 @@ msgstr "はい、全てのサービスからログアウトします" msgid "{admin:debug_disable_debug_mode}" msgstr "あなたはSimpleSAMLphpのグローバル設定<tt>config/config.php</tt>でデバックモードをオフに出来ます。" -msgid "{attributes:attribute_homepostaladdress}" -msgstr "住所" - msgid "{disco:select}" msgstr "選択" @@ -241,9 +205,6 @@ msgstr "このアイデンティティプロバイダはサービスプロバイ msgid "{logout:logout_all_question}" msgstr "上記の全てのサービスからログアウトしますか?" -msgid "{attributes:attribute_title}" -msgstr "タイトル" - msgid "{errors:title_NOACCESS}" msgstr "アクセスがありません" @@ -256,9 +217,6 @@ msgstr "RelayStateがありません" msgid "{errors:descr_NOSTATE}" msgstr "状態情報を失い、リクエストを再開出来ません" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "公開認証局によって割り当てられた識別番号" - msgid "{login:password}" msgstr "パスワード" @@ -283,24 +241,15 @@ msgstr "ログアウト洋弓の処理中にエラーが発生しました" msgid "{admin:metaover_errorentry}" msgstr "このメタデータエントリでのエラー" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "所属" - msgid "{errors:title_METADATANOTFOUND}" msgstr "メタデータが見つかりません" -msgid "{attributes:attribute_givenname}" -msgstr "名" - msgid "{login:contact_info}" msgstr "連絡先:" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "未処理例外" -msgid "{status:validfor}" -msgstr "セッションは今から %SECONDS% 秒間有効です" - msgid "{status:header_saml20_sp}" msgstr "SAML 2.0 SP デモ例" @@ -331,30 +280,18 @@ msgstr "確認する設定ファイルを選択:" msgid "{errors:descr_UNKNOWNCERT}" msgstr "認証に失敗しました: ブラウザから不明な証明書が送られました" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "組織のホームページ" - msgid "{logout:logging_out_from}" msgstr "以下のサービスからログアウトしました:" msgid "{logout:loggedoutfrom}" msgstr "あなたは %SP% からのログアウトに成功しました。" -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "WS-Federationサービスプロバイダ(ホスト)" - msgid "{errors:errorreport_text}" msgstr "このエラーは管理者に送信されました。" -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "生年月日" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "ログアウト処理中にエラーが発生しました。" -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "永続的匿名ID" - msgid "{logout:success}" msgstr "上記の全てのサービスからログアウトしました。" @@ -364,12 +301,6 @@ msgstr "お知らせ" msgid "{errors:descr_USERABORTED}" msgstr "認証はユーザーによって中断されました" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "主所属" - -msgid "{attributes:attribute_postalcode}" -msgstr "郵便番号" - msgid "{errors:descr_CASERROR}" msgstr "CASサーバーとの通信中にエラーが発生しました。" @@ -382,27 +313,15 @@ msgstr "SAML 2.0 SPメタデータ" msgid "{admin:metaconv_converted}" msgstr "変換されたメタデータ" -msgid "{attributes:attribute_cn}" -msgstr "一般名" - msgid "{logout:completed}" msgstr "完了しました" msgid "{errors:descr_NOTSET}" msgstr "設定のパスワード(auth.adminpassword)は既定値から変更されていません設定ファイルを編集してください。" -msgid "{attributes:attribute_ou}" -msgstr "組織単位" - msgid "{general:service_provider}" msgstr "サービスプロバイダ" -msgid "{attributes:attribute_homephone}" -msgstr "電話番号" - -msgid "{attributes:attribute_dc}" -msgstr "ドメイン名" - msgid "{errors:descr_BADREQUEST}" msgstr "ページのリクエスト中にエラーが発生しました。理由は: %REASON%" @@ -421,23 +340,14 @@ msgstr "ユーザー名とパスワードを入力してください" msgid "{errors:report_explain}" msgstr "何をした際にこのエラーが発生したかを説明してください..." -msgid "{attributes:attribute_manager}" -msgstr "管理者" - msgid "{errors:title_ACSPARAMS}" msgstr "SAMLレスポンスがありません" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "ニックネーム" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "SingleLogoutServiceインターフェースへアクセスしましたが、SAML LogoutRequest や LogoutResponse" " が提供されませんでした。" -msgid "{attributes:attribute_street}" -msgstr "番地" - msgid "{login:organization}" msgstr "組織" @@ -471,9 +381,6 @@ msgstr "組織の選択" msgid "{admin:cfg_check_superfluous}" msgstr "設定ファイルに不適切なオプションが在ります" -msgid "{attributes:attribute_labeleduri}" -msgstr "URI" - msgid "{errors:report_email}" msgstr "Eメールアドレス:" @@ -486,9 +393,6 @@ msgstr "パスワードが設定されていません" msgid "{errors:descr_NORELAYSTATE}" msgstr "リクエスト生成時にはRelayStateパラメーターを提供されませんでした。" -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "正式名称" - msgid "{status:header_diagnostics}" msgstr "SimpleSAMLphp 診断" @@ -497,9 +401,6 @@ msgstr "" "こんにちは、ここは " "SimpleSAMLphpのステータスページです。ここではセッションのタイムアウト時間やセッションに結びつけられた属性情報を見ることが出来ます。" -msgid "{attributes:attribute_schachomeorganization}" -msgstr "組織内ドメイン" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "ページが見つかりません" @@ -518,30 +419,18 @@ msgstr "SAML実体の詳細を確認する為には、SAML実体ヘッダをク msgid "{errors:title_NOTVALIDCERT}" msgstr "無効な証明書です" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "組織単位識別名" - msgid "{general:remember}" msgstr "記憶する" msgid "{disco:selectidp}" msgstr "アイデンティティプロバイダを選択してください" -msgid "{attributes:attribute_postofficebox}" -msgstr "オフィスボックスポスト" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "永続的利用者名" - msgid "{login:help_desk_email}" msgstr "ヘルプデスクにメールする" msgid "{login:help_desk_link}" msgstr "ヘルプデスクページ" -msgid "{attributes:attribute_uid}" -msgstr "ユーザーID" - msgid "{errors:title_CASERROR}" msgstr "CASエラー" @@ -560,12 +449,6 @@ msgstr "選択を記憶する" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "SAML 2.0サービスプロバイダ(ホスト)" -msgid "{attributes:attribute_l}" -msgstr "地域" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "識別子保証プロファイル" - msgid "{admin:metadata_simplesamlformat}" msgstr "SimpleSAMLphp のファイルフォーマット - 片側でも SimpleSAMLphpエンティティを使用する場合にこれを使用します:" @@ -605,9 +488,6 @@ msgstr "メッセージ" msgid "{errors:title_UNKNOWNCERT}" msgstr "不明な証明書です" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Fax番号" - msgid "{errors:title_LDAPERROR}" msgstr "LDAPエラー" @@ -620,15 +500,9 @@ msgstr "与えられたページは見つかりませんでした。URLは: %URL msgid "{errors:howto_text}" msgstr "このエラーは恐らく未知の問題かSimpleSAMLphpの設定ミスです。ログインサービスの管理者に上記のエラーメッセージを連絡して下さい。" -msgid "{attributes:attribute_mobile}" -msgstr "携帯電話" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Shib 1.3アイデンティティプロバイダ(ホスト)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "言語" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "正当な証明書が提示されませんでした。" @@ -641,15 +515,6 @@ msgstr "以下の任意項目は見つかりませんでした" msgid "{logout:logout_only}" msgstr "いいえ、%SP% のみログアウトします" -msgid "{attributes:attribute_o}" -msgstr "所属組織" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "主要組織単位識別名" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "支部ID" - msgid "{login:next}" msgstr "次へ" @@ -665,9 +530,6 @@ msgstr "与えられたページは見つかりませんでした。理由は: % msgid "{errors:title_NOCERT}" msgstr "証明書がありません" -msgid "{attributes:attribute_userpassword}" -msgstr "パスワードハッシュ" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "ログアウト情報を失いました" @@ -680,27 +542,15 @@ msgstr "SimpleSAMLphpの設定にミスがある様です。" msgid "{admin:metadata_intro}" msgstr "ここは SimpleSAMLphp が生成したメタデータがあります。あなたは信頼するパートナーにこのメタデータを送信し信頼された連携を構築出来ます。" -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "個人情報要素" - -msgid "{status:header_wsfed}" -msgstr "WS-Fed SP デモ例" - msgid "{errors:descr_INVALIDCERT}" msgstr "認証失敗: あなたのブラウザは無効か読むことの出来ない証明書を送信しました。" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "組織の正式名称" - msgid "{status:header_shib}" msgstr "Shibboleth デモ" msgid "{admin:metaconv_parse}" msgstr "パース" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "組織番号" - msgid "Person's principal name at home organization" msgstr "永続的利用者名" @@ -1009,8 +859,8 @@ msgid "" msgstr "このエラーは恐らく未知の問題かSimpleSAMLphpの設定ミスです。ログインサービスの管理者に上記のエラーメッセージを連絡して下さい。" #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "セッションは今から %SECONDS% 秒間有効です" +msgid "Your session is valid for %remaining% seconds from now." +msgstr "セッションは今から %remaining% 秒間有効です" msgid "Domain component (DC)" msgstr "ドメイン名" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/lb/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/lb/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..11a4db4835a80d7601329e5ae2d31f89ba15d752 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/lb/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: lb\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Allgeméngen Numm" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Allgeméngen Numm" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Allgeméngen Numm" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Domain Komponent" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Domain Komponent" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Domain Komponent" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Ugewisenen Numm" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Ugewisenen Numm" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Ugewisenen Numm" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Organisatiouns Websait" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Organisatiouns Websait" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Organisatiouns Websait" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Numm vun der Organisatioun" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Numm vun der Organisatioun" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Numm vun der Organisatioun" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Zesummenschloss" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Zesummenschloss" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Zesummenschloss" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "eduPersonAssurance" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "urn:mace:dir:attribute-def:eduPersonAssurance" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Berechtegung" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Berechtegung" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Berechtegung" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Spëtznumm" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Spëtznumm" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Spëtznumm" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Distinguished name (DN) of person's home organization" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Distinguished name (DN) of person's home organization" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Distinguished name (DN) of person's home organization" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Distinguished name (DN) of the person's home organizational unit" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Distinguished name (DN) of the person's home organizational unit" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Distinguished name (DN) of the person's home organizational unit" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Haapt Zougehéiregkeet" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Haapt Zougehéiregkeet" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Haapt Zougehéiregkeet" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "eduPersonPrimaryOrgUnitDN" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Haaptnumm bei der Heemorganisatioun" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Haaptnumm bei der Heemorganisatioun" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Haaptnumm bei der Heemorganisatioun" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Gruppen Zougehéiregket" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Gruppen Zougehéiregket" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Gruppen Zougehéiregket" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Persistent anonym ID" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Persistent anonym ID" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Persistent anonym ID" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Fax Nummer" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Fax Nummer" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Fax Nummer" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Familliennumm" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Familliennumm" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Familliennumm" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Haustelefon" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Haustelefon" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Haustelefon" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Adress" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Adress" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Adress" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "Photo am JPEG Format" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "Photo am JPEG Format" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "Photo am JPEG Format" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Uertschaft" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Uertschaft" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Uertschaft" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "Beschrëfteten URI" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "Beschrëfteten URI" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "Beschrëfteten URI" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "E-mail" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "E-mail" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "E-mail" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Manager" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Manager" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Manager" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "GSM Nummer" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "GSM Nummer" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "GSM Nummer" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Organisatiounsnummer" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Organisatiounsnummer" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Organisatiounsnummer" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Gebuertsdaag" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Gebuertsdaag" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Gebuertsdaag" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Identitéitsnummer" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Identitéitsnummer" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Identitéitsnummer" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Sozialversëcherungsnummer" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Sozialversëcherungsnummer" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Sozialversëcherungsnummer" + +# English string: Organization name +msgid "o" +msgstr "Organisatiounsnumm" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Organisatiounsnumm" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Organisatiounsnumm" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Organisatiounseenheet" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Organisatiounseenheet" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Organisatiounseenheet" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Postschléissfach" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Postschléissfach" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Postschléissfach" + +# English string: Postal address +msgid "postalAddress" +msgstr "Adress" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Adress" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Adress" + +# English string: Postal code +msgid "postalCode" +msgstr "Postleitzuel" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Postleitzuel" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Postleitzuel" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Lieblingssprooch" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Lieblingssprooch" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Lieblingssprooch" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Eendeiteg Heemorganisatiouns ID" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Eendeiteg Heemorganisatiouns ID" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Eendeiteg Heemorganisatiouns ID" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Eendeiteg Heemorganisatiouns ID" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "schacUserPrivateAttribute" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.18" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "urn:schac:attribute-def:schacUserPrivateAttribute" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Virnumm" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Virnumm" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Virnumm" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Strooss" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Strooss" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Strooss" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Telefonsnummer" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Telefonsnummer" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Telefonsnummer" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Zougehéiregkeet" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Zougehéiregkeet" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Zougehéiregkeet" + +# English string: User ID +msgid "uid" +msgstr "Benotzer ID" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Benotzer ID" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Benotzer ID" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "userPassword" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "urn:mace:dir:attribute-def:userPassword" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "urn:oid:2.5.4.35" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Allgeméngen Numm" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Ugewisenen Numm" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Ugewisenen Numm" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Ugewisenen Numm" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Ugewisenen Numm" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Ugewisenen Numm" + +# English string: Display name +msgid "twitter.name" +msgstr "Ugewisenen Numm" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Ugewisenen Numm" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Haaptnumm bei der Heemorganisatioun" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Haaptnumm bei der Heemorganisatioun" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Haaptnumm bei der Heemorganisatioun" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Haaptnumm bei der Heemorganisatioun" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Haaptnumm bei der Heemorganisatioun" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Persistent anonym ID" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Persistent anonym ID" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Persistent anonym ID" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Persistent anonym ID" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Fax Nummer" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Familliennumm" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Familliennumm" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Familliennumm" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Familliennumm" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Familliennumm" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Haustelefon" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Uertschaft" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "Beschrëfteten URI" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "Beschrëfteten URI" + +# English string: Mail +msgid "facebook.email" +msgstr "E-mail" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "E-mail" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "E-mail" + +# English string: Mail +msgid "windowslive_mail" +msgstr "E-mail" + +# English string: Mail +msgid "windowslive.mail" +msgstr "E-mail" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "GSM Nummer" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Organisatiounsnumm" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Postleitzuel" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Postleitzuel" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Lieblingssprooch" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Lieblingssprooch" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Lieblingssprooch" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Lieblingssprooch" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Lieblingssprooch" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Virnumm" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Virnumm" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Virnumm" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Virnumm" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Virnumm" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Telefonsnummer" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Telefonsnummer" + +# English string: Title +msgid "linkedin.headline" +msgstr "Zougehéiregkeet" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Zougehéiregkeet" + +# English string: User ID +msgid "facebook.username" +msgstr "Benotzer ID" + +# English string: User ID +msgid "linkedin.id" +msgstr "Benotzer ID" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Benotzer ID" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Benotzer ID" + +# English string: User ID +msgid "windowslive.id" +msgstr "Benotzer ID" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/lb/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/lb/LC_MESSAGES/messages.po index d643592802674c2d71514a19eaae88d707288890..14ce70ceabb782b500a0f0b8dfbb67869069d6df 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/lb/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/lb/LC_MESSAGES/messages.po @@ -24,12 +24,6 @@ msgstr "Benotzernumm" msgid "{errors:title_METADATA}" msgstr "Fehler beim Lueden vun den Meta Données" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Berechtegung" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "Photo am JPEG Format" - msgid "{errors:report_trackid}" msgstr "" "Wann dir ons dësen Fehler matdeelt, dann schéckt w.e.g och d Tracking ID " @@ -75,41 +69,14 @@ msgstr "" " dir den Administrator vun dësem Service sid, dann stellt sëcher dass d " "Meta Données richteg angeriicht sin." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Distinguished name (DN) of person's home organization" - -msgid "{attributes:attribute_postaladdress}" -msgstr "Adress" - -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Gruppen Zougehéiregket" - -msgid "{attributes:attribute_sn}" -msgstr "Virnumm" - -msgid "{attributes:attribute_organisationname}" -msgstr "Organisatiounsnumm" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Telefonsnummer" - msgid "{errors:descr_DISCOPARAMS}" msgstr "" "D'Parameter fir den Disovery Service woren net korrekt par rapport zur " "Specifikatioun" -msgid "{attributes:attribute_mail}" -msgstr "E-mail" - msgid "{errors:descr_CREATEREQUEST}" msgstr "Beim Erstellen vun der SAML Unfro as en Fehler geschitt." -msgid "{attributes:attribute_displayname}" -msgstr "Ugewisenen Numm" - -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Adress" - msgid "{login:login_button}" msgstr "Login" @@ -121,9 +88,6 @@ msgstr "" "Dësen IdP kruut eng Authenticatiounsunfro vun engem Service provider, " "mais et gouf en Fehler wéi déi sollt bearbescht gin." -msgid "{attributes:attribute_title}" -msgstr "Zougehéiregkeet" - msgid "{errors:title_NOACCESS}" msgstr "Keen Zougrëff" @@ -135,9 +99,6 @@ msgstr "" msgid "{errors:title_NORELAYSTATE}" msgstr "Den ReplayState Parameter fehlt" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Sozialversëcherungsnummer" - msgid "{login:password}" msgstr "Passwuert" @@ -155,59 +116,26 @@ msgstr "Konfiguratiounsfehler" msgid "{errors:title_LOGOUTREQUEST}" msgstr "Fehler beim Bearbeschten vun der Logout Unfro" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Zesummenschloss" - -msgid "{attributes:attribute_givenname}" -msgstr "Familliennumm" - msgid "{login:error_header}" msgstr "Fehler" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Organisatiouns Websait" - -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Gebuertsdaag" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "En Fehler as geschit beim Bearbeschten vun der Logout Unfro" -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Persistent anonym ID" - -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Haapt Zougehéiregkeet" - -msgid "{attributes:attribute_postalcode}" -msgstr "Postleitzuel" - msgid "{errors:descr_CASERROR}" msgstr "Fehler beim Kommunizeiren mam CAS Server" msgid "{general:no}" msgstr "Nee" -msgid "{attributes:attribute_cn}" -msgstr "Allgeméngen Numm" - msgid "{errors:descr_NOTSET}" msgstr "" "D'Passwuert an der Konfiguration (auth.adminpassword) as bis elo net " "geännertgin. W.e.g aennert daat an der Konfiguratioun." -msgid "{attributes:attribute_ou}" -msgstr "Organisatiounseenheet" - msgid "{general:service_provider}" msgstr "Service Provider" -msgid "{attributes:attribute_homephone}" -msgstr "Haustelefon" - -msgid "{attributes:attribute_dc}" -msgstr "Domain Komponent" - msgid "{general:no_cancel}" msgstr "Nee" @@ -217,23 +145,14 @@ msgstr "Gid w.e.g Aeren Benotzernumm an d Passwuert an" msgid "{errors:report_explain}" msgstr "Erklaert w.e.g genau waat dir gemaacht hud fir den Fehler auszeléisen..." -msgid "{attributes:attribute_manager}" -msgstr "Manager" - msgid "{errors:title_ACSPARAMS}" msgstr "Keng SAML Aentwert ungin" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Spëtznumm" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Der hud den SingleLogoutService accédéiert mais ken SAML LogoutRequest " "oder LogoutResponse unginn." -msgid "{attributes:attribute_street}" -msgstr "Strooss" - msgid "{login:organization}" msgstr "Organisatioun" @@ -250,9 +169,6 @@ msgstr "" "Der hud den Assertion Consumer Sercice Interface accédéiert mais keng " "SAML Authentication Aentwert unginn" -msgid "{attributes:attribute_labeleduri}" -msgstr "Beschrëfteten URI" - msgid "{errors:report_email}" msgstr "E-mail Adress" @@ -265,27 +181,12 @@ msgstr "Passwuert net angin" msgid "{errors:descr_NORELAYSTATE}" msgstr "Den Initiator vun der Unfro huet ken ReplayState Parameter matgeschekt." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Eendeiteg Heemorganisatiouns ID" - msgid "{errors:title_NOTVALIDCERT}" msgstr "Ongültegen Zertifikat" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Distinguished name (DN) of the person's home organizational unit" - msgid "{general:remember}" msgstr "Zoustëmmung verhalen" -msgid "{attributes:attribute_postofficebox}" -msgstr "Postschléissfach" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Haaptnumm bei der Heemorganisatioun" - -msgid "{attributes:attribute_uid}" -msgstr "Benotzer ID" - msgid "{errors:title_CASERROR}" msgstr "CAS Fehler" @@ -301,9 +202,6 @@ msgstr "Falsch Unfro fir den Discovery Service" msgid "{general:yes_continue}" msgstr "Jo" -msgid "{attributes:attribute_l}" -msgstr "Uertschaft" - msgid "{errors:title_GENERATEAUTHNRESPONSE}" msgstr "Et wor net méiglech eng Authenticatiounsaentwert ze erstellen" @@ -313,9 +211,6 @@ msgstr "Fehler beim Erstellen vun der Unfro" msgid "{errors:report_submit}" msgstr "Fehlerbericht schécken" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Fax Nummer" - msgid "{errors:title_LDAPERROR}" msgstr "LDAP Fehler" @@ -325,33 +220,15 @@ msgstr "" "SimpleSAMLphp ausgeléist. Kontaktéiert am beschten den Administrator vun " "dësem Login Service an schéckt him den Fehlerbericht" -msgid "{attributes:attribute_mobile}" -msgstr "GSM Nummer" - -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Lieblingssprooch" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Dir hud keen gültegen Zertifikat" -msgid "{attributes:attribute_o}" -msgstr "Organisatiounsnumm" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Identitéitsnummer" - msgid "{errors:descr_GENERATEAUTHNRESPONSE}" msgstr "Beim Erstellen vun der Authenticatiounsaentwert as en Fehler passéiert" msgid "{errors:descr_CONFIG}" msgstr "SimpleSAMLphp schéint falsch konfiguréiert ze sin." -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Numm vun der Organisatioun" - -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Organisatiounsnummer" - msgid "Person's principal name at home organization" msgstr "Haaptnumm bei der Heemorganisatioun" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/lt/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/lt/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..293e30b6ef274c956dd42683179ab6fdc99afc5b --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/lt/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: lt\n" +"Plural-Forms: nplurals=3; plural=(n % 10 == 1 && (n % 100 < 11 || n % 100 > 19)) ? 0 : ((n % 10 >= 2 && n % 10 <= 9 && (n % 100 < 11 || n % 100 > 19)) ? 1 : 2);\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Pilnas vardas" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Pilnas vardas" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Pilnas vardas" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Domeno komponentas" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Domeno komponentas" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Domeno komponentas" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Rodomas vardas" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Rodomas vardas" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Rodomas vardas" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Organizacijos svetainė" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Organizacijos svetainė" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Organizacijos svetainė" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Organizacijos juridinis pavadinimas" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Organizacijos juridinis pavadinimas" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Organizacijos juridinis pavadinimas" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Pareigos" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Pareigos" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Pareigos" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Tapatybės tikrumo profilis" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Tapatybės tikrumo profilis" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Tapatybės tikrumo profilis" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Teisės susiję su paslauga" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Teisės susiję su paslauga" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Teisės susiję su paslauga" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Slapyvardis" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Slapyvardis" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Slapyvardis" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Asmens organizacijos atpažinimo vardas" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Asmens organizacijos atpažinimo vardas" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Asmens organizacijos atpažinimo vardas" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Asmens organizacijos skyriaus atpažinimo vardas" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Asmens organizacijos skyriaus atpažinimo vardas" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Asmens organizacijos skyriaus atpažinimo vardas" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Pirminė sąsaja" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Pirminė sąsaja" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Pirminė sąsaja" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Asmens pirminio organizacijos skyriaus atpažinimo vardas" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Asmens pirminio organizacijos skyriaus atpažinimo vardas" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Asmens pirminio organizacijos skyriaus atpažinimo vardas" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Asmens pagrindinis vardas organizacijoje" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Asmens pagrindinis vardas organizacijoje" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Asmens pagrindinis vardas organizacijoje" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Sąsaja su organizacija" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Sąsaja su organizacija" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Sąsaja su organizacija" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Nuolatinio pseudonimo ID" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Nuolatinio pseudonimo ID" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Nuolatinio pseudonimo ID" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Fakso numeris" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Fakso numeris" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Fakso numeris" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Vardas" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Vardas" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Vardas" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Namų telefo nr." + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Namų telefo nr." + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Namų telefo nr." + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Namų adresas" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Namų adresas" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Namų adresas" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "JPEG nuotrauka" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "JPEG nuotrauka" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "JPEG nuotrauka" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Vietovė" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Vietovė" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Vietovė" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "Žymėtasis URI" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "Žymėtasis URI" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "Žymėtasis URI" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "El.paštas" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "El.paštas" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "El.paštas" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Vadovas" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Vadovas" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Vadovas" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Mobiliojo numeris" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Mobiliojo numeris" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Mobiliojo numeris" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Organizacijos numeris" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Organizacijos numeris" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Organizacijos numeris" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Gimimo data" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Gimimo data" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Gimimo data" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Vietinis tapatybės numeris" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Vietinis tapatybės numeris" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Vietinis tapatybės numeris" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Valstybės institucijų priskirtas tapatybės numeris" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Valstybės institucijų priskirtas tapatybės numeris" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Valstybės institucijų priskirtas tapatybės numeris" + +# English string: Organization name +msgid "o" +msgstr "Organizacijos pavadinimas" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Organizacijos pavadinimas" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Organizacijos pavadinimas" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Organizacijos skyrius" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Organizacijos skyrius" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Organizacijos skyrius" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Pašto dėžutės nr." + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Pašto dėžutės nr." + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Pašto dėžutės nr." + +# English string: Postal address +msgid "postalAddress" +msgstr "Adresas" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Adresas" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Adresas" + +# English string: Postal code +msgid "postalCode" +msgstr "Pašto kodas" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Pašto kodas" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Pašto kodas" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Kalba" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Kalba" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Kalba" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Organizacijos domenas" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Organizacijos domenas" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Organizacijos domenas" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Organizacijos domenas" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Privačios informacijos elementai" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Privačios informacijos elementai" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Privačios informacijos elementai" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Privačios informacijos elementai" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Pavardė" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Pavardė" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Pavardė" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Gatvė" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Gatvė" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Gatvė" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Telefono nr." + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Telefono nr." + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Telefono nr." + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Pavadinimas" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Pavadinimas" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Pavadinimas" + +# English string: User ID +msgid "uid" +msgstr "Naudotojo ID" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Naudotojo ID" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Naudotojo ID" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Naudotojo slaptažodžio maiša" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Naudotojo slaptažodžio maiša" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Naudotojo slaptažodžio maiša" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Pilnas vardas" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Rodomas vardas" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Rodomas vardas" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Rodomas vardas" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Rodomas vardas" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Rodomas vardas" + +# English string: Display name +msgid "twitter.name" +msgstr "Rodomas vardas" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Rodomas vardas" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Asmens pagrindinis vardas organizacijoje" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Asmens pagrindinis vardas organizacijoje" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Asmens pagrindinis vardas organizacijoje" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Asmens pagrindinis vardas organizacijoje" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Asmens pagrindinis vardas organizacijoje" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Nuolatinio pseudonimo ID" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Nuolatinio pseudonimo ID" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Nuolatinio pseudonimo ID" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Nuolatinio pseudonimo ID" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Fakso numeris" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Vardas" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Vardas" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Vardas" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Vardas" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Vardas" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Namų telefo nr." + +# English string: Locality +msgid "windowslive.Location" +msgstr "Vietovė" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "Žymėtasis URI" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "Žymėtasis URI" + +# English string: Mail +msgid "facebook.email" +msgstr "El.paštas" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "El.paštas" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "El.paštas" + +# English string: Mail +msgid "windowslive_mail" +msgstr "El.paštas" + +# English string: Mail +msgid "windowslive.mail" +msgstr "El.paštas" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Mobiliojo numeris" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Organizacijos pavadinimas" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Pašto kodas" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Pašto kodas" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Kalba" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Kalba" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Kalba" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Kalba" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Kalba" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Pavardė" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Pavardė" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Pavardė" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Pavardė" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Pavardė" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Telefono nr." + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Telefono nr." + +# English string: Title +msgid "linkedin.headline" +msgstr "Pavadinimas" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Pavadinimas" + +# English string: User ID +msgid "facebook.username" +msgstr "Naudotojo ID" + +# English string: User ID +msgid "linkedin.id" +msgstr "Naudotojo ID" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Naudotojo ID" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Naudotojo ID" + +# English string: User ID +msgid "windowslive.id" +msgstr "Naudotojo ID" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/lt/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/lt/LC_MESSAGES/messages.po index f75442d392314c8b7e37c60a83cafbd58d793545..05ce6bef742061d966d16d2150d961f9fae16d2c 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/lt/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/lt/LC_MESSAGES/messages.po @@ -51,12 +51,6 @@ msgstr "Klaida siunčiant metaduomenis" msgid "{admin:metaconv_title}" msgstr "Metaduomenų analizatorius" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Teisės susiję su paslauga" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "JPEG nuotrauka" - msgid "{admin:cfg_check_noerrors}" msgstr "Klaidų nerasta." @@ -134,9 +128,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Grįžti atgal į SimpleSAMLphp diegimo puslapį" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "WS-Federacijos Paslaugos teikėjas (nutolęs)" - msgid "{errors:error_header}" msgstr "SimpleSAMLphp klaida" @@ -154,18 +145,12 @@ msgstr "" "sistemos administratorius, turėtumėte patikrinti, ar teisingai nustatyti " "metaduomenys." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Asmens organizacijos atpažinimo vardas" - msgid "{errors:title_BADREQUEST}" msgstr "Gauta neteisinga užklausa" msgid "{status:sessionsize}" msgstr "Sesijos trukmė: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Adresas" - msgid "{logout:title}" msgstr "Atsijungta" @@ -187,30 +172,15 @@ msgstr "Prašome palaukti" msgid "{admin:cfg_check_header}" msgstr "Konfigūracijos patikrinimas" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Sąsaja su organizacija" - -msgid "{attributes:attribute_sn}" -msgstr "Pavardė" - msgid "{admin:debug_sending_message_send}" msgstr "Patvirtinti pranešimą" msgid "{status:logout}" msgstr "Atsijungti" -msgid "{attributes:attribute_organisationname}" -msgstr "Organizacijos pavadinimas" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Telefono nr." - msgid "{errors:descr_DISCOPARAMS}" msgstr "Parametrai, nusiųsti \"discovery\" servisui neatitiko specifikacijų." -msgid "{attributes:attribute_mail}" -msgstr "El.paštas" - msgid "{errors:descr_CREATEREQUEST}" msgstr "Klaida kuriant SAML užklausą." @@ -220,9 +190,6 @@ msgstr "Neprivalomi laukai" msgid "{logout:return}" msgstr "Grįžti į paslaugą" -msgid "{attributes:attribute_displayname}" -msgstr "Rodomas vardas" - msgid "{admin:metadata_xmlurl}" msgstr "Jūs galite <a href=\"%METAURL%\">gauti metaduomenis XML formatu</a>:" @@ -234,9 +201,6 @@ msgstr "" "Jūs galite išjungti detalųjį naršymą globaliame SimpleSAMLphp " "konfigūraciniame faile <tt>config/config.php</tt>." -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Namų adresas" - msgid "{disco:select}" msgstr "Pasirinkite" @@ -263,9 +227,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Ar norite atsijungti nuo visų žemiau išvardintų paslaugų?" -msgid "{attributes:attribute_title}" -msgstr "Pavadinimas" - msgid "{errors:title_NOACCESS}" msgstr "Prieigos nėra" @@ -280,9 +241,6 @@ msgstr "Nėra perdavimo statuso" msgid "{errors:descr_NOSTATE}" msgstr "Būsenos informacija prarasta, nėra galimybių pakartoti užklausą" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Valstybės institucijų priskirtas tapatybės numeris" - msgid "{login:password}" msgstr "Slaptažodis" @@ -307,24 +265,15 @@ msgstr "Klaida vykdant atsijungimo užklausą" msgid "{admin:metaover_errorentry}" msgstr "Klaida šiame metaduomenų įraše" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Pareigos" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Metaduomenys nerasti" -msgid "{attributes:attribute_givenname}" -msgstr "Vardas" - msgid "{login:contact_info}" msgstr "Kontaktai:" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Nežinoma klaida" -msgid "{status:validfor}" -msgstr "Jūsų sesija galioja %SECONDS% sekundžių, skaičiuojant nuo šio momento." - msgid "{status:header_saml20_sp}" msgstr "SAML 2.0 SP Demonstracinės versijos Pavyzdys" @@ -358,30 +307,18 @@ msgstr "Tikrinti konfigūracijos failą:" msgid "{errors:descr_UNKNOWNCERT}" msgstr "Autentikacija nepavyko: Jūsų naršyklės siųstas sertifikatas yra nežinomas" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Organizacijos svetainė" - msgid "{logout:logging_out_from}" msgstr "Vyksta atjungimas nuo šių paslaugų:" msgid "{logout:loggedoutfrom}" msgstr "Jūs sėkmingai buvote atjungtas iš %SP%." -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "WS-Federacijos Paslaugos teikėjas (vietinis)" - msgid "{errors:errorreport_text}" msgstr "Pranešimas apie klaidą išsiųstas administratoriams." -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Gimimo data" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "Klaida įvyko bandant įvykdyti atsijungimo užklausą." -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Nuolatinio pseudonimo ID" - msgid "{logout:success}" msgstr "Jūs sėkmingai buvote atjungtas nuo visų žemiau išvardintų paslaugų." @@ -391,12 +328,6 @@ msgstr "Pranešimai" msgid "{errors:descr_USERABORTED}" msgstr "Autentikacija nutraukė naudotojas" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Pirminė sąsaja" - -msgid "{attributes:attribute_postalcode}" -msgstr "Pašto kodas" - msgid "{errors:descr_CASERROR}" msgstr "Klaida bandant jungtis prie CAS serverio." @@ -409,9 +340,6 @@ msgstr "SAML 2.0 SP Metaduomenys" msgid "{admin:metaconv_converted}" msgstr "Sukonvertuoti metaduomenys" -msgid "{attributes:attribute_cn}" -msgstr "Pilnas vardas" - msgid "{logout:completed}" msgstr "Atlikta" @@ -420,18 +348,9 @@ msgstr "" "Konfigūracijoje esantis slaptažodis (auth.adminpassword) nepakeistas iš " "pradinės reikšmės. Prašome pakeisti konfigūracijos failą." -msgid "{attributes:attribute_ou}" -msgstr "Organizacijos skyrius" - msgid "{general:service_provider}" msgstr "Paslaugos teikėjas" -msgid "{attributes:attribute_homephone}" -msgstr "Namų telefo nr." - -msgid "{attributes:attribute_dc}" -msgstr "Domeno komponentas" - msgid "{errors:descr_BADREQUEST}" msgstr "Užklausoje į šį puslapį rasta klaida. Priežastis buvo: %REASON%" @@ -450,23 +369,14 @@ msgstr "Įveskite savo prisijungimo vardą ir slaptažodį" msgid "{errors:report_explain}" msgstr "Aprašykite kokius veiksmus atlikote, kuomet pasirodė ši klaida..." -msgid "{attributes:attribute_manager}" -msgstr "Vadovas" - msgid "{errors:title_ACSPARAMS}" msgstr "Nepateiktas SAML atsakymas" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Slapyvardis" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Jūs pasiekėte SingleLogoutService paslaugą, tačiau nepateikėte SAML " "LogoutRequest ar LogoutResponse užklausų." -msgid "{attributes:attribute_street}" -msgstr "Gatvė" - msgid "{login:organization}" msgstr "Organizacija" @@ -504,9 +414,6 @@ msgstr "Pasirinkite organizaciją" msgid "{admin:cfg_check_superfluous}" msgstr "Pertekliniai parametrai konfigūraciniame faile" -msgid "{attributes:attribute_labeleduri}" -msgstr "Žymėtasis URI" - msgid "{errors:report_email}" msgstr "El. pašto adresas:" @@ -521,9 +428,6 @@ msgstr "" "Šios užklausos iniciatorius nepateikė perdavimo statuso parametro, kuris " "nusako kur toliau kreiptis." -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Juridinis vardas" - msgid "{status:header_diagnostics}" msgstr "SimpleSAMLphp Diagnostika" @@ -533,9 +437,6 @@ msgstr "" "Jūsų sesija turi laiko apribojimą, kiek trunka tas laiko apribojimas bei " "kitus Jūsų sesijai priskirtus atributus." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Organizacijos domenas" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Puslapis nerastas" @@ -556,30 +457,18 @@ msgstr "" msgid "{errors:title_NOTVALIDCERT}" msgstr "Neteisingas sertifikatas" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Asmens organizacijos skyriaus atpažinimo vardas" - msgid "{general:remember}" msgstr "Įsiminti" msgid "{disco:selectidp}" msgstr "Pasirinkite savo tapatybių tiekėją" -msgid "{attributes:attribute_postofficebox}" -msgstr "Pašto dėžutės nr." - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Asmens pagrindinis vardas organizacijoje" - msgid "{login:help_desk_email}" msgstr "Siųsti el. laišką naudotojų aptarnavimo specialistams" msgid "{login:help_desk_link}" msgstr "Naudotojų aptarnavimo puslapis" -msgid "{attributes:attribute_uid}" -msgstr "Naudotojo ID" - msgid "{errors:title_CASERROR}" msgstr "CAS klaida" @@ -600,12 +489,6 @@ msgstr "Prisiminti pasirinkimą" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "SAML 2.0 Paslaugos teikėjas (vietinis)" -msgid "{attributes:attribute_l}" -msgstr "Vietovė" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Tapatybės tikrumo profilis" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "SimpleSAMLphp paprasto failo formatas - naudokite jį, jei naudojate " @@ -650,9 +533,6 @@ msgstr "Pranešimas" msgid "{errors:title_UNKNOWNCERT}" msgstr "Nežinomas sertifikatas" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Fakso numeris" - msgid "{errors:title_LDAPERROR}" msgstr "LDAP klaida" @@ -670,15 +550,9 @@ msgstr "" "sukonfigūravimo. Susisiekite su šios sistemos administratoriumi ir " "nusiųskite žemiau rodomą klaidos pranešimą." -msgid "{attributes:attribute_mobile}" -msgstr "Mobiliojo numeris" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Shib 1.3 Tapatybių teikėjas (vietinis)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Kalba" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Jūs nepateikėte teisingo sertifikato." @@ -693,15 +567,6 @@ msgstr "Šie neprivalomi laukai nerasti" msgid "{logout:logout_only}" msgstr "Ne, tik %SP%" -msgid "{attributes:attribute_o}" -msgstr "Organizacijos pavadinimas" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Asmens pirminio organizacijos skyriaus atpažinimo vardas" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Vietinis tapatybės numeris" - msgid "{login:next}" msgstr "Kitas" @@ -721,9 +586,6 @@ msgstr "" msgid "{errors:title_NOCERT}" msgstr "Nėra sertifikato" -msgid "{attributes:attribute_userpassword}" -msgstr "Naudotojo slaptažodžio maiša" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Atsijungimo informacija prarasta" @@ -739,12 +601,6 @@ msgstr "" "patikimą federaciją, galite patikimiems partneriams išsiųsti šiuos " "metaduomenis." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Privačios informacijos elementai" - -msgid "{status:header_wsfed}" -msgstr "WS-Fed SP Demonstracinės versijos Pavyzdys" - msgid "{admin:metadata_cert}" msgstr "Sertifikatai" @@ -753,18 +609,12 @@ msgstr "" "Autentikacija nepavyko: Jūsų naršyklės siųstas sertifikatas yra nevalidus" " arba negali būti perskaitytas" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Organizacijos juridinis pavadinimas" - msgid "{status:header_shib}" msgstr "Shibboleth demonstracinė versija" msgid "{admin:metaconv_parse}" msgstr "Nagrinėti" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Organizacijos numeris" - msgid "Person's principal name at home organization" msgstr "Asmens pagrindinis vardas organizacijoje" @@ -1096,8 +946,8 @@ msgstr "" "nusiųskite žemiau rodomą klaidos pranešimą." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Jūsų sesija galioja %SECONDS% sekundžių, skaičiuojant nuo šio momento." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Jūsų sesija galioja %remaining% sekundžių, skaičiuojant nuo šio momento." msgid "Domain component (DC)" msgstr "Domeno komponentas" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/lv/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/lv/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..9eca6a241a3ce993b0b66b95663fb7ed6de07f2c --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/lv/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: lv\n" +"Plural-Forms: nplurals=3; plural=(n % 10 == 0 || n % 100 >= 11 && n % 100 <= 19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2);\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Vārds" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Vārds" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Vārds" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Domēns (DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Domēns (DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Domēns (DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Parādāmais vārds" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Parādāmais vārds" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Parādāmais vārds" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Organizācijas mājas lapa" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Organizācijas mājas lapa" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Organizācijas mājas lapa" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Organizācijas juridiskais nosaukums" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Organizācijas juridiskais nosaukums" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Organizācijas juridiskais nosaukums" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Piederība" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Piederība" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Piederība" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Apraksts, kā atšķirt cilvēku no robota" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Apraksts, kā atšķirt cilvēku no robota" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Apraksts, kā atšķirt cilvēku no robota" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Pilnvaras attiecībā uz servisu" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Pilnvaras attiecībā uz servisu" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Pilnvaras attiecībā uz servisu" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Niks" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Niks" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Niks" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Organizācijas vārds (DN)" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Organizācijas vārds (DN)" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Organizācijas vārds (DN)" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Organizācijas vienības vārds (DN)" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Organizācijas vienības vārds (DN)" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Organizācijas vienības vārds (DN)" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Pamatdarba amats" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Pamatdarba amats" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Pamatdarba amats" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Personas pamata organizācijas vienības vārds (DN)" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Personas pamata organizācijas vienības vārds (DN)" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Personas pamata organizācijas vienības vārds (DN)" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Priekšnieka vārds" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Priekšnieka vārds" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Priekšnieka vārds" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Amats organizācijā" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Amats organizācijā" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Amats organizācijā" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Pastāvīgs pseidonīma ID" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Pastāvīgs pseidonīma ID" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Pastāvīgs pseidonīma ID" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Fakss" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Fakss" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Fakss" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Vārds" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Vārds" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Vārds" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Telefons" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Telefons" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Telefons" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Pasta adrese" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Pasta adrese" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Pasta adrese" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "JPEG fotogrāfija" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "JPEG fotogrāfija" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "JPEG fotogrāfija" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Atrašanās vieta" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Atrašanās vieta" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Atrašanās vieta" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "URI nosaukums" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "URI nosaukums" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "URI nosaukums" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "Pasts" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "Pasts" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "Pasts" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Priekšnieks" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Priekšnieks" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Priekšnieks" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Mobilais telefons" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Mobilais telefons" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Mobilais telefons" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Organizācijas reģistrācijas numurs" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Organizācijas reģistrācijas numurs" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Organizācijas reģistrācijas numurs" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Dzimšanas datums" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Dzimšanas datums" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Dzimšanas datums" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Personas kods" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Personas kods" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Personas kods" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Publisko autoritāšu piešķirtais identitātes numurs" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Publisko autoritāšu piešķirtais identitātes numurs" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Publisko autoritāšu piešķirtais identitātes numurs" + +# English string: Organization name +msgid "o" +msgstr "Organizācijas nosaukums" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Organizācijas nosaukums" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Organizācijas nosaukums" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Organizācijas vienība" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Organizācijas vienība" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Organizācijas vienība" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Pasta kaste" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Pasta kaste" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Pasta kaste" + +# English string: Postal address +msgid "postalAddress" +msgstr "Pasta adrese" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Pasta adrese" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Pasta adrese" + +# English string: Postal code +msgid "postalCode" +msgstr "Pasta kods" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Pasta kods" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Pasta kods" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Vēlamā valoda" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Vēlamā valoda" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Vēlamā valoda" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Organizācijas domeins" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Organizācijas domeins" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Organizācijas domeins" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Organizācijas domeins" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Privātās informācijas elementi" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Privātās informācijas elementi" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Privātās informācijas elementi" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Privātās informācijas elementi" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Uzvārds" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Uzvārds" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Uzvārds" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Iela" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Iela" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Iela" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Telefons" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Telefons" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Telefons" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Amats" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Amats" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Amats" + +# English string: User ID +msgid "uid" +msgstr "Lietotāja ID" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Lietotāja ID" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Lietotāja ID" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Paroles jaucējsumma (hash)" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Paroles jaucējsumma (hash)" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Paroles jaucējsumma (hash)" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Vārds" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Parādāmais vārds" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Parādāmais vārds" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Parādāmais vārds" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Parādāmais vārds" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Parādāmais vārds" + +# English string: Display name +msgid "twitter.name" +msgstr "Parādāmais vārds" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Parādāmais vārds" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Priekšnieka vārds" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Priekšnieka vārds" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Priekšnieka vārds" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Priekšnieka vārds" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Priekšnieka vārds" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Pastāvīgs pseidonīma ID" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Pastāvīgs pseidonīma ID" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Pastāvīgs pseidonīma ID" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Pastāvīgs pseidonīma ID" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Fakss" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Vārds" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Vārds" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Vārds" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Vārds" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Vārds" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Telefons" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Atrašanās vieta" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "URI nosaukums" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "URI nosaukums" + +# English string: Mail +msgid "facebook.email" +msgstr "Pasts" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "Pasts" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "Pasts" + +# English string: Mail +msgid "windowslive_mail" +msgstr "Pasts" + +# English string: Mail +msgid "windowslive.mail" +msgstr "Pasts" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Mobilais telefons" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Organizācijas nosaukums" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Pasta kods" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Pasta kods" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Vēlamā valoda" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Vēlamā valoda" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Vēlamā valoda" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Vēlamā valoda" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Vēlamā valoda" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Uzvārds" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Uzvārds" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Uzvārds" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Uzvārds" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Uzvārds" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Telefons" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Telefons" + +# English string: Title +msgid "linkedin.headline" +msgstr "Amats" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Amats" + +# English string: User ID +msgid "facebook.username" +msgstr "Lietotāja ID" + +# English string: User ID +msgid "linkedin.id" +msgstr "Lietotāja ID" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Lietotāja ID" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Lietotāja ID" + +# English string: User ID +msgid "windowslive.id" +msgstr "Lietotāja ID" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/lv/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/lv/LC_MESSAGES/messages.po index 9250283d961dbe548c9e9ff41911c2f248956cd4..1ef6079aed1c8eb52a59480bb4e897b1f75515cd 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/lv/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/lv/LC_MESSAGES/messages.po @@ -53,12 +53,6 @@ msgstr "Metadatu ielādes kļūda" msgid "{admin:metaconv_title}" msgstr "Metadatu parsētājs" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Pilnvaras attiecībā uz servisu" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "JPEG fotogrāfija" - msgid "{admin:cfg_check_noerrors}" msgstr "Kļūdas nav atrastas." @@ -131,9 +125,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Iet atpakaļ uz SimpleSAMLphp instalācijas lapu" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "WS-Federation servisa piegādātājs (attālināts)" - msgid "{errors:error_header}" msgstr "SimpleSAMLphp kļūda" @@ -150,18 +141,12 @@ msgstr "" "Jūsu SimpleSAMLphp instalācijas konfigurācijā ir kļūda. Pārliecinieties, " "lai metadatu konfigurācija būtu korekta." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Organizācijas vārds (DN)" - msgid "{errors:title_BADREQUEST}" msgstr "Saņemts nepareizs pieprasījums" msgid "{status:sessionsize}" msgstr "Sesijas izmērs: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Pasta adrese" - msgid "{logout:title}" msgstr "Atslēdzies" @@ -183,30 +168,15 @@ msgstr "Apturēts" msgid "{admin:cfg_check_header}" msgstr "Konfigurācijas pārbaude" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Amats organizācijā" - -msgid "{attributes:attribute_sn}" -msgstr "Uzvārds" - msgid "{admin:debug_sending_message_send}" msgstr "Sūtīt ziņu" msgid "{status:logout}" msgstr "Atslēgties" -msgid "{attributes:attribute_organisationname}" -msgstr "Organizācijas nosaukums" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Telefons" - msgid "{errors:descr_DISCOPARAMS}" msgstr "Discovery servisam nosūtītie parametri neatbilst specifikācijām." -msgid "{attributes:attribute_mail}" -msgstr "Pasts" - msgid "{errors:descr_CREATEREQUEST}" msgstr "Veidojot SAML pieprasījumu radās kļūda." @@ -216,9 +186,6 @@ msgstr "Neobligātie lauki" msgid "{logout:return}" msgstr "Atgriezties pie servisa" -msgid "{attributes:attribute_displayname}" -msgstr "Parādāmais vārds" - msgid "{admin:metadata_xmlurl}" msgstr "Jūs varat <a href=\"%METAURL%\">saņemt metadatu xml šajā URL</a>:" @@ -230,9 +197,6 @@ msgstr "" "Jūs varat izslēgt atkļūdošanas režīmu globālajā SimpleSAMLphp " "konfigurācijas failā <tt>config/config.php</tt>." -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Pasta adrese" - msgid "{disco:select}" msgstr "Izvēlēties" @@ -259,9 +223,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Vai vēlaties atslēgties no visiem uzskaitītajiem servisiem?" -msgid "{attributes:attribute_title}" -msgstr "Amats" - msgid "{errors:title_NOACCESS}" msgstr "Nav pieejas" @@ -274,9 +235,6 @@ msgstr "Nav RelayState" msgid "{errors:descr_NOSTATE}" msgstr "Stāvokļa informācija pazaudēta un nav iespējams atkārtot pieprasījumu" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Publisko autoritāšu piešķirtais identitātes numurs" - msgid "{login:password}" msgstr "Parole" @@ -303,24 +261,15 @@ msgstr "Atslēgšanās pieprasījuma apstrādes kļūda" msgid "{admin:metaover_errorentry}" msgstr "Kļūda šajā metadatu ierakstā" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Piederība" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Metadati nav atrasti" -msgid "{attributes:attribute_givenname}" -msgstr "Vārds" - msgid "{login:contact_info}" msgstr "Kontaktinformācija" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Nezināma kļūda" -msgid "{status:validfor}" -msgstr "Sesija ir derīga %SECONDS% sekundes no šī brīža." - msgid "{status:header_saml20_sp}" msgstr "SAML 2.0 SP demonstrācijas piemērs" @@ -355,30 +304,18 @@ msgstr "" "Autentifikācija neizdevās, jo Jūsu interneta pārlūks atsūtījis " "nepazīstamu sertifikātu" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Organizācijas mājas lapa" - msgid "{logout:logging_out_from}" msgstr "Atslēgšanās no šiem servisiem:" msgid "{logout:loggedoutfrom}" msgstr "Jūs esat sekmīgi atslēdzies no %SP%." -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "WS-Federation servisa piegādātājs (hostēts)" - msgid "{errors:errorreport_text}" msgstr "Kļūdas ziņojums administratoriem ir nosūtīts." -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Dzimšanas datums" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "Apstrādājot atslēgšanās pieprasījumu, radās kļūda." -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Pastāvīgs pseidonīma ID" - msgid "{logout:success}" msgstr "Jūs esat sekmīgi atslēdzies un augstāk uzskaitītajiem servisiem." @@ -388,12 +325,6 @@ msgstr "Brīdinājumi" msgid "{errors:descr_USERABORTED}" msgstr "Autentifikāciju pārtraucis lietotājs" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Pamatdarba amats" - -msgid "{attributes:attribute_postalcode}" -msgstr "Pasta kods" - msgid "{errors:descr_CASERROR}" msgstr "Kļūda komunicējot ar CAS serveri." @@ -406,9 +337,6 @@ msgstr "SAML 2.0 SP metadati" msgid "{admin:metaconv_converted}" msgstr "Konvertētie metadati" -msgid "{attributes:attribute_cn}" -msgstr "Vārds" - msgid "{logout:completed}" msgstr "Pabeigts" @@ -417,18 +345,9 @@ msgstr "" "Konfigurācijā auth.adminpassword parolei ir noklusētā vērtība, tā nav " "mainīta. Lūdzu nomainiet to, labojot failu." -msgid "{attributes:attribute_ou}" -msgstr "Organizācijas vienība" - msgid "{general:service_provider}" msgstr "Servisa piegādātājs" -msgid "{attributes:attribute_homephone}" -msgstr "Telefons" - -msgid "{attributes:attribute_dc}" -msgstr "Domēns (DC)" - msgid "{errors:descr_BADREQUEST}" msgstr "Kļūdains pieprasījums šai lapai. Iemesls: %REASON%" @@ -447,23 +366,14 @@ msgstr "Ievadiet savu lietotāja vārdu un paroli" msgid "{errors:report_explain}" msgstr "Aprakstiet, ko Jūs darījāt, kad notika kļūda." -msgid "{attributes:attribute_manager}" -msgstr "Priekšnieks" - msgid "{errors:title_ACSPARAMS}" msgstr "Nav SAML atbildes" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Niks" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Jūs izmantojat SingleLogoutService interfeisu, bet neesat devis SAML " "atslēgšanās pieprasījumu vai atslēgšanās atbildi." -msgid "{attributes:attribute_street}" -msgstr "Iela" - msgid "{login:organization}" msgstr "Organizācija" @@ -501,9 +411,6 @@ msgstr "Izvēlēties organizāciju" msgid "{admin:cfg_check_superfluous}" msgstr "Sīkas (superfluous) opcijas konfigurācijas failā" -msgid "{attributes:attribute_labeleduri}" -msgstr "URI nosaukums" - msgid "{errors:report_email}" msgstr "E-pasta adrese:" @@ -518,9 +425,6 @@ msgstr "" "Pieprasījuma veidotājs nav norādījis RelayState parametru, kas parādītu, " "kurp iet tālāk." -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Juridiskais nosaukums" - msgid "{status:header_diagnostics}" msgstr "SimpleSAMLphp diagnostika" @@ -529,9 +433,6 @@ msgstr "" "Šī ir SimpleSAMLphp statusa lapa. Te Jūs varat redzēt vai Jūsu sesija ir " "pārtraukta, cik ilgi tā bijusi aktīva un visus ar to saistītos atribūtus." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Organizācijas domeins" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Lapa nav atrasta" @@ -550,30 +451,18 @@ msgstr "Lai aplūkotu SAML vienuma detaļas, klikšķiniet uz vienuma galvenes." msgid "{errors:title_NOTVALIDCERT}" msgstr "Nederīgs sertifikāts" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Organizācijas vienības vārds (DN)" - msgid "{general:remember}" msgstr "Atcerēties" msgid "{disco:selectidp}" msgstr "Izvēlieties identitātes piegādātāju" -msgid "{attributes:attribute_postofficebox}" -msgstr "Pasta kaste" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Priekšnieka vārds" - msgid "{login:help_desk_email}" msgstr "Sūtīt e-pastu palīdzības dienestam" msgid "{login:help_desk_link}" msgstr "Palīdzības dienesta interneta lapa" -msgid "{attributes:attribute_uid}" -msgstr "Lietotāja ID" - msgid "{errors:title_CASERROR}" msgstr "CAS kļūda" @@ -594,12 +483,6 @@ msgstr "Atcerēties manu izvēli" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "SAML 2.0 servisa piegādātājs (hostēts)" -msgid "{attributes:attribute_l}" -msgstr "Atrašanās vieta" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Apraksts, kā atšķirt cilvēku no robota" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "SimpleSAMLphp parasta faila formātā - lietojiet šo, ja izmantojat " @@ -644,9 +527,6 @@ msgstr "Ziņa" msgid "{errors:title_UNKNOWNCERT}" msgstr "Nepazīstams sertifikāts" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Fakss" - msgid "{errors:title_LDAPERROR}" msgstr "LDAP kļūda" @@ -663,15 +543,9 @@ msgstr "" "Iespējams, kļūda radusies no neparedzētas darbības vai nepareizas " "SimpleSAMLphp konfigurācijas. Nosūtiet administratoram kļūdas ziņojumu." -msgid "{attributes:attribute_mobile}" -msgstr "Mobilais telefons" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Shib 1.3 identitātes piegādātājs (hostēts)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Vēlamā valoda" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Jūs neesat norādījis derīgu sertifikātu." @@ -684,15 +558,6 @@ msgstr "Nav atrasti neobligātie lauki" msgid "{logout:logout_only}" msgstr "Nē, tikai %SP%" -msgid "{attributes:attribute_o}" -msgstr "Organizācijas nosaukums" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Personas pamata organizācijas vienības vārds (DN)" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Personas kods" - msgid "{login:next}" msgstr "Tālāk" @@ -712,9 +577,6 @@ msgstr "Norādītā lapa nav atrasta. Iemesls: %REASON% Saite: %URL%" msgid "{errors:title_NOCERT}" msgstr "Nav sertifikāta" -msgid "{attributes:attribute_userpassword}" -msgstr "Paroles jaucējsumma (hash)" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Atslēgšanās informācija zaudēta" @@ -729,12 +591,6 @@ msgstr "" "Šeit ir SimpleSAMLphp ģenerētie metadati. Jūs varat tos sūtīt partneriem," " lai izveidotu uzticamu federāciju." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Privātās informācijas elementi" - -msgid "{status:header_wsfed}" -msgstr "WS-Fed SP demonstrācijas piemērs" - msgid "{admin:metadata_cert}" msgstr "Sertifikāti" @@ -743,18 +599,12 @@ msgstr "" "Autentifikācija neizdevās, jo Jūsu interneta pārlūks atsūtījis nederīgu " "vai nelasāmu sertifikātu" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Organizācijas juridiskais nosaukums" - msgid "{status:header_shib}" msgstr "Shibboleth demo" msgid "{admin:metaconv_parse}" msgstr "Parsēt" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Organizācijas reģistrācijas numurs" - msgid "Person's principal name at home organization" msgstr "Priekšnieka vārds" @@ -1082,8 +932,8 @@ msgstr "" "SimpleSAMLphp konfigurācijas. Nosūtiet administratoram kļūdas ziņojumu." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Sesija ir derīga %SECONDS% sekundes no šī brīža." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Sesija ir derīga %remaining% sekundes no šī brīža." msgid "Domain component (DC)" msgstr "Domēns (DC)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/nb/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/nb/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..dc076ea98c3eb54b3daad5b0ac8d93bce6a0b65a --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/nb/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nb\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Fullt navn" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Fullt navn" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Fullt navn" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Navneledd (DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Navneledd (DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Navneledd (DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Navn som normalt vises" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Navn som normalt vises" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Navn som normalt vises" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Organisasjonens hjemmeside" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Organisasjonens hjemmeside" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Organisasjonens hjemmeside" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Foretaksnavn" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Foretaksnavn" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Foretaksnavn" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Tilhørighet" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Tilhørighet" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Tilhørighet" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Tillitsnivå for autentisering" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Tillitsnivå for autentisering" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Tillitsnivå for autentisering" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Rettighet" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Rettighet" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Rettighet" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Kallenavn" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Kallenavn" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Kallenavn" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Entydig navn (DN) for brukerens vertsorganisasjon" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Entydig navn (DN) for brukerens vertsorganisasjon" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Entydig navn (DN) for brukerens vertsorganisasjon" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Entydig navn (DN) for brukerens organisasjonsenhet" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Entydig navn (DN) for brukerens organisasjonsenhet" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Entydig navn (DN) for brukerens organisasjonsenhet" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Primær tilknytning til organisasjon" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Primær tilknytning til organisasjon" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Primær tilknytning til organisasjon" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Entydig navn for organisasjonsenheten som brukeren primært er tilknyttet" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Entydig navn for organisasjonsenheten som brukeren primært er tilknyttet" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Entydig navn for organisasjonsenheten som brukeren primært er tilknyttet" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Personlig ID hos organisasjonen" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Personlig ID hos organisasjonen" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Personlig ID hos organisasjonen" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Gruppetilhørighet" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Gruppetilhørighet" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Gruppetilhørighet" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Persistent anonym ID" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Persistent anonym ID" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Persistent anonym ID" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Faksnummer" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Faksnummer" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Faksnummer" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Fornavn" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Fornavn" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Fornavn" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Hjemmetelefon" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Hjemmetelefon" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Hjemmetelefon" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Postadresse hjemme" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Postadresse hjemme" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Postadresse hjemme" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "JPEG-foto" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "JPEG-foto" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "JPEG-foto" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Sted" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Sted" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Sted" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "URI med valgfri tilleggskommentar" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "URI med valgfri tilleggskommentar" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "URI med valgfri tilleggskommentar" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "E-post" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "E-post" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "E-post" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Overordnet" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Overordnet" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Overordnet" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Mobiltelefon" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Mobiltelefon" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Mobiltelefon" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Organisasjonsnummer" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Organisasjonsnummer" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Organisasjonsnummer" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Fødselsdato" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Fødselsdato" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Fødselsdato" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Lokalt ID-nummer" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Lokalt ID-nummer" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Lokalt ID-nummer" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Fødselsnummer" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Fødselsnummer" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Fødselsnummer" + +# English string: Organization name +msgid "o" +msgstr "Navn på organisasjon" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Navn på organisasjon" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Navn på organisasjon" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Organisasjonsenhet" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Organisasjonsenhet" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Organisasjonsenhet" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Postboks" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Postboks" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Postboks" + +# English string: Postal address +msgid "postalAddress" +msgstr "Postadresse" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Postadresse" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Postadresse" + +# English string: Postal code +msgid "postalCode" +msgstr "Postnummer" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Postnummer" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Postnummer" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Foretrukket språk" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Foretrukket språk" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Foretrukket språk" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Unik ID for organisasjon" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Unik ID for organisasjon" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Unik ID for organisasjon" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Unik ID for organisasjon" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Private informasjonselement" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Private informasjonselement" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Private informasjonselement" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Private informasjonselement" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Etternavn" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Etternavn" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Etternavn" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Gate" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Gate" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Gate" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Telefon" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Telefon" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Telefon" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Tittel" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Tittel" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Tittel" + +# English string: User ID +msgid "uid" +msgstr "Bruker-ID" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Bruker-ID" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Bruker-ID" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Hash av brukerens passord" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Hash av brukerens passord" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Hash av brukerens passord" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Fullt navn" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Navn som normalt vises" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Navn som normalt vises" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Navn som normalt vises" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Navn som normalt vises" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Navn som normalt vises" + +# English string: Display name +msgid "twitter.name" +msgstr "Navn som normalt vises" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Navn som normalt vises" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Personlig ID hos organisasjonen" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Personlig ID hos organisasjonen" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Personlig ID hos organisasjonen" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Personlig ID hos organisasjonen" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Personlig ID hos organisasjonen" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Persistent anonym ID" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Persistent anonym ID" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Persistent anonym ID" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Persistent anonym ID" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Faksnummer" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Fornavn" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Fornavn" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Fornavn" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Fornavn" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Fornavn" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Hjemmetelefon" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Sted" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "URI med valgfri tilleggskommentar" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "URI med valgfri tilleggskommentar" + +# English string: Mail +msgid "facebook.email" +msgstr "E-post" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "E-post" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "E-post" + +# English string: Mail +msgid "windowslive_mail" +msgstr "E-post" + +# English string: Mail +msgid "windowslive.mail" +msgstr "E-post" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Mobiltelefon" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Navn på organisasjon" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Postnummer" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Postnummer" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Foretrukket språk" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Foretrukket språk" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Foretrukket språk" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Foretrukket språk" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Foretrukket språk" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Etternavn" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Etternavn" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Etternavn" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Etternavn" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Etternavn" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Telefon" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Telefon" + +# English string: Title +msgid "linkedin.headline" +msgstr "Tittel" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Tittel" + +# English string: User ID +msgid "facebook.username" +msgstr "Bruker-ID" + +# English string: User ID +msgid "linkedin.id" +msgstr "Bruker-ID" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Bruker-ID" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Bruker-ID" + +# English string: User ID +msgid "windowslive.id" +msgstr "Bruker-ID" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/nb/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/nb/LC_MESSAGES/messages.po index aaa30d73096a701bca36c0898f43927e8fd51869..26479a688d09600df1d7f57decc32eac552426ef 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/nb/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/nb/LC_MESSAGES/messages.po @@ -50,12 +50,6 @@ msgstr "Feil ved lasting av metadata" msgid "{admin:metaconv_title}" msgstr "Metadata parser" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Rettighet" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "JPEG-foto" - msgid "{admin:cfg_check_noerrors}" msgstr "Ingen feil funnet" @@ -131,9 +125,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Gå tilbake til SimpleSAMLphp installasjonen sin startside." -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "WS-Federation identitetsleverandør (ekstern)" - msgid "{errors:error_header}" msgstr "SimpleSAMLphp-feil" @@ -152,18 +143,12 @@ msgstr "" " administrator for tjenesten, bør du kontrollere at metadata er satt opp " "riktig." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Entydig navn (DN) for brukerens vertsorganisasjon" - msgid "{errors:title_BADREQUEST}" msgstr "Feil forespørsel motatt" msgid "{status:sessionsize}" msgstr "Sesjons størrelse: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Postadresse" - msgid "{logout:title}" msgstr "Utlogget" @@ -185,30 +170,15 @@ msgstr "På vent" msgid "{admin:cfg_check_header}" msgstr "Sjekker konfigurasjonen" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Gruppetilhørighet" - -msgid "{attributes:attribute_sn}" -msgstr "Etternavn" - msgid "{admin:debug_sending_message_send}" msgstr "Send melding" msgid "{status:logout}" msgstr "Logg ut" -msgid "{attributes:attribute_organisationname}" -msgstr "Navn på organisasjon" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Telefon" - msgid "{errors:descr_DISCOPARAMS}" msgstr "Parametere sendt til discovery-tjenesten var ikke i korrekt format." -msgid "{attributes:attribute_mail}" -msgstr "E-post" - msgid "{errors:descr_CREATEREQUEST}" msgstr "En feil oppstod da SAML-forespørselen skulle lages." @@ -218,9 +188,6 @@ msgstr "Valgbart felt" msgid "{logout:return}" msgstr "Tilbake til tjenesten" -msgid "{attributes:attribute_displayname}" -msgstr "Navn som normalt vises" - msgid "{admin:metadata_xmlurl}" msgstr "" "Du kan nå <a href=\"%METAURL%\">metadata i XML-format på en dedikert " @@ -234,9 +201,6 @@ msgstr "" "Do kan skru av debug modus i den globale SimpleSAMLphp konfigurasjonsfila" " <tt>config/config.php</tt>." -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Postadresse hjemme" - msgid "{disco:select}" msgstr "Velg" @@ -263,9 +227,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Vil du logge ut fra alle tjenestene ovenfor?" -msgid "{attributes:attribute_title}" -msgstr "Tittel" - msgid "{errors:title_NOACCESS}" msgstr "Ingen tilgang" @@ -278,9 +239,6 @@ msgstr "Spesifikasjon av RelayState mangler" msgid "{errors:descr_NOSTATE}" msgstr "Tilstandsinformasjon tapt, det er ikke mulig å gjenoppta forespørselen" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Fødselsnummer" - msgid "{login:password}" msgstr "Passord" @@ -307,24 +265,15 @@ msgstr "Feil i behandling av logout-forespørselen" msgid "{admin:metaover_errorentry}" msgstr "Feil i metadataoppføringen" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Tilhørighet" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Ingen metadata funnet" -msgid "{attributes:attribute_givenname}" -msgstr "Fornavn" - msgid "{login:contact_info}" msgstr "Kontaktinformasjon:" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Uhåndtert feil" -msgid "{status:validfor}" -msgstr "Din sesjon er gyldig i %SECONDS% sekunder fra nå." - msgid "{status:header_saml20_sp}" msgstr "SAML 2.0 SP Demo Eksempel" @@ -358,30 +307,18 @@ msgstr "Velg hvilken konfigurasjonfil som skal sjekkes" msgid "{errors:descr_UNKNOWNCERT}" msgstr "Authentisering feilet: sertifikatet nettleseren din sendte er ukjent" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Organisasjonens hjemmeside" - msgid "{logout:logging_out_from}" msgstr "Logger ut fra følgende tjenester:" msgid "{logout:loggedoutfrom}" msgstr "Du er nå logget ut fra %SP%." -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "WS-Federation tjenesteleverandør (intern)" - msgid "{errors:errorreport_text}" msgstr "Feilrapport er sent til administrator." -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Fødselsdato" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "En feil oppsto i behandlingen av logout-forespørselen." -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Persistent anonym ID" - msgid "{logout:success}" msgstr "Du har nå logget ut fra alle tjenestene listet ovenfor." @@ -391,12 +328,6 @@ msgstr "Notiser" msgid "{errors:descr_USERABORTED}" msgstr "Godkjenningen ble avbrutt av brukeren" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Primær tilknytning til organisasjon" - -msgid "{attributes:attribute_postalcode}" -msgstr "Postnummer" - msgid "{errors:descr_CASERROR}" msgstr "Feil i kommunikasjonen med CAS-tjeneren." @@ -409,9 +340,6 @@ msgstr "SAML 2.0 SP metadata" msgid "{admin:metaconv_converted}" msgstr "Konvertert metadata" -msgid "{attributes:attribute_cn}" -msgstr "Fullt navn" - msgid "{logout:completed}" msgstr "Fullført" @@ -420,18 +348,9 @@ msgstr "" "Admin passordet i konfigurasjonen (auth.adminpassword) er ikke satt til " "noe annet enn default verdien. Bytt passord i config.php." -msgid "{attributes:attribute_ou}" -msgstr "Organisasjonsenhet" - msgid "{general:service_provider}" msgstr "Tjenesteleverandør" -msgid "{attributes:attribute_homephone}" -msgstr "Hjemmetelefon" - -msgid "{attributes:attribute_dc}" -msgstr "Navneledd (DC)" - msgid "{errors:descr_BADREQUEST}" msgstr "En feil oppsto i forespørselen til denne siden. Grunnen var: %REASON%" @@ -450,23 +369,14 @@ msgstr "Skriv inn brukernavn og passord" msgid "{errors:report_explain}" msgstr "Forklar hva du gjorde da feilen oppsto..." -msgid "{attributes:attribute_manager}" -msgstr "Overordnet" - msgid "{errors:title_ACSPARAMS}" msgstr "Ingen SAML-respons angitt" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Kallenavn" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Du brukte SingleLogoutService-grensesnittet uten å angi enten en SAML " "LogoutRequest eller en LogoutResponse." -msgid "{attributes:attribute_street}" -msgstr "Gate" - msgid "{login:organization}" msgstr "Organisasjon" @@ -506,9 +416,6 @@ msgstr "Velg vertsorganisasjon" msgid "{admin:cfg_check_superfluous}" msgstr "Overføldig element i konfigurasjonsfilen" -msgid "{attributes:attribute_labeleduri}" -msgstr "URI med valgfri tilleggskommentar" - msgid "{errors:report_email}" msgstr "E-postadresse:" @@ -523,9 +430,6 @@ msgstr "" "Kilden til denne forespørselen har ikke angitt noen RelayState-parameter " "som angir hvor vi skal fortsette etterpå." -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Folkeregistrert navn" - msgid "{status:header_diagnostics}" msgstr "SimpleSAMLphp diagnostikk" @@ -535,9 +439,6 @@ msgstr "" "din er timet ut, hvor lenge det er til den timer ut og attributter som er" " knyttet til din sesjon." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Unik ID for organisasjon" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Kan ikke finne siden" @@ -558,30 +459,18 @@ msgstr "" msgid "{errors:title_NOTVALIDCERT}" msgstr "Ugyldig sertifikat" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Entydig navn (DN) for brukerens organisasjonsenhet" - msgid "{general:remember}" msgstr "Godta også for fremtiden" msgid "{disco:selectidp}" msgstr "Velg din identitetsleverandør" -msgid "{attributes:attribute_postofficebox}" -msgstr "Postboks" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Personlig ID hos organisasjonen" - msgid "{login:help_desk_email}" msgstr "Send e-post til brukerstøtte" msgid "{login:help_desk_link}" msgstr "Hjemmesiden til brukerstøtte" -msgid "{attributes:attribute_uid}" -msgstr "Bruker-ID" - msgid "{errors:title_CASERROR}" msgstr "CAS-feil" @@ -602,12 +491,6 @@ msgstr "Husk mitt valg" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "SAML 2.0 tjenesteleverandør (intern)" -msgid "{attributes:attribute_l}" -msgstr "Sted" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Tillitsnivå for autentisering" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "I SimpleSAMLphp format - bruk denne dersom du benytter SimpleSAMLphp i " @@ -652,9 +535,6 @@ msgstr "Melding" msgid "{errors:title_UNKNOWNCERT}" msgstr "Ukjent sertifikat" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Faksnummer" - msgid "{errors:title_LDAPERROR}" msgstr "LDAP-feil" @@ -673,15 +553,9 @@ msgstr "" "eller den er en følge av en uforutsett hendelse. Kontakt administratoren " "av denne tjenesten og rapporter så mye som mulig angående feilen." -msgid "{attributes:attribute_mobile}" -msgstr "Mobiltelefon" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Shib 1.3 Identitetsleverandør (ekstern)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Foretrukket språk" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Du presenterte ikke et gyldig sertifikat" @@ -696,15 +570,6 @@ msgstr "Følgende valgbare felt ble ikke funnet" msgid "{logout:logout_only}" msgstr "Nei, bare %SP%" -msgid "{attributes:attribute_o}" -msgstr "Navn på organisasjon" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Entydig navn for organisasjonsenheten som brukeren primært er tilknyttet" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Lokalt ID-nummer" - msgid "{login:next}" msgstr "Fortsett" @@ -722,9 +587,6 @@ msgstr "Den angitte siden finnes ikke. Grunnen er: %REASON%. URLen var: %URL%" msgid "{errors:title_NOCERT}" msgstr "Ikke noe sertifikat mottatt" -msgid "{attributes:attribute_userpassword}" -msgstr "Hash av brukerens passord" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Informasjon om utlogging er tapt" @@ -739,12 +601,6 @@ msgstr "" "Her er metadata som SimpleSAMLphp har generert for deg. Du må utveksle " "metadata med de partene du stoler på for å sette opp en føderasjon." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Private informasjonselement" - -msgid "{status:header_wsfed}" -msgstr "WS-Fed SP Demo Eksempel" - msgid "{admin:metadata_cert}" msgstr "Sertifikater" @@ -753,18 +609,12 @@ msgstr "" "Autentisering feilet: sertifikatet nettleseren din sendte er ugyldig, og " "kan ikke leses" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Foretaksnavn" - msgid "{status:header_shib}" msgstr "Shibboleth Demo" msgid "{admin:metaconv_parse}" msgstr "Pars" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Organisasjonsnummer" - msgid "Hello, Untranslated World!" msgstr "Hallo, oversatte verden!" @@ -1106,8 +956,8 @@ msgstr "" "av denne tjenesten og rapporter så mye som mulig angående feilen." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Din sesjon er gyldig i %SECONDS% sekunder fra nå." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Din sesjon er gyldig i %remaining% sekunder fra nå." msgid "Domain component (DC)" msgstr "Navneledd (DC)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/nl/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/nl/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..73e3a7612d23787f7298eb53029820073955ac1b --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/nl/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nl\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Algemene naam" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Algemene naam" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Algemene naam" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Domeincomponent" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Domeincomponent" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Domeincomponent" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Weergavenaam" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Weergavenaam" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Weergavenaam" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Organisatie homepage" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Organisatie homepage" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Organisatie homepage" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Organisatie naam" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Organisatie naam" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Organisatie naam" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Affiliatie" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Affiliatie" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Affiliatie" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Identiteitsverzekeringsprofiel" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Identiteitsverzekeringsprofiel" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Identiteitsverzekeringsprofiel" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Recht" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Recht" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Recht" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Bijnaam" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Bijnaam" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Bijnaam" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Distinguished name (DN) van de organisatie van de persoon" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Distinguished name (DN) van de organisatie van de persoon" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Distinguished name (DN) van de organisatie van de persoon" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Distinguished name (DN) van de afdeling van de persoon" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Distinguished name (DN) van de afdeling van de persoon" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Distinguished name (DN) van de afdeling van de persoon" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Primaire relatie" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Primaire relatie" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Primaire relatie" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Distinguished name (DN) van de organisatie hoofdafdeling waartoe de persoon behoort" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Distinguished name (DN) van de organisatie hoofdafdeling waartoe de persoon behoort" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Distinguished name (DN) van de organisatie hoofdafdeling waartoe de persoon behoort" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Persoons ID bij organisatie" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Persoons ID bij organisatie" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Persoons ID bij organisatie" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Groep" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Groep" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Groep" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Persistente anonieme ID" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Persistente anonieme ID" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Persistente anonieme ID" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Faxnummer" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Faxnummer" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Faxnummer" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Voornaam" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Voornaam" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Voornaam" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Thuistelefoon" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Thuistelefoon" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Thuistelefoon" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Werkadres" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Werkadres" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Werkadres" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "JPEG-foto" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "JPEG-foto" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "JPEG-foto" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Plaats" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Plaats" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Plaats" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "URI" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "URI" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "URI" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "E-mail" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "E-mail" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "E-mail" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Manager" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Manager" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Manager" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Mobiel" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Mobiel" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Mobiel" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Organisatie nummer" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Organisatie nummer" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Organisatie nummer" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Geboortedatum" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Geboortedatum" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Geboortedatum" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Identiteitsnummer" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Identiteitsnummer" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Identiteitsnummer" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Burgerservicenummer" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Burgerservicenummer" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Burgerservicenummer" + +# English string: Organization name +msgid "o" +msgstr "Organisatie naam" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Organisatie naam" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Organisatie naam" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Afdeling" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Afdeling" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Afdeling" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Postbus" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Postbus" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Postbus" + +# English string: Postal address +msgid "postalAddress" +msgstr "Adres" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Adres" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Adres" + +# English string: Postal code +msgid "postalCode" +msgstr "Postcode" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Postcode" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Postcode" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Voorkeurstaal" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Voorkeurstaal" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Voorkeurstaal" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Unieke Organisatie ID" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Unieke Organisatie ID" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Unieke Organisatie ID" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Unieke Organisatie ID" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Privé informatie-elementen" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Privé informatie-elementen" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Privé informatie-elementen" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Privé informatie-elementen" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Achternaam" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Achternaam" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Achternaam" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Straat" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Straat" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Straat" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Telefoonnummer" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Telefoonnummer" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Telefoonnummer" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Titel" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Titel" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Titel" + +# English string: User ID +msgid "uid" +msgstr "Gebruikers ID" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Gebruikers ID" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Gebruikers ID" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Password hash" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Password hash" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Password hash" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Algemene naam" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Weergavenaam" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Weergavenaam" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Weergavenaam" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Weergavenaam" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Weergavenaam" + +# English string: Display name +msgid "twitter.name" +msgstr "Weergavenaam" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Weergavenaam" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Persoons ID bij organisatie" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Persoons ID bij organisatie" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Persoons ID bij organisatie" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Persoons ID bij organisatie" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Persoons ID bij organisatie" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Persistente anonieme ID" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Persistente anonieme ID" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Persistente anonieme ID" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Persistente anonieme ID" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Faxnummer" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Voornaam" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Voornaam" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Voornaam" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Voornaam" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Voornaam" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Thuistelefoon" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Plaats" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "URI" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "URI" + +# English string: Mail +msgid "facebook.email" +msgstr "E-mail" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "E-mail" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "E-mail" + +# English string: Mail +msgid "windowslive_mail" +msgstr "E-mail" + +# English string: Mail +msgid "windowslive.mail" +msgstr "E-mail" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Mobiel" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Organisatie naam" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Postcode" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Postcode" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Voorkeurstaal" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Voorkeurstaal" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Voorkeurstaal" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Voorkeurstaal" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Voorkeurstaal" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Achternaam" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Achternaam" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Achternaam" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Achternaam" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Achternaam" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Telefoonnummer" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Telefoonnummer" + +# English string: Title +msgid "linkedin.headline" +msgstr "Titel" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Titel" + +# English string: User ID +msgid "facebook.username" +msgstr "Gebruikers ID" + +# English string: User ID +msgid "linkedin.id" +msgstr "Gebruikers ID" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Gebruikers ID" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Gebruikers ID" + +# English string: User ID +msgid "windowslive.id" +msgstr "Gebruikers ID" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/nl/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/nl/LC_MESSAGES/messages.po index 5704f1458fc52363e6d4bc4084ba01440f9a37d8..9eed3f830f582fe6d20132ea4f51f49493cc4023 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/nl/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/nl/LC_MESSAGES/messages.po @@ -53,12 +53,6 @@ msgstr "Fout bij het laden van metadata" msgid "{admin:metaconv_title}" msgstr "Metadata parser" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Recht" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "JPEG-foto" - msgid "{admin:cfg_check_noerrors}" msgstr "Geen fouten gevonden." @@ -137,9 +131,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Ga terug naar de SimpleSAMLphp installatiepagina" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "WS-Federation Identity Provider (Remote)" - msgid "{errors:error_header}" msgstr "SimpleSAMLphp-fout" @@ -154,21 +145,15 @@ msgstr "" msgid "{errors:descr_METADATA}" msgstr "" -"SimplSAMLphp is niet goed geconfigureerd. De beheerder van deze dienst " +"SimpleSAMLphp is niet goed geconfigureerd. De beheerder van deze dienst " "dient de metadata configuratie te controleren." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Distinguished name (DN) van de organisatie van de persoon" - msgid "{errors:title_BADREQUEST}" -msgstr "Incorrect request ontvangen" +msgstr "Incorrecte request ontvangen" msgid "{status:sessionsize}" msgstr "Sessiegrootte: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Adres" - msgid "{logout:title}" msgstr "Uitgelogd" @@ -196,32 +181,17 @@ msgstr "Vastgehouden" msgid "{admin:cfg_check_header}" msgstr "Configuratie-validatie" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Groep" - -msgid "{attributes:attribute_sn}" -msgstr "Achternaam" - msgid "{admin:debug_sending_message_send}" msgstr "Verstuur bericht" msgid "{status:logout}" msgstr "Logout" -msgid "{attributes:attribute_organisationname}" -msgstr "Organisatienaam" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Telefoonnummer" - msgid "{errors:descr_DISCOPARAMS}" msgstr "" "De parameters die naar de discovery service zijn gestuurd, zijn niet " "correct volgens de specificatie." -msgid "{attributes:attribute_mail}" -msgstr "E-mail" - msgid "{errors:descr_CREATEREQUEST}" msgstr "Er is een fout opgetreden bij het aanmaken van een SAML request." @@ -231,9 +201,6 @@ msgstr "Optionele velden" msgid "{logout:return}" msgstr "Terug naar service" -msgid "{attributes:attribute_displayname}" -msgstr "Weergavenaam" - msgid "{admin:metadata_xmlurl}" msgstr "" "U kunt <a href=\"%METAURL%\">deze directe URL gebruiken</a> om de " @@ -247,9 +214,6 @@ msgstr "" "U kunt debug mode uitschakelen in de globale SimpleSAMLphp configuratie " "file <tt>config/config.php</tt>." -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Werkadres" - msgid "{disco:select}" msgstr "Kies" @@ -279,9 +243,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Wil je uitloggen van alle bovenvermelde diensten?" -msgid "{attributes:attribute_title}" -msgstr "Titel" - msgid "{errors:title_NOACCESS}" msgstr "Geen toegang" @@ -298,9 +259,6 @@ msgstr "" "Informatie over de toestand is verloren, en het verzoek kan niet herstart" " worden" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Burgerservicenummer" - msgid "{login:password}" msgstr "Wachtwoord" @@ -327,24 +285,15 @@ msgstr "Fout bij het verwerken van een Logout Request" msgid "{admin:metaover_errorentry}" msgstr "Fout in metadata" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Affiliatie" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Metadata niet gevonden" -msgid "{attributes:attribute_givenname}" -msgstr "Voornaam" - msgid "{login:contact_info}" msgstr "Contactinformatie" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Onverwachte foutmelding" -msgid "{status:validfor}" -msgstr "Uw sessie is nog %SECONDS% seconden geldig vanaf dit moment." - msgid "{status:header_saml20_sp}" msgstr "SAML 2.0 SP Demo" @@ -383,33 +332,21 @@ msgstr "" "Authenticatie niet gelukt: het certificaat dat uw browser stuurde is " "onbekend" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Organisatie homepage" - msgid "{logout:logging_out_from}" msgstr "Uitloggen van de volgende diensten:" msgid "{logout:loggedoutfrom}" msgstr "Je bent nu succesvol uitgelogd van %SP%." -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "WS-Federation Service Provider (Hosted)" - msgid "{errors:errorreport_text}" msgstr "Het foutmeldingsrapport is verstuurd naar de beheerders" msgid "{status:subject_header}" msgstr "SAML Subject" -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Geboortedatum" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "Er is een fout opgetreden tijdens het verwerken van een Logout Request." -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Persistente anonieme ID" - msgid "{logout:success}" msgstr "Je bent succesvol uitgelogd van de bovenvermelde services." @@ -419,12 +356,6 @@ msgstr "Opmerkingen" msgid "{errors:descr_USERABORTED}" msgstr "De authenticatie is afgebroken door de gebruiker" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Primaire relatie" - -msgid "{attributes:attribute_postalcode}" -msgstr "Postcode" - msgid "{errors:descr_CASERROR}" msgstr "Fout tijdens communicatie met de CAS server." @@ -437,9 +368,6 @@ msgstr "SAML 2.0 SP Metadata" msgid "{admin:metaconv_converted}" msgstr "Geconverteerde metadata" -msgid "{attributes:attribute_cn}" -msgstr "Algemene naam" - msgid "{logout:completed}" msgstr "Voltooid" @@ -448,18 +376,9 @@ msgstr "" "Het default wachtwoord in de configuratie (auth.adminpassword) is niet " "aangepast; pas de configuratie aan aub." -msgid "{attributes:attribute_ou}" -msgstr "Afdeling" - msgid "{general:service_provider}" msgstr "Service Provider" -msgid "{attributes:attribute_homephone}" -msgstr "Thuistelefoon" - -msgid "{attributes:attribute_dc}" -msgstr "Domeincomponent" - msgid "{errors:descr_BADREQUEST}" msgstr "" "Er is een fout opgetreden in het verzoek voor deze pagina. De oorzaak is:" @@ -480,23 +399,14 @@ msgstr "Geef je gebruikersnaam en wachtwoord" msgid "{errors:report_explain}" msgstr "Leg uit wat je deed toen deze foutmelding optrad..." -msgid "{attributes:attribute_manager}" -msgstr "Manager" - msgid "{errors:title_ACSPARAMS}" msgstr "Geen SAML response gevonden" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Bijnaam" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Je hebt de SingleLogoutService interface aangeroepen, maar hebt geen SAML" " LogoutRequest of LogoutResponse meegestuurd." -msgid "{attributes:attribute_street}" -msgstr "Straat" - msgid "{login:organization}" msgstr "Organisatie" @@ -536,9 +446,6 @@ msgstr "Kies je organisatie" msgid "{admin:cfg_check_superfluous}" msgstr "Teveel opties in de config file" -msgid "{attributes:attribute_labeleduri}" -msgstr "URI" - msgid "{errors:report_email}" msgstr "E-mailadres:" @@ -553,9 +460,6 @@ msgstr "" "De afzender van deze request heeft geen RelayState parameter meegestuurd " "om aan te geven wat de volgende bestemming is." -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Officiële naam" - msgid "{status:header_diagnostics}" msgstr "SimpleSAMLphp controle" @@ -565,9 +469,6 @@ msgstr "" "sessie nog geldig is, hoe lang het nog duurt voordat deze verloopt, en u " "kunt alle attributen bekijken die aanwezig zijn in deze sessie." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Unieke Organisatie ID" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Pagina niet gevonden" @@ -586,33 +487,18 @@ msgstr "Klik op een SAML-entiteit om de details voor die entiteit te bekijken." msgid "{errors:title_NOTVALIDCERT}" msgstr "Ongeldig certificaat" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Distinguished name (DN) van de afdeling van de persoon" - msgid "{general:remember}" msgstr "Bewaar toestemming" msgid "{disco:selectidp}" msgstr "Kies je Identity Provider" -msgid "{attributes:attribute_postofficebox}" -msgstr "Postbus" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Persoons ID bij organisatie" - msgid "{login:help_desk_email}" msgstr "Stuur een e-mail naar de helpdesk" msgid "{login:help_desk_link}" msgstr "Helpdesk homepage" -msgid "{attributes:attribute_ismemberof}" -msgstr "Groepslidmaatschap" - -msgid "{attributes:attribute_uid}" -msgstr "Gebruikers ID" - msgid "{login:remember_me}" msgstr "Onthoud mij" @@ -636,12 +522,6 @@ msgstr "Onthoud mijn keuze" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "SAML 2.0 Service Provider (Hosted)" -msgid "{attributes:attribute_l}" -msgstr "Plaats" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Identiteitsverzekeringsprofiel" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "In SimpleSAMLphp flat file formaat - gebruik dit wanneer uw " @@ -692,9 +572,6 @@ msgstr "ADFS Identity Provider (Hosted)" msgid "{errors:title_UNKNOWNCERT}" msgstr "Onbekend certificaat" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Faxnummer" - msgid "{errors:title_LDAPERROR}" msgstr "LDAP Fout" @@ -713,18 +590,12 @@ msgstr "" "door verkeerde configuratie van SimpleSAMLphp. Meld dit bij de beheerder " "van deze authenticatiedienst, en geef bovenstaande melding door." -msgid "{attributes:attribute_mobile}" -msgstr "Mobiel" - msgid "{admin:metadata_adfs-idp}" msgstr "ADFS IdP Metadata" msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Shib 1.3 Identity Provider (Hosted)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Voorkeurstaal" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Je hebt geen geldig certificaat meegegeven" @@ -739,17 +610,6 @@ msgstr "De volgende optionele velden konden niet worden gevonden" msgid "{logout:logout_only}" msgstr "Nee, alleen %SP%" -msgid "{attributes:attribute_o}" -msgstr "Organisatie naam" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "" -"Distinguished name (DN) van de organisatie hoofdafdeling waartoe de " -"persoon behoort" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Identiteitsnummer" - msgid "{login:next}" msgstr "Volgende" @@ -769,9 +629,6 @@ msgstr "" msgid "{errors:title_NOCERT}" msgstr "Geen certificaat" -msgid "{attributes:attribute_userpassword}" -msgstr "Password hash" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Logout informatie is verloren gegaan" @@ -786,12 +643,6 @@ msgstr "" "Dit is de metadata die automatisch is gegenereerd door SimpleSAMLphp. U " "kunt deze metadata uitwisselen met uw federatiepartners." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Privé informatie-elementen" - -msgid "{status:header_wsfed}" -msgstr "WS-Fed SP Demo" - msgid "{admin:metadata_cert}" msgstr "Certificaten" @@ -800,18 +651,12 @@ msgstr "" "Authenticatie niet gelukt: uw browser stuurde een certificaat dat " "ongeldig is of niet gelezen kon worden" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Organisatie naam" - msgid "{status:header_shib}" msgstr "Shibboleth demo" msgid "{admin:metaconv_parse}" msgstr "Parse" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Organisatie nummer" - msgid "Person's principal name at home organization" msgstr "Persoons ID bij organisatie" @@ -1159,8 +1004,8 @@ msgstr "" "van deze authenticatiedienst, en geef bovenstaande melding door." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Uw sessie is nog %SECONDS% seconden geldig vanaf dit moment." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Uw sessie is nog %remaining% seconden geldig vanaf dit moment." msgid "Domain component (DC)" msgstr "Domeincomponent" @@ -1540,7 +1385,7 @@ msgid "" " are the administrator of this service, you should make sure your " "metadata configuration is correctly setup." msgstr "" -"SimplSAMLphp is niet goed geconfigureerd. De beheerder van deze dienst " +"SimpleSAMLphp is niet goed geconfigureerd. De beheerder van deze dienst " "dient de metadata configuratie te controleren." msgid "Incorrect username or password" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/nn/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/nn/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..5d759c4ab5dbc12d791d6d3c1e6c9db1f6dfdf78 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/nn/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nn\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Fullt namn" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Fullt namn" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Fullt namn" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Namneledd (DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Namneledd (DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Namneledd (DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Namn slik det normalt blir vist fram" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Namn slik det normalt blir vist fram" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Namn slik det normalt blir vist fram" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Organisasjonen si heimeside (URL)" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Organisasjonen si heimeside (URL)" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Organisasjonen si heimeside (URL)" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Formelt namn på organisasjonen" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Formelt namn på organisasjonen" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Formelt namn på organisasjonen" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Rolle ved organisasjonen" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Rolle ved organisasjonen" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Rolle ved organisasjonen" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Tillitsnivå for autentisering" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Tillitsnivå for autentisering" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Tillitsnivå for autentisering" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "URI som viser til eit sett av rettar til spesifikke ressursar" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "URI som viser til eit sett av rettar til spesifikke ressursar" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "URI som viser til eit sett av rettar til spesifikke ressursar" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Kallenamn" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Kallenamn" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Kallenamn" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Eintydig namn (DN) til heimeorganisasjon for brukaren" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Eintydig namn (DN) til heimeorganisasjon for brukaren" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Eintydig namn (DN) til heimeorganisasjon for brukaren" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Eintydig namn (DN) til organisasjonseining for brukaren" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Eintydig namn (DN) til organisasjonseining for brukaren" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Eintydig namn (DN) til organisasjonseining for brukaren" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Primærtilknyting til organisasjonen" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Primærtilknyting til organisasjonen" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Primærtilknyting til organisasjonen" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Eintydig namn (DN) til primær organisasjonseining for personen" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Eintydig namn (DN) til primær organisasjonseining for personen" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Eintydig namn (DN) til primær organisasjonseining for personen" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Brukarnamn hos din organisasjon" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Brukarnamn hos din organisasjon" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Brukarnamn hos din organisasjon" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Rolle hos organisasjonen " + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Rolle hos organisasjonen " + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Rolle hos organisasjonen " + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Persistent anonym ID" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Persistent anonym ID" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Persistent anonym ID" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Faksnummer" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Faksnummer" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Faksnummer" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Fornamn" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Fornamn" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Fornamn" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Heimetelefon" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Heimetelefon" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Heimetelefon" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Postadresse heime" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Postadresse heime" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Postadresse heime" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "Foto på JPEG-format" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "Foto på JPEG-format" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "Foto på JPEG-format" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Stad" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Stad" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Stad" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "URI med valfri tilleggskommentar" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "URI med valfri tilleggskommentar" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "URI med valfri tilleggskommentar" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "Epostadresse" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "Epostadresse" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "Epostadresse" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Overordna" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Overordna" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Overordna" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Mobiltelefon" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Mobiltelefon" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Mobiltelefon" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Organisasjonsnummer" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Organisasjonsnummer" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Organisasjonsnummer" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Fødselsdato" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Fødselsdato" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Fødselsdato" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Lokalt brukarnummer (ansattnummer, studentnummer, elevnummer osb)" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Lokalt brukarnummer (ansattnummer, studentnummer, elevnummer osb)" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Lokalt brukarnummer (ansattnummer, studentnummer, elevnummer osb)" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Fødselsnummer" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Fødselsnummer" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Fødselsnummer" + +# English string: Organization name +msgid "o" +msgstr "Namn på organisasjon" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Namn på organisasjon" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Namn på organisasjon" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Organisasjonseining" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Organisasjonseining" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Organisasjonseining" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Postboks" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Postboks" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Postboks" + +# English string: Postal address +msgid "postalAddress" +msgstr "Postadresse" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Postadresse" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Postadresse" + +# English string: Postal code +msgid "postalCode" +msgstr "Postnummer" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Postnummer" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Postnummer" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Førsteval for språk eller målform" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Førsteval for språk eller målform" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Førsteval for språk eller målform" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Unik ID for organisasjon" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Unik ID for organisasjon" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Unik ID for organisasjon" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Unik ID for organisasjon" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Private informasjonselement" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Private informasjonselement" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Private informasjonselement" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Private informasjonselement" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Etternamn" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Etternamn" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Etternamn" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Gateadresse" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Gateadresse" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Gateadresse" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Telefon" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Telefon" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Telefon" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Tittel" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Tittel" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Tittel" + +# English string: User ID +msgid "uid" +msgstr "Lokalt brukarnamn" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Lokalt brukarnamn" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Lokalt brukarnamn" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Passord for brukaren (lagra som hash-verdi)" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Passord for brukaren (lagra som hash-verdi)" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Passord for brukaren (lagra som hash-verdi)" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Fullt namn" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Namn slik det normalt blir vist fram" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Namn slik det normalt blir vist fram" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Namn slik det normalt blir vist fram" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Namn slik det normalt blir vist fram" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Namn slik det normalt blir vist fram" + +# English string: Display name +msgid "twitter.name" +msgstr "Namn slik det normalt blir vist fram" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Namn slik det normalt blir vist fram" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Brukarnamn hos din organisasjon" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Brukarnamn hos din organisasjon" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Brukarnamn hos din organisasjon" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Brukarnamn hos din organisasjon" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Brukarnamn hos din organisasjon" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Persistent anonym ID" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Persistent anonym ID" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Persistent anonym ID" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Persistent anonym ID" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Faksnummer" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Fornamn" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Fornamn" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Fornamn" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Fornamn" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Fornamn" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Heimetelefon" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Stad" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "URI med valfri tilleggskommentar" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "URI med valfri tilleggskommentar" + +# English string: Mail +msgid "facebook.email" +msgstr "Epostadresse" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "Epostadresse" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "Epostadresse" + +# English string: Mail +msgid "windowslive_mail" +msgstr "Epostadresse" + +# English string: Mail +msgid "windowslive.mail" +msgstr "Epostadresse" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Mobiltelefon" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Namn på organisasjon" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Postnummer" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Postnummer" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Førsteval for språk eller målform" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Førsteval for språk eller målform" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Førsteval for språk eller målform" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Førsteval for språk eller målform" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Førsteval for språk eller målform" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Etternamn" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Etternamn" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Etternamn" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Etternamn" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Etternamn" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Telefon" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Telefon" + +# English string: Title +msgid "linkedin.headline" +msgstr "Tittel" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Tittel" + +# English string: User ID +msgid "facebook.username" +msgstr "Lokalt brukarnamn" + +# English string: User ID +msgid "linkedin.id" +msgstr "Lokalt brukarnamn" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Lokalt brukarnamn" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Lokalt brukarnamn" + +# English string: User ID +msgid "windowslive.id" +msgstr "Lokalt brukarnamn" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/nn/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/nn/LC_MESSAGES/messages.po index 9e623c9a7fd231b9c3e592a08529e9ce0ed95a6f..c22f8b668bb4cc38de598d8b0e8cc9f6a20d30b2 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/nn/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/nn/LC_MESSAGES/messages.po @@ -50,12 +50,6 @@ msgstr "Feil under lasting av metadata" msgid "{admin:metaconv_title}" msgstr "Parser for metadata" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "URI som viser til eit sett av rettar til spesifikke ressursar" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "Foto på JPEG-format" - msgid "{admin:cfg_check_noerrors}" msgstr "Fann ingen feil" @@ -133,9 +127,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Gå tilbake til SimpleSAMLphp installasjonssida" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "WS-Federation Identity Provider (Remote)" - msgid "{errors:error_header}" msgstr "SimpleSAMLphp feil" @@ -153,18 +144,12 @@ msgstr "" "administrator må du sjekka metadata-konfigurasjonen. Dersom du ikkje er " "administrator, ta kontakt med henne." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Eintydig namn (DN) til heimeorganisasjon for brukaren" - msgid "{errors:title_BADREQUEST}" msgstr "Feil spørsmål mottatt" msgid "{status:sessionsize}" msgstr "Sesjonsstorleik: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Postadresse" - msgid "{logout:title}" msgstr "Utlogga" @@ -186,32 +171,17 @@ msgstr "Venter" msgid "{admin:cfg_check_header}" msgstr "Konfigurasjonssjekk" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Rolle hos organisasjonen " - -msgid "{attributes:attribute_sn}" -msgstr "Etternamn" - msgid "{admin:debug_sending_message_send}" msgstr "Send melding" msgid "{status:logout}" msgstr "Logg ut" -msgid "{attributes:attribute_organisationname}" -msgstr "Namn på organisasjon" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Telefon" - msgid "{errors:descr_DISCOPARAMS}" msgstr "" "Parameter sendt til Discovery Service er ikkje i samsvar med " "spesifikasjon." -msgid "{attributes:attribute_mail}" -msgstr "Epostadresse" - msgid "{errors:descr_CREATEREQUEST}" msgstr "Ein feil oppsto i prosessen med laging av SAML-spørsmålet" @@ -221,9 +191,6 @@ msgstr "Valfrie felt" msgid "{logout:return}" msgstr "Gå tilbake til tenesta" -msgid "{attributes:attribute_displayname}" -msgstr "Namn slik det normalt blir vist fram" - msgid "{admin:metadata_xmlurl}" msgstr "Du kan <a href=\"%METAURL%\">få metadata i XML på ein URL</a>:" @@ -235,9 +202,6 @@ msgstr "" "Du kan skru av feilsøkingsmodus i den globale konfigurasjonsfila for " "SimpleSAMLphp <tt>config/config.php</tt>." -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Postadresse heime" - msgid "{disco:select}" msgstr "Vel" @@ -265,9 +229,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Vil du logga ut frå alle tenestene?" -msgid "{attributes:attribute_title}" -msgstr "Tittel" - msgid "{errors:title_NOACCESS}" msgstr "Ingen tilgang" @@ -280,9 +241,6 @@ msgstr "Ingen RelayState" msgid "{errors:descr_NOSTATE}" msgstr "Mista tilstandsinformasjon, og klarer ikkje å gjera omstart" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Fødselsnummer" - msgid "{login:password}" msgstr "Passord" @@ -309,24 +267,15 @@ msgstr "Feil under prosessering av utloggingsspørsmål" msgid "{admin:metaover_errorentry}" msgstr "Feil i dette metadatainnslaget" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Rolle ved organisasjonen" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Finn ikkje metadata" -msgid "{attributes:attribute_givenname}" -msgstr "Fornamn" - msgid "{login:contact_info}" msgstr "Kontaktinformasjon:" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Feilsituasjon som ikkje er riktig handtert" -msgid "{status:validfor}" -msgstr "Din sesjon er gyldig i %SECONDS% sekund frå no." - msgid "{status:header_saml20_sp}" msgstr "Demonstrasjon av SAML 2.0 SP" @@ -360,30 +309,18 @@ msgstr "Vel konfigurasjonsfil som skal sjekkast" msgid "{errors:descr_UNKNOWNCERT}" msgstr "Feil autentisering: ukjent sertifikat mottatt frå din browser" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Organisasjonen si heimeside (URL)" - msgid "{logout:logging_out_from}" msgstr "Logger ut frå følgende tenester:" msgid "{logout:loggedoutfrom}" msgstr "Du er ferdig utlogga frå %SP%." -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "WS-Federation Service Provider (Hosted)" - msgid "{errors:errorreport_text}" msgstr "Feilrapport har blitt sendt til administrator" -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Fødselsdato" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "Handteringa av spørsmål om utlogging er ikkje ferdig, det oppsto ein feil." -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Persistent anonym ID" - msgid "{logout:success}" msgstr "Du er ferdig utlogga frå alle tenestene" @@ -393,12 +330,6 @@ msgstr "Legg merke til" msgid "{errors:descr_USERABORTED}" msgstr "Innlogging blei avbroten av sluttbrukaren" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Primærtilknyting til organisasjonen" - -msgid "{attributes:attribute_postalcode}" -msgstr "Postnummer" - msgid "{errors:descr_CASERROR}" msgstr "Feil under kommunikasjon med CAS-tenaren" @@ -411,9 +342,6 @@ msgstr "SAML 2.0 SP Metadata" msgid "{admin:metaconv_converted}" msgstr "Konverterte metadata" -msgid "{attributes:attribute_cn}" -msgstr "Fullt namn" - msgid "{logout:completed}" msgstr "Ferdig" @@ -423,18 +351,9 @@ msgstr "" "opprinneleg verdi, dette er usikkert. Gå inn i konfigurasjonen og bytt " "passord." -msgid "{attributes:attribute_ou}" -msgstr "Organisasjonseining" - msgid "{general:service_provider}" msgstr "Tenesteleverandør" -msgid "{attributes:attribute_homephone}" -msgstr "Heimetelefon" - -msgid "{attributes:attribute_dc}" -msgstr "Namneledd (DC)" - msgid "{errors:descr_BADREQUEST}" msgstr "" "Det er ein feil i spørringa etter denne sida. Grunnen til dette er " @@ -455,24 +374,15 @@ msgstr "Skriv inn brukarnamn og passord" msgid "{errors:report_explain}" msgstr "Forklar kva du gjorde og korleis feilen oppsto..." -msgid "{attributes:attribute_manager}" -msgstr "Overordna" - msgid "{errors:title_ACSPARAMS}" msgstr "Fann ikkje SAML-svar" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Kallenamn" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Du har bruk utloggingstenesta (SingleLogoutService), men har ikkje sendt " "utloggingsmelding (SAML LogoutRequest) eller utloggingssvar (SAML " "LogoutResponse)" -msgid "{attributes:attribute_street}" -msgstr "Gateadresse" - msgid "{login:organization}" msgstr "Organisasjon" @@ -513,9 +423,6 @@ msgstr "Vel vertsorganisasjon" msgid "{admin:cfg_check_superfluous}" msgstr "Overflødig informasjon i konfigurasjonsfila" -msgid "{attributes:attribute_labeleduri}" -msgstr "URI med valfri tilleggskommentar" - msgid "{errors:report_email}" msgstr "E-postadresse:" @@ -530,9 +437,6 @@ msgstr "" "Opphavsmann til denne meldinga har ikkje sendt med RelayState-parameter. " "Då veit vi ikke kvar vi skal, og det blir feil." -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Namn registrert i Folkeregisteret" - msgid "{status:header_diagnostics}" msgstr "Feilsøking av SimpleSAMLphp" @@ -542,9 +446,6 @@ msgstr "" "din er gyldig, kor lenge han varer og du kan sjå alle attributt som blir " "brukte i sesjonen din." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Unik ID for organisasjon" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Fann ikkje sida" @@ -563,30 +464,18 @@ msgstr "For å sjå på detaljane for ein SAML entitet, klikk på SAML entitet" msgid "{errors:title_NOTVALIDCERT}" msgstr "Ugyldig sertifikat" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Eintydig namn (DN) til organisasjonseining for brukaren" - msgid "{general:remember}" msgstr "Godta også for framtida" msgid "{disco:selectidp}" msgstr "Vel innloggingsteneste" -msgid "{attributes:attribute_postofficebox}" -msgstr "Postboks" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Brukarnamn hos din organisasjon" - msgid "{login:help_desk_email}" msgstr "Send epost til brukarstøtte" msgid "{login:help_desk_link}" msgstr "Heimeside for brukarstøtte" -msgid "{attributes:attribute_uid}" -msgstr "Lokalt brukarnamn" - msgid "{errors:title_CASERROR}" msgstr "CAS-feil" @@ -607,12 +496,6 @@ msgstr "Hugs mitt val" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "SAML 2.0 Service Provider (Hosted)" -msgid "{attributes:attribute_l}" -msgstr "Stad" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Tillitsnivå for autentisering" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "På flat fil for SimpleSAMLphp. Bruk denne dersom du bruker SimpleSAMLphp" @@ -657,9 +540,6 @@ msgstr "Melding" msgid "{errors:title_UNKNOWNCERT}" msgstr "Ukjent sertifikat" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Faksnummer" - msgid "{errors:title_LDAPERROR}" msgstr "LDAP-feil" @@ -677,15 +557,9 @@ msgstr "" "eller ein ukjent feil. Kontakt administrator av tenesta og rapporter " "detaljar om feilen." -msgid "{attributes:attribute_mobile}" -msgstr "Mobiltelefon" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Shib 1.3 Identity Provider (Hosted)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Førsteval for språk eller målform" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Du har ikkje brukt eit gyldig sertifikat i kommunikasjonen din" @@ -700,15 +574,6 @@ msgstr "Fann ikkje følgjande valfrie felt" msgid "{logout:logout_only}" msgstr "Nei, logg berre ut frå %SP%" -msgid "{attributes:attribute_o}" -msgstr "Namn på organisasjon" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Eintydig namn (DN) til primær organisasjonseining for personen" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Lokalt brukarnummer (ansattnummer, studentnummer, elevnummer osb)" - msgid "{login:next}" msgstr "Neste" @@ -726,9 +591,6 @@ msgstr "Fann ikkje den aktuelle sida på grunn av %REASON%. URLen var %URL%" msgid "{errors:title_NOCERT}" msgstr "Manglar sertifikat" -msgid "{attributes:attribute_userpassword}" -msgstr "Passord for brukaren (lagra som hash-verdi)" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Mista utloggingsinformasjon" @@ -744,12 +606,6 @@ msgstr "" "metadata-dokumentet til dine partnarar, slik at de kan setja opp ein " "tillitsføderasjon." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Private informasjonselement" - -msgid "{status:header_wsfed}" -msgstr "Demonstrasjon av WS-Federation SP" - msgid "{admin:metadata_cert}" msgstr "Sertifikat" @@ -758,18 +614,12 @@ msgstr "" "Feil autentisering: sertifikatet frå browsaren din er ugyldig eller " "uleseleg" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Formelt namn på organisasjonen" - msgid "{status:header_shib}" msgstr "Demonstrasjon av Shibboleth" msgid "{admin:metaconv_parse}" msgstr "Parser" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Organisasjonsnummer" - msgid "Hello, Untranslated World!" msgstr "Hallo, oversette verd!" @@ -1112,8 +962,8 @@ msgstr "" "detaljar om feilen." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Din sesjon er gyldig i %SECONDS% sekund frå no." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Din sesjon er gyldig i %remaining% sekund frå no." msgid "Domain component (DC)" msgstr "Namneledd (DC)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/pl/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/pl/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..6a9ff83314f99ee1e984c1daae88379dd7d28e73 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/pl/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pl\n" +"Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Nazwa (Common name)" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Nazwa (Common name)" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Nazwa (Common name)" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Składnik nazwy domenowej (DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Składnik nazwy domenowej (DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Składnik nazwy domenowej (DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Nazwa wyświetlana (Display name)" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Nazwa wyświetlana (Display name)" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Nazwa wyświetlana (Display name)" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Strona domowa organizacji" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Strona domowa organizacji" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Strona domowa organizacji" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Zarejestrowana nazwa organizacji" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Zarejestrowana nazwa organizacji" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Zarejestrowana nazwa organizacji" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Przynależność (Affiliation)" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Przynależność (Affiliation)" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Przynależność (Affiliation)" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "eduPersonAssurance" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "urn:mace:dir:attribute-def:eduPersonAssurance" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Uprawnienie dotyczące serwisu" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Uprawnienie dotyczące serwisu" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Uprawnienie dotyczące serwisu" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Ksywka (Nickname)" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Ksywka (Nickname)" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Ksywka (Nickname)" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Distinguished name (DN) macierzystej organizacji osoby" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Distinguished name (DN) macierzystej organizacji osoby" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Distinguished name (DN) macierzystej organizacji osoby" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Distinguished name (DN) macierzystej jednostki organizacyjnej osoby" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Distinguished name (DN) macierzystej jednostki organizacyjnej osoby" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Distinguished name (DN) macierzystej jednostki organizacyjnej osoby" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Główna przynależność (Primary affiliation)" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Główna przynależność (Primary affiliation)" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Główna przynależność (Primary affiliation)" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Nazwa osoby w jednostce organizacyjnej" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Nazwa osoby w jednostce organizacyjnej" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Nazwa osoby w jednostce organizacyjnej" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Główna nazwa użytkownika w instytucji macierzystej" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Główna nazwa użytkownika w instytucji macierzystej" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Główna nazwa użytkownika w instytucji macierzystej" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Przynależność w macierzystej organizacji" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Przynależność w macierzystej organizacji" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Przynależność w macierzystej organizacji" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Trwały anonimowy identyfikator" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Trwały anonimowy identyfikator" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Trwały anonimowy identyfikator" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Numer Faksu (Fax number)" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Numer Faksu (Fax number)" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Numer Faksu (Fax number)" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Imię (Given name)" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Imię (Given name)" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Imię (Given name)" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Telefon domowy (Home telephone)" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Telefon domowy (Home telephone)" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Telefon domowy (Home telephone)" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Domowy address pocztowy" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Domowy address pocztowy" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Domowy address pocztowy" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "Fotografia JPEG" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "Fotografia JPEG" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "Fotografia JPEG" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Locality" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Locality" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Locality" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "Labeled URI" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "Labeled URI" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "Labeled URI" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "E-mail" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "E-mail" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "E-mail" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Menadżer (Manager)" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Menadżer (Manager)" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Menadżer (Manager)" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Telefon komórkowy (Mobile)" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Telefon komórkowy (Mobile)" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Telefon komórkowy (Mobile)" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Numer organizacji" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Numer organizacji" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Numer organizacji" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Data urodzenia (Date of birth)" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Data urodzenia (Date of birth)" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Data urodzenia (Date of birth)" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Local identity number" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Local identity number" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Local identity number" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Numer tożsamości wydany przez administrację publiczną" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Numer tożsamości wydany przez administrację publiczną" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Numer tożsamości wydany przez administrację publiczną" + +# English string: Organization name +msgid "o" +msgstr "Nazwa organizacji (Organization name)" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Nazwa organizacji (Organization name)" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Nazwa organizacji (Organization name)" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Jednostka organizacyjna (Organizational unit)" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Jednostka organizacyjna (Organizational unit)" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Jednostka organizacyjna (Organizational unit)" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Skrzynka pocztowa (Post office box)" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Skrzynka pocztowa (Post office box)" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Skrzynka pocztowa (Post office box)" + +# English string: Postal address +msgid "postalAddress" +msgstr "Adres pocztowy (Postal address)" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Adres pocztowy (Postal address)" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Adres pocztowy (Postal address)" + +# English string: Postal code +msgid "postalCode" +msgstr "Kod pocztowy" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Kod pocztowy" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Kod pocztowy" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Preferowany język (Preferred language)" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Preferowany język (Preferred language)" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Preferowany język (Preferred language)" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Nazwa organizacji macierzystej" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Nazwa organizacji macierzystej" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Nazwa organizacji macierzystej" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Nazwa organizacji macierzystej" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Poufne atrybuty" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Poufne atrybuty" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Poufne atrybuty" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Poufne atrybuty" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Nazwisko (Surname)" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Nazwisko (Surname)" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Nazwisko (Surname)" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Ulica (Street)" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Ulica (Street)" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Ulica (Street)" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Numer telefonu (Telephone number)" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Numer telefonu (Telephone number)" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Numer telefonu (Telephone number)" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Tytuł (Title)" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Tytuł (Title)" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Tytuł (Title)" + +# English string: User ID +msgid "uid" +msgstr "ID użytkownika (User ID)" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "ID użytkownika (User ID)" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "ID użytkownika (User ID)" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Zakodowane hasło użytkownika" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Zakodowane hasło użytkownika" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Zakodowane hasło użytkownika" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Nazwa (Common name)" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Nazwa wyświetlana (Display name)" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Nazwa wyświetlana (Display name)" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Nazwa wyświetlana (Display name)" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Nazwa wyświetlana (Display name)" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Nazwa wyświetlana (Display name)" + +# English string: Display name +msgid "twitter.name" +msgstr "Nazwa wyświetlana (Display name)" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Nazwa wyświetlana (Display name)" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Główna nazwa użytkownika w instytucji macierzystej" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Główna nazwa użytkownika w instytucji macierzystej" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Główna nazwa użytkownika w instytucji macierzystej" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Główna nazwa użytkownika w instytucji macierzystej" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Główna nazwa użytkownika w instytucji macierzystej" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Trwały anonimowy identyfikator" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Trwały anonimowy identyfikator" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Trwały anonimowy identyfikator" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Trwały anonimowy identyfikator" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Numer Faksu (Fax number)" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Imię (Given name)" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Imię (Given name)" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Imię (Given name)" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Imię (Given name)" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Imię (Given name)" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Telefon domowy (Home telephone)" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Locality" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "Labeled URI" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "Labeled URI" + +# English string: Mail +msgid "facebook.email" +msgstr "E-mail" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "E-mail" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "E-mail" + +# English string: Mail +msgid "windowslive_mail" +msgstr "E-mail" + +# English string: Mail +msgid "windowslive.mail" +msgstr "E-mail" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Telefon komórkowy (Mobile)" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Nazwa organizacji (Organization name)" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Kod pocztowy" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Kod pocztowy" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Preferowany język (Preferred language)" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Preferowany język (Preferred language)" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Preferowany język (Preferred language)" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Preferowany język (Preferred language)" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Preferowany język (Preferred language)" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Nazwisko (Surname)" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Nazwisko (Surname)" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Nazwisko (Surname)" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Nazwisko (Surname)" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Nazwisko (Surname)" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Numer telefonu (Telephone number)" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Numer telefonu (Telephone number)" + +# English string: Title +msgid "linkedin.headline" +msgstr "Tytuł (Title)" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Tytuł (Title)" + +# English string: User ID +msgid "facebook.username" +msgstr "ID użytkownika (User ID)" + +# English string: User ID +msgid "linkedin.id" +msgstr "ID użytkownika (User ID)" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "ID użytkownika (User ID)" + +# English string: User ID +msgid "windowslive_uid" +msgstr "ID użytkownika (User ID)" + +# English string: User ID +msgid "windowslive.id" +msgstr "ID użytkownika (User ID)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/pl/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/pl/LC_MESSAGES/messages.po index f507fd60004113aa568df9a3c6aa5c7727eea401..2a4dbb8678050cd984b00d0b5fb9fbec1650f427 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/pl/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/pl/LC_MESSAGES/messages.po @@ -51,12 +51,6 @@ msgstr "Błąd ładowania metadanych" msgid "{admin:metaconv_title}" msgstr "Parser metadanych" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Uprawnienie dotyczące serwisu" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "Fotografia JPEG" - msgid "{admin:cfg_check_noerrors}" msgstr "Nie znaleziono błędów." @@ -130,9 +124,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Wróc do strony \"instalacja SimpleSAMLphp\"" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "WS-Federation Dostawca Tożsamości (Zdalny)" - msgid "{errors:error_header}" msgstr "błąd SimpleSAMLphp" @@ -150,18 +141,12 @@ msgstr "" "Wykryto błąd w konfiguracji SimpleSAMLphp. Jeśli jesteś administratorem " "tej usługi, to sprawdź, czy prawidłowo zostały skonfigurowane metadane." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Distinguished name (DN) macierzystej organizacji osoby" - msgid "{errors:title_BADREQUEST}" msgstr "Otrzymano nieprawidłowe żadanie" msgid "{status:sessionsize}" msgstr "Rozmiar sesji: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Adres pocztowy (Postal address)" - msgid "{logout:title}" msgstr "Wylogowano" @@ -183,30 +168,15 @@ msgstr "W zawieszeniu" msgid "{admin:cfg_check_header}" msgstr "Sprawdzenie konfiguracji" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Przynależność w macierzystej organizacji" - -msgid "{attributes:attribute_sn}" -msgstr "Nazwisko (Surname)" - msgid "{admin:debug_sending_message_send}" msgstr "Wyślij wiadomość" msgid "{status:logout}" msgstr "Wyloguj" -msgid "{attributes:attribute_organisationname}" -msgstr "Nazwa organizacji (Organization name)" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Numer telefonu (Telephone number)" - msgid "{errors:descr_DISCOPARAMS}" msgstr "Parametry wysłane do usługi wyszukiwania nie są zgodne ze specyfikacją" -msgid "{attributes:attribute_mail}" -msgstr "E-mail" - msgid "{errors:descr_CREATEREQUEST}" msgstr "Wystąpił błąd podczas próby budowania żądania SAML" @@ -216,9 +186,6 @@ msgstr "Pola opcjonalne" msgid "{logout:return}" msgstr "Powrót do serwisu" -msgid "{attributes:attribute_displayname}" -msgstr "Nazwa wyświetlana (Display name)" - msgid "{admin:metadata_xmlurl}" msgstr "Możesz <a href=\"%METAURL%\">pobrać metadane w formacie xml</a>:" @@ -230,9 +197,6 @@ msgstr "" "Możesz wyłaczyć globalnie tryb debugowania w pliku " "<tt>config/config.php</tt>." -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Domowy address pocztowy" - msgid "{disco:select}" msgstr "Wybierz" @@ -259,9 +223,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Czy chcesz zostać wylogowany z powyższych serwisów?" -msgid "{attributes:attribute_title}" -msgstr "Tytuł (Title)" - msgid "{errors:title_NOACCESS}" msgstr "Brak dostępu" @@ -276,9 +237,6 @@ msgstr "Brak RelayState" msgid "{errors:descr_NOSTATE}" msgstr "Utracono informacje o stanie i nie ma możliwości ponowienia zlecenia" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Numer tożsamości wydany przez administrację publiczną" - msgid "{login:password}" msgstr "Hasło" @@ -305,24 +263,15 @@ msgstr "Błąd przetwarzania żądania wylogowania" msgid "{admin:metaover_errorentry}" msgstr "Błąd w metadanych" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Przynależność (Affiliation)" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Nie znaleziono metadanych" -msgid "{attributes:attribute_givenname}" -msgstr "Imię (Given name)" - msgid "{login:contact_info}" msgstr "Informacje kontaktowe:" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Nieobsługiwany błąd" -msgid "{status:validfor}" -msgstr "Twoja sesja jest jeszcze ważna przez %SECONDS% sekund" - msgid "{status:header_saml20_sp}" msgstr "Przykładowe Demo SAML 2.0 SP" @@ -358,30 +307,18 @@ msgstr "" "Nie powiodło się uwierzytelnienie: certyfikat przesłany przez " "przeglądarkę jest nieznany" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Strona domowa organizacji" - msgid "{logout:logging_out_from}" msgstr "Wylogowanie z następujących serwisów:" msgid "{logout:loggedoutfrom}" msgstr "Zostałeś pomyślnie wylogowany z %SP%." -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "WS-Federation Dostawca Serwisu (Lokalny)" - msgid "{errors:errorreport_text}" msgstr "Raport o błędzie został wysłany do administratorów." -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Data urodzenia (Date of birth)" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "Wystąpił bład podczas próby wylogowania." -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Trwały anonimowy identyfikator" - msgid "{logout:success}" msgstr "Zostałeś pomyślnie wylogowany ze wszystkich powyższych serwisów." @@ -391,12 +328,6 @@ msgstr "Uwagi" msgid "{errors:descr_USERABORTED}" msgstr "Uwierzytelnienie zostało przerwane przez użytkownika" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Główna przynależność (Primary affiliation)" - -msgid "{attributes:attribute_postalcode}" -msgstr "Kod pocztowy" - msgid "{errors:descr_CASERROR}" msgstr "Błąd podczas komunikacji z serwerem CAS" @@ -409,9 +340,6 @@ msgstr "SAML 2.0 SP - Metadane" msgid "{admin:metaconv_converted}" msgstr "Skonwertowane metadane" -msgid "{attributes:attribute_cn}" -msgstr "Nazwa (Common name)" - msgid "{logout:completed}" msgstr "Zakończono" @@ -420,18 +348,9 @@ msgstr "" "Hasło w konfiguracji (auth.adminpassword) ma domyślną wartość. Proszę " "poprawić konfigurację." -msgid "{attributes:attribute_ou}" -msgstr "Jednostka organizacyjna (Organizational unit)" - msgid "{general:service_provider}" msgstr "Dostawca serwisu" -msgid "{attributes:attribute_homephone}" -msgstr "Telefon domowy (Home telephone)" - -msgid "{attributes:attribute_dc}" -msgstr "Składnik nazwy domenowej (DC)" - msgid "{errors:descr_BADREQUEST}" msgstr "Wystąpił następujący błąd w zleceniu: %REASON%" @@ -450,23 +369,14 @@ msgstr "Wprowadź nazwę uzytkownika i hasło" msgid "{errors:report_explain}" msgstr "Opisz, co zrobiłeś kiedy wystąpił błąd..." -msgid "{attributes:attribute_manager}" -msgstr "Menadżer (Manager)" - msgid "{errors:title_ACSPARAMS}" msgstr "Nie dostarczo odpowiedzi SAML" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Ksywka (Nickname)" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Została wywołana usługa SingleLogoutService, ale nie dostarczono " "komunikatu SAML LogoutRequest lub LogoutResponse." -msgid "{attributes:attribute_street}" -msgstr "Ulica (Street)" - msgid "{login:organization}" msgstr "Organizacja" @@ -499,9 +409,6 @@ msgstr "Wybierz domową organizację" msgid "{admin:cfg_check_superfluous}" msgstr "Zbędne opcje w pliku konfiguracyjnym" -msgid "{attributes:attribute_labeleduri}" -msgstr "Labeled URI" - msgid "{errors:report_email}" msgstr "Adres e-mail" @@ -516,9 +423,6 @@ msgstr "" "Inicjator zlecenia nie dostarczył parametru RelayState, wskazującego, " "gdzie przekazać zlecenie." -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Formalna nazwa użytkownika" - msgid "{status:header_diagnostics}" msgstr "Diagnostyka SimpleSAMLphp" @@ -528,9 +432,6 @@ msgstr "" "Twoja sesja jest nadal aktywna, jak długo pozostało czasu do zakończenia " "sesji i wszystkie atrybuty, które zostały załączone do sesji." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Nazwa organizacji macierzystej" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Nie znaleziono strony" @@ -549,30 +450,18 @@ msgstr "Kliknij na nagłówek końcówki aby wyświetlić szczegóły SAML." msgid "{errors:title_NOTVALIDCERT}" msgstr "Nieprawidłowy certyfikat" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Distinguished name (DN) macierzystej jednostki organizacyjnej osoby" - msgid "{general:remember}" msgstr "Pamiętaj moją zgodę" msgid "{disco:selectidp}" msgstr "wybierz swojego Dostawcę Tożsamości." -msgid "{attributes:attribute_postofficebox}" -msgstr "Skrzynka pocztowa (Post office box)" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Główna nazwa użytkownika w instytucji macierzystej" - msgid "{login:help_desk_email}" msgstr "wyślij e-mail do helpdesku" msgid "{login:help_desk_link}" msgstr "Strona domowa pomocy technicznej (Helpdesk)" -msgid "{attributes:attribute_uid}" -msgstr "ID użytkownika (User ID)" - msgid "{errors:title_CASERROR}" msgstr "Błąd CAS" @@ -593,9 +482,6 @@ msgstr "Zapamiętaj mój wybór" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "SAML 2.0 Dostawca Serwisu (Lokalny)" -msgid "{attributes:attribute_l}" -msgstr "Locality" - msgid "{disco:login_at}" msgstr "Zaloguj w" @@ -632,9 +518,6 @@ msgstr "Wiadomość" msgid "{errors:title_UNKNOWNCERT}" msgstr "Nieznany certyfikat" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Numer Faksu (Fax number)" - msgid "{errors:title_LDAPERROR}" msgstr "Bład LDAP'a" @@ -647,15 +530,9 @@ msgstr "" "konfigurację SimpleSAMLphp. Skontaktuj się z administratorem tego serwisu" " i wyślij mu powyższy błąd." -msgid "{attributes:attribute_mobile}" -msgstr "Telefon komórkowy (Mobile)" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Shib 1.3 Dostawca Tożsamości (Lokalny)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Preferowany język (Preferred language)" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Nie przedstawiłeś prawidłowego certyfikaty" @@ -665,15 +542,6 @@ msgstr "Nastepujące pola opcjonalne nie zostały znalezione" msgid "{logout:logout_only}" msgstr "Nie, tylko %SP%" -msgid "{attributes:attribute_o}" -msgstr "Nazwa organizacji (Organization name)" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Nazwa osoby w jednostce organizacyjnej" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Local identity number" - msgid "{login:next}" msgstr "Następny" @@ -695,9 +563,6 @@ msgstr "" msgid "{errors:title_NOCERT}" msgstr "Brak certyfikatu" -msgid "{attributes:attribute_userpassword}" -msgstr "Zakodowane hasło użytkownika" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Utracono informację o wylogowaniu" @@ -712,29 +577,17 @@ msgstr "" "Tutaj sa metadane, które SimpleSAMLphp wygenerował dla Ciebie. Możesz je " "wysłać zaufanym partnerom w celu stworzenia zaufanej federacji." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Poufne atrybuty" - -msgid "{status:header_wsfed}" -msgstr "Przykładowe Demo WS-Fed SP" - msgid "{errors:descr_INVALIDCERT}" msgstr "" "Nie powiodło się uwierzytelnienie: certyfikat przesłany przez " "przeglądarkę jest niepoprawny lub nie może zostać przeczytany" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Zarejestrowana nazwa organizacji" - msgid "{status:header_shib}" msgstr "Demo Shibboleth" msgid "{admin:metaconv_parse}" msgstr "Przetwórz" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Numer organizacji" - msgid "Person's principal name at home organization" msgstr "Główna nazwa użytkownika w instytucji macierzystej" @@ -1058,8 +911,8 @@ msgstr "" " i wyślij mu powyższy błąd." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Twoja sesja jest jeszcze ważna przez %SECONDS% sekund" +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Twoja sesja jest jeszcze ważna przez %remaining% sekund" msgid "Domain component (DC)" msgstr "Składnik nazwy domenowej (DC)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/pt-br/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/pt-br/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..172249039a97f76c8d94bfe9a3a6f0ab76bc5051 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/pt-br/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt-br\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Nome Comum (CN)" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Nome Comum (CN)" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Nome Comum (CN)" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Componente do Domínio (DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Componente do Domínio (DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Componente do Domínio (DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Nome a ser mostrado" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Nome a ser mostrado" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Nome a ser mostrado" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Site da organização" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Site da organização" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Site da organização" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Nome legal da Organização" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Nome legal da Organização" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Nome legal da Organização" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Filiação" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Filiação" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Filiação" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "eduPersonAssurance" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "urn:mace:dir:attribute-def:eduPersonAssurance" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Titularidade sobre o serviço" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Titularidade sobre o serviço" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Titularidade sobre o serviço" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Apelido" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Apelido" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Apelido" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Nome distinto (DN) da sua organização principal" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Nome distinto (DN) da sua organização principal" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Nome distinto (DN) da sua organização principal" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Nome distinto (DN) da sua unidade organizacional principal" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Nome distinto (DN) da sua unidade organizacional principal" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Nome distinto (DN) da sua unidade organizacional principal" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Filiação Primária" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Filiação Primária" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Filiação Primária" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "eduPersonPrimaryOrgUnitDN" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Diretor da organização principal" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Diretor da organização principal" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Diretor da organização principal" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Filiação na organização principal" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Filiação na organização principal" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Filiação na organização principal" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Apelido persistente ID" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Apelido persistente ID" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Apelido persistente ID" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Número do Fax" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Número do Fax" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Número do Fax" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Nome" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Nome" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Nome" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Telefone fixo" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Telefone fixo" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Telefone fixo" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Endereço residencial" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Endereço residencial" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Endereço residencial" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "Foto JPEG" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "Foto JPEG" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "Foto JPEG" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Localidade" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Localidade" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Localidade" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "URI rotulado" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "URI rotulado" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "URI rotulado" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "E-mail" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "E-mail" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "E-mail" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Administrador" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Administrador" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Administrador" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Celular" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Celular" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Celular" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Número Organizacional" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Número Organizacional" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Número Organizacional" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Data de Nascimento" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Data de Nascimento" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Data de Nascimento" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Número de Identificação Local" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Número de Identificação Local" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Número de Identificação Local" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Número de identificação atribuído pelas autoridades públicas" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Número de identificação atribuído pelas autoridades públicas" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Número de identificação atribuído pelas autoridades públicas" + +# English string: Organization name +msgid "o" +msgstr "Nome da Organização (O)" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Nome da Organização (O)" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Nome da Organização (O)" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Unidade Organizacional (OU)" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Unidade Organizacional (OU)" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Unidade Organizacional (OU)" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Caixa Postal" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Caixa Postal" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Caixa Postal" + +# English string: Postal address +msgid "postalAddress" +msgstr "Endereço" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Endereço" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Endereço" + +# English string: Postal code +msgid "postalCode" +msgstr "CEP" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "CEP" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "CEP" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Linguagem preferida" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Linguagem preferida" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Linguagem preferida" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Nome de domínio da organização principal" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Nome de domínio da organização principal" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Nome de domínio da organização principal" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Nome de domínio da organização principal" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "schacUserPrivateAttribute" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.18" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "urn:schac:attribute-def:schacUserPrivateAttribute" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Sobrenome" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Sobrenome" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Sobrenome" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Rua" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Rua" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Rua" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Número de Telefone" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Número de Telefone" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Número de Telefone" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Título" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Título" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Título" + +# English string: User ID +msgid "uid" +msgstr "Identificação (UID)" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Identificação (UID)" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Identificação (UID)" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Hash da Senha do Usuário" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Hash da Senha do Usuário" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Hash da Senha do Usuário" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Nome Comum (CN)" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Nome a ser mostrado" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Nome a ser mostrado" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Nome a ser mostrado" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Nome a ser mostrado" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Nome a ser mostrado" + +# English string: Display name +msgid "twitter.name" +msgstr "Nome a ser mostrado" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Nome a ser mostrado" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Diretor da organização principal" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Diretor da organização principal" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Diretor da organização principal" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Diretor da organização principal" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Diretor da organização principal" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Apelido persistente ID" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Apelido persistente ID" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Apelido persistente ID" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Apelido persistente ID" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Número do Fax" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Nome" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Nome" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Nome" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Nome" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Nome" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Telefone fixo" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Localidade" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "URI rotulado" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "URI rotulado" + +# English string: Mail +msgid "facebook.email" +msgstr "E-mail" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "E-mail" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "E-mail" + +# English string: Mail +msgid "windowslive_mail" +msgstr "E-mail" + +# English string: Mail +msgid "windowslive.mail" +msgstr "E-mail" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Celular" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Nome da Organização (O)" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "CEP" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "CEP" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Linguagem preferida" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Linguagem preferida" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Linguagem preferida" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Linguagem preferida" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Linguagem preferida" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Sobrenome" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Sobrenome" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Sobrenome" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Sobrenome" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Sobrenome" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Número de Telefone" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Número de Telefone" + +# English string: Title +msgid "linkedin.headline" +msgstr "Título" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Título" + +# English string: User ID +msgid "facebook.username" +msgstr "Identificação (UID)" + +# English string: User ID +msgid "linkedin.id" +msgstr "Identificação (UID)" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Identificação (UID)" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Identificação (UID)" + +# English string: User ID +msgid "windowslive.id" +msgstr "Identificação (UID)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/pt-br/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/pt-br/LC_MESSAGES/messages.po index f511dd7bdc23150e4cec4c65e7af88a09b60acec..351ea0525111faa634bc4560f2237681293c0426 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/pt-br/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/pt-br/LC_MESSAGES/messages.po @@ -53,12 +53,6 @@ msgstr "Erro ao carregar a metadata." msgid "{admin:metaconv_title}" msgstr "Parser Metadata" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Titularidade sobre o serviço" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "Foto JPEG" - msgid "{admin:cfg_check_noerrors}" msgstr "Não foram encontrados erros." @@ -138,9 +132,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Voltar a instalação do SimpleSAMLphp" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "WS-Federation Identity Provider (Remoto)" - msgid "{errors:error_header}" msgstr "Erro do SimpleSAMLphp" @@ -159,18 +150,12 @@ msgstr "" "deste seriço, você deve certificar-se que a sua configuração de metadata " "está definida corretamente." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Nome distinto (DN) da sua organização principal" - msgid "{errors:title_BADREQUEST}" msgstr "A solicitação recebida é inválida" msgid "{status:sessionsize}" msgstr "Tamanho da sessão: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Endereço" - msgid "{logout:title}" msgstr "Desconectado" @@ -192,32 +177,17 @@ msgstr "Aguardando" msgid "{admin:cfg_check_header}" msgstr "Verificar configuração" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Filiação na organização principal" - -msgid "{attributes:attribute_sn}" -msgstr "Sobrenome" - msgid "{admin:debug_sending_message_send}" msgstr "Enviar mensagem" msgid "{status:logout}" msgstr "Desconectar" -msgid "{attributes:attribute_organisationname}" -msgstr "Nome da Organização" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Número de Telefone" - msgid "{errors:descr_DISCOPARAMS}" msgstr "" "Os parâmetros enviados para o serviço de descoberta não estão de acordo " "com as especificações." -msgid "{attributes:attribute_mail}" -msgstr "E-mail" - msgid "{errors:descr_CREATEREQUEST}" msgstr "Um erro ocorreu ao tentar criar o pedido do SAML." @@ -227,9 +197,6 @@ msgstr "Campos opcionais" msgid "{logout:return}" msgstr "Retornar ao serviço" -msgid "{attributes:attribute_displayname}" -msgstr "Nome a ser mostrado" - msgid "{admin:metadata_xmlurl}" msgstr "" "Você pode obter as metadatas xml <a href=\"%METAURL%\"> em uma URL " @@ -243,9 +210,6 @@ msgstr "" "Você pode desligar o modo de debug no arquivo de configuração global do " "SimpleSAMLphp <tt>config/config.php</tt>." -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Endereço residencial" - msgid "{disco:select}" msgstr "Selecione" @@ -275,9 +239,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Você quer sair de todos os serviços acima?" -msgid "{attributes:attribute_title}" -msgstr "Título" - msgid "{errors:title_NOACCESS}" msgstr "Acesso negado." @@ -292,9 +253,6 @@ msgstr "Sem RelayState" msgid "{errors:descr_NOSTATE}" msgstr "Informações de estado perdidas, e não é possível reiniciar a requisição" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Número de identificação atribuído pelas autoridades públicas" - msgid "{login:password}" msgstr "Senha" @@ -321,24 +279,15 @@ msgstr "Erro ao processar a resposta da desconexão" msgid "{admin:metaover_errorentry}" msgstr "Erro na entrada desta metadata" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Filiação" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Metadado não encontrado" -msgid "{attributes:attribute_givenname}" -msgstr "Nome" - msgid "{login:contact_info}" msgstr "Informações de Contato" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Exceção não tratada" -msgid "{status:validfor}" -msgstr "Sua sessão é válida por %SECONDS% segundos a partir de agora." - msgid "{status:header_saml20_sp}" msgstr "SAML 2.0 SP Exemplo" @@ -374,30 +323,18 @@ msgstr "" "Falha na Autenticação: O certificado que seu navegador (browser) enviou é" " desconhecido" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Site da organização" - msgid "{logout:logging_out_from}" msgstr "Saindo dos seguintes serviços:" msgid "{logout:loggedoutfrom}" msgstr "Você está saiu com sucesso de %SP%." -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "WS-Federation Service Provider (Local)" - msgid "{errors:errorreport_text}" msgstr "O relatório de erro foi enviado com sucesso para os administradores." -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Data de Nascimento" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "Um erro ocorreu ao tentar processar a resposta da desconexão." -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Apelido persistente ID" - msgid "{logout:success}" msgstr "Você saiu com sucesso de todos os serviços listados acima." @@ -407,12 +344,6 @@ msgstr "Avisos" msgid "{errors:descr_USERABORTED}" msgstr "A autenticação foi abortada pelo usuário" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Filiação Primária" - -msgid "{attributes:attribute_postalcode}" -msgstr "CEP" - msgid "{errors:descr_CASERROR}" msgstr "Erro ao comunicar-se com o servidor CAS" @@ -425,9 +356,6 @@ msgstr "SAML 2.0 SP Metadata" msgid "{admin:metaconv_converted}" msgstr "Metadata convetida" -msgid "{attributes:attribute_cn}" -msgstr "Nome Comum (CN)" - msgid "{logout:completed}" msgstr "Completado" @@ -436,18 +364,9 @@ msgstr "" "A senha na configuração (auth.adminpassword) não foi alterada. Edite o " "arquivo de configuração." -msgid "{attributes:attribute_ou}" -msgstr "Unidade Organizacional (OU)" - msgid "{general:service_provider}" msgstr "Provedor de Serviços" -msgid "{attributes:attribute_homephone}" -msgstr "Telefone fixo" - -msgid "{attributes:attribute_dc}" -msgstr "Componente do Domínio (DC)" - msgid "{errors:descr_BADREQUEST}" msgstr "Há um erro no pedido para esta página. O motivo foi: %REASON%" @@ -466,23 +385,14 @@ msgstr "Digite seu usuário e senha" msgid "{errors:report_explain}" msgstr "Explique o que você estava fazendo quando aconteceu o erro..." -msgid "{attributes:attribute_manager}" -msgstr "Administrador" - msgid "{errors:title_ACSPARAMS}" msgstr "Não fornecida a resposta SAML" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Apelido" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Você acessou a interface do SingleLogoutService, mas não forneceu a SAML " "LogoutRequest ou LogoutResponse." -msgid "{attributes:attribute_street}" -msgstr "Rua" - msgid "{login:organization}" msgstr "Organização" @@ -522,9 +432,6 @@ msgstr "Escolher uma organização principal" msgid "{admin:cfg_check_superfluous}" msgstr "Opções supérfluas no arquivo de configuração" -msgid "{attributes:attribute_labeleduri}" -msgstr "URI rotulado" - msgid "{errors:report_email}" msgstr "Endereço de e-mail:" @@ -548,9 +455,6 @@ msgstr "" "sua sessão expirou, o tempo que dura até ele expirar e todos os atributos" " que estão anexados à sua sessão." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Nome de domínio da organização principal" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Página não encontrada" @@ -569,30 +473,18 @@ msgstr "Para ver os detalhes da entidade SAML, clique " msgid "{errors:title_NOTVALIDCERT}" msgstr "Certificado inválido" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Nome distinto (DN) da sua unidade organizacional principal" - msgid "{general:remember}" msgstr "Lembrar Consentimento" msgid "{disco:selectidp}" msgstr "Selecione seu provedor de identidade" -msgid "{attributes:attribute_postofficebox}" -msgstr "Caixa Postal" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Diretor da organização principal" - msgid "{login:help_desk_email}" msgstr "Envie um e-mail para a Central de Ajuda." msgid "{login:help_desk_link}" msgstr "Central de Ajuda" -msgid "{attributes:attribute_uid}" -msgstr "Identificação (UID)" - msgid "{login:remember_me}" msgstr "Lembre-me" @@ -616,9 +508,6 @@ msgstr "Lembrar minha escolha" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "SAML 2.0 Service Provider (Local)" -msgid "{attributes:attribute_l}" -msgstr "Localidade" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "Em formato de arquivo plano SimpleSAMLphp - use isso se você estiver " @@ -660,9 +549,6 @@ msgstr "Mensagem" msgid "{errors:title_UNKNOWNCERT}" msgstr "Certificado Desconhecido" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Número do Fax" - msgid "{errors:title_LDAPERROR}" msgstr "Erro no LDAP" @@ -680,15 +566,9 @@ msgstr "" "SimpleSAMLphp. Contate o administrador deste serviço de login e envie-lhe" " a mensagem de erro acima." -msgid "{attributes:attribute_mobile}" -msgstr "Celular" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Shib 1.3 Identity Provider (Local)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Linguagem preferida" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Você não possui um certificado válido" @@ -703,12 +583,6 @@ msgstr "Os seguintes campos opcionais não foram encontrados" msgid "{logout:logout_only}" msgstr "Não, apenas de %SP%" -msgid "{attributes:attribute_o}" -msgstr "Nome da Organização (O)" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Número de Identificação Local" - msgid "{login:next}" msgstr "Próximo" @@ -728,9 +602,6 @@ msgstr "" msgid "{errors:title_NOCERT}" msgstr "Sem Certificado" -msgid "{attributes:attribute_userpassword}" -msgstr "Hash da Senha do Usuário" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Informações de desconexão perdidas" @@ -746,26 +617,17 @@ msgstr "" "enviar este documento metadata para parceiros confiáveis para a " "configuração de uma federação confiável." -msgid "{status:header_wsfed}" -msgstr "WS-Fed SP Exemplo" - msgid "{errors:descr_INVALIDCERT}" msgstr "" "Falha na Autenticação: O certificado que seu navegador (browser) enviou é" " inválido ou não pode ser lido" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Nome legal da Organização" - msgid "{status:header_shib}" msgstr "Shibboleth Demo" msgid "{admin:metaconv_parse}" msgstr "Parse" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Número Organizacional" - msgid "Person's principal name at home organization" msgstr "Diretor da organização principal" @@ -1092,8 +954,8 @@ msgstr "" " a mensagem de erro acima." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Sua sessão é válida por %SECONDS% segundos a partir de agora." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Sua sessão é válida por %remaining% segundos a partir de agora." msgid "Domain component (DC)" msgstr "Componente do Domínio (DC)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/pt/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/pt/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..b296bb60386ec3118472698f3a6a4ea59b34c514 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/pt/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Nome completo" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Nome completo" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Nome completo" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Componente de domínio" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Componente de domínio" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Componente de domínio" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Nome de apresentação" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Nome de apresentação" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Nome de apresentação" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Página web da organização de origem" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Página web da organização de origem" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Página web da organização de origem" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Nome legal da organização de origem" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Nome legal da organização de origem" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Nome legal da organização de origem" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Afiliação com a organização de origem" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Afiliação com a organização de origem" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Afiliação com a organização de origem" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "eduPersonAssurance" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "urn:mace:dir:attribute-def:eduPersonAssurance" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Direitos oferecidos pela organização de origem" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Direitos oferecidos pela organização de origem" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Direitos oferecidos pela organização de origem" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Alcunha" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Alcunha" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Alcunha" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "DN da organização de origem" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "DN da organização de origem" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "DN da organização de origem" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "DN da unidade orgânica na organização de origem" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "DN da unidade orgânica na organização de origem" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "DN da unidade orgânica na organização de origem" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Afiliação principal com a organização de origem" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Afiliação principal com a organização de origem" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Afiliação principal com a organização de origem" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "DN da unidade orgânica" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "DN da unidade orgânica" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "DN da unidade orgânica" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Nome de utilizador na organização de origem" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Nome de utilizador na organização de origem" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Nome de utilizador na organização de origem" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Afiliação com a organização de origem (com contexto)" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Afiliação com a organização de origem (com contexto)" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Afiliação com a organização de origem (com contexto)" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Identificação persistente tipo pseudónimo" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Identificação persistente tipo pseudónimo" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Identificação persistente tipo pseudónimo" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Número de Fax" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Número de Fax" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Número de Fax" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Nome Próprio" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Nome Próprio" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Nome Próprio" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Telefone de residência" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Telefone de residência" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Telefone de residência" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Morada de redidência" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Morada de redidência" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Morada de redidência" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "Foto JPEG" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "Foto JPEG" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "Foto JPEG" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Localidade" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Localidade" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Localidade" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "Página web" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "Página web" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "Página web" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "E-mail" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "E-mail" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "E-mail" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Responsável hierárquico" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Responsável hierárquico" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Responsável hierárquico" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Telemóvel" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Telemóvel" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Telemóvel" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Número de Organização" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Número de Organização" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Número de Organização" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Data de nascimento" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Data de nascimento" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Data de nascimento" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Número de Identificação local" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Número de Identificação local" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Número de Identificação local" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Número de Identificação atribuído por autoridades públicas" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Número de Identificação atribuído por autoridades públicas" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Número de Identificação atribuído por autoridades públicas" + +# English string: Organization name +msgid "o" +msgstr "Nome da organização" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Nome da organização" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Nome da organização" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Unidade organizacional" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Unidade organizacional" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Unidade organizacional" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Apartado" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Apartado" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Apartado" + +# English string: Postal address +msgid "postalAddress" +msgstr "Morada" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Morada" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Morada" + +# English string: Postal code +msgid "postalCode" +msgstr "Código Postal" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Código Postal" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Código Postal" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Idioma" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Idioma" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Idioma" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Nome de domínio da Organização de origem" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Nome de domínio da Organização de origem" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Nome de domínio da Organização de origem" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Nome de domínio da Organização de origem" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Elementos privados de informação" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Elementos privados de informação" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Elementos privados de informação" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Elementos privados de informação" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Nome de família" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Nome de família" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Nome de família" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Rua" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Rua" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Rua" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Telefone" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Telefone" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Telefone" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Título" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Título" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Título" + +# English string: User ID +msgid "uid" +msgstr "Identificação de utilizador" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Identificação de utilizador" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Identificação de utilizador" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Senha do utilizador" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Senha do utilizador" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Senha do utilizador" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Nome completo" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Nome de apresentação" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Nome de apresentação" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Nome de apresentação" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Nome de apresentação" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Nome de apresentação" + +# English string: Display name +msgid "twitter.name" +msgstr "Nome de apresentação" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Nome de apresentação" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Nome de utilizador na organização de origem" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Nome de utilizador na organização de origem" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Nome de utilizador na organização de origem" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Nome de utilizador na organização de origem" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Nome de utilizador na organização de origem" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Identificação persistente tipo pseudónimo" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Identificação persistente tipo pseudónimo" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Identificação persistente tipo pseudónimo" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Identificação persistente tipo pseudónimo" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Número de Fax" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Nome Próprio" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Nome Próprio" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Nome Próprio" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Nome Próprio" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Nome Próprio" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Telefone de residência" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Localidade" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "Página web" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "Página web" + +# English string: Mail +msgid "facebook.email" +msgstr "E-mail" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "E-mail" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "E-mail" + +# English string: Mail +msgid "windowslive_mail" +msgstr "E-mail" + +# English string: Mail +msgid "windowslive.mail" +msgstr "E-mail" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Telemóvel" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Nome da organização" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Código Postal" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Código Postal" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Idioma" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Idioma" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Idioma" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Idioma" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Idioma" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Nome de família" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Nome de família" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Nome de família" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Nome de família" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Nome de família" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Telefone" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Telefone" + +# English string: Title +msgid "linkedin.headline" +msgstr "Título" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Título" + +# English string: User ID +msgid "facebook.username" +msgstr "Identificação de utilizador" + +# English string: User ID +msgid "linkedin.id" +msgstr "Identificação de utilizador" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Identificação de utilizador" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Identificação de utilizador" + +# English string: User ID +msgid "windowslive.id" +msgstr "Identificação de utilizador" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/pt/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/pt/LC_MESSAGES/messages.po index c14ea158ca955a324c291da8d4c7d32e1a9694d4..48cdd4f953f00bad8b1b74756d776c65f6cd4b81 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/pt/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/pt/LC_MESSAGES/messages.po @@ -42,12 +42,6 @@ msgstr "Erro na leitura dos metadados" msgid "{admin:metaconv_title}" msgstr "Conversor de Metadados" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Direitos oferecidos pela organização de origem" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "Foto JPEG" - msgid "{admin:cfg_check_noerrors}" msgstr "Não foram encontrados erros." @@ -122,9 +116,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Voltar à página de instalação do SimpleSAMLphp" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "Fornecedor de identidade (IdP) WS-Federation (Remoto)" - msgid "{errors:error_header}" msgstr "Erro no SimpleSAMLphp" @@ -140,18 +131,12 @@ msgstr "" "administrador deste serviço, verifique que a configuração dos metadados " "está correcta." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "DN da organização de origem" - msgid "{errors:title_BADREQUEST}" msgstr "Pedido inválido recebido" msgid "{status:sessionsize}" msgstr "Tamanho da sessão: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Morada" - msgid "{logout:title}" msgstr "Saída efectuada com sucesso" @@ -170,32 +155,17 @@ msgstr "Em espera" msgid "{admin:cfg_check_header}" msgstr "Verificação da configuração" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Afiliação com a organização de origem (com contexto)" - -msgid "{attributes:attribute_sn}" -msgstr "Nome de família" - msgid "{admin:debug_sending_message_send}" msgstr "Enviar mensagem" msgid "{status:logout}" msgstr "Sair" -msgid "{attributes:attribute_organisationname}" -msgstr "Nome da Organização" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Telefone" - msgid "{errors:descr_DISCOPARAMS}" msgstr "" "O pedido efectuado ao serviço de descoberta de IdP não está de acordo com" " as especificações." -msgid "{attributes:attribute_mail}" -msgstr "E-mail" - msgid "{errors:descr_CREATEREQUEST}" msgstr "Ocorreu um erro ao tentar criar o pedido SAML" @@ -205,9 +175,6 @@ msgstr "Campos opcionais" msgid "{logout:return}" msgstr "Regressar ao serviço" -msgid "{attributes:attribute_displayname}" -msgstr "Nome de apresentação" - msgid "{admin:metadata_xmlurl}" msgstr "Pode <a href=\"%METAURL%\">obter os metadados em XML num URL dedicado</a>:" @@ -219,9 +186,6 @@ msgstr "" "Pode desligar o modo debug no ficheiro global de configuração " "<tt>config/config.php</tt> do SimpleSAMLphp." -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Morada de redidência" - msgid "{disco:select}" msgstr "Escolher" @@ -248,9 +212,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Deseja sair de todos os serviços listados em cima?" -msgid "{attributes:attribute_title}" -msgstr "Título" - msgid "{errors:title_NOACCESS}" msgstr "Acesso negado" @@ -260,9 +221,6 @@ msgstr "A senha não foi enviada no seu pedido. Por favor tente de novo." msgid "{errors:title_NORELAYSTATE}" msgstr "RelayState não definido" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Número de Identificação atribuído por autoridades públicas" - msgid "{login:password}" msgstr "Senha" @@ -289,21 +247,12 @@ msgstr "Erro ao processar o pedido de logout" msgid "{admin:metaover_errorentry}" msgstr "Erro nesta entrada de metadados" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Afiliação com a organização de origem" - -msgid "{attributes:attribute_givenname}" -msgstr "Nome Próprio" - msgid "{login:contact_info}" msgstr "Contactos:" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Excepção não tratada" -msgid "{status:validfor}" -msgstr "A sua sessão é válida por %SECONDS% segundos." - msgid "{status:header_saml20_sp}" msgstr "Exemplo de demonstração do SP SAML 2.0" @@ -331,42 +280,24 @@ msgstr "Campos obrigatórios" msgid "{admin:cfg_check_select_file}" msgstr "Escolha o ficheiro de configuração a verificar:" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Página web da organização de origem" - msgid "{logout:logging_out_from}" msgstr "A sair dos serviços seguintes:" msgid "{logout:loggedoutfrom}" msgstr "Saiu com sucesso de %SP%." -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "Fornecedor de serviço (SP) WS-Federation (Local)" - msgid "{errors:errorreport_text}" msgstr "O relatório de erro foi enviado aos administradores" -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Data de nascimento" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "Ocorreu um erro ao processar o pedido de logout." -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Identificação persistente tipo pseudónimo" - msgid "{logout:success}" msgstr "Saiu com sucesso de todos os serviços listados em cima." msgid "{admin:cfg_check_notices}" msgstr "Observações" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Afiliação principal com a organização de origem" - -msgid "{attributes:attribute_postalcode}" -msgstr "Código Postal" - msgid "{errors:descr_CASERROR}" msgstr "Ocorreu um erro ao comunicar com o servidor CAS." @@ -379,9 +310,6 @@ msgstr "Metadados SAML 2.0 SP" msgid "{admin:metaconv_converted}" msgstr "Resultado da conversão de Metadados" -msgid "{attributes:attribute_cn}" -msgstr "Nome completo" - msgid "{logout:completed}" msgstr "Completa" @@ -390,18 +318,9 @@ msgstr "" "A password presente na configuração (auth.adminpassword) tem o valor de " "omissão. Por favor altere esta password no ficheiro de configuração." -msgid "{attributes:attribute_ou}" -msgstr "Unidade organizacional" - msgid "{general:service_provider}" msgstr "Fornecedor de Serviço (SP)" -msgid "{attributes:attribute_homephone}" -msgstr "Telefone de residência" - -msgid "{attributes:attribute_dc}" -msgstr "Componente de domínio" - msgid "{errors:descr_BADREQUEST}" msgstr "Ocorreu um erro com o pedido a esta página. A razão foi: %REASON%" @@ -420,23 +339,14 @@ msgstr "Introduza o seu nome de utilizador e senha" msgid "{errors:report_explain}" msgstr "Introduza uma breve explicação do sucedido..." -msgid "{attributes:attribute_manager}" -msgstr "Responsável hierárquico" - msgid "{errors:title_ACSPARAMS}" msgstr "Mensagem SAML não fornecida" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Alcunha" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Na interface SingleLogoutService deve fornecer uma mensagem SAML do tipo " "LogoutRequest ou LogoutResponse." -msgid "{attributes:attribute_street}" -msgstr "Rua" - msgid "{login:organization}" msgstr "Organização" @@ -471,9 +381,6 @@ msgstr "Escolha a sua organização de origem" msgid "{admin:cfg_check_superfluous}" msgstr "Opções supérfluas do ficheiro de configuração" -msgid "{attributes:attribute_labeleduri}" -msgstr "Página web" - msgid "{errors:report_email}" msgstr "Endereço de email:" @@ -496,9 +403,6 @@ msgstr "" "Está na página de status do SimpleSAMLphp. Aqui poderá consultar " "informações sobre a sua sessão: o tempo de expiração e os seus atributos." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Nome de domínio da Organização de origem" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Página não encontrada" @@ -517,30 +421,18 @@ msgstr "Para obter detalhes sobre uma entidade SAML, clique no título da entida msgid "{errors:title_NOTVALIDCERT}" msgstr "Certificado inválido" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "DN da unidade orgânica na organização de origem" - msgid "{general:remember}" msgstr "Lembrar a minha escolha" msgid "{disco:selectidp}" msgstr "Escolha o seu fornecedor de identidade (IdP)" -msgid "{attributes:attribute_postofficebox}" -msgstr "Apartado" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Nome de utilizador na organização de origem" - msgid "{login:help_desk_email}" msgstr "Enviar um e-mail para o serviço de apoio ao utilizador" msgid "{login:help_desk_link}" msgstr "Página do serviço de apoio ao utilizador" -msgid "{attributes:attribute_uid}" -msgstr "Identificação de utilizador" - msgid "{errors:title_CASERROR}" msgstr "Erro de CAS" @@ -561,9 +453,6 @@ msgstr "Lembrar esta escolha" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "Fornecedor de serviço (SP) SAML 2.0 (Local)" -msgid "{attributes:attribute_l}" -msgstr "Localidade" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "Metadados no formato ficheiro de configuração do SimpleSAMLphp. Use esta " @@ -599,9 +488,6 @@ msgstr "Fornecedor de serviço (SP) Shib 1.3 (Local)" msgid "{admin:debug_sending_message_msg_title}" msgstr "Mensagem" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Número de Fax" - msgid "{errors:title_LDAPERROR}" msgstr "Erro de LDAP" @@ -619,15 +505,9 @@ msgstr "" "uma má configuração do SimpleSAMLphp. Contacte o administrador deste " "serviço de login, e comunique a mensagem de erro." -msgid "{attributes:attribute_mobile}" -msgstr "Telemóvel" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Fornecedor de identidade (IdP) Shib 1.3 (Local)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Idioma" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Não foi apresentado um certificado válido." @@ -640,15 +520,6 @@ msgstr "Os seguintes campos opcionais não foram encontrados" msgid "{logout:logout_only}" msgstr "Não, apenas %SP%" -msgid "{attributes:attribute_o}" -msgstr "Nome da organização" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "DN da unidade orgânica" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Número de Identificação local" - msgid "{login:next}" msgstr "Seguinte" @@ -667,9 +538,6 @@ msgstr "" "A página não foi encontrada. A razão foi: %REASON% O URL fornecido foi: " "%URL%" -msgid "{attributes:attribute_userpassword}" -msgstr "Senha do utilizador" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Informação de logout perdida" @@ -685,24 +553,12 @@ msgstr "" "enviar este documento de metadados aos seus parceiros para configurar uma" " federação." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Elementos privados de informação" - -msgid "{status:header_wsfed}" -msgstr "Exemplo de demonstração do SP WS-Fed" - -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Nome legal da organização de origem" - msgid "{status:header_shib}" msgstr "Exemplo de demonstração do SP Shibboleth 1.3" msgid "{admin:metaconv_parse}" msgstr "Converter" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Número de Organização" - msgid "Person's principal name at home organization" msgstr "Nome de utilizador na organização de origem" @@ -1005,8 +861,8 @@ msgstr "" "serviço de login, e comunique a mensagem de erro." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "A sua sessão é válida por %SECONDS% segundos." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "A sua sessão é válida por %remaining% segundos." msgid "Domain component (DC)" msgstr "Componente de domínio" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/ro/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/ro/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..95041a7f4160a6c1672d4a6e367b6629ba0a53b4 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/ro/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ro\n" +"Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ((n == 0 || n != 1 && n % 100 >= 1 && n % 100 <= 19) ? 1 : 2);\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Nume comun" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Nume comun" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Nume comun" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Componenta de domeniu (DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Componenta de domeniu (DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Componenta de domeniu (DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Nume afișat" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Nume afișat" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Nume afișat" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Pagina web a institutuției" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Pagina web a institutuției" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Pagina web a institutuției" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Denumirea legală a instituției" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Denumirea legală a instituției" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Denumirea legală a instituției" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Afiliere" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Afiliere" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Afiliere" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Profilul de asigurare a identității" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Profilul de asigurare a identității" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Profilul de asigurare a identității" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Drepturi relativ la acest serviciu" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Drepturi relativ la acest serviciu" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Drepturi relativ la acest serviciu" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Poreclă" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Poreclă" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Poreclă" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Nume distincitv (DN) al instituție de origine a persoanei" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Nume distincitv (DN) al instituție de origine a persoanei" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Nume distincitv (DN) al instituție de origine a persoanei" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Nume distincitv (DN) al unității organizaționale de origine a persoanei" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Nume distincitv (DN) al unității organizaționale de origine a persoanei" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Nume distincitv (DN) al unității organizaționale de origine a persoanei" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Afiliere primară" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Afiliere primară" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Afiliere primară" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Nume distincitv (DN) al unității organizaționale primare a persoanei" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Nume distincitv (DN) al unității organizaționale primare a persoanei" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Nume distincitv (DN) al unității organizaționale primare a persoanei" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Numele de identificare a persoanei la instituția de origine (de forma nume_utilizator@domeniu.ro)" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Numele de identificare a persoanei la instituția de origine (de forma nume_utilizator@domeniu.ro)" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Numele de identificare a persoanei la instituția de origine (de forma nume_utilizator@domeniu.ro)" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Afiliere în cadrul instituției de origine" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Afiliere în cadrul instituției de origine" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Afiliere în cadrul instituției de origine" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "ID pseudonim persistent" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "ID pseudonim persistent" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "ID pseudonim persistent" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Număr de fax" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Număr de fax" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Număr de fax" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Prenume" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Prenume" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Prenume" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Telefon acasă" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Telefon acasă" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Telefon acasă" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Adresa poștală de acasă" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Adresa poștală de acasă" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Adresa poștală de acasă" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "Fotografie JPEG" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "Fotografie JPEG" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "Fotografie JPEG" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Localitate" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Localitate" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Localitate" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "URI etichetat" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "URI etichetat" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "URI etichetat" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "Mail" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "Mail" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "Mail" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Director/Manager" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Director/Manager" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Director/Manager" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Mobil" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Mobil" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Mobil" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Număr organizațional" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Număr organizațional" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Număr organizațional" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Data nașterii" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Data nașterii" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Data nașterii" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Număr de identificare local" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Număr de identificare local" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Număr de identificare local" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Număr de identitate atribuit de autorități publice" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Număr de identitate atribuit de autorități publice" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Număr de identitate atribuit de autorități publice" + +# English string: Organization name +msgid "o" +msgstr "Denumirea instituției" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Denumirea instituției" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Denumirea instituției" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Unitate organizațională" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Unitate organizațională" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Unitate organizațională" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Cutie poștală" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Cutie poștală" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Cutie poștală" + +# English string: Postal address +msgid "postalAddress" +msgstr "Adresa poștală" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Adresa poștală" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Adresa poștală" + +# English string: Postal code +msgid "postalCode" +msgstr "Cod poștal" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Cod poștal" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Cod poștal" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Limba preferată" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Limba preferată" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Limba preferată" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Njumele de domeniu pentru instituția de origine" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Njumele de domeniu pentru instituția de origine" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Njumele de domeniu pentru instituția de origine" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Njumele de domeniu pentru instituția de origine" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Informații private" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Informații private" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Informații private" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Informații private" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Nume de familie" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Nume de familie" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Nume de familie" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Strada" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Strada" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Strada" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Număr de telefon" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Număr de telefon" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Număr de telefon" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Titlu/titulatură" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Titlu/titulatură" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Titlu/titulatură" + +# English string: User ID +msgid "uid" +msgstr "ID utilizator" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "ID utilizator" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "ID utilizator" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Parola utilizatorului în format <i>hash</i>" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Parola utilizatorului în format <i>hash</i>" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Parola utilizatorului în format <i>hash</i>" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Nume comun" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Nume afișat" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Nume afișat" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Nume afișat" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Nume afișat" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Nume afișat" + +# English string: Display name +msgid "twitter.name" +msgstr "Nume afișat" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Nume afișat" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Numele de identificare a persoanei la instituția de origine (de forma nume_utilizator@domeniu.ro)" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Numele de identificare a persoanei la instituția de origine (de forma nume_utilizator@domeniu.ro)" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Numele de identificare a persoanei la instituția de origine (de forma nume_utilizator@domeniu.ro)" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Numele de identificare a persoanei la instituția de origine (de forma nume_utilizator@domeniu.ro)" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Numele de identificare a persoanei la instituția de origine (de forma nume_utilizator@domeniu.ro)" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "ID pseudonim persistent" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "ID pseudonim persistent" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "ID pseudonim persistent" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "ID pseudonim persistent" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Număr de fax" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Prenume" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Prenume" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Prenume" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Prenume" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Prenume" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Telefon acasă" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Localitate" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "URI etichetat" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "URI etichetat" + +# English string: Mail +msgid "facebook.email" +msgstr "Mail" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "Mail" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "Mail" + +# English string: Mail +msgid "windowslive_mail" +msgstr "Mail" + +# English string: Mail +msgid "windowslive.mail" +msgstr "Mail" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Mobil" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Denumirea instituției" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Cod poștal" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Cod poștal" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Limba preferată" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Limba preferată" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Limba preferată" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Limba preferată" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Limba preferată" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Nume de familie" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Nume de familie" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Nume de familie" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Nume de familie" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Nume de familie" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Număr de telefon" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Număr de telefon" + +# English string: Title +msgid "linkedin.headline" +msgstr "Titlu/titulatură" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Titlu/titulatură" + +# English string: User ID +msgid "facebook.username" +msgstr "ID utilizator" + +# English string: User ID +msgid "linkedin.id" +msgstr "ID utilizator" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "ID utilizator" + +# English string: User ID +msgid "windowslive_uid" +msgstr "ID utilizator" + +# English string: User ID +msgid "windowslive.id" +msgstr "ID utilizator" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/ro/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/ro/LC_MESSAGES/messages.po index c012e57d8cea39c6d2040de49a32d8048cc882fa..864bffb1d6d010876ded74c918dc50d1729899df 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/ro/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/ro/LC_MESSAGES/messages.po @@ -53,12 +53,6 @@ msgstr "Eroare la încărcarea metadatelor" msgid "{admin:metaconv_title}" msgstr "Analizor de metadate" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Drepturi relativ la acest serviciu" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "Fotografie JPEG" - msgid "{admin:cfg_check_noerrors}" msgstr "Nu au fost depistate erori." @@ -140,9 +134,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Mergeți înapoi la pagina de instalare a SimpleSAMLphp" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "Furnizor de servicii federație WS (distant)" - msgid "{errors:error_header}" msgstr "Eroare SimpleSAMLphp" @@ -160,18 +151,12 @@ msgstr "" "Există o eroare în configurarea SimpleSAMLphp. Dacă sunteți " "administratorul acestui serviciu, verificați configurarea metadatelor." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Nume distincitv (DN) al instituție de origine a persoanei" - msgid "{errors:title_BADREQUEST}" msgstr "S-a primit o cerere incorectă" msgid "{status:sessionsize}" msgstr "Dimensiunea sesiunii: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Adresa poștală" - msgid "{logout:title}" msgstr "Ieșire din sistem (deautentificare)" @@ -193,32 +178,17 @@ msgstr "În așteptare" msgid "{admin:cfg_check_header}" msgstr "Verificarea configurației" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Afiliere în cadrul instituției de origine" - -msgid "{attributes:attribute_sn}" -msgstr "Nume de familie" - msgid "{admin:debug_sending_message_send}" msgstr "Trimite mesajul" msgid "{status:logout}" msgstr "Deautentificare" -msgid "{attributes:attribute_organisationname}" -msgstr "Denumirea instituției" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Număr de telefon" - msgid "{errors:descr_DISCOPARAMS}" msgstr "" "Parametrii trimiși către serviciul de căutare nu sunt în conformitate cu " "specificațiile." -msgid "{attributes:attribute_mail}" -msgstr "Mail" - msgid "{errors:descr_CREATEREQUEST}" msgstr "A apărut o eroare la crearea cererii SAML." @@ -228,9 +198,6 @@ msgstr "Câmpuri opționale" msgid "{logout:return}" msgstr "Întoarcere la serviciu" -msgid "{attributes:attribute_displayname}" -msgstr "Nume afișat" - msgid "{admin:metadata_xmlurl}" msgstr "" "Puteți accesa <a href=\"%METAURL%\">metadatele xml de la un URL " @@ -244,9 +211,6 @@ msgstr "" "Se poate opri modul de depanare în fișierul de configurare SimpleSAMLphp " "<tt>config/config.php</tt>." -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Adresa poștală de acasă" - msgid "{disco:select}" msgstr "Selectați" @@ -273,9 +237,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Doriți să vă deautentificați de la toate serviciile de mai sus ?" -msgid "{attributes:attribute_title}" -msgstr "Titlu/titulatură" - msgid "{errors:title_NOACCESS}" msgstr "Accesul este interzis" @@ -290,9 +251,6 @@ msgstr "Nu există <i>RelayState</i>" msgid "{errors:descr_NOSTATE}" msgstr "Informația de stare a fost pierdută, cererea nu poate fi reluată" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Număr de identitate atribuit de autorități publice" - msgid "{login:password}" msgstr "Parola" @@ -319,24 +277,15 @@ msgstr "Eroare la procesarea cererii de deautentificare" msgid "{admin:metaover_errorentry}" msgstr "Eroare în această metadată" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Afiliere" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Metadatele nu au fost găsite" -msgid "{attributes:attribute_givenname}" -msgstr "Prenume" - msgid "{login:contact_info}" msgstr "Informații de contact:" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Excepție netratată" -msgid "{status:validfor}" -msgstr "Sesiunea dumneavoastră mai este validă încă %SECONDS%." - msgid "{status:header_saml20_sp}" msgstr "Exemplu demonstrativ de furnizor de servicii SAML 2.0" @@ -372,30 +321,18 @@ msgstr "" "Autentificare eșuată: certificatul trimis de browser-ul dumneavoastră nu " "este recunoscut" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Pagina web a institutuției" - msgid "{logout:logging_out_from}" msgstr "Deautentificare din următoarele servicii:" msgid "{logout:loggedoutfrom}" msgstr "Ați fost deautentificat din %SP%." -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "Furnizor de servicii federație WS (găzduit)" - msgid "{errors:errorreport_text}" msgstr "Raportul cu erori a fost trimis către administratori." -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Data nașterii" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "A apărut o eroare la procesarea cererii de deautentificare." -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "ID pseudonim persistent" - msgid "{logout:success}" msgstr "Ați fost deautentificat de la toate serviciile enumerate mai sus." @@ -405,12 +342,6 @@ msgstr "Note/Observații" msgid "{errors:descr_USERABORTED}" msgstr "Autentificarea a fost întreruptă de utilizator" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Afiliere primară" - -msgid "{attributes:attribute_postalcode}" -msgstr "Cod poștal" - msgid "{errors:descr_CASERROR}" msgstr "Eroare de comunicare cu serverul CAS." @@ -423,9 +354,6 @@ msgstr "Metadate furnizor de servicii (SP) SAML 2.0" msgid "{admin:metaconv_converted}" msgstr "Metadate convertite" -msgid "{attributes:attribute_cn}" -msgstr "Nume comun" - msgid "{logout:completed}" msgstr "Terminat" @@ -434,18 +362,9 @@ msgstr "" "Parola din configurare (<i>auth.adminpassword</i>) este cea implicită, vă" " rugăm să o modificați." -msgid "{attributes:attribute_ou}" -msgstr "Unitate organizațională" - msgid "{general:service_provider}" msgstr "Furnizor de servicii" -msgid "{attributes:attribute_homephone}" -msgstr "Telefon acasă" - -msgid "{attributes:attribute_dc}" -msgstr "Componenta de domeniu (DC)" - msgid "{errors:descr_BADREQUEST}" msgstr "Există o eroare în cererea către această pagină. Motivul este: %REASON%" @@ -464,23 +383,14 @@ msgstr "Vă rugăm să completați numele de utilizator și parola" msgid "{errors:report_explain}" msgstr "Descrieți ce operațiuini executați când a apărut această eroare ..." -msgid "{attributes:attribute_manager}" -msgstr "Director/Manager" - msgid "{errors:title_ACSPARAMS}" msgstr "Nu a fost furnizat răspunsul SAML" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Poreclă" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Ați accesat interfața <i>SingleLogoutService</i>, dar nu ați furnizat o " "cerere de deautentificare sau un răspuns de deautentificare SAML." -msgid "{attributes:attribute_street}" -msgstr "Strada" - msgid "{login:organization}" msgstr "Instituție" @@ -520,9 +430,6 @@ msgstr "Alegeți instituția de origine" msgid "{admin:cfg_check_superfluous}" msgstr "Opțiuni inutile în fișierul de configurare" -msgid "{attributes:attribute_labeleduri}" -msgstr "URI etichetat" - msgid "{errors:report_email}" msgstr "Adresa e-mail:" @@ -537,9 +444,6 @@ msgstr "" "Inițiatorul acestei cereri nu a furnizat parametrul <i>RelayState</i> " "care indică următorul pas." -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Nume legal" - msgid "{status:header_diagnostics}" msgstr "Diagnostic SimpleSAMLphp" @@ -550,9 +454,6 @@ msgstr "" "expirarea sesiunii precum și toate atributele atașate sesiunii " "dumneavoastră." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Njumele de domeniu pentru instituția de origine" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Pagina nu a fost găsită" @@ -573,32 +474,18 @@ msgstr "" msgid "{errors:title_NOTVALIDCERT}" msgstr "Certificat nevalid" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Nume distincitv (DN) al unității organizaționale de origine a persoanei" - msgid "{general:remember}" msgstr "Ține minte" msgid "{disco:selectidp}" msgstr "Alegeți furnizorul de identitate" -msgid "{attributes:attribute_postofficebox}" -msgstr "Cutie poștală" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "" -"Numele de identificare a persoanei la instituția de origine (de forma " -"nume_utilizator@domeniu.ro)" - msgid "{login:help_desk_email}" msgstr "Trimiteți un mesaj la echipa de suport tehnic" msgid "{login:help_desk_link}" msgstr "Pagina echipei de suport tehnic" -msgid "{attributes:attribute_uid}" -msgstr "ID utilizator" - msgid "{errors:title_CASERROR}" msgstr "Eroare CAS" @@ -619,12 +506,6 @@ msgstr "Memorează alegerea făcută" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "Furnizor de servicii SAML 2.0 (găzduit)" -msgid "{attributes:attribute_l}" -msgstr "Localitate" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Profilul de asigurare a identității" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "În format fișier simplu SimpleSAMLphp - utilizați această variantă dacă " @@ -669,9 +550,6 @@ msgstr "Mesaj" msgid "{errors:title_UNKNOWNCERT}" msgstr "Certificat necunoscut" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Număr de fax" - msgid "{errors:title_LDAPERROR}" msgstr "Eroare LDAP" @@ -691,15 +569,9 @@ msgstr "" "administratorul acestui serviciu și să-i furnizați mesajul de eroare de " "mai sus." -msgid "{attributes:attribute_mobile}" -msgstr "Mobil" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Furnizor de identitate Shib 1.3 (găzduit)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Limba preferată" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Nu ați oferit un certificat valid." @@ -714,15 +586,6 @@ msgstr "Următoarele câmpuri opționale nu au fost găsite" msgid "{logout:logout_only}" msgstr "Nu, doar %SP%" -msgid "{attributes:attribute_o}" -msgstr "Denumirea instituției" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Nume distincitv (DN) al unității organizaționale primare a persoanei" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Număr de identificare local" - msgid "{login:next}" msgstr "Următorul pas" @@ -744,9 +607,6 @@ msgstr "" msgid "{errors:title_NOCERT}" msgstr "Lipsește certificatul" -msgid "{attributes:attribute_userpassword}" -msgstr "Parola utilizatorului în format <i>hash</i>" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Informația de deautentificare a fost pierdută" @@ -762,12 +622,6 @@ msgstr "" "trimise către parteneri de încredere pentru a configura o federație de " "încredere." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Informații private" - -msgid "{status:header_wsfed}" -msgstr "Exemplu demonstrativ de WS-Fed" - msgid "{admin:metadata_cert}" msgstr "Certificate" @@ -776,18 +630,12 @@ msgstr "" "Autentificare eșuată: certificatul trimis de browser-ul dumneavoastră nu " "este valid sau nu poate fi citit" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Denumirea legală a instituției" - msgid "{status:header_shib}" msgstr "Demo Shibboleth" msgid "{admin:metaconv_parse}" msgstr "Analizează" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Număr organizațional" - msgid "Person's principal name at home organization" msgstr "" "Numele de identificare a persoanei la instituția de origine (de forma " @@ -1132,8 +980,8 @@ msgstr "" "mai sus." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Sesiunea dumneavoastră mai este validă încă %SECONDS%." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Sesiunea dumneavoastră mai este validă încă %remaining%." msgid "Domain component (DC)" msgstr "Componenta de domeniu (DC)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/ru/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/ru/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..08dae63d5fe2ecd02719cb046b7ccfb5ba0ac669 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/ru/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru\n" +"Plural-Forms: nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Полное имя" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Полное имя" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Полное имя" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Компонент домена (DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Компонент домена (DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Компонент домена (DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Отображаемое имя" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Отображаемое имя" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Отображаемое имя" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Домашняя страница организации" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Домашняя страница организации" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Домашняя страница организации" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Юридическое название организации" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Юридическое название организации" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Юридическое название организации" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Членство" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Членство" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Членство" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Идентификатор гарантированного профайла" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Идентификатор гарантированного профайла" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Идентификатор гарантированного профайла" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Право на предоставление услуг" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Право на предоставление услуг" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Право на предоставление услуг" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Псевдоним" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Псевдоним" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Псевдоним" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Отличительное имя (DN) человека домашней организации" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Отличительное имя (DN) человека домашней организации" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Отличительное имя (DN) человека домашней организации" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Отличительное имя (DN) человека подразделения домашней организации" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Отличительное имя (DN) человека подразделения домашней организации" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Отличительное имя (DN) человека подразделения домашней организации" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Главное членство" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Главное членство" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Главное членство" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Отличительное имя (DN) человека основного подразделения организации" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Отличительное имя (DN) человека основного подразделения организации" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Отличительное имя (DN) человека основного подразделения организации" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Имя руководителя в главной организации" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Имя руководителя в главной организации" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Имя руководителя в главной организации" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Членство в главной организации" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Членство в главной организации" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Членство в главной организации" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "ID постоянного псевдонима" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "ID постоянного псевдонима" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "ID постоянного псевдонима" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Номер факса" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Номер факса" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Номер факса" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Имя" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Имя" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Имя" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Домашний телефон" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Домашний телефон" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Домашний телефон" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Домашний почтовый адрес" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Домашний почтовый адрес" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Домашний почтовый адрес" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "Фотография в формате JPEG" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "Фотография в формате JPEG" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "Фотография в формате JPEG" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Район" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Район" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Район" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "Маркированный URI (LabeledURI)" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "Маркированный URI (LabeledURI)" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "Маркированный URI (LabeledURI)" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "Почта" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "Почта" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "Почта" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Управляющий" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Управляющий" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Управляющий" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Мобильный" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Мобильный" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Мобильный" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Номер организации" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Номер организации" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Номер организации" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Дата рождения" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Дата рождения" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Дата рождения" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Местный идентификационный номер" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Местный идентификационный номер" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Местный идентификационный номер" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Идентификационный номер, присваиваемый органами государственной власти" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Идентификационный номер, присваиваемый органами государственной власти" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Идентификационный номер, присваиваемый органами государственной власти" + +# English string: Organization name +msgid "o" +msgstr "Название организации" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Название организации" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Название организации" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Подразделение организации" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Подразделение организации" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Подразделение организации" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Абонементный почтовый ящик" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Абонементный почтовый ящик" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Абонементный почтовый ящик" + +# English string: Postal address +msgid "postalAddress" +msgstr "Почтовый адрес" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Почтовый адрес" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Почтовый адрес" + +# English string: Postal code +msgid "postalCode" +msgstr "Почтовый индекс" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Почтовый индекс" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Почтовый индекс" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Предпочитаемый язык" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Предпочитаемый язык" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Предпочитаемый язык" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Доменное имя главной организации" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Доменное имя главной организации" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Доменное имя главной организации" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Доменное имя главной организации" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Элементы личной информации" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Элементы личной информации" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Элементы личной информации" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Элементы личной информации" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Фамилия" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Фамилия" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Фамилия" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Улица" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Улица" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Улица" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Номер телефона" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Номер телефона" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Номер телефона" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Заглавие" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Заглавие" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Заглавие" + +# English string: User ID +msgid "uid" +msgstr "ID пользователя" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "ID пользователя" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "ID пользователя" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Хэш пароля пользователя" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Хэш пароля пользователя" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Хэш пароля пользователя" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Полное имя" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Отображаемое имя" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Отображаемое имя" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Отображаемое имя" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Отображаемое имя" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Отображаемое имя" + +# English string: Display name +msgid "twitter.name" +msgstr "Отображаемое имя" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Отображаемое имя" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Имя руководителя в главной организации" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Имя руководителя в главной организации" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Имя руководителя в главной организации" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Имя руководителя в главной организации" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Имя руководителя в главной организации" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "ID постоянного псевдонима" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "ID постоянного псевдонима" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "ID постоянного псевдонима" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "ID постоянного псевдонима" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Номер факса" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Имя" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Имя" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Имя" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Имя" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Имя" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Домашний телефон" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Район" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "Маркированный URI (LabeledURI)" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "Маркированный URI (LabeledURI)" + +# English string: Mail +msgid "facebook.email" +msgstr "Почта" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "Почта" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "Почта" + +# English string: Mail +msgid "windowslive_mail" +msgstr "Почта" + +# English string: Mail +msgid "windowslive.mail" +msgstr "Почта" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Мобильный" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Название организации" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Почтовый индекс" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Почтовый индекс" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Предпочитаемый язык" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Предпочитаемый язык" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Предпочитаемый язык" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Предпочитаемый язык" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Предпочитаемый язык" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Фамилия" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Фамилия" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Фамилия" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Фамилия" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Фамилия" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Номер телефона" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Номер телефона" + +# English string: Title +msgid "linkedin.headline" +msgstr "Заглавие" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Заглавие" + +# English string: User ID +msgid "facebook.username" +msgstr "ID пользователя" + +# English string: User ID +msgid "linkedin.id" +msgstr "ID пользователя" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "ID пользователя" + +# English string: User ID +msgid "windowslive_uid" +msgstr "ID пользователя" + +# English string: User ID +msgid "windowslive.id" +msgstr "ID пользователя" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/ru/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/ru/LC_MESSAGES/messages.po index 4148ad38fb55acbb21d7330401c3ae3078d8a43c..f71ee414fb1c6158f7a0c9896d210e34ace30f63 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/ru/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/ru/LC_MESSAGES/messages.po @@ -51,12 +51,6 @@ msgstr "Ошибка загрузки метаданных" msgid "{admin:metaconv_title}" msgstr "Средство синтаксического анализа метаданных" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Право на предоставление услуг" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "Фотография в формате JPEG" - msgid "{admin:cfg_check_noerrors}" msgstr "Ошибок не обнаружено." @@ -137,9 +131,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Вернуться на страницу установки SimpleSAMLphp" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "Провайдер идентификации WS-Federation (удаленное размещение)" - msgid "{errors:error_header}" msgstr "Ошибка SimpleSAMLphp" @@ -157,18 +148,12 @@ msgstr "" "Ваш SimpleSAMLphp содержит неправильные конфигурационные данные. Если вы " "являетесь администратором системы, проверьте конфигурацию метаданных." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Отличительное имя (DN) человека домашней организации" - msgid "{errors:title_BADREQUEST}" msgstr "Получен неправильный отклик" msgid "{status:sessionsize}" msgstr "Размер сессии: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Почтовый адрес" - msgid "{logout:title}" msgstr "Успешный выход" @@ -196,32 +181,17 @@ msgstr "В состоянии ожидания" msgid "{admin:cfg_check_header}" msgstr "Проверка конфигурации" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Членство в главной организации" - -msgid "{attributes:attribute_sn}" -msgstr "Фамилия" - msgid "{admin:debug_sending_message_send}" msgstr "Отправить сообщение" msgid "{status:logout}" msgstr "Выйти" -msgid "{attributes:attribute_organisationname}" -msgstr "Название организации" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Номер телефона" - msgid "{errors:descr_DISCOPARAMS}" msgstr "" "Параметры, отправленные в службу обнаружения, не соответствуют " "спецификации." -msgid "{attributes:attribute_mail}" -msgstr "Почта" - msgid "{errors:descr_CREATEREQUEST}" msgstr "Произошла ошибка при попытке создать SAML запрос." @@ -231,9 +201,6 @@ msgstr "Необязательные поля" msgid "{logout:return}" msgstr "Вернуться к службе" -msgid "{attributes:attribute_displayname}" -msgstr "Отображаемое имя" - msgid "{admin:metadata_xmlurl}" msgstr "" "Вы можете<a href=\"%METAURL%\"> получить xml файл с метаданными по " @@ -247,9 +214,6 @@ msgstr "" "Вы можете отключить режим отладки в файле конфигурации global " "SimpleSAMLphp -<tt>config/config.php</tt>. " -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Домашний почтовый адрес" - msgid "{disco:select}" msgstr "Выбрать" @@ -279,9 +243,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Вы хотите выйти из всех служб, перечисленных выше?" -msgid "{attributes:attribute_title}" -msgstr "Заглавие" - msgid "{errors:title_NOACCESS}" msgstr "Отказ в доступе" @@ -296,9 +257,6 @@ msgstr "Отсутствует параметр RelayState" msgid "{errors:descr_NOSTATE}" msgstr "Информация о состоянии утеряна, нет способа инициировать запрос заново" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Идентификационный номер, присваиваемый органами государственной власти" - msgid "{login:password}" msgstr "Пароль" @@ -323,24 +281,15 @@ msgstr "Ошибка при обработке запроса на выход и msgid "{admin:metaover_errorentry}" msgstr "Ошибка при вводе данной записи метаданных" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Членство" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Метаданные не найдены" -msgid "{attributes:attribute_givenname}" -msgstr "Имя" - msgid "{login:contact_info}" msgstr "Контактная информация" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Необрабатываемое исключение" -msgid "{status:validfor}" -msgstr "Ваша сессия действительна в течение следующих %SECONDS% секунд." - msgid "{status:header_saml20_sp}" msgstr "Демо пример сервис провайдера SAML 2.0 SP" @@ -377,33 +326,21 @@ msgstr "Выберите файл конфигурации для проверк msgid "{errors:descr_UNKNOWNCERT}" msgstr "Ошибка при аутентификации: ваш браузер выслал неизвестный сертификат" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Домашняя страница организации" - msgid "{logout:logging_out_from}" msgstr "Выход из следующих служб:" msgid "{logout:loggedoutfrom}" msgstr "Вы успешно вышли из службы %SP%." -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "Сервис провайдер WS-Federation (локальное размещение)" - msgid "{errors:errorreport_text}" msgstr "Сообщение об ошибке было отправлено администраторам." msgid "{status:subject_header}" msgstr "Тема SAML" -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Дата рождения" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "Ошибка произошла при попытке обработки запроса на выход из системы" -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "ID постоянного псевдонима" - msgid "{logout:success}" msgstr "Вы успешно вышли из всех служб перечисленных выше." @@ -413,12 +350,6 @@ msgstr "Уведомления" msgid "{errors:descr_USERABORTED}" msgstr "Аутентификация прервана пользователем" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Главное членство" - -msgid "{attributes:attribute_postalcode}" -msgstr "Почтовый индекс" - msgid "{errors:descr_CASERROR}" msgstr "Произошла ошибка при обмене данными с сервером CAS." @@ -431,9 +362,6 @@ msgstr "Метаданные сервис провайдера SAML 2.0 SP" msgid "{admin:metaconv_converted}" msgstr "Преобразованные метаданные" -msgid "{attributes:attribute_cn}" -msgstr "Полное имя" - msgid "{logout:completed}" msgstr "Выполнено" @@ -442,18 +370,9 @@ msgstr "" "Пароль в файле конфигурации (auth.adminpassword) не изменен от значения " "по умолчанию. Пожалуйста, отредактируйте файл конфигурации." -msgid "{attributes:attribute_ou}" -msgstr "Подразделение организации" - msgid "{general:service_provider}" msgstr "Поставщик услуг" -msgid "{attributes:attribute_homephone}" -msgstr "Домашний телефон" - -msgid "{attributes:attribute_dc}" -msgstr "Компонент домена (DC)" - msgid "{errors:descr_BADREQUEST}" msgstr "Ошибка в запросе к этой странице. Причина: %REASON%" @@ -472,23 +391,14 @@ msgstr "Введите имя пользователя и пароль" msgid "{errors:report_explain}" msgstr "Уточните ваши действия перед появлением ошибки... " -msgid "{attributes:attribute_manager}" -msgstr "Управляющий" - msgid "{errors:title_ACSPARAMS}" msgstr "Отсутствует SAML отклик" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Псевдоним" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Вы получили доступ к интерфейсу SingleLogoutService, но не предоставили " "SAML LogoutRequest или LogoutResponse утверждения." -msgid "{attributes:attribute_street}" -msgstr "Улица" - msgid "{login:organization}" msgstr "Организация" @@ -528,9 +438,6 @@ msgstr "Выберите домашнюю организацию" msgid "{admin:cfg_check_superfluous}" msgstr "Избыточные параметры в файле конфигурации" -msgid "{attributes:attribute_labeleduri}" -msgstr "Маркированный URI (LabeledURI)" - msgid "{errors:report_email}" msgstr "Адрес вашей электронной почты:" @@ -545,9 +452,6 @@ msgstr "" "Инициатор данного запроса не предоставил параметр RelayState с указанием " "следующей точки перехода." -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Официальное название" - msgid "{status:header_diagnostics}" msgstr "Диагностика SimpleSAMLphp" @@ -557,9 +461,6 @@ msgstr "" " сессии, продолжительность сессии до истечения срока действия и все " "атрибуты в данной сессии." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Доменное имя главной организации" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Страница не найдена" @@ -578,33 +479,18 @@ msgstr "Для просмотра подробностей записи SAML, к msgid "{errors:title_NOTVALIDCERT}" msgstr "Недействительный сертификат" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Отличительное имя (DN) человека подразделения домашней организации" - msgid "{general:remember}" msgstr "Запомнить" msgid "{disco:selectidp}" msgstr "Выберите вашего identity provider" -msgid "{attributes:attribute_postofficebox}" -msgstr "Абонементный почтовый ящик" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Имя руководителя в главной организации" - msgid "{login:help_desk_email}" msgstr "Послать email в службу поддержки" msgid "{login:help_desk_link}" msgstr "Домашняя страница службы поддержки" -msgid "{attributes:attribute_ismemberof}" -msgstr "Членство в группе" - -msgid "{attributes:attribute_uid}" -msgstr "ID пользователя" - msgid "{login:remember_me}" msgstr "Запомнить меня" @@ -628,12 +514,6 @@ msgstr "Запомнить мой выбор" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "Сервис провайдер SAML 2.0 (локальное размещение)" -msgid "{attributes:attribute_l}" -msgstr "Район" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Идентификатор гарантированного профайла" - msgid "{admin:metadata_simplesamlformat}" msgstr "Формат простого SimpleSAMLphp файла" @@ -682,9 +562,6 @@ msgstr "Провайдер идентификации ADFS (локальное msgid "{errors:title_UNKNOWNCERT}" msgstr "Неизвестный сертификат" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Номер факса" - msgid "{errors:title_LDAPERROR}" msgstr "Ошибка LDAP" @@ -702,18 +579,12 @@ msgstr "" "неправильной конфигурации SimpleSAMLphp. Свяжитесь с администратором " "этого сервиса и отправьте ему вышеуказанное сообщение об ошибке." -msgid "{attributes:attribute_mobile}" -msgstr "Мобильный" - msgid "{admin:metadata_adfs-idp}" msgstr "Метаданные провайдера идентификации ADFS" msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Провайдер идентификации Shib 1.3 (локальное размещение)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Предпочитаемый язык" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Вы не предоставили действительный сертификат." @@ -728,15 +599,6 @@ msgstr "Следующие необязательные поля не найде msgid "{logout:logout_only}" msgstr "Нет, только для службы %SP%" -msgid "{attributes:attribute_o}" -msgstr "Название организации" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Отличительное имя (DN) человека основного подразделения организации" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Местный идентификационный номер" - msgid "{login:next}" msgstr "Далее" @@ -756,9 +618,6 @@ msgstr "Запрашиваемая страница не найдена. При msgid "{errors:title_NOCERT}" msgstr "Сертификат отсутствует" -msgid "{attributes:attribute_userpassword}" -msgstr "Хэш пароля пользователя" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Потеряна информация о выходе." @@ -774,12 +633,6 @@ msgstr "" "отправить данный документ с метаданными доверенным партнерам для создания" " федерации." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Элементы личной информации" - -msgid "{status:header_wsfed}" -msgstr "Демо пример сервис провайдера WS-Fed SP" - msgid "{admin:metadata_cert}" msgstr "Сертификаты" @@ -788,18 +641,12 @@ msgstr "" "Ошибка при аутентификации: ваш браузер выслал недействительный или " "нечитаемый сертификат" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Юридическое название организации" - msgid "{status:header_shib}" msgstr "Shibboleth демо" msgid "{admin:metaconv_parse}" msgstr "Выполнить синтаксический анализ" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Номер организации" - msgid "Person's principal name at home organization" msgstr "Имя руководителя в главной организации" @@ -1141,8 +988,8 @@ msgstr "" "этого сервиса и отправьте ему вышеуказанное сообщение об ошибке." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Ваша сессия действительна в течение следующих %SECONDS% секунд." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Ваша сессия действительна в течение следующих %remaining% секунд." msgid "Domain component (DC)" msgstr "Компонент домена (DC)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/se/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/se/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..869a18cdde9a25ac3e323c91318b389867197515 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/se/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: se\n" +"Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ((n == 2) ? 1 : 2);\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Olles namma" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Olles namma" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Olles namma" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "dc" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "urn:mace:dir:attribute-def:dc" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "urn:oid:0.9.2342.19200300.100.1.25" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "displayName" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "urn:mace:dir:attribute-def:displayName" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "urn:oid:2.16.840.1.113730.3.1.241" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "eduOrgHomePageURI" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "urn:mace:dir:attribute-def:eduOrgHomePageURI" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "eduOrgLegalName" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "urn:mace:dir:attribute-def:eduOrgLegalName" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Du doaibma organisašuvnnas" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Du doaibma organisašuvnnas" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Du doaibma organisašuvnnas" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "eduPersonAssurance" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "urn:mace:dir:attribute-def:eduPersonAssurance" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "URI mii čilge dihto vuoigatvuođa dihto ressurssaide" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "URI mii čilge dihto vuoigatvuođa dihto ressurssaide" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "URI mii čilge dihto vuoigatvuođa dihto ressurssaide" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "eduPersonNickname" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "urn:mace:dir:attribute-def:eduPersonNickname" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "eduPersonOrgDN" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "urn:mace:dir:attribute-def:eduPersonOrgDN" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "eduPersonOrgUnitDN" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "eduPersonPrimaryAffiliation" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "eduPersonPrimaryOrgUnitDN" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Feide-namma" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Feide-namma" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Feide-namma" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Rolla diehto organisašuvnnas, dehe dihto domenas." + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Rolla diehto organisašuvnnas, dehe dihto domenas." + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Rolla diehto organisašuvnnas, dehe dihto domenas." + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "eduPersonTargetedID" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "urn:mace:dir:attribute-def:eduPersonTargetedID" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "facsimileTelephoneNumber" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:facsimileTelephoneNumber" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "urn:oid:2.5.4.23" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Ovdanamma" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Ovdanamma" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Ovdanamma" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "homePhone" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "urn:mace:dir:attribute-def:homePhone" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "urn:oid:0.9.2342.19200300.100.1.20" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "homePostalAddress" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "urn:mace:dir:attribute-def:homePostalAddress" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "urn:oid:0.9.2342.19200300.100.1.39" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "jpegPhoto" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "urn:mace:dir:attribute-def:jpegPhoto" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "urn:oid:0.9.2342.19200300.100.1.60" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "l" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "urn:mace:dir:attribute-def:l" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "urn:oid:2.5.4.7" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "labeledURI" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "urn:mace:dir:attribute-def:labeledURI" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "urn:oid:1.3.6.1.4.1.250.1.57" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "Elektrovnnalaš poastačijuhus" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "Elektrovnnalaš poastačijuhus" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "Elektrovnnalaš poastačijuhus" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "manager" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "urn:mace:dir:attribute-def:manager" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "urn:oid:0.9.2342.19200300.100.1.10" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Mátketelefovdna" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Mátketelefovdna" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Mátketelefovdna" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "norEduOrgNIN" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "urn:mace:dir:attribute-def:norEduOrgNIN" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.12" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "norEduPersonBirthDate" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "urn:mace:dir:attribute-def:norEduPersonBirthDate" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.3" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "norEduPersonLIN" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "urn:mace:dir:attribute-def:norEduPersonLIN" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.4" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Riegadannummir" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Riegadannummir" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Riegadannummir" + +# English string: Organization name +msgid "o" +msgstr "o" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "urn:mace:dir:attribute-def:o" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "urn:oid:2.5.4.10" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "urn:oid:2.5.4.11" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "ou" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "urn:mace:dir:attribute-def:ou" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "postOfficeBox" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "urn:mace:dir:attribute-def:postOfficeBox" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "urn:oid:2.5.4.18" + +# English string: Postal address +msgid "postalAddress" +msgstr "postalAddress" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "urn:mace:dir:attribute-def:postalAddress" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "urn:oid:2.5.4.16" + +# English string: Postal code +msgid "postalCode" +msgstr "postalCode" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "urn:mace:dir:attribute-def:postalCode" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "urn:oid:2.5.4.17" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Vuosttašválljejuvvon giella dehe giellahápmi" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Vuosttašválljejuvvon giella dehe giellahápmi" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Vuosttašválljejuvvon giella dehe giellahápmi" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "schacHomeOrganization" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganization" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.9" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "urn:schac:attribute-def:schacHomeOrganization" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "schacUserPrivateAttribute" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.18" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "urn:schac:attribute-def:schacUserPrivateAttribute" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Goargu" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Goargu" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Goargu" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "street" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "urn:mace:dir:attribute-def:street" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "urn:oid:2.5.4.9" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "telephoneNumber" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "urn:mace:dir:attribute-def:telephoneNumber" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "urn:oid:2.5.4.20" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "title" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "urn:mace:dir:attribute-def:title" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "urn:oid:2.5.4.12" + +# English string: User ID +msgid "uid" +msgstr "Namahus" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Namahus" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Namahus" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "userPassword" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "urn:mace:dir:attribute-def:userPassword" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "urn:oid:2.5.4.35" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Olles namma" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "facebook.name" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "http://axschema.org/namePerson/friendly" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "openid.sreg.nickname" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "http://axschema.org/namePerson" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "openid.sreg.fullname" + +# English string: Display name +msgid "twitter.name" +msgstr "twitter.name" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "windowslive.displayName" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Feide-namma" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Feide-namma" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Feide-namma" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Feide-namma" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Feide-namma" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "facebook_targetedID" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "linkedin_targetedID" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "twitter_targetedID" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "windowslive_targetedID" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "http://axschema.org/contact/phone/fax" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Ovdanamma" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Ovdanamma" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Ovdanamma" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Ovdanamma" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Ovdanamma" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "http://axschema.org/contact/phone/home" + +# English string: Locality +msgid "windowslive.Location" +msgstr "windowslive.Location" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "facebook.profile_url" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "twitter.url" + +# English string: Mail +msgid "facebook.email" +msgstr "Elektrovnnalaš poastačijuhus" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "Elektrovnnalaš poastačijuhus" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "Elektrovnnalaš poastačijuhus" + +# English string: Mail +msgid "windowslive_mail" +msgstr "Elektrovnnalaš poastačijuhus" + +# English string: Mail +msgid "windowslive.mail" +msgstr "Elektrovnnalaš poastačijuhus" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Mátketelefovdna" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "http://axschema.org/company/name" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "http://axschema.org/contact/postalCode/home" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "openid.sreg.postcode" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Vuosttašválljejuvvon giella dehe giellahápmi" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Vuosttašválljejuvvon giella dehe giellahápmi" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Vuosttašválljejuvvon giella dehe giellahápmi" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Vuosttašválljejuvvon giella dehe giellahápmi" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Vuosttašválljejuvvon giella dehe giellahápmi" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Goargu" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Goargu" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Goargu" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Goargu" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Goargu" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "http://axschema.org/contact/phone/default" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "http://axschema.org/contact/phone/business" + +# English string: Title +msgid "linkedin.headline" +msgstr "linkedin.headline" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "http://axschema.org/company/title" + +# English string: User ID +msgid "facebook.username" +msgstr "Namahus" + +# English string: User ID +msgid "linkedin.id" +msgstr "Namahus" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Namahus" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Namahus" + +# English string: User ID +msgid "windowslive.id" +msgstr "Namahus" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/se/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/se/LC_MESSAGES/messages.po index acf566e8214b8f14468648bdd2e97abc9dfa778f..f1c5ed9cd92d32b4f6b22e75311c299cd2527513 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/se/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/se/LC_MESSAGES/messages.po @@ -18,60 +18,21 @@ msgstr "" msgid "{login:username}" msgstr "Geavahusnamma" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "URI mii čilge dihto vuoigatvuođa dihto ressurssaide" - -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Rolla diehto organisašuvnnas, dehe dihto domenas." - -msgid "{attributes:attribute_sn}" -msgstr "Goargu" - -msgid "{attributes:attribute_organisationname}" -msgstr "Organisašuvdna" - -msgid "{attributes:attribute_mail}" -msgstr "Elektrovnnalaš poastačijuhus" - msgid "{login:login_button}" msgstr "Mana sis" msgid "{login:error_wrongpassword}" msgstr "Boastu geavahusnamma, beassansátni dehe organisašuvdna." -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Riegadannummir" - msgid "{login:password}" msgstr "Beassansátni" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Du doaibma organisašuvnnas" - -msgid "{attributes:attribute_givenname}" -msgstr "Ovdanamma" - -msgid "{attributes:attribute_cn}" -msgstr "Olles namma" - msgid "{login:organization}" msgstr "Organisašuvdna" msgid "{errors:report_email}" msgstr "Elektrovnnalaš poastačijuhus" -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Feide-namma" - -msgid "{attributes:attribute_uid}" -msgstr "Namahus" - -msgid "{attributes:attribute_mobile}" -msgstr "Mátketelefovdna" - -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Vuosttašválljejuvvon giella dehe giellahápmi" - msgid "Person's principal name at home organization" msgstr "Feide-namma" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/sl/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/sl/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..4a46bc0d9ad1713697449775835fb76fe60f78de --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/sl/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sl\n" +"Plural-Forms: nplurals=4; plural=(n % 100 == 1) ? 0 : ((n % 100 == 2) ? 1 : ((n % 100 == 3 || n % 100 == 4) ? 2 : 3));\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Ime in priimek" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Ime in priimek" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Ime in priimek" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Domenska komponenta (DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Domenska komponenta (DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Domenska komponenta (DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Prikazno ime" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Prikazno ime" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Prikazno ime" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Spletna stran organizacije" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Spletna stran organizacije" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Spletna stran organizacije" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Naziv organizacije" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Naziv organizacije" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Naziv organizacije" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Vloga uporabnika" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Vloga uporabnika" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Vloga uporabnika" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Stopnja zanesljivosti" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Stopnja zanesljivosti" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Stopnja zanesljivosti" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Upravičenost do storitve" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Upravičenost do storitve" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Upravičenost do storitve" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Vzdevek" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Vzdevek" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Vzdevek" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Ime domače organizacije (DN)" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Ime domače organizacije (DN)" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Ime domače organizacije (DN)" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Ime oddelka domače organizacije (DN)" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Ime oddelka domače organizacije (DN)" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Ime oddelka domače organizacije (DN)" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Primarna vloga" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Primarna vloga" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Primarna vloga" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Ime (DN) oddelka v domači organizaciji" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Ime (DN) oddelka v domači organizaciji" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Ime (DN) oddelka v domači organizaciji" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "ID uporabnika na domači organizaciji" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "ID uporabnika na domači organizaciji" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "ID uporabnika na domači organizaciji" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Vloga v organizaciji" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Vloga v organizaciji" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Vloga v organizaciji" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Trajni anonimni ID" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Trajni anonimni ID" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Trajni anonimni ID" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Fax" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Fax" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Fax" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Ime" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Ime" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Ime" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Domača telefonska številka" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Domača telefonska številka" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Domača telefonska številka" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Domači naslov" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Domači naslov" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Domači naslov" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "JPEG Slika" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "JPEG Slika" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "JPEG Slika" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Kraj" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Kraj" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Kraj" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "Označen URI" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "Označen URI" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "Označen URI" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "Elektronski naslov" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "Elektronski naslov" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "Elektronski naslov" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Menedžer" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Menedžer" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Menedžer" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Mobilni telefon" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Mobilni telefon" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Mobilni telefon" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Organizacijska številka" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Organizacijska številka" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Organizacijska številka" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Datum rojstva" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Datum rojstva" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Datum rojstva" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Vpisna številka" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Vpisna številka" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Vpisna številka" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Matična številka" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Matična številka" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Matična številka" + +# English string: Organization name +msgid "o" +msgstr "Ime organizacije" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Ime organizacije" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Ime organizacije" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Oddelek" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Oddelek" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Oddelek" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Poštni predal" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Poštni predal" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Poštni predal" + +# English string: Postal address +msgid "postalAddress" +msgstr "Poštni naslov" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Poštni naslov" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Poštni naslov" + +# English string: Postal code +msgid "postalCode" +msgstr "Poštna številka" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Poštna številka" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Poštna številka" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Želen jezik" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Želen jezik" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Želen jezik" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "ID domače organizacije" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "ID domače organizacije" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "ID domače organizacije" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "ID domače organizacije" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Zasebni informacijski elementi" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Zasebni informacijski elementi" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Zasebni informacijski elementi" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Zasebni informacijski elementi" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Priimek" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Priimek" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Priimek" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Ulica" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Ulica" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Ulica" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Telefonska številka" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Telefonska številka" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Telefonska številka" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Naziv" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Naziv" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Naziv" + +# English string: User ID +msgid "uid" +msgstr "Uporabniško ime" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Uporabniško ime" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Uporabniško ime" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Uporabnikovo zgoščeno geslo" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Uporabnikovo zgoščeno geslo" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Uporabnikovo zgoščeno geslo" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Ime in priimek" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Prikazno ime" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Prikazno ime" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Prikazno ime" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Prikazno ime" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Prikazno ime" + +# English string: Display name +msgid "twitter.name" +msgstr "Prikazno ime" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Prikazno ime" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "ID uporabnika na domači organizaciji" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "ID uporabnika na domači organizaciji" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "ID uporabnika na domači organizaciji" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "ID uporabnika na domači organizaciji" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "ID uporabnika na domači organizaciji" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Trajni anonimni ID" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Trajni anonimni ID" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Trajni anonimni ID" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Trajni anonimni ID" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Fax" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Ime" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Ime" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Ime" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Ime" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Ime" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Domača telefonska številka" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Kraj" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "Označen URI" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "Označen URI" + +# English string: Mail +msgid "facebook.email" +msgstr "Elektronski naslov" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "Elektronski naslov" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "Elektronski naslov" + +# English string: Mail +msgid "windowslive_mail" +msgstr "Elektronski naslov" + +# English string: Mail +msgid "windowslive.mail" +msgstr "Elektronski naslov" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Mobilni telefon" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Ime organizacije" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Poštna številka" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Poštna številka" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Želen jezik" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Želen jezik" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Želen jezik" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Želen jezik" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Želen jezik" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Priimek" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Priimek" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Priimek" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Priimek" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Priimek" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Telefonska številka" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Telefonska številka" + +# English string: Title +msgid "linkedin.headline" +msgstr "Naziv" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Naziv" + +# English string: User ID +msgid "facebook.username" +msgstr "Uporabniško ime" + +# English string: User ID +msgid "linkedin.id" +msgstr "Uporabniško ime" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Uporabniško ime" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Uporabniško ime" + +# English string: User ID +msgid "windowslive.id" +msgstr "Uporabniško ime" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/sl/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/sl/LC_MESSAGES/messages.po index 55607c6d71d456601e4449248202edc7f7f3484e..130a2756260580441bc59d3c3c63e3ed960d948c 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/sl/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/sl/LC_MESSAGES/messages.po @@ -54,12 +54,6 @@ msgstr "Napaka pri nalaganju metapodatkov" msgid "{admin:metaconv_title}" msgstr "Metapodatkovna sintaktična analiza (parser)" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Upravičenost do storitve" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "JPEG Slika" - msgid "{admin:cfg_check_noerrors}" msgstr "Ni napak" @@ -129,9 +123,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Nazaj na namestitveno stran SimpleSAMLphp" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "WS-Federation Idp (Oddaljni)" - msgid "{errors:error_header}" msgstr "SimpleSAMLphp napaka" @@ -148,18 +139,12 @@ msgstr "" "V konfiguraciji SimpleSAMLphp-ja je napaka. Če ste skrbnik te storitve, " "preverite, da je konfiguracija metapodatkov pravilna." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Ime domače organizacije (DN)" - msgid "{errors:title_BADREQUEST}" msgstr "Napaka v prejetem zahtevku." msgid "{status:sessionsize}" msgstr "Velikost seje: %SIZE% bajtov" -msgid "{attributes:attribute_postaladdress}" -msgstr "Poštni naslov" - msgid "{logout:title}" msgstr "Odjavljen" @@ -181,32 +166,17 @@ msgstr "V teku" msgid "{admin:cfg_check_header}" msgstr "Preverjanje konfiguracije" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Vloga v organizaciji" - -msgid "{attributes:attribute_sn}" -msgstr "Priimek" - msgid "{admin:debug_sending_message_send}" msgstr "Pošlji sporočilo" msgid "{status:logout}" msgstr "Odjava" -msgid "{attributes:attribute_organisationname}" -msgstr "Ime organizacije" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Telefonska številka" - msgid "{errors:descr_DISCOPARAMS}" msgstr "" "Parametri, ki so bili poslani \"Discovery service-u\", ne ustrezajo " "specifikaciji." -msgid "{attributes:attribute_mail}" -msgstr "Elektronski naslov" - msgid "{errors:descr_CREATEREQUEST}" msgstr "Pri ustvarjanju SAML zahteve je prišlo do napake." @@ -216,9 +186,6 @@ msgstr "Neobvezna polja" msgid "{logout:return}" msgstr "Vrni se nazaj na storitev." -msgid "{attributes:attribute_displayname}" -msgstr "Prikazno ime" - msgid "{admin:metadata_xmlurl}" msgstr "XML metapodatki se nahajajo na <a href=\"%METAURL%\">tem naslovu</a>:" @@ -230,9 +197,6 @@ msgstr "" "Debug način lahko izklopite v globalni SimpleSAMLphp konfiguracijski " "datoteki <tt>config/config.php</tt>." -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Domači naslov" - msgid "{disco:select}" msgstr "Izberite" @@ -259,9 +223,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Ali se želite odjaviti z vseh naštetih storitev?" -msgid "{attributes:attribute_title}" -msgstr "Naziv" - msgid "{errors:title_NOACCESS}" msgstr "Ni dostopa" @@ -276,9 +237,6 @@ msgstr "" "Podatki o stanju so izgubljeni, zato zahteve ni mogoče obnoviti/ponovno " "zagnati." -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Matična številka" - msgid "{login:password}" msgstr "Geslo" @@ -303,24 +261,15 @@ msgstr "Napaka pri obdelavi zahteve za odjavo" msgid "{admin:metaover_errorentry}" msgstr "Napaka pri vnosu metapodatkov" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Vloga uporabnika" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Metapodatkov ni bilo moč najti" -msgid "{attributes:attribute_givenname}" -msgstr "Ime" - msgid "{login:contact_info}" msgstr "Kontakt" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Nedefinirana izjema." -msgid "{status:validfor}" -msgstr "Vaša trenutna seja je veljavna še %SECONDS% sekund." - msgid "{status:header_saml20_sp}" msgstr "SAML 2.0 SP Demo primer" @@ -356,30 +305,18 @@ msgstr "" "Avtentikacija je spodletela: vaš spletni brskalnik je posredoval " "nepoznano digitalno potrdilo" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Spletna stran organizacije" - msgid "{logout:logging_out_from}" msgstr "Odjava iz naslednjih storitev:" msgid "{logout:loggedoutfrom}" msgstr "Uspešno ste se odjavili s ponudnika storitev: %SP%" -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "WS-Fedration SP (Lokalni)" - msgid "{errors:errorreport_text}" msgstr "Poročilo o napaki je bilo poslano skrbnikom sistema." -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Datum rojstva" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "Pri obdelavi zahteve za odjavo je prišlo do napake." -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Trajni anonimni ID" - msgid "{logout:success}" msgstr "Uspešno ste se odjavili z vseh naštetih storitev." @@ -389,12 +326,6 @@ msgstr "Obvestila" msgid "{errors:descr_USERABORTED}" msgstr "Avtentikacija prekinjena na zahtevo uporabnika" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Primarna vloga" - -msgid "{attributes:attribute_postalcode}" -msgstr "Poštna številka" - msgid "{errors:descr_CASERROR}" msgstr "Napaka pri komunikaciji s CAS strežnikom." @@ -407,9 +338,6 @@ msgstr "SAML 2.0 SP Metapodatki" msgid "{admin:metaconv_converted}" msgstr "Pretvorjeni metapodatki" -msgid "{attributes:attribute_cn}" -msgstr "Ime in priimek" - msgid "{logout:completed}" msgstr "Dokončano" @@ -418,18 +346,9 @@ msgstr "" "V nastavitvah je geslo skrbnika (auth.adminpassword) še vedno nastavljeno" " na začetno vrednost. Spremenite ga!" -msgid "{attributes:attribute_ou}" -msgstr "Oddelek" - msgid "{general:service_provider}" msgstr "Ponudnik storitev" -msgid "{attributes:attribute_homephone}" -msgstr "Domača telefonska številka" - -msgid "{attributes:attribute_dc}" -msgstr "Domenska komponenta (DC)" - msgid "{errors:descr_BADREQUEST}" msgstr "Prišlo je do napake pri prejetem zahtevku. Razlog: %REASON%" @@ -448,23 +367,14 @@ msgstr "Vnesite svoje uporabniško ime in geslo" msgid "{errors:report_explain}" msgstr "Opišite, kako je prišlo do napake..." -msgid "{attributes:attribute_manager}" -msgstr "Menedžer" - msgid "{errors:title_ACSPARAMS}" msgstr "Nobenega odgovora za SAML ni na voljo" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Vzdevek" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Dostopili ste do SingleLogoutService vmesnika, ampak niste zagotovili " "SAML LogoutRequest ali LogoutResponse." -msgid "{attributes:attribute_street}" -msgstr "Ulica" - msgid "{login:organization}" msgstr "Organizacija" @@ -502,9 +412,6 @@ msgstr "Izberite domačo organizacijo." msgid "{admin:cfg_check_superfluous}" msgstr "Odvečne nastavitve v konfiguracijski datoteki" -msgid "{attributes:attribute_labeleduri}" -msgstr "Označen URI" - msgid "{errors:report_email}" msgstr "Elektronski naslov:" @@ -517,9 +424,6 @@ msgstr "Geslo ni nastavljeno" msgid "{errors:descr_NORELAYSTATE}" msgstr "Pobudnik te zahteve ni posredoval RelayState parametra." -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Uradno ime" - msgid "{status:header_diagnostics}" msgstr "SimpleSAMLphp diagnostika" @@ -528,9 +432,6 @@ msgstr "" "Živjo! To je statusna stran SimpleSAMLphp, ki omogoča pregled nad " "trajanjem vaše trenutne seje in atributi, ki so povezani z njo." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "ID domače organizacije" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Strani ni bilo mogoče najti." @@ -549,30 +450,18 @@ msgstr "Za pregled podrobnosti SAML entitete, kliknite na glavo te entitete" msgid "{errors:title_NOTVALIDCERT}" msgstr "Napačen certifikat" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Ime oddelka domače organizacije (DN)" - msgid "{general:remember}" msgstr "Zapomni si privolitev." msgid "{disco:selectidp}" msgstr "Izberite IdP domače organizacije" -msgid "{attributes:attribute_postofficebox}" -msgstr "Poštni predal" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "ID uporabnika na domači organizaciji" - msgid "{login:help_desk_email}" msgstr "Pošlji sporočilo tehnični podpori." msgid "{login:help_desk_link}" msgstr "Spletna stran tehnične podpore uporabnikom." -msgid "{attributes:attribute_uid}" -msgstr "Uporabniško ime" - msgid "{errors:title_CASERROR}" msgstr "CAS napaka" @@ -593,12 +482,6 @@ msgstr "Shrani kot privzeto izbiro" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "SAML 2.0 SP (Lokalni)" -msgid "{attributes:attribute_l}" -msgstr "Kraj" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Stopnja zanesljivosti" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "V SimpleSAMLphp \"flat file\" formatu - ta format uporabite, če " @@ -643,9 +526,6 @@ msgstr "Sporočilo" msgid "{errors:title_UNKNOWNCERT}" msgstr "Nepoznano digitalno potrdilo" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Fax" - msgid "{errors:title_LDAPERROR}" msgstr "Napaka LDAP-a" @@ -662,15 +542,9 @@ msgstr "" "Ta napaka je verjetno posledica nepravilne konfiguracije SimpleSAMLphp-" "ja. Obrnite se na skrbnika in mu posredujte to napako." -msgid "{attributes:attribute_mobile}" -msgstr "Mobilni telefon" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Shib 1.3 SP (Lokalni)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Želen jezik" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Posredovan certifikat je neveljaven" @@ -683,15 +557,6 @@ msgstr "Naslednjih neobveznih polj ni bilo mogoče najti" msgid "{logout:logout_only}" msgstr "Ne, odjavi me samo z naslednjega %SP%" -msgid "{attributes:attribute_o}" -msgstr "Ime organizacije" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Ime (DN) oddelka v domači organizaciji" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Vpisna številka" - msgid "{login:next}" msgstr "Naprej" @@ -709,9 +574,6 @@ msgstr "" msgid "{errors:title_NOCERT}" msgstr "Ni digitalnega potrdila" -msgid "{attributes:attribute_userpassword}" -msgstr "Uporabnikovo zgoščeno geslo" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Odjavni (Logout) parametri niso na voljo." @@ -727,12 +589,6 @@ msgstr "" "pošljete zaupanja vrednim partnerjem, s katerimi boste ustvarili " "federacijo." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Zasebni informacijski elementi" - -msgid "{status:header_wsfed}" -msgstr "WS-Fed SP demo primer" - msgid "{admin:metadata_cert}" msgstr "Digitalna potrdila" @@ -741,18 +597,12 @@ msgstr "" "Avtentikacija je spodletela: vaš spletni brskalnik je posredoval " "neveljavno digitalno potrdilo ali pa ga ni moč prebrati!" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Naziv organizacije" - msgid "{status:header_shib}" msgstr "Shibboleth demo primer" msgid "{admin:metaconv_parse}" msgstr "Sintaktična analiza (parse)" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Organizacijska številka" - msgid "Person's principal name at home organization" msgstr "ID uporabnika na domači organizaciji" @@ -1076,8 +926,8 @@ msgstr "" "ja. Obrnite se na skrbnika in mu posredujte to napako." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Vaša trenutna seja je veljavna še %SECONDS% sekund." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Vaša trenutna seja je veljavna še %remaining% sekund." msgid "Domain component (DC)" msgstr "Domenska komponenta (DC)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/sma/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/sma/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..8b9d97c2be2ca3e0292044298e5b66f3d5e2668a --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/sma/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sma\n" +"Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ((n == 2) ? 1 : 2);\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "cn" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "urn:mace:dir:attribute-def:cn" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "urn:oid:2.5.4.3" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "dc" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "urn:mace:dir:attribute-def:dc" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "urn:oid:0.9.2342.19200300.100.1.25" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "displayName" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "urn:mace:dir:attribute-def:displayName" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "urn:oid:2.16.840.1.113730.3.1.241" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "eduOrgHomePageURI" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "urn:mace:dir:attribute-def:eduOrgHomePageURI" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "eduOrgLegalName" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "urn:mace:dir:attribute-def:eduOrgLegalName" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "eduPersonAffiliation" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "urn:mace:dir:attribute-def:eduPersonAffiliation" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "eduPersonAssurance" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "urn:mace:dir:attribute-def:eduPersonAssurance" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "eduPersonEntitlement" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "urn:mace:dir:attribute-def:eduPersonEntitlement" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "eduPersonNickname" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "urn:mace:dir:attribute-def:eduPersonNickname" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "eduPersonOrgDN" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "urn:mace:dir:attribute-def:eduPersonOrgDN" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "eduPersonOrgUnitDN" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "eduPersonPrimaryAffiliation" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "eduPersonPrimaryOrgUnitDN" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "eduPersonPrincipalName" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "urn:mace:dir:attribute-def:eduPersonPrincipalName" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "eduPersonScopedAffiliation" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "eduPersonTargetedID" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "urn:mace:dir:attribute-def:eduPersonTargetedID" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "facsimileTelephoneNumber" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:facsimileTelephoneNumber" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "urn:oid:2.5.4.23" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "givenName" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "urn:mace:dir:attribute-def:givenName" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "urn:oid:2.5.4.42" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "homePhone" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "urn:mace:dir:attribute-def:homePhone" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "urn:oid:0.9.2342.19200300.100.1.20" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "homePostalAddress" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "urn:mace:dir:attribute-def:homePostalAddress" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "urn:oid:0.9.2342.19200300.100.1.39" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "jpegPhoto" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "urn:mace:dir:attribute-def:jpegPhoto" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "urn:oid:0.9.2342.19200300.100.1.60" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "l" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "urn:mace:dir:attribute-def:l" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "urn:oid:2.5.4.7" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "labeledURI" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "urn:mace:dir:attribute-def:labeledURI" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "urn:oid:1.3.6.1.4.1.250.1.57" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "mail" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "urn:mace:dir:attribute-def:mail" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "urn:oid:0.9.2342.19200300.100.1.3" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "manager" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "urn:mace:dir:attribute-def:manager" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "urn:oid:0.9.2342.19200300.100.1.10" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "mobile" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "urn:mace:dir:attribute-def:mobile" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "urn:oid:0.9.2342.19200300.100.1.41" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "norEduOrgNIN" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "urn:mace:dir:attribute-def:norEduOrgNIN" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.12" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "norEduPersonBirthDate" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "urn:mace:dir:attribute-def:norEduPersonBirthDate" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.3" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "norEduPersonLIN" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "urn:mace:dir:attribute-def:norEduPersonLIN" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.4" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "norEduPersonNIN" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "urn:mace:dir:attribute-def:norEduPersonNIN" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.5" + +# English string: Organization name +msgid "o" +msgstr "o" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "urn:mace:dir:attribute-def:o" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "urn:oid:2.5.4.10" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "urn:oid:2.5.4.11" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "ou" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "urn:mace:dir:attribute-def:ou" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "postOfficeBox" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "urn:mace:dir:attribute-def:postOfficeBox" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "urn:oid:2.5.4.18" + +# English string: Postal address +msgid "postalAddress" +msgstr "postalAddress" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "urn:mace:dir:attribute-def:postalAddress" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "urn:oid:2.5.4.16" + +# English string: Postal code +msgid "postalCode" +msgstr "postalCode" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "urn:mace:dir:attribute-def:postalCode" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "urn:oid:2.5.4.17" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "preferredLanguage" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "urn:mace:dir:attribute-def:preferredLanguage" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "urn:oid:2.16.840.1.113730.3.1.39" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "schacHomeOrganization" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganization" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.9" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "urn:schac:attribute-def:schacHomeOrganization" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "schacUserPrivateAttribute" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.18" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "urn:schac:attribute-def:schacUserPrivateAttribute" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "sn" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "urn:mace:dir:attribute-def:sn" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "urn:oid:2.5.4.4" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "street" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "urn:mace:dir:attribute-def:street" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "urn:oid:2.5.4.9" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "telephoneNumber" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "urn:mace:dir:attribute-def:telephoneNumber" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "urn:oid:2.5.4.20" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "title" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "urn:mace:dir:attribute-def:title" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "urn:oid:2.5.4.12" + +# English string: User ID +msgid "uid" +msgstr "uid" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "urn:mace:dir:attribute-def:uid" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "urn:oid:0.9.2342.19200300.100.1.1" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "userPassword" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "urn:mace:dir:attribute-def:userPassword" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "urn:oid:2.5.4.35" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "facebook_cn" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "facebook.name" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "http://axschema.org/namePerson/friendly" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "openid.sreg.nickname" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "http://axschema.org/namePerson" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "openid.sreg.fullname" + +# English string: Display name +msgid "twitter.name" +msgstr "twitter.name" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "windowslive.displayName" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "facebook_user" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "linkedin_user" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "twitter_screen_n_realm" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "windowslive_user" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "windowslive.userPrincipalName" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "facebook_targetedID" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "linkedin_targetedID" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "twitter_targetedID" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "windowslive_targetedID" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "http://axschema.org/contact/phone/fax" + +# English string: Given name +msgid "facebook.first_name" +msgstr "facebook.first_name" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "linkedin.firstName" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "http://axschema.org/namePerson/first" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "windowslive.FirstName" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "windowslive.givenName" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "http://axschema.org/contact/phone/home" + +# English string: Locality +msgid "windowslive.Location" +msgstr "windowslive.Location" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "facebook.profile_url" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "twitter.url" + +# English string: Mail +msgid "facebook.email" +msgstr "facebook.email" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "http://axschema.org/contact/email" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "openid.sreg.email" + +# English string: Mail +msgid "windowslive_mail" +msgstr "windowslive_mail" + +# English string: Mail +msgid "windowslive.mail" +msgstr "windowslive.mail" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "http://axschema.org/contact/phone/cell" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "http://axschema.org/company/name" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "http://axschema.org/contact/postalCode/home" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "openid.sreg.postcode" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "facebook.locale" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "http://axschema.org/pref/language" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "openid.sreg.language" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "twitter.lang" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "windowslive.preferredLanguage" + +# English string: Surname +msgid "facebook.last_name" +msgstr "facebook.last_name" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "linkedin.lastName" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "http://axschema.org/namePerson/last" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "windowslive.LastName" + +# English string: Surname +msgid "windowslive.surname" +msgstr "windowslive.surname" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "http://axschema.org/contact/phone/default" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "http://axschema.org/contact/phone/business" + +# English string: Title +msgid "linkedin.headline" +msgstr "linkedin.headline" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "http://axschema.org/company/title" + +# English string: User ID +msgid "facebook.username" +msgstr "facebook.username" + +# English string: User ID +msgid "linkedin.id" +msgstr "linkedin.id" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "twitter.screen_name" + +# English string: User ID +msgid "windowslive_uid" +msgstr "windowslive_uid" + +# English string: User ID +msgid "windowslive.id" +msgstr "windowslive.id" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/sr/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/sr/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..4463a04e078874d51ecddcff02376d88b55be257 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/sr/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sr\n" +"Plural-Forms: nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Ime i Prezime" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Ime i Prezime" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Ime i Prezime" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Domenska komponenta (DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Domenska komponenta (DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Domenska komponenta (DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Ime za prikaz" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Ime za prikaz" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Ime za prikaz" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "URL adresa institucije" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "URL adresa institucije" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "URL adresa institucije" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Zvanični naziv institucije" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Zvanični naziv institucije" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Zvanični naziv institucije" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Povezanost sa institucijom" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Povezanost sa institucijom" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Povezanost sa institucijom" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Visina pouzdanosti davaoca digitalnih identiteta" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Visina pouzdanosti davaoca digitalnih identiteta" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Visina pouzdanosti davaoca digitalnih identiteta" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Prava i privilegije korisnika na sistemu" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Prava i privilegije korisnika na sistemu" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Prava i privilegije korisnika na sistemu" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Nadimak" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Nadimak" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Nadimak" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Jedinstveni naziv (DN) korisnikove matične institucije" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Jedinstveni naziv (DN) korisnikove matične institucije" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Jedinstveni naziv (DN) korisnikove matične institucije" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Jedinstveni naziv (DN) korisnikove organizacione jedinice" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Jedinstveni naziv (DN) korisnikove organizacione jedinice" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Jedinstveni naziv (DN) korisnikove organizacione jedinice" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Primarna povezanost sa institucijom" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Primarna povezanost sa institucijom" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Primarna povezanost sa institucijom" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Jedinstveni naziv (DN) korisnikove primarne organizacione jedinice" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Jedinstveni naziv (DN) korisnikove primarne organizacione jedinice" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Jedinstveni naziv (DN) korisnikove primarne organizacione jedinice" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Jedinstveni identifikator osobe" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Jedinstveni identifikator osobe" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Jedinstveni identifikator osobe" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Povezanost sa institucijom sa domenom" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Povezanost sa institucijom sa domenom" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Povezanost sa institucijom sa domenom" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Trajni anonimni identifikator" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Trajni anonimni identifikator" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Trajni anonimni identifikator" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Fax broj" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Fax broj" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Fax broj" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Ime" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Ime" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Ime" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Kućni telefonski broj" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Kućni telefonski broj" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Kućni telefonski broj" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Kućna poštanska adresa" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Kućna poštanska adresa" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Kućna poštanska adresa" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "Slika osobe" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "Slika osobe" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "Slika osobe" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Lokacija(Mesto)" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Lokacija(Mesto)" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Lokacija(Mesto)" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "URI adresa" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "URI adresa" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "URI adresa" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "Elektronska adresa" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "Elektronska adresa" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "Elektronska adresa" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Rukovodilac" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Rukovodilac" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Rukovodilac" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Broj mobilnog telefona" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Broj mobilnog telefona" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Broj mobilnog telefona" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Jedinstveni brojni identifikator institucije" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Jedinstveni brojni identifikator institucije" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Jedinstveni brojni identifikator institucije" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Datum rođenja" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Datum rođenja" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Datum rođenja" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Lokalni brojni identifikator osobe" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Lokalni brojni identifikator osobe" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Lokalni brojni identifikator osobe" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Jedinstveni brojni identifikator osobe" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Jedinstveni brojni identifikator osobe" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Jedinstveni brojni identifikator osobe" + +# English string: Organization name +msgid "o" +msgstr "Naziv matične institucije" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Naziv matične institucije" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Naziv matične institucije" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Organizaciona jedinica" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Organizaciona jedinica" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Organizaciona jedinica" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Broj poštanskog sandučeta" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Broj poštanskog sandučeta" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Broj poštanskog sandučeta" + +# English string: Postal address +msgid "postalAddress" +msgstr "Poštanska adresa" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Poštanska adresa" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Poštanska adresa" + +# English string: Postal code +msgid "postalCode" +msgstr "Poštanski broj" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Poštanski broj" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Poštanski broj" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Preferirani jezik" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Preferirani jezik" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Preferirani jezik" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Domen matične institucije" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Domen matične institucije" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Domen matične institucije" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Domen matične institucije" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Privatni atribut" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Privatni atribut" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Privatni atribut" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Privatni atribut" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Prezime" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Prezime" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Prezime" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Ulica i broj" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Ulica i broj" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Ulica i broj" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Telefonski broj" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Telefonski broj" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Telefonski broj" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Zvanje" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Zvanje" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Zvanje" + +# English string: User ID +msgid "uid" +msgstr "Korisničko ime" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Korisničko ime" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Korisničko ime" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Heš vrednost korisnikove lozinke" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Heš vrednost korisnikove lozinke" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Heš vrednost korisnikove lozinke" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Ime i Prezime" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Ime za prikaz" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Ime za prikaz" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Ime za prikaz" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Ime za prikaz" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Ime za prikaz" + +# English string: Display name +msgid "twitter.name" +msgstr "Ime za prikaz" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Ime za prikaz" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Jedinstveni identifikator osobe" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Jedinstveni identifikator osobe" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Jedinstveni identifikator osobe" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Jedinstveni identifikator osobe" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Jedinstveni identifikator osobe" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Trajni anonimni identifikator" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Trajni anonimni identifikator" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Trajni anonimni identifikator" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Trajni anonimni identifikator" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Fax broj" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Ime" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Ime" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Ime" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Ime" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Ime" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Kućni telefonski broj" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Lokacija(Mesto)" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "URI adresa" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "URI adresa" + +# English string: Mail +msgid "facebook.email" +msgstr "Elektronska adresa" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "Elektronska adresa" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "Elektronska adresa" + +# English string: Mail +msgid "windowslive_mail" +msgstr "Elektronska adresa" + +# English string: Mail +msgid "windowslive.mail" +msgstr "Elektronska adresa" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Broj mobilnog telefona" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Naziv matične institucije" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Poštanski broj" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Poštanski broj" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Preferirani jezik" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Preferirani jezik" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Preferirani jezik" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Preferirani jezik" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Preferirani jezik" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Prezime" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Prezime" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Prezime" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Prezime" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Prezime" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Telefonski broj" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Telefonski broj" + +# English string: Title +msgid "linkedin.headline" +msgstr "Zvanje" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Zvanje" + +# English string: User ID +msgid "facebook.username" +msgstr "Korisničko ime" + +# English string: User ID +msgid "linkedin.id" +msgstr "Korisničko ime" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Korisničko ime" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Korisničko ime" + +# English string: User ID +msgid "windowslive.id" +msgstr "Korisničko ime" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/sr/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/sr/LC_MESSAGES/messages.po index dc6e00551f209ba20c47ec5b8d8ada81ae7a1e50..eec871b9727491bd8f8645f2337a5c558c394dd4 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/sr/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/sr/LC_MESSAGES/messages.po @@ -54,12 +54,6 @@ msgstr "Greška prilikom učitavanja metapodataka" msgid "{admin:metaconv_title}" msgstr "Metadata analizator" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Prava i privilegije korisnika na sistemu" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "Slika osobe" - msgid "{admin:cfg_check_noerrors}" msgstr "Nije pronađena nijedna greška." @@ -140,9 +134,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Natrag na početnu stranicu SimpleSAMLphp instalacije" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "WS-Federation Davalac Servisa (udaljeni)" - msgid "{errors:error_header}" msgstr "SimpleSAMLphp greška" @@ -161,18 +152,12 @@ msgstr "" " ovog servisa, trebalo bi da proverite da li su metapodaci ispravno " "podešeni." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Jedinstveni naziv (DN) korisnikove matične institucije" - msgid "{errors:title_BADREQUEST}" msgstr "Dobijeni zahtev nije ispravan" msgid "{status:sessionsize}" msgstr "Veličina sesije: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Poštanska adresa" - msgid "{logout:title}" msgstr "Odjavljeni ste" @@ -194,30 +179,15 @@ msgstr "Na čekanju" msgid "{admin:cfg_check_header}" msgstr "Provera podešavanja" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Povezanost sa institucijom sa domenom" - -msgid "{attributes:attribute_sn}" -msgstr "Prezime" - msgid "{admin:debug_sending_message_send}" msgstr "Pošalji poruku" msgid "{status:logout}" msgstr "Odjava" -msgid "{attributes:attribute_organisationname}" -msgstr "Naziv matične institucije" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Telefonski broj" - msgid "{errors:descr_DISCOPARAMS}" msgstr "Parametri poslati servisu za lociranje nisu u ispravnom formatu." -msgid "{attributes:attribute_mail}" -msgstr "Elektronska adresa" - msgid "{errors:descr_CREATEREQUEST}" msgstr "Desila se greška prilikom pokušaja kreiranja SAML zahteva." @@ -227,9 +197,6 @@ msgstr "Opciona polja" msgid "{logout:return}" msgstr "Povratak u aplikaciju" -msgid "{attributes:attribute_displayname}" -msgstr "Ime za prikaz" - msgid "{admin:metadata_xmlurl}" msgstr "Metapodaci su dostupni na <a href=\"%METAURL%\">ovoj adresi</a>:" @@ -241,9 +208,6 @@ msgstr "" "Debug mod možete isključiti u glavnom SimpleSAMLphp konfiguracionom fajlu" " <tt>config/config.php</tt>. " -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Kućna poštanska adresa" - msgid "{disco:select}" msgstr "Odaberi" @@ -270,9 +234,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Želite li se odjaviti iz svih gore navedenih servisa?" -msgid "{attributes:attribute_title}" -msgstr "Zvanje" - msgid "{errors:title_NOACCESS}" msgstr "Pristup nije dozvoljen" @@ -287,9 +248,6 @@ msgstr "Parametar RelayState nije zadan" msgid "{errors:descr_NOSTATE}" msgstr "Podaci o stanju su izgubljeni i zahtev se ne može reprodukovati" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Jedinstveni brojni identifikator osobe" - msgid "{login:password}" msgstr "Lozinka" @@ -316,24 +274,15 @@ msgstr "Greška pri obradi zahteva za odjavu" msgid "{admin:metaover_errorentry}" msgstr "Ovaj zapis metapodataka sadrži grešku" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Povezanost sa institucijom" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Metapodaci nisu pronađeni" -msgid "{attributes:attribute_givenname}" -msgstr "Ime" - msgid "{login:contact_info}" msgstr "Kontakt podaci:" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Neobrađena greška" -msgid "{status:validfor}" -msgstr "Vaša sesija će biti validna još %SECONDS% sekundi." - msgid "{status:header_saml20_sp}" msgstr "SAML 2.0 SP Demo Primer" @@ -369,30 +318,18 @@ msgstr "" "Neuspešna autentifikacija: digitalni sertifikat koji je poslao vaš web " "pretraživač je nepoznat" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "URL adresa institucije" - msgid "{logout:logging_out_from}" msgstr "Odjavljujete se iz sledećih servisa" msgid "{logout:loggedoutfrom}" msgstr "Uspešno ste odjavljeni iz %SP%." -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "WS-Federation Davalac Servisa (lokalni)" - msgid "{errors:errorreport_text}" msgstr "Prijava greške poslata je administratorima." -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Datum rođenja" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "Došlo je do greške prilikom pokušaja obrade zahteva za odjavom." -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Trajni anonimni identifikator" - msgid "{logout:success}" msgstr "Uspešno ste se odjavili iz svih gore navedenih servisa." @@ -402,12 +339,6 @@ msgstr "Napomene" msgid "{errors:descr_USERABORTED}" msgstr "Korisnik je prekinuo proces autentifikacie" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Primarna povezanost sa institucijom" - -msgid "{attributes:attribute_postalcode}" -msgstr "Poštanski broj" - msgid "{errors:descr_CASERROR}" msgstr "Greška prilikom komunikacije sa CAS serverom." @@ -420,9 +351,6 @@ msgstr "SAML 2.0 SP metapodaci" msgid "{admin:metaconv_converted}" msgstr "Konvertovani metapodaci" -msgid "{attributes:attribute_cn}" -msgstr "Ime i Prezime" - msgid "{logout:completed}" msgstr "Završeno" @@ -432,18 +360,9 @@ msgstr "" "<i>auth.adminpassword</i>) i dalje ima izvornu vrednost. Molimo Vas " "izmenite konfiguracioni fajl." -msgid "{attributes:attribute_ou}" -msgstr "Organizaciona jedinica" - msgid "{general:service_provider}" msgstr "Davalac Servisa" -msgid "{attributes:attribute_homephone}" -msgstr "Kućni telefonski broj" - -msgid "{attributes:attribute_dc}" -msgstr "Domenska komponenta (DC)" - msgid "{errors:descr_BADREQUEST}" msgstr "Dogodila se greška prilikom dohvatanja ove stranice. Razlog: %REASON%" @@ -462,23 +381,14 @@ msgstr "Unesite vaše korisničko ime i lozinku" msgid "{errors:report_explain}" msgstr "Opišite šta ste radili kada se ova greška desila..." -msgid "{attributes:attribute_manager}" -msgstr "Rukovodilac" - msgid "{errors:title_ACSPARAMS}" msgstr "Nije dostavljen SAML odgovor" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Nadimak" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Pristupili ste interfejsu za jedinstvenu odjavu sa sistema, ali niste " "poslali SAML <i>LogoutRequest</i> ili <i>LogoutResponse</i> poruku." -msgid "{attributes:attribute_street}" -msgstr "Ulica i broj" - msgid "{login:organization}" msgstr "Institucija" @@ -518,9 +428,6 @@ msgstr "Izaberite matičnu instituciju" msgid "{admin:cfg_check_superfluous}" msgstr "Suvišni parametri u konfiguracionom fajlu" -msgid "{attributes:attribute_labeleduri}" -msgstr "URI adresa" - msgid "{errors:report_email}" msgstr "e-mail adresa:" @@ -536,9 +443,6 @@ msgstr "" "koji sadrži adresu na koju treba preusmeriti korisnikov web pretraživač " "nakon uspešne autentifikacije." -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Pravno ime" - msgid "{status:header_diagnostics}" msgstr "SimpleSAMLphp Dijagnostika" @@ -548,9 +452,6 @@ msgstr "" " možete videti je li vam je istekla sesija, koliko će još dugo vaša " "sesija trajati i sve atribute koji su vezani uz vašu sesiju." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Domen matične institucije" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Stranica nije pronađena" @@ -569,30 +470,18 @@ msgstr "Da biste videli detalje o SAML entitetu, kliknite na njegovo zaglavlje." msgid "{errors:title_NOTVALIDCERT}" msgstr "Neispravan sertifikat" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Jedinstveni naziv (DN) korisnikove organizacione jedinice" - msgid "{general:remember}" msgstr "Zapamti moj izbor" msgid "{disco:selectidp}" msgstr "Odaberite vašeg davaoca identiteta" -msgid "{attributes:attribute_postofficebox}" -msgstr "Broj poštanskog sandučeta" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Jedinstveni identifikator osobe" - msgid "{login:help_desk_email}" msgstr "Pošalji e-mail službi za podršku korisnicima" msgid "{login:help_desk_link}" msgstr "Stranice službe za podršku korisnicima" -msgid "{attributes:attribute_uid}" -msgstr "Korisničko ime" - msgid "{errors:title_CASERROR}" msgstr "CAS greška" @@ -613,12 +502,6 @@ msgstr "Zapamti moj izbor" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "SAML 2.0 Davalac Servisa (lokalni)" -msgid "{attributes:attribute_l}" -msgstr "Lokacija(Mesto)" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Visina pouzdanosti davaoca digitalnih identiteta" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "U SimpleSAMLphp formatu - koristite ovu opciju ako se na drugoj strani " @@ -663,9 +546,6 @@ msgstr "Poruka" msgid "{errors:title_UNKNOWNCERT}" msgstr "Nepoznat digitalni sertifikat" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Fax broj" - msgid "{errors:title_LDAPERROR}" msgstr "LDAP greška" @@ -684,15 +564,9 @@ msgstr "" " podešavanja SimpleSAMLphp-a. Kontaktirajte administratora ovog servisa i" " pošaljite mu poruku o grešci prikazanu iznad." -msgid "{attributes:attribute_mobile}" -msgstr "Broj mobilnog telefona" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Shib 1.3 Davalac Identiteta(lokalni)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Preferirani jezik" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Niste dostavili validan setifikat." @@ -705,15 +579,6 @@ msgstr "Nisu pronađena sledeća opciona polja" msgid "{logout:logout_only}" msgstr "Ne, samo iz %SP%" -msgid "{attributes:attribute_o}" -msgstr "Naziv matične institucije" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Jedinstveni naziv (DN) korisnikove primarne organizacione jedinice" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Lokalni brojni identifikator osobe" - msgid "{login:next}" msgstr "Dalje" @@ -735,9 +600,6 @@ msgstr "" msgid "{errors:title_NOCERT}" msgstr "Nema digitalnog sertifikata" -msgid "{attributes:attribute_userpassword}" -msgstr "Heš vrednost korisnikove lozinke" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Informacija o odjavljivanju je izgubljena" @@ -753,12 +615,6 @@ msgstr "" "metapodatke možete poslati davaocima servisa ili davaocima identiteta u " "koje imate poverenja i sa kojima želite uspostaviti federaciju." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Privatni atribut" - -msgid "{status:header_wsfed}" -msgstr "WS-Fed SP Demo Primer" - msgid "{admin:metadata_cert}" msgstr "Sertifikati" @@ -767,18 +623,12 @@ msgstr "" "Neuspešna autentifikacija: digitalni sertifikat koji je poslao vaš web " "pretraživač nije ispravan ili se ne može pročitati" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Zvanični naziv institucije" - msgid "{status:header_shib}" msgstr "Shibboleth Demo" msgid "{admin:metaconv_parse}" msgstr "Analiziraj" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Jedinstveni brojni identifikator institucije" - msgid "Person's principal name at home organization" msgstr "Jedinstveni identifikator osobe" @@ -1115,8 +965,8 @@ msgstr "" " pošaljite mu poruku o grešci prikazanu iznad." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Vaša sesija će biti validna još %SECONDS% sekundi." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Vaša sesija će biti validna još %remaining% sekundi." msgid "Domain component (DC)" msgstr "Domenska komponenta (DC)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/sv/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/sv/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..f1e5a0c5ed0021368a3fcf84b75706c2af225290 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/sv/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sv\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Fullständigt namn" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Fullständigt namn" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Fullständigt namn" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Domännamnskomponent" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Domännamnskomponent" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Domännamnskomponent" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Visningsnamn" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Visningsnamn" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Visningsnamn" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Organisationens hemsida" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Organisationens hemsida" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Organisationens hemsida" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Organisationens legala namn" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Organisationens legala namn" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Organisationens legala namn" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Anknytning" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Anknytning" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Anknytning" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Identitetens tillförlitlighetsprofil" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Identitetens tillförlitlighetsprofil" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Identitetens tillförlitlighetsprofil" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Roll(er) i aktuell tjänst" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Roll(er) i aktuell tjänst" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Roll(er) i aktuell tjänst" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Smeknamn" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Smeknamn" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Smeknamn" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "LDAP-pekare (DN) till personens organisation" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "LDAP-pekare (DN) till personens organisation" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "LDAP-pekare (DN) till personens organisation" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "LDAP-pekare (DN) till personens organisationsenhet" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "LDAP-pekare (DN) till personens organisationsenhet" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "LDAP-pekare (DN) till personens organisationsenhet" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Primär anknytning" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Primär anknytning" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Primär anknytning" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "LDAP-pekare (DN) till personens pimära organisationsenhet" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "LDAP-pekare (DN) till personens pimära organisationsenhet" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "LDAP-pekare (DN) till personens pimära organisationsenhet" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Användaridentitet vid din organisationen" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Användaridentitet vid din organisationen" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Användaridentitet vid din organisationen" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Grupptillhörighet" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Grupptillhörighet" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Grupptillhörighet" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Varaktig anonym identitet i aktuell tjänst" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Varaktig anonym identitet i aktuell tjänst" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Varaktig anonym identitet i aktuell tjänst" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Faxnummer" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Faxnummer" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Faxnummer" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Förnamn" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Förnamn" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Förnamn" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Hemtelefon" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Hemtelefon" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Hemtelefon" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Hemadress" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Hemadress" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Hemadress" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "JPEG-bild" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "JPEG-bild" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "JPEG-bild" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Plats" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Plats" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Plats" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "Hemsida" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "Hemsida" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "Hemsida" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "E-postadress" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "E-postadress" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "E-postadress" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Chef" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Chef" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Chef" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Mobiltelefon" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Mobiltelefon" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Mobiltelefon" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Organisationsnummer" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Organisationsnummer" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Organisationsnummer" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Födelsedata" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Födelsedata" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Födelsedata" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Lokal identifierare" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Lokal identifierare" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Lokal identifierare" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Officiellt personnummer eller intermimspersonnummer" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Officiellt personnummer eller intermimspersonnummer" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Officiellt personnummer eller intermimspersonnummer" + +# English string: Organization name +msgid "o" +msgstr "Namn på organisationen" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Namn på organisationen" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Namn på organisationen" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Organisationsenhet" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Organisationsenhet" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Organisationsenhet" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Box" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Box" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Box" + +# English string: Postal address +msgid "postalAddress" +msgstr "Postadress" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Postadress" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Postadress" + +# English string: Postal code +msgid "postalCode" +msgstr "Postkod" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Postkod" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Postkod" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Önskvärt språk" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Önskvärt språk" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Önskvärt språk" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Domännamn för organisationen" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Domännamn för organisationen" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Domännamn för organisationen" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Domännamn för organisationen" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Information om vilka attribut som har skyddsbehov" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Information om vilka attribut som har skyddsbehov" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Information om vilka attribut som har skyddsbehov" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Information om vilka attribut som har skyddsbehov" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Efternamn" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Efternamn" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Efternamn" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Gata" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Gata" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Gata" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Telefonnummer" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Telefonnummer" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Telefonnummer" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Titel" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Titel" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Titel" + +# English string: User ID +msgid "uid" +msgstr "Användaridentitet" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Användaridentitet" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Användaridentitet" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Användarens lösenordshash" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Användarens lösenordshash" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Användarens lösenordshash" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Fullständigt namn" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Visningsnamn" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Visningsnamn" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Visningsnamn" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Visningsnamn" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Visningsnamn" + +# English string: Display name +msgid "twitter.name" +msgstr "Visningsnamn" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Visningsnamn" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Användaridentitet vid din organisationen" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Användaridentitet vid din organisationen" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Användaridentitet vid din organisationen" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Användaridentitet vid din organisationen" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Användaridentitet vid din organisationen" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Varaktig anonym identitet i aktuell tjänst" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Varaktig anonym identitet i aktuell tjänst" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Varaktig anonym identitet i aktuell tjänst" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Varaktig anonym identitet i aktuell tjänst" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Faxnummer" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Förnamn" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Förnamn" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Förnamn" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Förnamn" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Förnamn" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Hemtelefon" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Plats" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "Hemsida" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "Hemsida" + +# English string: Mail +msgid "facebook.email" +msgstr "E-postadress" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "E-postadress" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "E-postadress" + +# English string: Mail +msgid "windowslive_mail" +msgstr "E-postadress" + +# English string: Mail +msgid "windowslive.mail" +msgstr "E-postadress" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Mobiltelefon" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Namn på organisationen" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Postkod" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Postkod" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Önskvärt språk" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Önskvärt språk" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Önskvärt språk" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Önskvärt språk" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Önskvärt språk" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Efternamn" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Efternamn" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Efternamn" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Efternamn" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Efternamn" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Telefonnummer" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Telefonnummer" + +# English string: Title +msgid "linkedin.headline" +msgstr "Titel" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Titel" + +# English string: User ID +msgid "facebook.username" +msgstr "Användaridentitet" + +# English string: User ID +msgid "linkedin.id" +msgstr "Användaridentitet" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Användaridentitet" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Användaridentitet" + +# English string: User ID +msgid "windowslive.id" +msgstr "Användaridentitet" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/sv/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/sv/LC_MESSAGES/messages.po index e9cd592c9f17c840e505adaf7fb6bf2036a5861a..c090e00df8d13cd2a665be92eb3dcc321bfb60c0 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/sv/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/sv/LC_MESSAGES/messages.po @@ -50,12 +50,6 @@ msgstr "Fel vi laddandet av metadata" msgid "{admin:metaconv_title}" msgstr "Metadataanalyserare" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Roll(er) i aktuell tjänst" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "JPEG-bild" - msgid "{admin:cfg_check_noerrors}" msgstr "Inga fel funna." @@ -135,9 +129,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "Åter till installationssidan för SimpleSAMLphp" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "WS-Federation Service Provider (Fjärr)" - msgid "{errors:error_header}" msgstr "SimpleSAMLphp fel" @@ -156,18 +147,12 @@ msgstr "" " du är adminstratör av tjänsten ska du kontrollera om konfigurationen av " "metadata är rätt konfigurerad." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "LDAP-pekare (DN) till personens organisation" - msgid "{errors:title_BADREQUEST}" msgstr "Felaktigt anrop" msgid "{status:sessionsize}" msgstr "Sessionsstorlek: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Postadress" - msgid "{logout:title}" msgstr "Utloggad" @@ -189,32 +174,17 @@ msgstr "Vilande" msgid "{admin:cfg_check_header}" msgstr "Konfigurationskontroll" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Grupptillhörighet" - -msgid "{attributes:attribute_sn}" -msgstr "Efternamn" - msgid "{admin:debug_sending_message_send}" msgstr "Skicka meddelande" msgid "{status:logout}" msgstr "Logga ut" -msgid "{attributes:attribute_organisationname}" -msgstr "Namn på organisationen" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Telefonnummer" - msgid "{errors:descr_DISCOPARAMS}" msgstr "" "Parametrarna som skickades till lokaliseringstjänsten följde inte " "specifikationen." -msgid "{attributes:attribute_mail}" -msgstr "E-postadress" - msgid "{errors:descr_CREATEREQUEST}" msgstr "Ett fel har inträffat vid försöket att skapa en SAML-förfrågan." @@ -224,9 +194,6 @@ msgstr "Frivilliga alternativ" msgid "{logout:return}" msgstr "Åter till tjänsten" -msgid "{attributes:attribute_displayname}" -msgstr "Visningsnamn" - msgid "{admin:metadata_xmlurl}" msgstr "" "Du kan <a href=\"%METAURL%\">hämta metadata i XML-format på dedicerad " @@ -240,9 +207,6 @@ msgstr "" "Du kan stänga av debugläget i SimpleSAMLphps globala konfigurationsfil " "<tt>config/config.php</tt>." -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Hemadress" - msgid "{disco:select}" msgstr "Välj" @@ -270,9 +234,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Vill du logga ut från alla ovanstående tjänster?" -msgid "{attributes:attribute_title}" -msgstr "Titel" - msgid "{errors:title_NOACCESS}" msgstr "Ingen åtkomst" @@ -289,9 +250,6 @@ msgstr "" "Sessionsinformationen är borttappad och det är inte möjligt att " "återstarta förfrågan" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Officiellt personnummer eller intermimspersonnummer" - msgid "{login:password}" msgstr "Lösenord" @@ -318,24 +276,15 @@ msgstr "Fel vid utloggningsförfrågan" msgid "{admin:metaover_errorentry}" msgstr "Fel i dessa metadat" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Anknytning" - msgid "{errors:title_METADATANOTFOUND}" msgstr "Metadata saknas" -msgid "{attributes:attribute_givenname}" -msgstr "Förnamn" - msgid "{login:contact_info}" msgstr "Kontaktinformation:" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Ohanterat undantag" -msgid "{status:validfor}" -msgstr "Din session är giltig för %SECONDS% sekunder från nu." - msgid "{status:header_saml20_sp}" msgstr "SAML 2.0 SP demoexempel" @@ -369,30 +318,18 @@ msgstr "Välj vilken konfigurationfil som ska kontrolleras:" msgid "{errors:descr_UNKNOWNCERT}" msgstr "Inloggning mislyckades: Certifikatet som din webbläsare skickade är okänt" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Organisationens hemsida" - msgid "{logout:logging_out_from}" msgstr "Loggar ut från följande tjänster:" msgid "{logout:loggedoutfrom}" msgstr "Du har nu loggat ut från %SP%." -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "WS-Federation Service Provider (Värd)" - msgid "{errors:errorreport_text}" msgstr "Felrapporten är skickad till den som sköter systemet." -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Födelsedata" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "Ett fel uppstod när utloggningsförfrågan skulle bearbetas." -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Varaktig anonym identitet i aktuell tjänst" - msgid "{logout:success}" msgstr "Du har loggat ut från alla nedanstående tjänster." @@ -402,12 +339,6 @@ msgstr "Meddelanden" msgid "{errors:descr_USERABORTED}" msgstr "Inloggning avbröts av användaren" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Primär anknytning" - -msgid "{attributes:attribute_postalcode}" -msgstr "Postkod" - msgid "{errors:descr_CASERROR}" msgstr "Ett fel uppstod vid kommunikation med CAS-servern." @@ -420,9 +351,6 @@ msgstr "SAML 2.0 SP Metadata" msgid "{admin:metaconv_converted}" msgstr "Omformat metadata" -msgid "{attributes:attribute_cn}" -msgstr "Fullständigt namn" - msgid "{logout:completed}" msgstr "Klar" @@ -431,18 +359,9 @@ msgstr "" "Konfigurationslösenordet (auth.adminpassword) är inte ändrat från " "standardvärdet. Uppdatera kongiruationen med ett nytt lösenord!" -msgid "{attributes:attribute_ou}" -msgstr "Organisationsenhet" - msgid "{general:service_provider}" msgstr "Tjänsteleverantör" -msgid "{attributes:attribute_homephone}" -msgstr "Hemtelefon" - -msgid "{attributes:attribute_dc}" -msgstr "Domännamnskomponent" - msgid "{errors:descr_BADREQUEST}" msgstr "Det är ett fel i anropet till denna sida. Orsak: %REASON%" @@ -461,23 +380,14 @@ msgstr "Ange ditt användarnamn och lösenord" msgid "{errors:report_explain}" msgstr "Förklara hur felet uppstod..." -msgid "{attributes:attribute_manager}" -msgstr "Chef" - msgid "{errors:title_ACSPARAMS}" msgstr "Inget SAML-svar tillhandahölls" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Smeknamn" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "Du har anroppat tjänsten för Single Sing-Out utan att skicka med någon " "SAML LogoutRequest eller LogoutResponse." -msgid "{attributes:attribute_street}" -msgstr "Gata" - msgid "{login:organization}" msgstr "Organisation" @@ -517,9 +427,6 @@ msgstr "Ändra organisation" msgid "{admin:cfg_check_superfluous}" msgstr "Överflödiga alternativ i konfigurationsfilen" -msgid "{attributes:attribute_labeleduri}" -msgstr "Hemsida" - msgid "{errors:report_email}" msgstr "E-postadress" @@ -534,9 +441,6 @@ msgstr "" "Avsändaren av denna förfrågan hade ingen parameter för RelayState vilket " "medför att nästa plats inte är definierad." -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Officiellt (legalt) namn" - msgid "{status:header_diagnostics}" msgstr "SimpleSAMLphp diagnostik " @@ -546,9 +450,6 @@ msgstr "" "har gått ut, hur länge det dröjer innan den går ut samt alla attribut som" " tillhör sessionen." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Domännamn för organisationen" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Sidan finns inte" @@ -569,30 +470,18 @@ msgstr "" msgid "{errors:title_NOTVALIDCERT}" msgstr "Felaktigt certifikat" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "LDAP-pekare (DN) till personens organisationsenhet" - msgid "{general:remember}" msgstr "Spara samtycke" msgid "{disco:selectidp}" msgstr "Välj din identitetsleverantör" -msgid "{attributes:attribute_postofficebox}" -msgstr "Box" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Användaridentitet vid din organisationen" - msgid "{login:help_desk_email}" msgstr "Skicka e-post till helpdesk" msgid "{login:help_desk_link}" msgstr "Hemsida för helpdesk" -msgid "{attributes:attribute_uid}" -msgstr "Användaridentitet" - msgid "{errors:title_CASERROR}" msgstr "CAS-error" @@ -613,12 +502,6 @@ msgstr "Kom ihåg mitt val" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "SAML 2.0 Service Provider (Värd)" -msgid "{attributes:attribute_l}" -msgstr "Plats" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Identitetens tillförlitlighetsprofil" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "I filformatet för simpleSAML, använd detta detta format om SimpleSAMLphp " @@ -663,9 +546,6 @@ msgstr "Meddelande" msgid "{errors:title_UNKNOWNCERT}" msgstr "Okänt certfikat" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Faxnummer" - msgid "{errors:title_LDAPERROR}" msgstr "LDAP-fel" @@ -684,15 +564,9 @@ msgstr "" " av SimpleSAMLphp. Kontakta den som sköter inloggningtjänsten för att " "meddela dem ovanstående felmeddelande." -msgid "{attributes:attribute_mobile}" -msgstr "Mobiltelefon" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Shib 1.3 Identity Provider (Värd)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Önskvärt språk" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Du tillhandahöll inget godkänt certifikat" @@ -707,15 +581,6 @@ msgstr "Följande frivilliga alternativ hittades inte" msgid "{logout:logout_only}" msgstr "Nej, endast %SP%" -msgid "{attributes:attribute_o}" -msgstr "Namn på organisationen" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "LDAP-pekare (DN) till personens pimära organisationsenhet" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Lokal identifierare" - msgid "{login:next}" msgstr "Nästa" @@ -733,9 +598,6 @@ msgstr "Den angivna sidan finns inte. Orsak: %REASON% URL: %URL%" msgid "{errors:title_NOCERT}" msgstr "Inget certfikat" -msgid "{attributes:attribute_userpassword}" -msgstr "Användarens lösenordshash" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Utloggningsinformation är borta" @@ -751,12 +613,6 @@ msgstr "" "betrodd federation kan du skicka metadata till de parter du har " "förtroende för." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Information om vilka attribut som har skyddsbehov" - -msgid "{status:header_wsfed}" -msgstr "WS-Fed SP demoexempel" - msgid "{admin:metadata_cert}" msgstr "Certifikat" @@ -765,18 +621,12 @@ msgstr "" "Inloggning mislyckades: Certfikatet som din webbläsare skickade var " "felaktigt eller kunde inte läsas" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Organisationens legala namn" - msgid "{status:header_shib}" msgstr "Shibboleth demoexempel" msgid "{admin:metaconv_parse}" msgstr "Analysera" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Organisationsnummer" - msgid "Person's principal name at home organization" msgstr "Användaridentitet vid din organisationen" @@ -1112,8 +962,8 @@ msgstr "" "meddela dem ovanstående felmeddelande." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Din session är giltig för %SECONDS% sekunder från nu." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Din session är giltig för %remaining% sekunder från nu." msgid "Domain component (DC)" msgstr "Domännamnskomponent" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/tr/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/tr/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..e700e070a4460c157919d955062b6da2adc09a95 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/tr/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: tr\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Ortak ad" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Ortak ad" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Ortak ad" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Alan bileşeni" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Alan bileşeni" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Alan bileşeni" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Görüntülenen isim" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Görüntülenen isim" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Görüntülenen isim" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Kurumsal websayfası" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Kurumsal websayfası" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Kurumsal websayfası" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Organizasyonu'un resmi adı" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Organizasyonu'un resmi adı" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Organizasyonu'un resmi adı" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Bağlantı" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Bağlantı" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Bağlantı" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "eduPersonAssurance" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "urn:mace:dir:attribute-def:eduPersonAssurance" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Servise göre yetki" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Servise göre yetki" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Servise göre yetki" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Takma ad" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Takma ad" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Takma ad" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Kişinin bağlı olduğu kuruluşun belirgin adı" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Kişinin bağlı olduğu kuruluşun belirgin adı" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Kişinin bağlı olduğu kuruluşun belirgin adı" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Kişinin bağlı olduğu birimin belirgin adı" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Kişinin bağlı olduğu birimin belirgin adı" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Kişinin bağlı olduğu birimin belirgin adı" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Öncelikli bağlantı" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Öncelikli bağlantı" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Öncelikli bağlantı" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Kişinin öncelikli Kurumsal Birimi'nin belirgin adı" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Kişinin öncelikli Kurumsal Birimi'nin belirgin adı" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Kişinin öncelikli Kurumsal Birimi'nin belirgin adı" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Kişinin bağlı olduğu kuruluştaki asıl adı" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Kişinin bağlı olduğu kuruluştaki asıl adı" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Kişinin bağlı olduğu kuruluştaki asıl adı" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Bağlı olunan kuruluşla bağlantı" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Bağlı olunan kuruluşla bağlantı" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Bağlı olunan kuruluşla bağlantı" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Kalıcı takma adı ID" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Kalıcı takma adı ID" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Kalıcı takma adı ID" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Faks numarası" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Faks numarası" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Faks numarası" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Verilen isim" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Verilen isim" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Verilen isim" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Ev telefonu" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Ev telefonu" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Ev telefonu" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Ev posta adresi" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Ev posta adresi" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Ev posta adresi" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "JPEG fotoğraf" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "JPEG fotoğraf" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "JPEG fotoğraf" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Bölge" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Bölge" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Bölge" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "Etiketlenen URI" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "Etiketlenen URI" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "Etiketlenen URI" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "Posta" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "Posta" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "Posta" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Yönetici" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Yönetici" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Yönetici" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Cep telefonu numarası" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Cep telefonu numarası" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Cep telefonu numarası" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Kurumsal numara" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Kurumsal numara" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Kurumsal numara" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Doğum tarihi" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Doğum tarihi" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Doğum tarihi" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Yerel kimlik numarası" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Yerel kimlik numarası" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Yerel kimlik numarası" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Kamu yetkilileri tarafından belirlenmiş kimlik numarası" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Kamu yetkilileri tarafından belirlenmiş kimlik numarası" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Kamu yetkilileri tarafından belirlenmiş kimlik numarası" + +# English string: Organization name +msgid "o" +msgstr "Organizasyon adı" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Organizasyon adı" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Organizasyon adı" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Organizasyonel birim" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Organizasyonel birim" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Organizasyonel birim" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Posta kutusu" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Posta kutusu" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Posta kutusu" + +# English string: Postal address +msgid "postalAddress" +msgstr "Posta adresi" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Posta adresi" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Posta adresi" + +# English string: Postal code +msgid "postalCode" +msgstr "Posta kodu" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Posta kodu" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Posta kodu" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Tercih edilen dil" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Tercih edilen dil" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Tercih edilen dil" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Ana kuruluş alan adı" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Ana kuruluş alan adı" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Ana kuruluş alan adı" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Ana kuruluş alan adı" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Özel bilgi elemanları" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Özel bilgi elemanları" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Özel bilgi elemanları" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Özel bilgi elemanları" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Soyadı" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Soyadı" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Soyadı" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Sokak" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Sokak" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Sokak" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Telefon numarası" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Telefon numarası" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Telefon numarası" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Başlık" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Başlık" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Başlık" + +# English string: User ID +msgid "uid" +msgstr "Kullanıcı ID" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "Kullanıcı ID" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "Kullanıcı ID" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Kullanıcının şifre karması" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Kullanıcının şifre karması" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Kullanıcının şifre karması" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Ortak ad" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Görüntülenen isim" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Görüntülenen isim" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Görüntülenen isim" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Görüntülenen isim" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Görüntülenen isim" + +# English string: Display name +msgid "twitter.name" +msgstr "Görüntülenen isim" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Görüntülenen isim" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Kişinin bağlı olduğu kuruluştaki asıl adı" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Kişinin bağlı olduğu kuruluştaki asıl adı" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Kişinin bağlı olduğu kuruluştaki asıl adı" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Kişinin bağlı olduğu kuruluştaki asıl adı" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Kişinin bağlı olduğu kuruluştaki asıl adı" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Kalıcı takma adı ID" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Kalıcı takma adı ID" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Kalıcı takma adı ID" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Kalıcı takma adı ID" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Faks numarası" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Verilen isim" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Verilen isim" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Verilen isim" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Verilen isim" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Verilen isim" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Ev telefonu" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Bölge" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "Etiketlenen URI" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "Etiketlenen URI" + +# English string: Mail +msgid "facebook.email" +msgstr "Posta" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "Posta" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "Posta" + +# English string: Mail +msgid "windowslive_mail" +msgstr "Posta" + +# English string: Mail +msgid "windowslive.mail" +msgstr "Posta" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Cep telefonu numarası" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Organizasyon adı" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Posta kodu" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Posta kodu" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Tercih edilen dil" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Tercih edilen dil" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Tercih edilen dil" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Tercih edilen dil" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Tercih edilen dil" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Soyadı" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Soyadı" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Soyadı" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Soyadı" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Soyadı" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Telefon numarası" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Telefon numarası" + +# English string: Title +msgid "linkedin.headline" +msgstr "Başlık" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Başlık" + +# English string: User ID +msgid "facebook.username" +msgstr "Kullanıcı ID" + +# English string: User ID +msgid "linkedin.id" +msgstr "Kullanıcı ID" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "Kullanıcı ID" + +# English string: User ID +msgid "windowslive_uid" +msgstr "Kullanıcı ID" + +# English string: User ID +msgid "windowslive.id" +msgstr "Kullanıcı ID" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/tr/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/tr/LC_MESSAGES/messages.po index b2f9d463de44c8470732c4880cc5dd84d329b106..b882653da59406d27638d4aa3bb1087ab4425ed2 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/tr/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/tr/LC_MESSAGES/messages.po @@ -44,12 +44,6 @@ msgstr "Üstveri (metadata) yüklenmesinde hata" msgid "{admin:metaconv_title}" msgstr "Üstveri (metadata) çözümleyici" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Servise göre yetki" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "JPEG fotoğraf" - msgid "{admin:cfg_check_noerrors}" msgstr "Hata bulunmadı." @@ -123,9 +117,6 @@ msgstr "" msgid "{logout:default_link_text}" msgstr "SimpleSAMLphp kurulum sayfasına geri dön" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "WS-Federasyon Kimlik Sağlayıcı (Uzak sistemde sunulan)" - msgid "{errors:error_header}" msgstr "SimpleSAMLphp hatası" @@ -144,18 +135,12 @@ msgstr "" "servisin yöneticisi sizseniz, üstveri (metadata) ayarlarınızın düzgün bir" " şekilde yapıldığından emin olun." -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Kişinin bağlı olduğu kuruluşun belirgin adı" - msgid "{errors:title_BADREQUEST}" msgstr "Hatalı istek alındı" msgid "{status:sessionsize}" msgstr "Oturum büyüklüğü: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "Posta adresi" - msgid "{logout:title}" msgstr "Çıktınız" @@ -174,30 +159,15 @@ msgstr "Beklemede" msgid "{admin:cfg_check_header}" msgstr "Konfigürasyon kontrolü" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Bağlı olunan kuruluşla bağlantı" - -msgid "{attributes:attribute_sn}" -msgstr "Soyadı" - msgid "{admin:debug_sending_message_send}" msgstr "Mesaj gönder" msgid "{status:logout}" msgstr "Çıkış" -msgid "{attributes:attribute_organisationname}" -msgstr "Kuruluş adı" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "Telefon numarası" - msgid "{errors:descr_DISCOPARAMS}" msgstr "Tanıma servisine gönderilen parametreler tanımlananlara göre değildi." -msgid "{attributes:attribute_mail}" -msgstr "Posta" - msgid "{errors:descr_CREATEREQUEST}" msgstr "SAML isteği oluşturmaya çalışırken bir hata meydana geldi" @@ -207,9 +177,6 @@ msgstr "İsteğe bağlı alanlar" msgid "{logout:return}" msgstr "Servise geri dön" -msgid "{attributes:attribute_displayname}" -msgstr "Görüntülenen isim" - msgid "{admin:metadata_xmlurl}" msgstr "<a href=\"%METAURL%\">Üstveri xml'ini bu bağlantıdan alabilirsiniz</a>:" @@ -221,9 +188,6 @@ msgstr "" "\"Debug\" modunu global SimpleSAMLphp konfigürasyon dosyasında " "<tt>config/config.php</tt> kapatabilirsiniz." -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Ev posta adresi" - msgid "{disco:select}" msgstr "Seç" @@ -250,9 +214,6 @@ msgstr "" msgid "{logout:logout_all_question}" msgstr "Yukarıdaki tüm servislerden çıkmak istiyor musunuz?" -msgid "{attributes:attribute_title}" -msgstr "Başlık" - msgid "{errors:title_NOACCESS}" msgstr "Giriş yok" @@ -264,9 +225,6 @@ msgstr "" msgid "{errors:title_NORELAYSTATE}" msgstr "RelayState verilmemiş." -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Kamu yetkilileri tarafından belirlenmiş kimlik numarası" - msgid "{login:password}" msgstr "Şifre" @@ -293,21 +251,12 @@ msgstr "Çıkış İsteğini işlerken hata oluştu" msgid "{admin:metaover_errorentry}" msgstr "Üstveri (metadata) bilgisinde hata var" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Bağlantı" - -msgid "{attributes:attribute_givenname}" -msgstr "Verilen isim" - msgid "{login:contact_info}" msgstr "İletişim bilgileri:" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Beklenmeyen durum" -msgid "{status:validfor}" -msgstr "Oturumunuz, şu andan itibaren %SECONDS% saniyeliğine geçerlidir." - msgid "{status:header_saml20_sp}" msgstr "SAML 2.0 SP Demo Örneği" @@ -335,39 +284,21 @@ msgstr "Gerekli alanlar" msgid "{admin:cfg_check_select_file}" msgstr "Kontrol edilecek konfigürasyon dosyasını seç:" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Kurumsal websayfası" - msgid "{logout:loggedoutfrom}" msgstr "%SP%'den başarıyla çıktınız." -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "WS-Federasyon Servis Sağlayıcı (Bu sistemde sunulan)" - msgid "{errors:errorreport_text}" msgstr "Hata raporu yöneticilere gönderildi" -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Doğum tarihi" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "Çıkış İsteğini işlemeye çalışırken bir hata oluştu" -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Kalıcı takma adı ID" - msgid "{logout:success}" msgstr "Yukarıda listelenen tüm servislerden başarıyla çıktınız." msgid "{admin:cfg_check_notices}" msgstr "Notlar" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Öncelikli bağlantı" - -msgid "{attributes:attribute_postalcode}" -msgstr "Posta kodu" - msgid "{errors:descr_CASERROR}" msgstr "CAS sunucusu ile iletişim kurarken hata" @@ -380,9 +311,6 @@ msgstr "SAML 2.0 SP Üstveri (Metadata)" msgid "{admin:metaconv_converted}" msgstr "Dönüştürülmüş üstveri (metadata)" -msgid "{attributes:attribute_cn}" -msgstr "Ortak ad" - msgid "{logout:completed}" msgstr "Tamamlandı" @@ -391,18 +319,9 @@ msgstr "" "Yapılandırmadaki (auth.adminpassword) şifrenin öntanımlı değeri " "değişmedi. Lütfen yapılandırma dosyasını düzeltin." -msgid "{attributes:attribute_ou}" -msgstr "Organizasyonel birim" - msgid "{general:service_provider}" msgstr "Servis Sağlayıcı" -msgid "{attributes:attribute_homephone}" -msgstr "Ev telefonu" - -msgid "{attributes:attribute_dc}" -msgstr "Alan bileşeni" - msgid "{errors:descr_BADREQUEST}" msgstr "Bu sayfaya yapılan istekte bir hata var. Nedeni %REASON% idi." @@ -421,23 +340,14 @@ msgstr "Kullanıcı adı ve şifrenizi giriniz" msgid "{errors:report_explain}" msgstr "Bu hatanın neden oluştuğunu açıklayın..." -msgid "{attributes:attribute_manager}" -msgstr "Yönetici" - msgid "{errors:title_ACSPARAMS}" msgstr "SAML cevabı verilmemiş" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Takma ad" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "" "TekliÇıkışServis (SingleLogoutService) arayüzüne giriş yaptınız, ancak " "bir SAML Çıkışİsteği ya da ÇıkışCevabı sağlamadınız." -msgid "{attributes:attribute_street}" -msgstr "Sokak" - msgid "{login:organization}" msgstr "Organizasyon" @@ -474,9 +384,6 @@ msgstr "Organizasyon seçiniz" msgid "{admin:cfg_check_superfluous}" msgstr "Config dosyasındaki gereksiz tercihler" -msgid "{attributes:attribute_labeleduri}" -msgstr "Etiketlenen URI" - msgid "{errors:report_email}" msgstr "E-posta adresi:" @@ -500,9 +407,6 @@ msgstr "" "dolmadığını, oturumunuzun ne kadar sürdüğünü ve oturumunuza ait tüm " "bilgileri buradan görebilirsiniz." -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Ana kuruluş alan adı" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "Sayfa bulunamadı" @@ -523,30 +427,18 @@ msgstr "" msgid "{errors:title_NOTVALIDCERT}" msgstr "Geçerli olmayan sertifika" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Kişinin bağlı olduğu birimin belirgin adı" - msgid "{general:remember}" msgstr "Hatırla" msgid "{disco:selectidp}" msgstr "Kimlik sağlayıcınızı seçiniz." -msgid "{attributes:attribute_postofficebox}" -msgstr "Posta kutusu" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Kişinin bağlı olduğu kuruluştaki asıl adı" - msgid "{login:help_desk_email}" msgstr "Yardım'a e-posta gönderin" msgid "{login:help_desk_link}" msgstr "Yardım anasayfası" -msgid "{attributes:attribute_uid}" -msgstr "Kullanıcı ID" - msgid "{errors:title_CASERROR}" msgstr "CAS Hatası" @@ -567,9 +459,6 @@ msgstr "Seçimimi hatırla" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "SAML 2.0 Servis Sağlayıcı (Bu sistemde sunulan)" -msgid "{attributes:attribute_l}" -msgstr "Bölge" - msgid "{admin:metadata_simplesamlformat}" msgstr "" "Eğer diğer tarafta bir SimpleSAMLphp elemanını kullanıyorsanız, düz " @@ -602,9 +491,6 @@ msgstr "Shib 1.3 Servis Sağlayıcı (Bu sistemde sunulan)" msgid "{admin:debug_sending_message_msg_title}" msgstr "Mesaj" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Faks numarası" - msgid "{errors:title_LDAPERROR}" msgstr "LDAP hatası" @@ -617,15 +503,9 @@ msgstr "" " ndeniyle oluşmuş olabilir. Bu oturum açma servisinin yöneticisi ile " "iletişim kurun ve yukarıdaki hata mesajını gönderin." -msgid "{attributes:attribute_mobile}" -msgstr "Cep telefonu numarası" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Shib 1.3 Kimlik Sağlayıcı (Bu sistemde sunulan)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Tercih edilen dil" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "Geçerli bir sertifika sağlamadınız. " @@ -640,15 +520,6 @@ msgstr "Şu isteğe bağlı alanlar bulunamadı" msgid "{logout:logout_only}" msgstr "Hayır, sadece %SP%" -msgid "{attributes:attribute_o}" -msgstr "Organizasyon adı" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Kişinin öncelikli Kurumsal Birimi'nin belirgin adı" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Yerel kimlik numarası" - msgid "{login:next}" msgstr "Sıradaki" @@ -661,9 +532,6 @@ msgstr "Lütfen, kimlik doğrulaması yapacağınız kimlik sağlayıcıyı seç msgid "{errors:descr_NOTFOUNDREASON}" msgstr "Verilen sayfa bulunamadı. Nedeni %REASON% idi. URL %URL% idi." -msgid "{attributes:attribute_userpassword}" -msgstr "Kullanıcının şifre karması" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "Çıkış bilgisi kaybedildi" @@ -679,24 +547,12 @@ msgstr "" "dokümanını güvenilir bir federasyon kurmak için güvenilir paydaşlara " "gönderebilirsiniz." -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Özel bilgi elemanları" - -msgid "{status:header_wsfed}" -msgstr "WS-Fed SP Demo Örneği" - -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Organizasyonu'un resmi adı" - msgid "{status:header_shib}" msgstr "Shibboleth demo" msgid "{admin:metaconv_parse}" msgstr "Çözümle" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Kurumsal numara" - msgid "Person's principal name at home organization" msgstr "Kişinin bağlı olduğu kuruluştaki asıl adı" @@ -1006,8 +862,8 @@ msgstr "" "iletişim kurun ve yukarıdaki hata mesajını gönderin." #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "Oturumunuz, şu andan itibaren %SECONDS% saniyeliğine geçerlidir." +msgid "Your session is valid for %remaining% seconds from now." +msgstr "Oturumunuz, şu andan itibaren %remaining% saniyeliğine geçerlidir." msgid "Domain component (DC)" msgstr "Alan bileşeni" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/ur/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/ur/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..94a74323c9c3010525c3ff7d61c189d468a9eb0c --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/ur/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ur\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "cn" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "urn:mace:dir:attribute-def:cn" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "urn:oid:2.5.4.3" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "dc" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "urn:mace:dir:attribute-def:dc" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "urn:oid:0.9.2342.19200300.100.1.25" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "displayName" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "urn:mace:dir:attribute-def:displayName" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "urn:oid:2.16.840.1.113730.3.1.241" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "eduOrgHomePageURI" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "urn:mace:dir:attribute-def:eduOrgHomePageURI" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "eduOrgLegalName" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "urn:mace:dir:attribute-def:eduOrgLegalName" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "eduPersonAffiliation" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "urn:mace:dir:attribute-def:eduPersonAffiliation" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "eduPersonAssurance" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "urn:mace:dir:attribute-def:eduPersonAssurance" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "eduPersonEntitlement" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "urn:mace:dir:attribute-def:eduPersonEntitlement" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "eduPersonNickname" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "urn:mace:dir:attribute-def:eduPersonNickname" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "eduPersonOrgDN" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "urn:mace:dir:attribute-def:eduPersonOrgDN" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "eduPersonOrgUnitDN" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "eduPersonPrimaryAffiliation" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "eduPersonPrimaryOrgUnitDN" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "eduPersonPrincipalName" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "urn:mace:dir:attribute-def:eduPersonPrincipalName" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "eduPersonScopedAffiliation" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "eduPersonTargetedID" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "urn:mace:dir:attribute-def:eduPersonTargetedID" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "facsimileTelephoneNumber" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:facsimileTelephoneNumber" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "urn:oid:2.5.4.23" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "givenName" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "urn:mace:dir:attribute-def:givenName" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "urn:oid:2.5.4.42" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "homePhone" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "urn:mace:dir:attribute-def:homePhone" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "urn:oid:0.9.2342.19200300.100.1.20" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "homePostalAddress" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "urn:mace:dir:attribute-def:homePostalAddress" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "urn:oid:0.9.2342.19200300.100.1.39" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "jpegPhoto" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "urn:mace:dir:attribute-def:jpegPhoto" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "urn:oid:0.9.2342.19200300.100.1.60" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "l" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "urn:mace:dir:attribute-def:l" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "urn:oid:2.5.4.7" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "labeledURI" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "urn:mace:dir:attribute-def:labeledURI" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "urn:oid:1.3.6.1.4.1.250.1.57" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "mail" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "urn:mace:dir:attribute-def:mail" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "urn:oid:0.9.2342.19200300.100.1.3" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "manager" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "urn:mace:dir:attribute-def:manager" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "urn:oid:0.9.2342.19200300.100.1.10" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "mobile" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "urn:mace:dir:attribute-def:mobile" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "urn:oid:0.9.2342.19200300.100.1.41" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "norEduOrgNIN" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "urn:mace:dir:attribute-def:norEduOrgNIN" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.12" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "norEduPersonBirthDate" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "urn:mace:dir:attribute-def:norEduPersonBirthDate" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.3" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "norEduPersonLIN" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "urn:mace:dir:attribute-def:norEduPersonLIN" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.4" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "norEduPersonNIN" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "urn:mace:dir:attribute-def:norEduPersonNIN" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.5" + +# English string: Organization name +msgid "o" +msgstr "o" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "urn:mace:dir:attribute-def:o" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "urn:oid:2.5.4.10" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "urn:oid:2.5.4.11" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "ou" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "urn:mace:dir:attribute-def:ou" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "postOfficeBox" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "urn:mace:dir:attribute-def:postOfficeBox" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "urn:oid:2.5.4.18" + +# English string: Postal address +msgid "postalAddress" +msgstr "postalAddress" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "urn:mace:dir:attribute-def:postalAddress" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "urn:oid:2.5.4.16" + +# English string: Postal code +msgid "postalCode" +msgstr "postalCode" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "urn:mace:dir:attribute-def:postalCode" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "urn:oid:2.5.4.17" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "preferredLanguage" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "urn:mace:dir:attribute-def:preferredLanguage" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "urn:oid:2.16.840.1.113730.3.1.39" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "schacHomeOrganization" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganization" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.9" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "urn:schac:attribute-def:schacHomeOrganization" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "schacUserPrivateAttribute" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.18" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "urn:schac:attribute-def:schacUserPrivateAttribute" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "sn" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "urn:mace:dir:attribute-def:sn" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "urn:oid:2.5.4.4" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "street" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "urn:mace:dir:attribute-def:street" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "urn:oid:2.5.4.9" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "telephoneNumber" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "urn:mace:dir:attribute-def:telephoneNumber" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "urn:oid:2.5.4.20" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "title" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "urn:mace:dir:attribute-def:title" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "urn:oid:2.5.4.12" + +# English string: User ID +msgid "uid" +msgstr "uid" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "urn:mace:dir:attribute-def:uid" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "urn:oid:0.9.2342.19200300.100.1.1" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "userPassword" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "urn:mace:dir:attribute-def:userPassword" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "urn:oid:2.5.4.35" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "facebook_cn" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "facebook.name" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "http://axschema.org/namePerson/friendly" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "openid.sreg.nickname" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "http://axschema.org/namePerson" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "openid.sreg.fullname" + +# English string: Display name +msgid "twitter.name" +msgstr "twitter.name" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "windowslive.displayName" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "facebook_user" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "linkedin_user" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "twitter_screen_n_realm" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "windowslive_user" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "windowslive.userPrincipalName" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "facebook_targetedID" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "linkedin_targetedID" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "twitter_targetedID" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "windowslive_targetedID" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "http://axschema.org/contact/phone/fax" + +# English string: Given name +msgid "facebook.first_name" +msgstr "facebook.first_name" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "linkedin.firstName" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "http://axschema.org/namePerson/first" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "windowslive.FirstName" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "windowslive.givenName" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "http://axschema.org/contact/phone/home" + +# English string: Locality +msgid "windowslive.Location" +msgstr "windowslive.Location" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "facebook.profile_url" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "twitter.url" + +# English string: Mail +msgid "facebook.email" +msgstr "facebook.email" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "http://axschema.org/contact/email" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "openid.sreg.email" + +# English string: Mail +msgid "windowslive_mail" +msgstr "windowslive_mail" + +# English string: Mail +msgid "windowslive.mail" +msgstr "windowslive.mail" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "http://axschema.org/contact/phone/cell" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "http://axschema.org/company/name" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "http://axschema.org/contact/postalCode/home" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "openid.sreg.postcode" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "facebook.locale" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "http://axschema.org/pref/language" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "openid.sreg.language" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "twitter.lang" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "windowslive.preferredLanguage" + +# English string: Surname +msgid "facebook.last_name" +msgstr "facebook.last_name" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "linkedin.lastName" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "http://axschema.org/namePerson/last" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "windowslive.LastName" + +# English string: Surname +msgid "windowslive.surname" +msgstr "windowslive.surname" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "http://axschema.org/contact/phone/default" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "http://axschema.org/contact/phone/business" + +# English string: Title +msgid "linkedin.headline" +msgstr "linkedin.headline" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "http://axschema.org/company/title" + +# English string: User ID +msgid "facebook.username" +msgstr "facebook.username" + +# English string: User ID +msgid "linkedin.id" +msgstr "linkedin.id" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "twitter.screen_name" + +# English string: User ID +msgid "windowslive_uid" +msgstr "windowslive_uid" + +# English string: User ID +msgid "windowslive.id" +msgstr "windowslive.id" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/xh/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/xh/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..cce13b4203bb16f17419ea9d3495c770227a8955 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/xh/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: xh\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Igama eliqhelekileyo" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Igama eliqhelekileyo" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Igama eliqhelekileyo" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Ikhomponenti yedomeyin (DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Ikhomponenti yedomeyin (DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Ikhomponenti yedomeyin (DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Igama lomboniso" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Igama lomboniso" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Igama lomboniso" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Ikhasi lekhaya Lenkampani" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Ikhasi lekhaya Lenkampani" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Ikhasi lekhaya Lenkampani" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Igama elisemthethweni lenkampani" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Igama elisemthethweni lenkampani" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Igama elisemthethweni lenkampani" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Indima" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Indima" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Indima" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Iprofayile yokuqinisekisa isazisi" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Iprofayile yokuqinisekisa isazisi" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Iprofayile yokuqinisekisa isazisi" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Ilungelo ngokuphathelele inkonzo" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Ilungelo ngokuphathelele inkonzo" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Ilungelo ngokuphathelele inkonzo" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Isiteketiso" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Isiteketiso" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Isiteketiso" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Igama elahlukileyo (DN) lenkampani yekhaya yomntu" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Igama elahlukileyo (DN) lenkampani yekhaya yomntu" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Igama elahlukileyo (DN) lenkampani yekhaya yomntu" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Igama elahlukileyo (DN) leyunithi yenkampani yekhaya yomntu" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Igama elahlukileyo (DN) leyunithi yenkampani yekhaya yomntu" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Igama elahlukileyo (DN) leyunithi yenkampani yekhaya yomntu" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Indima eyintloko" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Indima eyintloko" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Indima eyintloko" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Igama elahlukileyo (DN) leYunithi Yenkampani yokuqala yomntu" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Igama elahlukileyo (DN) leYunithi Yenkampani yokuqala yomntu" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Igama elahlukileyo (DN) leYunithi Yenkampani yokuqala yomntu" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Igama elingundoqo lomntu kwinkampani yekhaya" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Igama elingundoqo lomntu kwinkampani yekhaya" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Igama elingundoqo lomntu kwinkampani yekhaya" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Indima kumbutho wasekhaya" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Indima kumbutho wasekhaya" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Indima kumbutho wasekhaya" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Igama elingelolakhe elingatshintshiyo elingqale kwinkonzo" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Igama elingelolakhe elingatshintshiyo elingqale kwinkonzo" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Igama elingelolakhe elingatshintshiyo elingqale kwinkonzo" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "I-ID yomntu enganakuphinda yabelwe, ebhalwe ngegama lobuxoki eqhubekayo kwinkampani yekhaya" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "I-ID yomntu enganakuphinda yabelwe, ebhalwe ngegama lobuxoki eqhubekayo kwinkampani yekhaya" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "I-ID yomntu enganakuphinda yabelwe, ebhalwe ngegama lobuxoki eqhubekayo kwinkampani yekhaya" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Inombolo yefeksi" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Inombolo yefeksi" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Inombolo yefeksi" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Igama elinikiweyo" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Igama elinikiweyo" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Igama elinikiweyo" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Umnxeba wasekhaya" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Umnxeba wasekhaya" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Umnxeba wasekhaya" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Idilesi yeposi yasekhaya" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Idilesi yeposi yasekhaya" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Idilesi yeposi yasekhaya" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "Ifoto ye-JPEG" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "Ifoto ye-JPEG" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "Ifoto ye-JPEG" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Indawo" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Indawo" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Indawo" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "I-URI eneleyibheli" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "I-URI eneleyibheli" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "I-URI eneleyibheli" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "Iposi" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "Iposi" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "Iposi" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Umanejala" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Umanejala" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Umanejala" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Imobhayili" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Imobhayili" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Imobhayili" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Inombolo yenkampani" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Inombolo yenkampani" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Inombolo yenkampani" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Umhla wokuzalwa" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Umhla wokuzalwa" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Umhla wokuzalwa" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Inombolo yesazisi yasekuhlaleni" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Inombolo yesazisi yasekuhlaleni" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Inombolo yesazisi yasekuhlaleni" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Inombolo yesazisi eyabelwe ngamagunya oluntu" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Inombolo yesazisi eyabelwe ngamagunya oluntu" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Inombolo yesazisi eyabelwe ngamagunya oluntu" + +# English string: Organization name +msgid "o" +msgstr "Igama lombutho" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Igama lombutho" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Igama lombutho" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Iyunithi yombutho" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Iyunithi yombutho" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Iyunithi yombutho" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Ibhokisi yaseposini" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Ibhokisi yaseposini" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Ibhokisi yaseposini" + +# English string: Postal address +msgid "postalAddress" +msgstr "Idilesi yeposi" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Idilesi yeposi" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Idilesi yeposi" + +# English string: Postal code +msgid "postalCode" +msgstr "Ikhowudi yeposi" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Ikhowudi yeposi" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Ikhowudi yeposi" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Ulwimi olukhethayo" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Ulwimi olukhethayo" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Ulwimi olukhethayo" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Igama ledomeyini yombutho wekhaya" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Igama ledomeyini yombutho wekhaya" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Igama ledomeyini yombutho wekhaya" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Igama ledomeyini yombutho wekhaya" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Iimpawu zenkcazelo yangasese" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Iimpawu zenkcazelo yangasese" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Iimpawu zenkcazelo yangasese" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Iimpawu zenkcazelo yangasese" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Ifani" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Ifani" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Ifani" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Istrato" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Istrato" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Istrato" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Inombolo yomnxeba" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Inombolo yomnxeba" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Inombolo yomnxeba" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Isibizo" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Isibizo" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Isibizo" + +# English string: User ID +msgid "uid" +msgstr "I-ID yomsebenzisi" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "I-ID yomsebenzisi" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "I-ID yomsebenzisi" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Iheshi yephaswedi yomsebenzisi" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Iheshi yephaswedi yomsebenzisi" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Iheshi yephaswedi yomsebenzisi" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Igama eliqhelekileyo" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Igama lomboniso" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Igama lomboniso" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Igama lomboniso" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Igama lomboniso" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Igama lomboniso" + +# English string: Display name +msgid "twitter.name" +msgstr "Igama lomboniso" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Igama lomboniso" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Igama elingundoqo lomntu kwinkampani yekhaya" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Igama elingundoqo lomntu kwinkampani yekhaya" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Igama elingundoqo lomntu kwinkampani yekhaya" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Igama elingundoqo lomntu kwinkampani yekhaya" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Igama elingundoqo lomntu kwinkampani yekhaya" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Igama elingelolakhe elingatshintshiyo elingqale kwinkonzo" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Igama elingelolakhe elingatshintshiyo elingqale kwinkonzo" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Igama elingelolakhe elingatshintshiyo elingqale kwinkonzo" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Igama elingelolakhe elingatshintshiyo elingqale kwinkonzo" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Inombolo yefeksi" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Igama elinikiweyo" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Igama elinikiweyo" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Igama elinikiweyo" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Igama elinikiweyo" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Igama elinikiweyo" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Umnxeba wasekhaya" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Indawo" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "I-URI eneleyibheli" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "I-URI eneleyibheli" + +# English string: Mail +msgid "facebook.email" +msgstr "Iposi" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "Iposi" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "Iposi" + +# English string: Mail +msgid "windowslive_mail" +msgstr "Iposi" + +# English string: Mail +msgid "windowslive.mail" +msgstr "Iposi" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Imobhayili" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Igama lombutho" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Ikhowudi yeposi" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Ikhowudi yeposi" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Ulwimi olukhethayo" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Ulwimi olukhethayo" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Ulwimi olukhethayo" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Ulwimi olukhethayo" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Ulwimi olukhethayo" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Ifani" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Ifani" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Ifani" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Ifani" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Ifani" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Inombolo yomnxeba" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Inombolo yomnxeba" + +# English string: Title +msgid "linkedin.headline" +msgstr "Isibizo" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Isibizo" + +# English string: User ID +msgid "facebook.username" +msgstr "I-ID yomsebenzisi" + +# English string: User ID +msgid "linkedin.id" +msgstr "I-ID yomsebenzisi" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "I-ID yomsebenzisi" + +# English string: User ID +msgid "windowslive_uid" +msgstr "I-ID yomsebenzisi" + +# English string: User ID +msgid "windowslive.id" +msgstr "I-ID yomsebenzisi" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/xh/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/xh/LC_MESSAGES/messages.po index 46368da9b27ce4506e1a9b4da8925b9f7debc114..eb159b6de2a9a00e9f4ad692f4f1b9c10889ae78 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/xh/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/xh/LC_MESSAGES/messages.po @@ -35,33 +35,15 @@ msgstr "" msgid "{errors:descr_NOSTATE}" msgstr "Inkcazelo yobume ilahlekile, yaye akukho ndlela yokuqalisa isicelo" -msgid "{attributes:attribute_postaladdress}" -msgstr "Idilesi yeposi" - msgid "{errors:title_SSOPARAMS}" msgstr "Akukho sicelo se-SAML sinikelweyo" -msgid "{attributes:attribute_ou}" -msgstr "Iyunithi yombutho" - -msgid "{status:header_wsfed}" -msgstr "Umzekelo weDemo we-WS-Fed SP" - msgid "{errors:descr_CASERROR}" msgstr "Impazamo xa kunxibelelwana neseva ye-CAS." -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Inombolo yenkampani" - -msgid "{attributes:attribute_homephone}" -msgstr "Umnxeba wasekhaya" - msgid "{errors:title_SLOSERVICEPARAMS}" msgstr "Akukho myalezo we-SAML unikelweyo" -msgid "{attributes:attribute_uid}" -msgstr "I-ID yomsebenzisi" - msgid "{login:error_nopassword}" msgstr "" "Uthumele into kwikhasi lokungena, kodwa ngesizathu esithile iphaswedi " @@ -77,18 +59,12 @@ msgstr "" msgid "{status:authData_header}" msgstr "Ungqinisiso lweNgcombolo" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Inombolo yefeksi" - msgid "{errors:title_BADREQUEST}" msgstr "Kufunyenwe isicelo esibi" msgid "{login:login_button}" msgstr "Ngena" -msgid "{status:validfor}" -msgstr "Iseshoni yakho iza kusebenza kangangemizuzu e-%SECONDS% ukususela ngoku." - msgid "{status:header_shib}" msgstr "Idemo ye-Shibboleth" @@ -98,9 +74,6 @@ msgstr "[Ukhetho olukhethwayo]" msgid "{errors:descr_BADREQUEST}" msgstr "Kukho impazamo kwisicelo kweli khasi. Isizathu sesi: %REASON%" -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Idilesi yeposi yasekhaya" - msgid "{login:help_header}" msgstr "Ncedani! Andiyikhumbuli iphaswedi yam." @@ -113,9 +86,6 @@ msgstr "Impazamo ilayisha imetadata" msgid "{errors:title_LOGOUTREQUEST}" msgstr "Impazamo iprosesa iSicelo Sokuphuma" -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Iimpawu zenkcazelo yangasese" - msgid "{logout:hold}" msgstr "Ibanjiwe" @@ -134,9 +104,6 @@ msgstr "Kwenzeke impazamo xa kuzanywa ukuyilwa isicelo se-SAML." msgid "{login:help_desk_link}" msgstr "Ikhasi lekhaya ledesika yoncedo" -msgid "{attributes:attribute_cn}" -msgstr "Igama eliqhelekileyo" - msgid "{errors:debuginfo_header}" msgstr "Inkcazelo yokulungisa" @@ -167,9 +134,6 @@ msgstr "Khumbula ukhetho lwam" msgid "{general:remember}" msgstr "Khumbula" -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Igama elingundoqo lomntu kwinkampani yekhaya" - msgid "{errors:title_PROCESSASSERTION}" msgstr "Impazamo iprosesa impendulo esuka kuMboneleli Wesazisi" @@ -201,9 +165,6 @@ msgstr "Igqityiwe" msgid "{status:subject_header}" msgstr "Umbandela we-SAML" -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Igama ledomeyini yombutho wekhaya" - msgid "{errors:descr_LOGOUTINFOLOST}" msgstr "" "Inkcazelo malunga nomsebenzi wokuphuma wangoku ilahlekile. Ufanele " @@ -214,9 +175,6 @@ msgstr "" "ulithathe, ngoko le mpazamo isenokubonisa enye impazamo ngolungiselelo. " "Ukuba ingxaki iyaqhubeka, qhagamshela umboneleli wenkonzo wakho." -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Inombolo yesazisi yasekuhlaleni" - msgid "{status:subject_notset}" msgstr "ayikasetwa" @@ -226,15 +184,9 @@ msgstr "Impazamo efunyenwe kuMboneleli Wesazisi" msgid "{disco:selectidp}" msgstr "Khetha umboneleli wesazisi wakho" -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Igama elahlukileyo (DN) lenkampani yekhaya yomntu" - msgid "{errors:title_NOTSET}" msgstr "Iphaswedi ayisetwanga" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Indima" - msgid "{login:user_pass_text}" msgstr "" "Inkonzo icele ukuba uzingqinisise. Nceda ungenise igama lomsebenzisi " @@ -246,9 +198,6 @@ msgstr "Hayi, kuphela %SP%" msgid "{login:username}" msgstr "Igama lomsebenzisi" -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Igama elahlukileyo (DN) leYunithi Yenkampani yokuqala yomntu" - msgid "{errors:error_header}" msgstr "Impazamo ye-SimpleSAMLphp" @@ -278,24 +227,15 @@ msgstr "" "Lo Mboneleli Wesazisi ufumene Isicelo Songqinisiso esisuka kuMboneleli " "Wenkonzo, kodwa kwenzeke impazamo xa kuzanywa ukuprosesa isicelo." -msgid "{attributes:attribute_mobile}" -msgstr "Imobhayili" - msgid "{login:remember_me}" msgstr "Ndikhumbule" msgid "{disco:previous_auth}" msgstr "Kwixesha elidlulileyo ukhethe ukungqinisisa ngo-" -msgid "{attributes:attribute_l}" -msgstr "Indawo" - msgid "{general:yes_continue}" msgstr "Ewe, qhubeka" -msgid "{attributes:attribute_organisationname}" -msgstr "Igama lombutho" - msgid "{login:remember_username}" msgstr "Khumbula igama lomsebenzisi lam" @@ -305,9 +245,6 @@ msgstr "Akukho mpendulo ye-SAML inikelweyo" msgid "{login:user_pass_header}" msgstr "Ngenisa igama lomsebenzisi nephaswedi yakho" -msgid "{attributes:attribute_jpegphoto}" -msgstr "Ifoto ye-JPEG" - msgid "{logout:logging_out_from}" msgstr "Iphuma kwezi nkonzo zilandelayo:" @@ -328,29 +265,17 @@ msgstr "" "Inkcazelo yokulungisa engezantsi isenokuba ibangela umdla kumlawuli / " "idesika yoncedo:" -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Igama elingelolakhe elingatshintshiyo elingqale kwinkonzo" - msgid "{errors:descr_NOTFOUNDREASON}" msgstr "" "Ikhasi elinikelweyo alifunyenwanga. Isizathu sesi: %REASON% I-URL ngu: " "%URL%" -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Umhla wokuzalwa" - msgid "{logout:success}" msgstr "Uphume ngokuyimpumelelo kuzo zonke iinkonzo ezidweliswe ngasentla." msgid "{login:error_wrongpassword}" msgstr "Igama lomsebenzisi okanye iphaswedi engachanekanga." -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Indima eyintloko" - -msgid "{attributes:attribute_sn}" -msgstr "Ifani" - msgid "{login:error_header}" msgstr "Impazamo" @@ -363,9 +288,6 @@ msgstr "Ayikwazanga ukuyila impendulo yongqinisiso" msgid "{errors:descr_UNKNOWNCERT}" msgstr "Ungqinisiso lusilele: isatifikerthi esithunyelwe yibhrawuza yakho asaziwa" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Inombolo yesazisi eyabelwe ngamagunya oluntu" - msgid "{errors:descr_RESPONSESTATUSNOSUCCESS}" msgstr "" "Umboneleli Wesazisi uphendule ngempazamo. (Ikhowudi yobume kwiMpendulo " @@ -374,18 +296,12 @@ msgstr "" msgid "{general:service_provider}" msgstr "Umboneleli Wenkonzo" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Isiteketiso" - msgid "{errors:descr_DISCOPARAMS}" msgstr "Iipharamitha ezithunyelwe kwinkonzo yofumaniso azihambelani neenkcukacha." msgid "{status:header_saml20_sp}" msgstr "Umzekelo weDemo we-SAML 2.0 SP" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Igama elahlukileyo (DN) leyunithi yenkampani yekhaya yomntu" - msgid "{errors:descr_INVALIDCERT}" msgstr "" "Ungqinisiso lusilele: isatifikethi esithunyelwe yibhrawuza yakho " @@ -394,9 +310,6 @@ msgstr "" msgid "{login:change_home_org_button}" msgstr "Khetha umbutho wekhaya" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Igama elisemthethweni lenkampani" - msgid "{status:logout}" msgstr "Phuma" @@ -405,18 +318,9 @@ msgstr "" "Iphaswedi ekulungiselelo (auth.adminpassword) ayitshintshwanga ukusuka " "kwixabiso lesiseko. Nceda uhlele ifayile yolungiselelo." -msgid "{attributes:attribute_givenname}" -msgstr "Igama elinikiweyo" - msgid "{errors:title_AUTHSOURCEERROR}" msgstr "Impazamo yomthombo wongqinisiso" -msgid "{attributes:attribute_manager}" -msgstr "Umanejala" - -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Ilungelo ngokuphathelele inkonzo" - msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Isinxaxhi esingasingathwanga" @@ -426,12 +330,6 @@ msgstr "Chaza iimpazamo" msgid "{errors:descr_LOGOUTREQUEST}" msgstr "Kwenzeke impazamo ngoxa kuproseswa isiCelo Sokuphuma." -msgid "{attributes:attribute_postalcode}" -msgstr "Ikhowudi yeposi" - -msgid "{attributes:attribute_street}" -msgstr "Istrato" - msgid "{errors:title_NOTVALIDCERT}" msgstr "Isatifikethi esingasebenziyo" @@ -458,18 +356,9 @@ msgstr "" "yolandelelo eyenza kube lula ukufumana iseshoni yakho kwiincwadi " "ezifumaneka kumlawuli wesistim:" -msgid "{attributes:attribute_displayname}" -msgstr "Igama lomboniso" - -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Ikhasi lekhaya Lenkampani" - msgid "{login:change_home_org_title}" msgstr "Tshintsha umbutho wakho wekhaya" -msgid "{attributes:attribute_edupersonorcid}" -msgstr "Isazisi se-ORCID" - msgid "{errors:title_UNKNOWNCERT}" msgstr "Isatifikethi esingaziwayo" @@ -482,12 +371,6 @@ msgstr "Akukho satifikethi" msgid "{errors:descr_UNHANDLEDEXCEPTION}" msgstr "Isinxaxhi esingasingathwanga silahliwe." -msgid "{attributes:attribute_title}" -msgstr "Isibizo" - -msgid "{attributes:attribute_dc}" -msgstr "Ikhomponenti yedomeyin (DC)" - msgid "{errors:title_CREATEREQUEST}" msgstr "Impazamo nokuyila isicelo" @@ -503,12 +386,6 @@ msgstr "Asiyamkelanga impendulo ethunyelwe ukusuka kuMboneleli Wesazisi." msgid "{disco:selectidp_full}" msgstr "Nceda ukhethe umboneleli wesazisi apho ufuna ukungqinisisa:" -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Iprofayile yokuqinisekisa isazisi" - -msgid "{attributes:attribute_ismemberof}" -msgstr "Ubulungu beqela" - msgid "{logout:failedsps}" msgstr "" "Awukwazi ukuphuma kwinkonzo enye okanye ezingakumbi. Ukuqinisekisa zonke " @@ -528,9 +405,6 @@ msgstr "Buyela emva kwikhasi lofakelo le-SimpleSAMLphp" msgid "{errors:descr_CONFIG}" msgstr "I-SimpleSAMLphp ibonakala ingalungiselelwanga kakuhle." -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Ulwimi olukhethayo" - msgid "{errors:title_DISCOPARAMS}" msgstr "Isicelo esibi kwinkonzo yofumaniso" @@ -558,9 +432,6 @@ msgstr "Kananjalo ungene kwezi nkonzo:" msgid "{logout:logout_all_question}" msgstr "Ngaba ufuna ukuphuma kuzo zonke iinkonzo ezingasentla?" -msgid "{attributes:attribute_o}" -msgstr "Igama lombutho" - msgid "{logout:loggedoutfrom}" msgstr "Ngoku uphume ngokuyimpumelelo kwi-%SP%." @@ -593,9 +464,6 @@ msgstr "" "unikrele umyalezo we-SAML ArtifactResolve. Nceda uqaphele ukuba le ndawo " "yokuphela ayilungiselelwanga ukuba ifikelelwe ngokuthe ngqo." -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Indima kumbutho wasekhaya" - msgid "{errors:title_MEMCACHEDOWN}" msgstr "Ayikwazi ukubuyisela ingcombolo yeseshoni" @@ -626,14 +494,6 @@ msgstr "Uphumile" msgid "{errors:report_explain}" msgstr "Cacisa ukuba wenze ntoni xa bekusenzeka le mpazamo..." -msgid "{attributes:attribute_telephonenumber}" -msgstr "Inombolo yomnxeba" - -msgid "{attributes:attribute_edupersonuniqueid}" -msgstr "" -"I-ID yomntu enganakuphinda yabelwe, ebhalwe ngegama lobuxoki eqhubekayo " -"kwinkampani yekhaya" - msgid "{logout:failed}" msgstr "Ukuphuma kusilele" @@ -656,29 +516,14 @@ msgstr "" "nomlawuli wale nkonzo yokungena, uze umthumele umyalezo wempazamo " "ongentla." -msgid "{attributes:attribute_userpassword}" -msgstr "Iheshi yephaswedi yomsebenzisi" - msgid "{errors:report_text}" msgstr "" "Unokhetho lokuthumela idilesi yeimeyile yakho, ukuze abalawuli bakwazi " "ukukuqhagamshela ukuba banemibuzo engakumbi malunga nomba wakho:" -msgid "{attributes:attribute_mail}" -msgstr "Iposi" - msgid "{logout:progress}" msgstr "Iyaphuma..." -msgid "{attributes:attribute_labeleduri}" -msgstr "I-URI eneleyibheli" - msgid "{login:select_home_org}" msgstr "Khetha umbutho wakho wekhaya" -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Igama elisemthethweni" - -msgid "{attributes:attribute_postofficebox}" -msgstr "Ibhokisi yaseposini" - diff --git a/vendor/simplesamlphp/simplesamlphp/locales/zh-tw/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/zh-tw/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..638bc4399887c7dec6a5b93cd1539c10caba7544 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/zh-tw/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-tw\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "常用名字" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "常用名字" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "常用名字" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "網域 Domain component (DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "網域 Domain component (DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "網域 Domain component (DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "顯示名稱" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "顯示名稱" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "顯示名稱" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "組織首頁" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "組織首頁" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "組織首頁" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "組織全銜" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "組織全銜" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "組織全銜" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "連絡方式" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "連絡方式" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "連絡方式" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "身分驗證文件" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "身分驗證文件" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "身分驗證文件" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "關於服務的權利" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "關於服務的權利" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "關於服務的權利" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "暱稱" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "暱稱" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "暱稱" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "個人所屬組織 Distinguished name (DN)" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "個人所屬組織 Distinguished name (DN)" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "個人所屬組織 Distinguished name (DN)" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "個人所屬單位 Distinguished name (DN)" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "個人所屬單位 Distinguished name (DN)" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "個人所屬單位 Distinguished name (DN)" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "主要連絡方式" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "主要連絡方式" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "主要連絡方式" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "個人主要組織單位 Distinguished name (DN)" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "個人主要組織單位 Distinguished name (DN)" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "個人主要組織單位 Distinguished name (DN)" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "個人於所屬組織的永久名字" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "個人於所屬組織的永久名字" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "個人於所屬組織的永久名字" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "所屬單位組織之聯絡方式" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "所屬單位組織之聯絡方式" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "所屬單位組織之聯絡方式" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "永久性匿名 ID" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "永久性匿名 ID" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "永久性匿名 ID" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "個人無法重新設置,於所屬組織的永久匿名 ID" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "個人無法重新設置,於所屬組織的永久匿名 ID" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "個人無法重新設置,於所屬組織的永久匿名 ID" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "傳真號碼" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "傳真號碼" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "傳真號碼" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "名" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "名" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "名" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "住家電話" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "住家電話" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "住家電話" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "住家地址" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "住家地址" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "住家地址" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "JPEG 圖片" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "JPEG 圖片" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "JPEG 圖片" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "區域" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "區域" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "區域" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "標籤網址" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "標籤網址" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "標籤網址" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "Email" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "Email" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "Email" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "管理員" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "管理員" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "管理員" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "手機" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "手機" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "手機" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "組織號碼" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "組織號碼" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "組織號碼" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "生日" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "生日" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "生日" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "本地身分證字號" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "本地身分證字號" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "本地身分證字號" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "身分證字號" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "身分證字號" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "身分證字號" + +# English string: Organization name +msgid "o" +msgstr "組織名稱" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "組織名稱" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "組織名稱" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "組織單位" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "組織單位" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "組織單位" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "郵政信箱" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "郵政信箱" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "郵政信箱" + +# English string: Postal address +msgid "postalAddress" +msgstr "郵寄地址" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "郵寄地址" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "郵寄地址" + +# English string: Postal code +msgid "postalCode" +msgstr "郵遞區號" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "郵遞區號" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "郵遞區號" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "喜好語言" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "喜好語言" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "喜好語言" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "所屬的組織網域名稱" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "所屬的組織網域名稱" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "所屬的組織網域名稱" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "所屬的組織網域名稱" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "個人資料" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "個人資料" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "個人資料" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "個人資料" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "姓" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "姓" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "姓" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "街" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "街" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "街" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "電話號碼" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "電話號碼" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "電話號碼" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "標題" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "標題" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "標題" + +# English string: User ID +msgid "uid" +msgstr "使用者 ID" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "使用者 ID" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "使用者 ID" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "使用者密碼 (hash)" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "使用者密碼 (hash)" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "使用者密碼 (hash)" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "常用名字" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "顯示名稱" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "顯示名稱" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "顯示名稱" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "顯示名稱" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "顯示名稱" + +# English string: Display name +msgid "twitter.name" +msgstr "顯示名稱" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "顯示名稱" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "個人於所屬組織的永久名字" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "個人於所屬組織的永久名字" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "個人於所屬組織的永久名字" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "個人於所屬組織的永久名字" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "個人於所屬組織的永久名字" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "永久性匿名 ID" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "永久性匿名 ID" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "永久性匿名 ID" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "永久性匿名 ID" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "傳真號碼" + +# English string: Given name +msgid "facebook.first_name" +msgstr "名" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "名" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "名" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "名" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "名" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "住家電話" + +# English string: Locality +msgid "windowslive.Location" +msgstr "區域" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "標籤網址" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "標籤網址" + +# English string: Mail +msgid "facebook.email" +msgstr "Email" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "Email" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "Email" + +# English string: Mail +msgid "windowslive_mail" +msgstr "Email" + +# English string: Mail +msgid "windowslive.mail" +msgstr "Email" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "手機" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "組織名稱" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "郵遞區號" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "郵遞區號" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "喜好語言" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "喜好語言" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "喜好語言" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "喜好語言" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "喜好語言" + +# English string: Surname +msgid "facebook.last_name" +msgstr "姓" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "姓" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "姓" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "姓" + +# English string: Surname +msgid "windowslive.surname" +msgstr "姓" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "電話號碼" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "電話號碼" + +# English string: Title +msgid "linkedin.headline" +msgstr "標題" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "標題" + +# English string: User ID +msgid "facebook.username" +msgstr "使用者 ID" + +# English string: User ID +msgid "linkedin.id" +msgstr "使用者 ID" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "使用者 ID" + +# English string: User ID +msgid "windowslive_uid" +msgstr "使用者 ID" + +# English string: User ID +msgid "windowslive.id" +msgstr "使用者 ID" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/zh-tw/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/zh-tw/LC_MESSAGES/messages.po index ae447689a0d94d3f3b2782a9dcad46f56dff7bf5..00b2748d02d588ab477f93c689bf20eebe5a95ce 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/zh-tw/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/zh-tw/LC_MESSAGES/messages.po @@ -48,12 +48,6 @@ msgstr "錯誤載入詮釋資料" msgid "{admin:metaconv_title}" msgstr "Metadata 解析" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "關於服務的權利" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "JPEG 圖片" - msgid "{admin:cfg_check_noerrors}" msgstr "沒有錯誤。" @@ -113,9 +107,6 @@ msgstr "喔喔!如果您的帳號和密碼錯誤,系統將無法提供相關 msgid "{logout:default_link_text}" msgstr "回到 SimpleSAMLphp 安裝頁面" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "WS-Federation 驗證提供者(遠端)" - msgid "{errors:error_header}" msgstr "SimpleSAMLphp 異常" @@ -128,18 +119,12 @@ msgstr "LDAP 是使用這資料庫,當您嘗試登入時,我們必須連結 msgid "{errors:descr_METADATA}" msgstr "有一些錯誤設定在您所安裝的 SimpleSAMLphp。如果您是這個服務的管理員,您可能需要確認您的詮釋資料設定是否正確地設置。" -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Distinguished name (DN) 個人預設組織" - msgid "{errors:title_BADREQUEST}" msgstr "錯誤請求" msgid "{status:sessionsize}" msgstr "Session 大小: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "郵寄地址" - msgid "{logout:title}" msgstr "標題" @@ -167,30 +152,15 @@ msgstr "暫停" msgid "{admin:cfg_check_header}" msgstr "設定檢查" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "家庭連絡地址" - -msgid "{attributes:attribute_sn}" -msgstr "姓" - msgid "{admin:debug_sending_message_send}" msgstr "提交訊息" msgid "{status:logout}" msgstr "登出" -msgid "{attributes:attribute_organisationname}" -msgstr "組織名稱" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "電話號碼" - msgid "{errors:descr_DISCOPARAMS}" msgstr "傳遞至搜尋服務的參數並非按照規格所訂。" -msgid "{attributes:attribute_mail}" -msgstr "郵件" - msgid "{errors:descr_CREATEREQUEST}" msgstr "有個錯誤發生於您嘗試建立 SAML 請求。" @@ -200,9 +170,6 @@ msgstr "選擇性欄位" msgid "{logout:return}" msgstr "回到服務" -msgid "{attributes:attribute_displayname}" -msgstr "顯示名稱" - msgid "{admin:metadata_xmlurl}" msgstr "<a href=\"%METAURL%\"> 直接取得 Metadata XML 格式檔 </a>" @@ -212,9 +179,6 @@ msgstr "Yea,登出所有服務" msgid "{admin:debug_disable_debug_mode}" msgstr "您可以 SimpleSAMLphp 的全域設定檔 <tt>config/config.php</tt> 裡關閉除錯模式。" -msgid "{attributes:attribute_homepostaladdress}" -msgstr "住家地址" - msgid "{disco:select}" msgstr "選擇" @@ -242,9 +206,6 @@ msgstr "這個驗證提供者收到一個服務提供者的認證請求,但在 msgid "{logout:logout_all_question}" msgstr "是否登出所有服務?" -msgid "{attributes:attribute_title}" -msgstr "標題" - msgid "{errors:title_NOACCESS}" msgstr "無法存取" @@ -257,9 +218,6 @@ msgstr "沒有 RelayState" msgid "{errors:descr_NOSTATE}" msgstr "遺失狀態資訊,且無法重新請求" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "身分證字號" - msgid "{login:password}" msgstr "密碼" @@ -284,24 +242,15 @@ msgstr "登出請求為錯誤程序" msgid "{admin:metaover_errorentry}" msgstr "有錯誤存在這個 Metadata 條目" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "連絡方式" - msgid "{errors:title_METADATANOTFOUND}" msgstr "找不到詮釋資料" -msgid "{attributes:attribute_givenname}" -msgstr "名" - msgid "{login:contact_info}" msgstr "聯絡資訊:" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "不可預期的例外" -msgid "{status:validfor}" -msgstr "您的 session 從現在起還有 %SECONDS% 有效。" - msgid "{status:header_saml20_sp}" msgstr "SAML 2.0 SP 展示範例" @@ -335,33 +284,21 @@ msgstr "選擇要檢查的設定檔:" msgid "{errors:descr_UNKNOWNCERT}" msgstr "認證錯誤:您的瀏覽器傳送了一個未知的憑證" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "組織首頁" - msgid "{logout:logging_out_from}" msgstr "從下列服務登出:" msgid "{logout:loggedoutfrom}" msgstr "您已成功從 %SP% 登出。" -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "WS-Federation 服務提供者(主機)" - msgid "{errors:errorreport_text}" msgstr "錯誤報告已送給管理員。" msgid "{status:subject_header}" msgstr "SAML 主題" -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "生日" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "有個錯誤發生於準備進行登出請求時。" -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "持續的匿名 ID" - msgid "{logout:success}" msgstr "您已經成功登出了列表中所有服務。" @@ -371,12 +308,6 @@ msgstr "備註" msgid "{errors:descr_USERABORTED}" msgstr "使用者中斷認證" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "主要連絡方式" - -msgid "{attributes:attribute_postalcode}" -msgstr "郵遞區號" - msgid "{errors:descr_CASERROR}" msgstr "當連線至 CAS 主機時錯誤。" @@ -389,27 +320,15 @@ msgstr "SAML 2.0 SP Metadata" msgid "{admin:metaconv_converted}" msgstr "已轉換之 Metadata" -msgid "{attributes:attribute_cn}" -msgstr "常用名字" - msgid "{logout:completed}" msgstr "已完成" msgid "{errors:descr_NOTSET}" msgstr "設定檔裡的密碼(auth.adminpassword)還是預設值,請編輯設定檔。" -msgid "{attributes:attribute_ou}" -msgstr "組織單位" - msgid "{general:service_provider}" msgstr "服務提供者" -msgid "{attributes:attribute_homephone}" -msgstr "住家電話" - -msgid "{attributes:attribute_dc}" -msgstr "Domain component (DC)" - msgid "{errors:descr_BADREQUEST}" msgstr "這裡有個錯誤於此頁面的請求。原因為:%REASON%" @@ -428,21 +347,12 @@ msgstr "請輸入您的帳號及密碼" msgid "{errors:report_explain}" msgstr "解釋當你發生錯誤時所做的事情..." -msgid "{attributes:attribute_manager}" -msgstr "管理員" - msgid "{errors:title_ACSPARAMS}" msgstr "SAML 無回應" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "暱稱" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "您連結單一簽出服務界面,但是沒有提供一個 SAML 登出請求或登出回應。" -msgid "{attributes:attribute_street}" -msgstr "街" - msgid "{login:organization}" msgstr "組織" @@ -476,9 +386,6 @@ msgstr "選擇預設組織" msgid "{admin:cfg_check_superfluous}" msgstr "多餘設定存在於設定檔" -msgid "{attributes:attribute_labeleduri}" -msgstr "標籤網址" - msgid "{errors:report_email}" msgstr "電子郵件:" @@ -491,9 +398,6 @@ msgstr "密碼未設定" msgid "{errors:descr_NORELAYSTATE}" msgstr "初始化請求並未提供一個中繼狀態 RelayState 參數說明下一個步驟。" -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "正式名字" - msgid "{status:header_diagnostics}" msgstr "SimpleSAMLphp 診斷工具" @@ -502,9 +406,6 @@ msgstr "" "嘿,這是 SimpleSAMLphp " "狀態頁,在這邊您可以看到您的連線是否逾時,以及還有多久才逾時,所有屬性值(attributes)都會附加在你的連線裡(session)。" -msgid "{attributes:attribute_schachomeorganization}" -msgstr "預設組織 domain name" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "找不到頁面" @@ -523,33 +424,18 @@ msgstr "點選 SAML 物件標題,可檢視 SAML 物件詳細資訊。" msgid "{errors:title_NOTVALIDCERT}" msgstr "無效憑證" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Distinguished name (DN) 個人預設組織單位" - msgid "{general:remember}" msgstr "記住" msgid "{disco:selectidp}" msgstr "選擇你的識別提供者(idp)" -msgid "{attributes:attribute_postofficebox}" -msgstr "郵政信箱" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "家庭的個人主要名字" - msgid "{login:help_desk_email}" msgstr "傳送 e-mail 尋求協助" msgid "{login:help_desk_link}" msgstr "協助頁面" -msgid "{attributes:attribute_ismemberof}" -msgstr "群組成員" - -msgid "{attributes:attribute_uid}" -msgstr "使用者 ID" - msgid "{login:remember_me}" msgstr "記住我" @@ -571,12 +457,6 @@ msgstr "記住我的選擇" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "SAML 2.0 服務提供者(主機)" -msgid "{attributes:attribute_l}" -msgstr "位置" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "可靠驗證設定檔" - msgid "{admin:metadata_simplesamlformat}" msgstr "如果您需要於其他地方使用 SimpleSAMLphp 實體 - 請參閱 SimpleSAMLphp 平面文件格式:" @@ -625,9 +505,6 @@ msgstr "ADFS 驗證提供者(主機)" msgid "{errors:title_UNKNOWNCERT}" msgstr "未知的憑證" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "傳真" - msgid "{errors:title_LDAPERROR}" msgstr "LDAP 錯誤" @@ -640,18 +517,12 @@ msgstr "找不到您所要存取的頁面,該網址是:%URL%" msgid "{errors:howto_text}" msgstr "這個問題可能是因為 SimpleSAMLphp 的某些例外的行為或無效設定。連絡這個登入服務的管理員,以及傳送這些錯誤訊息。" -msgid "{attributes:attribute_mobile}" -msgstr "手機" - msgid "{admin:metadata_adfs-idp}" msgstr "ADFS 驗證提供者 Metadata" msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Shib 1.3 驗證提供者(主機)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "喜好語言" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "您提供的憑證無效。" @@ -664,15 +535,6 @@ msgstr "下列資料找不到選擇性欄位" msgid "{logout:logout_only}" msgstr "不,只有 %SP%" -msgid "{attributes:attribute_o}" -msgstr "組織名稱" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Distinguished name (DN) of 個人主要組織單位" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "本地驗證碼" - msgid "{login:next}" msgstr "下一步" @@ -688,9 +550,6 @@ msgstr "找不到您所要存取的頁面,原因:%REASON%;網址:%URL%" msgid "{errors:title_NOCERT}" msgstr "無憑證" -msgid "{attributes:attribute_userpassword}" -msgstr "使用者密碼編碼" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "登出訊息遺失" @@ -703,30 +562,18 @@ msgstr "SimpleSAMLphp 出現無效設定。" msgid "{admin:metadata_intro}" msgstr "這是 SimpleSAMLphp 產生給您的 Metadata,您可以傳送此 Metadata 文件給您信任的合作夥伴來建立可信任的聯盟。" -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "個人資料" - -msgid "{status:header_wsfed}" -msgstr "WS-Fed SP 展示範例" - msgid "{admin:metadata_cert}" msgstr "憑證" msgid "{errors:descr_INVALIDCERT}" msgstr "驗證失敗:您的瀏覽器傳送的憑證為無效或無法讀取" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "組織正式名稱" - msgid "{status:header_shib}" msgstr "老調的展示" msgid "{admin:metaconv_parse}" msgstr "解析" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "組織號碼" - msgid "Person's principal name at home organization" msgstr "家庭的個人主要名字" @@ -1041,8 +888,8 @@ msgid "" msgstr "這個問題可能是因為 SimpleSAMLphp 的某些例外的行為或無效設定。連絡這個登入服務的管理員,以及傳送這些錯誤訊息。" #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "您的 session 從現在起還有 %SECONDS% 有效。" +msgid "Your session is valid for %remaining% seconds from now." +msgstr "您的 session 從現在起還有 %remaining% 有效。" msgid "Domain component (DC)" msgstr "Domain component (DC)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/zh/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/zh/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..0dc6da9d811c19be2500ba584a6fa775876c2f31 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/zh/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "常用名字" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "常用名字" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "常用名字" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Opened the web browser with tabs saved from the previous session.域组件(DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Opened the web browser with tabs saved from the previous session.域组件(DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Opened the web browser with tabs saved from the previous session.域组件(DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "显示名称" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "显示名称" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "显示名称" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "组织的首页" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "组织的首页" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "组织的首页" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "组织的法定名称" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "组织的法定名称" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "组织的法定名称" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "联络方式" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "联络方式" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "联络方式" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "可靠验证配置文件" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "可靠验证配置文件" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "可靠验证配置文件" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "关于服务的权利" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "关于服务的权利" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "关于服务的权利" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "昵称" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "昵称" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "昵称" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "人的家庭组织的分辨名称(DN)" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "人的家庭组织的分辨名称(DN)" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "人的家庭组织的分辨名称(DN)" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "人的家组织单位的辨别名称(DN)" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "人的家组织单位的辨别名称(DN)" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "人的家组织单位的辨别名称(DN)" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "主要的联系方式" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "主要的联系方式" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "主要的联系方式" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "人的主要组织单位的辨别名称(DN)" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "人的主要组织单位的辨别名称(DN)" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "人的主要组织单位的辨别名称(DN)" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "人的主要在家中组织的名称" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "人的主要在家中组织的名称" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "人的主要在家中组织的名称" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "家庭联络地址" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "家庭联络地址" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "家庭联络地址" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "持续的匿名ID" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "持续的匿名ID" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "持续的匿名ID" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "urn:mace:dir:attribute-def:eduPersonUniqueId" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "传真号码" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "传真号码" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "传真号码" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "名" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "名" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "名" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "家庭电话" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "家庭电话" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "家庭电话" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "家庭邮政地址" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "家庭邮政地址" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "家庭邮政地址" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "JPEG图片" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "JPEG图片" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "JPEG图片" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "位置" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "位置" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "位置" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "标签URI" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "标签URI" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "标签URI" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "邮箱" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "邮箱" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "邮箱" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "管理员" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "管理员" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "管理员" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "手机" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "手机" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "手机" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "组织号码" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "组织号码" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "组织号码" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "生日" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "生日" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "生日" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "本地身份号码" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "本地身份号码" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "本地身份号码" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "身份证号码" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "身份证号码" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "身份证号码" + +# English string: Organization name +msgid "o" +msgstr "组织名称" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "组织名称" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "组织名称" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "组织单位" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "组织单位" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "组织单位" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "邮政信箱" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "邮政信箱" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "邮政信箱" + +# English string: Postal address +msgid "postalAddress" +msgstr "邮政地址" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "邮政地址" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "邮政地址" + +# English string: Postal code +msgid "postalCode" +msgstr "邮政编码" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "邮政编码" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "邮政编码" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "首选语言" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "首选语言" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "首选语言" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "首页组织的域名" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "首页组织的域名" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "首页组织的域名" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "首页组织的域名" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "个人资料" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "个人资料" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "个人资料" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "个人资料" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "姓" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "姓" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "姓" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "街道" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "街道" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "街道" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "电话号码" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "电话号码" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "电话号码" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "标题" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "标题" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "标题" + +# English string: User ID +msgid "uid" +msgstr "用户ID" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "用户ID" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "用户ID" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "用户密码的HASH值" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "用户密码的HASH值" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "用户密码的HASH值" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "常用名字" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "显示名称" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "显示名称" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "显示名称" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "显示名称" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "显示名称" + +# English string: Display name +msgid "twitter.name" +msgstr "显示名称" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "显示名称" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "人的主要在家中组织的名称" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "人的主要在家中组织的名称" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "人的主要在家中组织的名称" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "人的主要在家中组织的名称" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "人的主要在家中组织的名称" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "持续的匿名ID" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "持续的匿名ID" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "持续的匿名ID" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "持续的匿名ID" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "传真号码" + +# English string: Given name +msgid "facebook.first_name" +msgstr "名" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "名" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "名" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "名" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "名" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "家庭电话" + +# English string: Locality +msgid "windowslive.Location" +msgstr "位置" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "标签URI" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "标签URI" + +# English string: Mail +msgid "facebook.email" +msgstr "邮箱" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "邮箱" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "邮箱" + +# English string: Mail +msgid "windowslive_mail" +msgstr "邮箱" + +# English string: Mail +msgid "windowslive.mail" +msgstr "邮箱" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "手机" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "组织名称" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "邮政编码" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "邮政编码" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "首选语言" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "首选语言" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "首选语言" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "首选语言" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "首选语言" + +# English string: Surname +msgid "facebook.last_name" +msgstr "姓" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "姓" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "姓" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "姓" + +# English string: Surname +msgid "windowslive.surname" +msgstr "姓" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "电话号码" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "电话号码" + +# English string: Title +msgid "linkedin.headline" +msgstr "标题" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "标题" + +# English string: User ID +msgid "facebook.username" +msgstr "用户ID" + +# English string: User ID +msgid "linkedin.id" +msgstr "用户ID" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "用户ID" + +# English string: User ID +msgid "windowslive_uid" +msgstr "用户ID" + +# English string: User ID +msgid "windowslive.id" +msgstr "用户ID" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/zh/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/zh/LC_MESSAGES/messages.po index 029cef0413a2680cb13b1c6c9a57589c9ad3d4e0..93b138bcaf5f20e302d3713d48a5a083ce56758f 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/zh/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/zh/LC_MESSAGES/messages.po @@ -48,12 +48,6 @@ msgstr "载入元信息时发生错误" msgid "{admin:metaconv_title}" msgstr "元信息分析器" -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "关于服务的权利" - -msgid "{attributes:attribute_jpegphoto}" -msgstr "JPEG图片" - msgid "{admin:cfg_check_noerrors}" msgstr "没有发现错误" @@ -111,9 +105,6 @@ msgstr "太糟糕了!-没有你的用户名和密码你将不能访问该服 msgid "{logout:default_link_text}" msgstr "返回SimpleSAMLphp安装页面" -msgid "{admin:metaover_group_metadata.wsfed-idp-remote}" -msgstr "WS-Federation 身份提供者(远程)" - msgid "{errors:error_header}" msgstr "SimpleSAMLphp错误" @@ -126,18 +117,12 @@ msgstr "LDAP是一个用户数据库,当你试图登录时,我们需要连 msgid "{errors:descr_METADATA}" msgstr "你的SimpleSAMLphp配置错误,如果你是该服务的管理员,那么请确认你的配置是正确的" -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "人的家庭组织的分辨名称(DN)" - msgid "{errors:title_BADREQUEST}" msgstr "收到了错误的请求" msgid "{status:sessionsize}" msgstr "Session 大小: %SIZE%" -msgid "{attributes:attribute_postaladdress}" -msgstr "邮政地址" - msgid "{logout:title}" msgstr "退出" @@ -159,30 +144,15 @@ msgstr "保持" msgid "{admin:cfg_check_header}" msgstr "配置检查" -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "家庭联络地址" - -msgid "{attributes:attribute_sn}" -msgstr "姓" - msgid "{admin:debug_sending_message_send}" msgstr "提交信息" msgid "{status:logout}" msgstr "退出" -msgid "{attributes:attribute_organisationname}" -msgstr "组织名称" - -msgid "{attributes:attribute_telephonenumber}" -msgstr "电话号码" - msgid "{errors:descr_DISCOPARAMS}" msgstr "发送给搜寻服务的参数不符合规范" -msgid "{attributes:attribute_mail}" -msgstr "邮箱" - msgid "{errors:descr_CREATEREQUEST}" msgstr "在创建SAML请求中发生了一个错误" @@ -192,9 +162,6 @@ msgstr "选项区域" msgid "{logout:return}" msgstr "返回至服务" -msgid "{attributes:attribute_displayname}" -msgstr "显示名称" - msgid "{admin:metadata_xmlurl}" msgstr "你可以在 <a href=\"%METAURL%\">获取元信息XML</a>" @@ -204,9 +171,6 @@ msgstr "是的,所有的服务" msgid "{admin:debug_disable_debug_mode}" msgstr "你可以关闭调试模式,在SimpleSAMLphp全局配置文件<tt>config/config.php</tt>中" -msgid "{attributes:attribute_homepostaladdress}" -msgstr "家庭邮政地址" - msgid "{disco:select}" msgstr "选择" @@ -231,9 +195,6 @@ msgstr "该身份提供者接受到了一个来自服务提供者的认证请求 msgid "{logout:logout_all_question}" msgstr "你想同时从上面的这些服务中退出吗?" -msgid "{attributes:attribute_title}" -msgstr "标题" - msgid "{errors:title_NOACCESS}" msgstr "禁止访问" @@ -246,9 +207,6 @@ msgstr "无依赖状态" msgid "{errors:descr_NOSTATE}" msgstr "状态信息丢失,并且无法重新请求" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "身份证号码" - msgid "{login:password}" msgstr "密码" @@ -273,24 +231,15 @@ msgstr "处理退出请求时发生错误" msgid "{admin:metaover_errorentry}" msgstr "该元信息实体存在错误" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "联络方式" - msgid "{errors:title_METADATANOTFOUND}" msgstr "没有找到元信息" -msgid "{attributes:attribute_givenname}" -msgstr "名" - msgid "{login:contact_info}" msgstr "联系方式" msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "未处理的异常" -msgid "{status:validfor}" -msgstr "你的会话在%SECONDS%秒内有效" - msgid "{status:header_saml20_sp}" msgstr "SAML 2.0 SP演示案例" @@ -321,30 +270,18 @@ msgstr "选择一个配置文件用于检测" msgid "{errors:descr_UNKNOWNCERT}" msgstr "认证失败:你的浏览器发送的是未知的证书" -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "组织的首页" - msgid "{logout:logging_out_from}" msgstr "从下列服务中退出" msgid "{logout:loggedoutfrom}" msgstr "你已成功从%SP%退出" -msgid "{admin:metaover_group_metadata.wsfed-sp-hosted}" -msgstr "WS-Federation 服务提供者(本地)" - msgid "{errors:errorreport_text}" msgstr "错误报告已经发送给管理员" -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "生日" - msgid "{errors:descr_LOGOUTREQUEST}" msgstr "试图处理退出请求时发生了一个错误" -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "持续的匿名ID" - msgid "{logout:success}" msgstr "你成功的退出了上面列表中的服务" @@ -354,12 +291,6 @@ msgstr "通告" msgid "{errors:descr_USERABORTED}" msgstr "认证被用户中止" -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "主要的联系方式" - -msgid "{attributes:attribute_postalcode}" -msgstr "邮政编码" - msgid "{errors:descr_CASERROR}" msgstr "在和CAS服务器的通讯中发生了错误" @@ -372,27 +303,15 @@ msgstr "SAML 2.0 SP 元信息" msgid "{admin:metaconv_converted}" msgstr "转换过的元信息" -msgid "{attributes:attribute_cn}" -msgstr "常用名字" - msgid "{logout:completed}" msgstr "完成" msgid "{errors:descr_NOTSET}" msgstr "你没有修改配置文件中的默认密码,请修改该密码" -msgid "{attributes:attribute_ou}" -msgstr "组织单位" - msgid "{general:service_provider}" msgstr "服务提供者" -msgid "{attributes:attribute_homephone}" -msgstr "家庭电话" - -msgid "{attributes:attribute_dc}" -msgstr "Opened the web browser with tabs saved from the previous session.域组件(DC)" - msgid "{errors:descr_BADREQUEST}" msgstr "请求该页的请求存在错误,原因:%REASON%" @@ -411,21 +330,12 @@ msgstr "输入你的用户名和密码" msgid "{errors:report_explain}" msgstr "说明一下,你正在做什么的时候发生了这个错误" -msgid "{attributes:attribute_manager}" -msgstr "管理员" - msgid "{errors:title_ACSPARAMS}" msgstr "没有提供SAML应答" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "昵称" - msgid "{errors:descr_SLOSERVICEPARAMS}" msgstr "你访问了SingleLogoutService接口,但是并没有提供一个SAML的LogoutRequest或者LogoutResponse" -msgid "{attributes:attribute_street}" -msgstr "街道" - msgid "{login:organization}" msgstr "组织" @@ -459,9 +369,6 @@ msgstr "选择你的家庭组织" msgid "{admin:cfg_check_superfluous}" msgstr "配置文件中拥有过多的选项" -msgid "{attributes:attribute_labeleduri}" -msgstr "标签URI" - msgid "{errors:report_email}" msgstr "E-mail地址" @@ -474,18 +381,12 @@ msgstr "没有设置密码" msgid "{errors:descr_NORELAYSTATE}" msgstr "这个请求的发起人没有提供RelayState参数,以说明下一步处理" -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "正式名称" - msgid "{status:header_diagnostics}" msgstr "SimpleSAMLphp 诊断" msgid "{status:intro}" msgstr "嗨,这是SimpleSAMLphp状态页。这里你可以看到,如果您的会话超时,它持续多久,直到超时和连接到您的会话的所有属性。" -msgid "{attributes:attribute_schachomeorganization}" -msgstr "首页组织的域名" - msgid "{errors:title_NOTFOUNDREASON}" msgstr "页面没有找到" @@ -504,30 +405,18 @@ msgstr "想要查看SAML实体的详细情况,请点击SAML实体载入器" msgid "{errors:title_NOTVALIDCERT}" msgstr "无效的证书" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "人的家组织单位的辨别名称(DN)" - msgid "{general:remember}" msgstr "记住" msgid "{disco:selectidp}" msgstr "选择你的身份提供者" -msgid "{attributes:attribute_postofficebox}" -msgstr "邮政信箱" - -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "人的主要在家中组织的名称" - msgid "{login:help_desk_email}" msgstr "发送Email给服务台" msgid "{login:help_desk_link}" msgstr "服务台的主页" -msgid "{attributes:attribute_uid}" -msgstr "用户ID" - msgid "{errors:title_CASERROR}" msgstr "CAS错误" @@ -546,12 +435,6 @@ msgstr "记住我的选择" msgid "{admin:metaover_group_metadata.saml20-sp-hosted}" msgstr "SAML 2.0 服务提供者(本地)" -msgid "{attributes:attribute_l}" -msgstr "位置" - -msgid "{attributes:attribute_edupersonassurance}" -msgstr "可靠验证配置文件" - msgid "{admin:metadata_simplesamlformat}" msgstr "如果你想在其他网站使用的SimpleSAMLphp,那么你应该使用SimpleSAMLphp扁平的文件格式" @@ -594,9 +477,6 @@ msgstr "信息" msgid "{errors:title_UNKNOWNCERT}" msgstr "未知的证书" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "传真号码" - msgid "{errors:title_LDAPERROR}" msgstr "LDAP错误" @@ -609,15 +489,9 @@ msgstr "没有找到给定的URL:%URL%" msgid "{errors:howto_text}" msgstr "这个错误可能是由于一些意想不到的行为或者是SimpleSAMLphp的配置错误导致的,请联系这个登录服务器的管理员并把上面的错误消息发送给他们" -msgid "{attributes:attribute_mobile}" -msgstr "手机" - msgid "{admin:metaover_group_metadata.shib13-idp-hosted}" msgstr "Shib 1.3 认证提供者(本地)" -msgid "{attributes:attribute_preferredlanguage}" -msgstr "首选语言" - msgid "{errors:descr_NOTVALIDCERT}" msgstr "你没有提交一个有效的证书" @@ -630,15 +504,6 @@ msgstr "下列必需的选项区域没有找到" msgid "{logout:logout_only}" msgstr "不,仅%SP%" -msgid "{attributes:attribute_o}" -msgstr "组织名称" - -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "人的主要组织单位的辨别名称(DN)" - -msgid "{attributes:attribute_noredupersonlin}" -msgstr "本地身份号码" - msgid "{login:next}" msgstr "下一步" @@ -654,9 +519,6 @@ msgstr "给定的页面没有找到,原因: %REASON%; URL: %URL%" msgid "{errors:title_NOCERT}" msgstr "无证书" -msgid "{attributes:attribute_userpassword}" -msgstr "用户密码的HASH值" - msgid "{errors:title_LOGOUTINFOLOST}" msgstr "丢失了退出消息" @@ -669,30 +531,18 @@ msgstr "SimpleSAMLphp出现配置错误" msgid "{admin:metadata_intro}" msgstr "这里是SimpleSAMLphp为你生成的元信息,你应该发送这个元信息文档给你的信任的合作伙伴以建立信任的联盟" -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "个人资料" - -msgid "{status:header_wsfed}" -msgstr "WS-Fed SP 演示案例" - msgid "{admin:metadata_cert}" msgstr "证书" msgid "{errors:descr_INVALIDCERT}" msgstr "认证失败:你的浏览器发送的证书无效或者不能读取" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "组织的法定名称" - msgid "{status:header_shib}" msgstr "Shibboleth演示" msgid "{admin:metaconv_parse}" msgstr "分析器" -msgid "{attributes:attribute_noreduorgnin}" -msgstr "组织号码" - msgid "Person's principal name at home organization" msgstr "人的主要在家中组织的名称" @@ -994,8 +844,8 @@ msgid "" msgstr "这个错误可能是由于一些意想不到的行为或者是SimpleSAMLphp的配置错误导致的,请联系这个登录服务器的管理员并把上面的错误消息发送给他们" #, python-format -msgid "Your session is valid for %SECONDS% seconds from now." -msgstr "你的会话在%SECONDS%秒内有效" +msgid "Your session is valid for %remaining% seconds from now." +msgstr "你的会话在%remaining%秒内有效" msgid "Domain component (DC)" msgstr "Opened the web browser with tabs saved from the previous session.域组件(DC)" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/zu/LC_MESSAGES/attributes.po b/vendor/simplesamlphp/simplesamlphp/locales/zu/LC_MESSAGES/attributes.po new file mode 100644 index 0000000000000000000000000000000000000000..8d07b90f93756d08fd82123e734cf24557b6f450 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/locales/zu/LC_MESSAGES/attributes.po @@ -0,0 +1,2058 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zu\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" + +msgid "aRecord" +msgstr "aRecord" + +msgid "urn:mace:dir:attribute-def:aRecord" +msgstr "urn:mace:dir:attribute-def:aRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.26" +msgstr "urn:oid:0.9.2342.19200300.100.1.26" + +msgid "aliasedEntryName" +msgstr "aliasedEntryName" + +msgid "urn:mace:dir:attribute-def:aliasedEntryName" +msgstr "urn:mace:dir:attribute-def:aliasedEntryName" + +msgid "urn:oid:2.5.4.1" +msgstr "urn:oid:2.5.4.1" + +msgid "aliasedObjectName" +msgstr "aliasedObjectName" + +msgid "urn:mace:dir:attribute-def:aliasedObjectName" +msgstr "urn:mace:dir:attribute-def:aliasedObjectName" + +msgid "associatedDomain" +msgstr "associatedDomain" + +msgid "urn:mace:dir:attribute-def:associatedDomain" +msgstr "urn:mace:dir:attribute-def:associatedDomain" + +msgid "urn:oid:0.9.2342.19200300.100.1.37" +msgstr "urn:oid:0.9.2342.19200300.100.1.37" + +msgid "associatedName" +msgstr "associatedName" + +msgid "urn:mace:dir:attribute-def:associatedName" +msgstr "urn:mace:dir:attribute-def:associatedName" + +msgid "urn:oid:0.9.2342.19200300.100.1.38" +msgstr "urn:oid:0.9.2342.19200300.100.1.38" + +msgid "audio" +msgstr "audio" + +msgid "urn:mace:dir:attribute-def:audio" +msgstr "urn:mace:dir:attribute-def:audio" + +msgid "urn:oid:0.9.2342.19200300.100.1.55" +msgstr "urn:oid:0.9.2342.19200300.100.1.55" + +msgid "authorityRevocationList" +msgstr "authorityRevocationList" + +msgid "urn:mace:dir:attribute-def:authorityRevocationList" +msgstr "urn:mace:dir:attribute-def:authorityRevocationList" + +msgid "urn:oid:2.5.4.38" +msgstr "urn:oid:2.5.4.38" + +msgid "buildingName" +msgstr "buildingName" + +msgid "urn:mace:dir:attribute-def:buildingName" +msgstr "urn:mace:dir:attribute-def:buildingName" + +msgid "urn:oid:0.9.2342.19200300.100.1.48" +msgstr "urn:oid:0.9.2342.19200300.100.1.48" + +msgid "businessCategory" +msgstr "businessCategory" + +msgid "urn:mace:dir:attribute-def:businessCategory" +msgstr "urn:mace:dir:attribute-def:businessCategory" + +msgid "urn:oid:2.5.4.15" +msgstr "urn:oid:2.5.4.15" + +msgid "c" +msgstr "c" + +msgid "urn:mace:dir:attribute-def:c" +msgstr "urn:mace:dir:attribute-def:c" + +msgid "urn:oid:2.5.4.6" +msgstr "urn:oid:2.5.4.6" + +msgid "cACertificate" +msgstr "cACertificate" + +msgid "urn:mace:dir:attribute-def:cACertificate" +msgstr "urn:mace:dir:attribute-def:cACertificate" + +msgid "urn:oid:2.5.4.37" +msgstr "urn:oid:2.5.4.37" + +msgid "cNAMERecord" +msgstr "cNAMERecord" + +msgid "urn:mace:dir:attribute-def:cNAMERecord" +msgstr "urn:mace:dir:attribute-def:cNAMERecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.31" +msgstr "urn:oid:0.9.2342.19200300.100.1.31" + +msgid "carLicense" +msgstr "carLicense" + +msgid "urn:mace:dir:attribute-def:carLicense" +msgstr "urn:mace:dir:attribute-def:carLicense" + +msgid "urn:oid:2.16.840.1.113730.3.1.1" +msgstr "urn:oid:2.16.840.1.113730.3.1.1" + +msgid "certificateRevocationList" +msgstr "certificateRevocationList" + +msgid "urn:mace:dir:attribute-def:certificateRevocationList" +msgstr "urn:mace:dir:attribute-def:certificateRevocationList" + +msgid "urn:oid:2.5.4.39" +msgstr "urn:oid:2.5.4.39" + +# English string: Common name +msgid "cn" +msgstr "Igama elivamile" + +# English string: Common name +msgid "urn:mace:dir:attribute-def:cn" +msgstr "Igama elivamile" + +# English string: Common name +msgid "urn:oid:2.5.4.3" +msgstr "Igama elivamile" + +msgid "co" +msgstr "co" + +msgid "urn:mace:dir:attribute-def:co" +msgstr "urn:mace:dir:attribute-def:co" + +msgid "urn:oid:0.9.2342.19200300.100.1.43" +msgstr "urn:oid:0.9.2342.19200300.100.1.43" + +msgid "commonName" +msgstr "commonName" + +msgid "urn:mace:dir:attribute-def:commonName" +msgstr "urn:mace:dir:attribute-def:commonName" + +msgid "countryName" +msgstr "countryName" + +msgid "urn:mace:dir:attribute-def:countryName" +msgstr "urn:mace:dir:attribute-def:countryName" + +msgid "crossCertificatePair" +msgstr "crossCertificatePair" + +msgid "urn:mace:dir:attribute-def:crossCertificatePair" +msgstr "urn:mace:dir:attribute-def:crossCertificatePair" + +msgid "urn:oid:2.5.4.40" +msgstr "urn:oid:2.5.4.40" + +msgid "dITRedirect" +msgstr "dITRedirect" + +msgid "urn:mace:dir:attribute-def:dITRedirect" +msgstr "urn:mace:dir:attribute-def:dITRedirect" + +msgid "urn:oid:0.9.2342.19200300.100.1.54" +msgstr "urn:oid:0.9.2342.19200300.100.1.54" + +msgid "dSAQuality" +msgstr "dSAQuality" + +msgid "urn:mace:dir:attribute-def:dSAQuality" +msgstr "urn:mace:dir:attribute-def:dSAQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.49" +msgstr "urn:oid:0.9.2342.19200300.100.1.49" + +# English string: Domain component (DC) +msgid "dc" +msgstr "Ingxenye yesizinda (I-DC)" + +# English string: Domain component (DC) +msgid "urn:mace:dir:attribute-def:dc" +msgstr "Ingxenye yesizinda (I-DC)" + +# English string: Domain component (DC) +msgid "urn:oid:0.9.2342.19200300.100.1.25" +msgstr "Ingxenye yesizinda (I-DC)" + +msgid "deltaRevocationList" +msgstr "deltaRevocationList" + +msgid "urn:mace:dir:attribute-def:deltaRevocationList" +msgstr "urn:mace:dir:attribute-def:deltaRevocationList" + +msgid "urn:oid:2.5.4.53" +msgstr "urn:oid:2.5.4.53" + +msgid "departmentNumber" +msgstr "departmentNumber" + +msgid "urn:mace:dir:attribute-def:departmentNumber" +msgstr "urn:mace:dir:attribute-def:departmentNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.2" +msgstr "urn:oid:2.16.840.1.113730.3.1.2" + +msgid "description" +msgstr "description" + +msgid "urn:mace:dir:attribute-def:description" +msgstr "urn:mace:dir:attribute-def:description" + +msgid "urn:oid:2.5.4.13" +msgstr "urn:oid:2.5.4.13" + +msgid "destinationIndicator" +msgstr "destinationIndicator" + +msgid "urn:mace:dir:attribute-def:destinationIndicator" +msgstr "urn:mace:dir:attribute-def:destinationIndicator" + +msgid "urn:oid:2.5.4.27" +msgstr "urn:oid:2.5.4.27" + +# English string: Display name +msgid "displayName" +msgstr "Igama lesibonisi" + +# English string: Display name +msgid "urn:mace:dir:attribute-def:displayName" +msgstr "Igama lesibonisi" + +# English string: Display name +msgid "urn:oid:2.16.840.1.113730.3.1.241" +msgstr "Igama lesibonisi" + +msgid "distinguishedName" +msgstr "distinguishedName" + +msgid "urn:mace:dir:attribute-def:distinguishedName" +msgstr "urn:mace:dir:attribute-def:distinguishedName" + +msgid "urn:oid:2.5.4.49" +msgstr "urn:oid:2.5.4.49" + +msgid "dmdName" +msgstr "dmdName" + +msgid "urn:mace:dir:attribute-def:dmdName" +msgstr "urn:mace:dir:attribute-def:dmdName" + +msgid "urn:oid:2.5.4.54" +msgstr "urn:oid:2.5.4.54" + +msgid "dnQualifier" +msgstr "dnQualifier" + +msgid "urn:mace:dir:attribute-def:dnQualifier" +msgstr "urn:mace:dir:attribute-def:dnQualifier" + +msgid "urn:oid:2.5.4.46" +msgstr "urn:oid:2.5.4.46" + +msgid "documentAuthor" +msgstr "documentAuthor" + +msgid "urn:mace:dir:attribute-def:documentAuthor" +msgstr "urn:mace:dir:attribute-def:documentAuthor" + +msgid "urn:oid:0.9.2342.19200300.100.1.14" +msgstr "urn:oid:0.9.2342.19200300.100.1.14" + +msgid "documentIdentifier" +msgstr "documentIdentifier" + +msgid "urn:mace:dir:attribute-def:documentIdentifier" +msgstr "urn:mace:dir:attribute-def:documentIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.11" +msgstr "urn:oid:0.9.2342.19200300.100.1.11" + +msgid "documentLocation" +msgstr "documentLocation" + +msgid "urn:mace:dir:attribute-def:documentLocation" +msgstr "urn:mace:dir:attribute-def:documentLocation" + +msgid "urn:oid:0.9.2342.19200300.100.1.15" +msgstr "urn:oid:0.9.2342.19200300.100.1.15" + +msgid "documentPublisher" +msgstr "documentPublisher" + +msgid "urn:mace:dir:attribute-def:documentPublisher" +msgstr "urn:mace:dir:attribute-def:documentPublisher" + +msgid "urn:oid:0.9.2342.19200300.100.1.56" +msgstr "urn:oid:0.9.2342.19200300.100.1.56" + +msgid "documentTitle" +msgstr "documentTitle" + +msgid "urn:mace:dir:attribute-def:documentTitle" +msgstr "urn:mace:dir:attribute-def:documentTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.12" +msgstr "urn:oid:0.9.2342.19200300.100.1.12" + +msgid "documentVersion" +msgstr "documentVersion" + +msgid "urn:mace:dir:attribute-def:documentVersion" +msgstr "urn:mace:dir:attribute-def:documentVersion" + +msgid "urn:oid:0.9.2342.19200300.100.1.13" +msgstr "urn:oid:0.9.2342.19200300.100.1.13" + +msgid "domainComponent" +msgstr "domainComponent" + +msgid "urn:mace:dir:attribute-def:domainComponent" +msgstr "urn:mace:dir:attribute-def:domainComponent" + +msgid "drink" +msgstr "drink" + +msgid "urn:mace:dir:attribute-def:drink" +msgstr "urn:mace:dir:attribute-def:drink" + +msgid "urn:oid:0.9.2342.19200300.100.1.5" +msgstr "urn:oid:0.9.2342.19200300.100.1.5" + +# English string: Organizational homepage +msgid "eduOrgHomePageURI" +msgstr "Ikhasi lasekhaya lenhlangano" + +# English string: Organizational homepage +msgid "urn:mace:dir:attribute-def:eduOrgHomePageURI" +msgstr "Ikhasi lasekhaya lenhlangano" + +# English string: Organizational homepage +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.2" +msgstr "Ikhasi lasekhaya lenhlangano" + +msgid "eduOrgIdentityAuthNPolicyURI" +msgstr "eduOrgIdentityAuthNPolicyURI" + +msgid "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" +msgstr "urn:mace:dir:attribute-def:eduOrgIdentityAuthNPolicyURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.3" + +# English string: Organization's legal name +msgid "eduOrgLegalName" +msgstr "Igama elisemthethweni lenhlangano" + +# English string: Organization's legal name +msgid "urn:mace:dir:attribute-def:eduOrgLegalName" +msgstr "Igama elisemthethweni lenhlangano" + +# English string: Organization's legal name +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.4" +msgstr "Igama elisemthethweni lenhlangano" + +msgid "eduOrgSuperiorURI" +msgstr "eduOrgSuperiorURI" + +msgid "urn:mace:dir:attribute-def:eduOrgSuperiorURI" +msgstr "urn:mace:dir:attribute-def:eduOrgSuperiorURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.5" + +msgid "eduOrgWhitePagesURI" +msgstr "eduOrgWhitePagesURI" + +msgid "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" +msgstr "urn:mace:dir:attribute-def:eduOrgWhitePagesURI" + +msgid "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" +msgstr "urn:oid:1.3.6.1.4.1.5923.1.2.1.6" + +# English string: Affiliation +msgid "eduPersonAffiliation" +msgstr "Indima" + +# English string: Affiliation +msgid "urn:mace:dir:attribute-def:eduPersonAffiliation" +msgstr "Indima" + +# English string: Affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.1" +msgstr "Indima" + +# English string: Identity assurance profile +msgid "eduPersonAssurance" +msgstr "Iphrofayela yokuqinisekisa umazisi" + +# English string: Identity assurance profile +msgid "urn:mace:dir:attribute-def:eduPersonAssurance" +msgstr "Iphrofayela yokuqinisekisa umazisi" + +# English string: Identity assurance profile +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.11" +msgstr "Iphrofayela yokuqinisekisa umazisi" + +# English string: Entitlement regarding the service +msgid "eduPersonEntitlement" +msgstr "Ilungelo eliphathelene nesevisi" + +# English string: Entitlement regarding the service +msgid "urn:mace:dir:attribute-def:eduPersonEntitlement" +msgstr "Ilungelo eliphathelene nesevisi" + +# English string: Entitlement regarding the service +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.7" +msgstr "Ilungelo eliphathelene nesevisi" + +# English string: Nickname +msgid "eduPersonNickname" +msgstr "Isidlaliso" + +# English string: Nickname +msgid "urn:mace:dir:attribute-def:eduPersonNickname" +msgstr "Isidlaliso" + +# English string: Nickname +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.2" +msgstr "Isidlaliso" + +# English string: Distinguished name (DN) of person's home organization +msgid "eduPersonOrgDN" +msgstr "Igama elihloniphekile (I-DN) lenhlangano yasekhaya yomuntu" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:mace:dir:attribute-def:eduPersonOrgDN" +msgstr "Igama elihloniphekile (I-DN) lenhlangano yasekhaya yomuntu" + +# English string: Distinguished name (DN) of person's home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.3" +msgstr "Igama elihloniphekile (I-DN) lenhlangano yasekhaya yomuntu" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "eduPersonOrgUnitDN" +msgstr "Igama elihloniphekile (I-DN) leyunithi yenhlangano yasekhaya yomuntu" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:mace:dir:attribute-def:eduPersonOrgUnitDN" +msgstr "Igama elihloniphekile (I-DN) leyunithi yenhlangano yasekhaya yomuntu" + +# English string: Distinguished name (DN) of the person's home organizational unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.4" +msgstr "Igama elihloniphekile (I-DN) leyunithi yenhlangano yasekhaya yomuntu" + +# English string: Primary affiliation +msgid "eduPersonPrimaryAffiliation" +msgstr "Indima eyinhloko" + +# English string: Primary affiliation +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryAffiliation" +msgstr "Indima eyinhloko" + +# English string: Primary affiliation +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.5" +msgstr "Indima eyinhloko" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "eduPersonPrimaryOrgUnitDN" +msgstr "Igama elihloniphekile (I-DN) Leyunithi Yenhlangano eyinhloko yomuntu" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" +msgstr "Igama elihloniphekile (I-DN) Leyunithi Yenhlangano eyinhloko yomuntu" + +# English string: Distinguished name (DN) of person's primary Organizational Unit +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.8" +msgstr "Igama elihloniphekile (I-DN) Leyunithi Yenhlangano eyinhloko yomuntu" + +# English string: Person's principal name at home organization +msgid "eduPersonPrincipalName" +msgstr "Igama eliyinhloko lomuntu enhlanganweni yasekhaya" + +# English string: Person's principal name at home organization +msgid "urn:mace:dir:attribute-def:eduPersonPrincipalName" +msgstr "Igama eliyinhloko lomuntu enhlanganweni yasekhaya" + +# English string: Person's principal name at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.6" +msgstr "Igama eliyinhloko lomuntu enhlanganweni yasekhaya" + +# English string: Affiliation at home organization +msgid "eduPersonScopedAffiliation" +msgstr "Indima enhlanganweni yasekhaya" + +# English string: Affiliation at home organization +msgid "urn:mace:dir:attribute-def:eduPersonScopedAffiliation" +msgstr "Indima enhlanganweni yasekhaya" + +# English string: Affiliation at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.9" +msgstr "Indima enhlanganweni yasekhaya" + +# English string: Persistent pseudonymous ID +msgid "eduPersonTargetedID" +msgstr "Isibizo esingashintshi esiqondene nesevisi" + +# English string: Persistent pseudonymous ID +msgid "urn:mace:dir:attribute-def:eduPersonTargetedID" +msgstr "Isibizo esingashintshi esiqondene nesevisi" + +# English string: Persistent pseudonymous ID +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.10" +msgstr "Isibizo esingashintshi esiqondene nesevisi" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "eduPersonUniqueId" +msgstr "I-ID yesibizo ephikelelayo, engakwazi ukwabelwa kabusha yomuntu yenhlangano yasekhaya" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:mace:dir:attribute-def:eduPersonUniqueId" +msgstr "I-ID yesibizo ephikelelayo, engakwazi ukwabelwa kabusha yomuntu yenhlangano yasekhaya" + +# English string: Person's non-reassignable, persistent pseudonymous ID at home organization +msgid "urn:oid:1.3.6.1.4.1.5923.1.1.1.13" +msgstr "I-ID yesibizo ephikelelayo, engakwazi ukwabelwa kabusha yomuntu yenhlangano yasekhaya" + +msgid "email" +msgstr "email" + +msgid "urn:mace:dir:attribute-def:email" +msgstr "urn:mace:dir:attribute-def:email" + +msgid "urn:oid:1.2.840.113549.1.9.1" +msgstr "urn:oid:1.2.840.113549.1.9.1" + +msgid "emailAddress" +msgstr "emailAddress" + +msgid "urn:mace:dir:attribute-def:emailAddress" +msgstr "urn:mace:dir:attribute-def:emailAddress" + +msgid "employeeNumber" +msgstr "employeeNumber" + +msgid "urn:mace:dir:attribute-def:employeeNumber" +msgstr "urn:mace:dir:attribute-def:employeeNumber" + +msgid "urn:oid:2.16.840.1.113730.3.1.3" +msgstr "urn:oid:2.16.840.1.113730.3.1.3" + +msgid "employeeType" +msgstr "employeeType" + +msgid "urn:mace:dir:attribute-def:employeeType" +msgstr "urn:mace:dir:attribute-def:employeeType" + +msgid "urn:oid:2.16.840.1.113730.3.1.4" +msgstr "urn:oid:2.16.840.1.113730.3.1.4" + +msgid "enhancedSearchGuide" +msgstr "enhancedSearchGuide" + +msgid "urn:mace:dir:attribute-def:enhancedSearchGuide" +msgstr "urn:mace:dir:attribute-def:enhancedSearchGuide" + +msgid "urn:oid:2.5.4.47" +msgstr "urn:oid:2.5.4.47" + +# English string: Fax number +msgid "facsimileTelephoneNumber" +msgstr "Inombolo yefeksi" + +# English string: Fax number +msgid "urn:mace:dir:attribute-def:facsimileTelephoneNumber" +msgstr "Inombolo yefeksi" + +# English string: Fax number +msgid "urn:oid:2.5.4.23" +msgstr "Inombolo yefeksi" + +msgid "favouriteDrink" +msgstr "favouriteDrink" + +msgid "urn:mace:dir:attribute-def:favouriteDrink" +msgstr "urn:mace:dir:attribute-def:favouriteDrink" + +msgid "fax" +msgstr "fax" + +msgid "urn:mace:dir:attribute-def:fax" +msgstr "urn:mace:dir:attribute-def:fax" + +msgid "federationFeideSchemaVersion" +msgstr "federationFeideSchemaVersion" + +msgid "urn:mace:dir:attribute-def:federationFeideSchemaVersion" +msgstr "urn:mace:dir:attribute-def:federationFeideSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.9" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.9" + +msgid "friendlyCountryName" +msgstr "friendlyCountryName" + +msgid "urn:mace:dir:attribute-def:friendlyCountryName" +msgstr "urn:mace:dir:attribute-def:friendlyCountryName" + +msgid "generationQualifier" +msgstr "generationQualifier" + +msgid "urn:mace:dir:attribute-def:generationQualifier" +msgstr "urn:mace:dir:attribute-def:generationQualifier" + +msgid "urn:oid:2.5.4.44" +msgstr "urn:oid:2.5.4.44" + +# English string: Given name +msgid "givenName" +msgstr "Igama lokuzalwa" + +# English string: Given name +msgid "urn:mace:dir:attribute-def:givenName" +msgstr "Igama lokuzalwa" + +# English string: Given name +msgid "urn:oid:2.5.4.42" +msgstr "Igama lokuzalwa" + +msgid "gn" +msgstr "gn" + +msgid "urn:mace:dir:attribute-def:gn" +msgstr "urn:mace:dir:attribute-def:gn" + +# English string: Home telephone +msgid "homePhone" +msgstr "Ucingo lwasekhaya" + +# English string: Home telephone +msgid "urn:mace:dir:attribute-def:homePhone" +msgstr "Ucingo lwasekhaya" + +# English string: Home telephone +msgid "urn:oid:0.9.2342.19200300.100.1.20" +msgstr "Ucingo lwasekhaya" + +# English string: Home postal address +msgid "homePostalAddress" +msgstr "Ikheli leposi lasekhaya" + +# English string: Home postal address +msgid "urn:mace:dir:attribute-def:homePostalAddress" +msgstr "Ikheli leposi lasekhaya" + +# English string: Home postal address +msgid "urn:oid:0.9.2342.19200300.100.1.39" +msgstr "Ikheli leposi lasekhaya" + +msgid "homeTelephoneNumber" +msgstr "homeTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:homeTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:homeTelephoneNumber" + +msgid "host" +msgstr "host" + +msgid "urn:mace:dir:attribute-def:host" +msgstr "urn:mace:dir:attribute-def:host" + +msgid "urn:oid:0.9.2342.19200300.100.1.9" +msgstr "urn:oid:0.9.2342.19200300.100.1.9" + +msgid "houseIdentifier" +msgstr "houseIdentifier" + +msgid "urn:mace:dir:attribute-def:houseIdentifier" +msgstr "urn:mace:dir:attribute-def:houseIdentifier" + +msgid "urn:oid:2.5.4.51" +msgstr "urn:oid:2.5.4.51" + +msgid "info" +msgstr "info" + +msgid "urn:mace:dir:attribute-def:info" +msgstr "urn:mace:dir:attribute-def:info" + +msgid "urn:oid:0.9.2342.19200300.100.1.4" +msgstr "urn:oid:0.9.2342.19200300.100.1.4" + +msgid "initials" +msgstr "initials" + +msgid "urn:mace:dir:attribute-def:initials" +msgstr "urn:mace:dir:attribute-def:initials" + +msgid "urn:oid:2.5.4.43" +msgstr "urn:oid:2.5.4.43" + +msgid "internationaliSDNNumber" +msgstr "internationaliSDNNumber" + +msgid "urn:mace:dir:attribute-def:internationaliSDNNumber" +msgstr "urn:mace:dir:attribute-def:internationaliSDNNumber" + +msgid "urn:oid:2.5.4.25" +msgstr "urn:oid:2.5.4.25" + +msgid "janetMailbox" +msgstr "janetMailbox" + +msgid "urn:mace:dir:attribute-def:janetMailbox" +msgstr "urn:mace:dir:attribute-def:janetMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.46" +msgstr "urn:oid:0.9.2342.19200300.100.1.46" + +# English string: JPEG Photo +msgid "jpegPhoto" +msgstr "Isithombe se-JPEG" + +# English string: JPEG Photo +msgid "urn:mace:dir:attribute-def:jpegPhoto" +msgstr "Isithombe se-JPEG" + +# English string: JPEG Photo +msgid "urn:oid:0.9.2342.19200300.100.1.60" +msgstr "Isithombe se-JPEG" + +msgid "knowledgeInformation" +msgstr "knowledgeInformation" + +msgid "urn:mace:dir:attribute-def:knowledgeInformation" +msgstr "urn:mace:dir:attribute-def:knowledgeInformation" + +msgid "urn:oid:2.5.4.2" +msgstr "urn:oid:2.5.4.2" + +# English string: Locality +msgid "l" +msgstr "Indawo" + +# English string: Locality +msgid "urn:mace:dir:attribute-def:l" +msgstr "Indawo" + +# English string: Locality +msgid "urn:oid:2.5.4.7" +msgstr "Indawo" + +# English string: Labeled URI +msgid "labeledURI" +msgstr "I-URI Enelebula" + +# English string: Labeled URI +msgid "urn:mace:dir:attribute-def:labeledURI" +msgstr "I-URI Enelebula" + +# English string: Labeled URI +msgid "urn:oid:1.3.6.1.4.1.250.1.57" +msgstr "I-URI Enelebula" + +msgid "localityName" +msgstr "localityName" + +msgid "urn:mace:dir:attribute-def:localityName" +msgstr "urn:mace:dir:attribute-def:localityName" + +msgid "mDRecord" +msgstr "mDRecord" + +msgid "urn:mace:dir:attribute-def:mDRecord" +msgstr "urn:mace:dir:attribute-def:mDRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.27" +msgstr "urn:oid:0.9.2342.19200300.100.1.27" + +msgid "mXRecord" +msgstr "mXRecord" + +msgid "urn:mace:dir:attribute-def:mXRecord" +msgstr "urn:mace:dir:attribute-def:mXRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.28" +msgstr "urn:oid:0.9.2342.19200300.100.1.28" + +# English string: Mail +msgid "mail" +msgstr "Imeyili" + +# English string: Mail +msgid "urn:mace:dir:attribute-def:mail" +msgstr "Imeyili" + +# English string: Mail +msgid "urn:oid:0.9.2342.19200300.100.1.3" +msgstr "Imeyili" + +msgid "mailPreferenceOption" +msgstr "mailPreferenceOption" + +msgid "urn:mace:dir:attribute-def:mailPreferenceOption" +msgstr "urn:mace:dir:attribute-def:mailPreferenceOption" + +msgid "urn:oid:0.9.2342.19200300.100.1.47" +msgstr "urn:oid:0.9.2342.19200300.100.1.47" + +# English string: Manager +msgid "manager" +msgstr "Umphathi" + +# English string: Manager +msgid "urn:mace:dir:attribute-def:manager" +msgstr "Umphathi" + +# English string: Manager +msgid "urn:oid:0.9.2342.19200300.100.1.10" +msgstr "Umphathi" + +msgid "member" +msgstr "member" + +msgid "urn:mace:dir:attribute-def:member" +msgstr "urn:mace:dir:attribute-def:member" + +msgid "urn:oid:2.5.4.31" +msgstr "urn:oid:2.5.4.31" + +# English string: Mobile +msgid "mobile" +msgstr "Imobhayili" + +# English string: Mobile +msgid "urn:mace:dir:attribute-def:mobile" +msgstr "Imobhayili" + +# English string: Mobile +msgid "urn:oid:0.9.2342.19200300.100.1.41" +msgstr "Imobhayili" + +msgid "mobileTelephoneNumber" +msgstr "mobileTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:mobileTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:mobileTelephoneNumber" + +msgid "nSRecord" +msgstr "nSRecord" + +msgid "urn:mace:dir:attribute-def:nSRecord" +msgstr "urn:mace:dir:attribute-def:nSRecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.29" +msgstr "urn:oid:0.9.2342.19200300.100.1.29" + +msgid "name" +msgstr "name" + +msgid "urn:mace:dir:attribute-def:name" +msgstr "urn:mace:dir:attribute-def:name" + +msgid "urn:oid:2.5.4.41" +msgstr "urn:oid:2.5.4.41" + +msgid "norEduOrgAcronym" +msgstr "norEduOrgAcronym" + +msgid "urn:mace:dir:attribute-def:norEduOrgAcronym" +msgstr "urn:mace:dir:attribute-def:norEduOrgAcronym" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.6" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.6" + +# English string: Organizational number +msgid "norEduOrgNIN" +msgstr "Inombolo yenhlangano" + +# English string: Organizational number +msgid "urn:mace:dir:attribute-def:norEduOrgNIN" +msgstr "Inombolo yenhlangano" + +# English string: Organizational number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.12" +msgstr "Inombolo yenhlangano" + +msgid "norEduOrgSchemaVersion" +msgstr "norEduOrgSchemaVersion" + +msgid "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" +msgstr "urn:mace:dir:attribute-def:norEduOrgSchemaVersion" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.11" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.11" + +msgid "norEduOrgUniqueIdentifier" +msgstr "norEduOrgUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.7" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.7" + +msgid "norEduOrgUniqueNumber" +msgstr "norEduOrgUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.1" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.1" + +msgid "norEduOrgUnitUniqueIdentifier" +msgstr "norEduOrgUnitUniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueIdentifier" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.8" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.8" + +msgid "norEduOrgUnitUniqueNumber" +msgstr "norEduOrgUnitUniqueNumber" + +msgid "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" +msgstr "urn:mace:dir:attribute-def:norEduOrgUnitUniqueNumber" + +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.2" +msgstr "urn:oid:1.3.6.1.4.1.2428.90.1.2" + +# English string: Date of birth +msgid "norEduPersonBirthDate" +msgstr "Usuku lokuzalwa" + +# English string: Date of birth +msgid "urn:mace:dir:attribute-def:norEduPersonBirthDate" +msgstr "Usuku lokuzalwa" + +# English string: Date of birth +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.3" +msgstr "Usuku lokuzalwa" + +# English string: Local identity number +msgid "norEduPersonLIN" +msgstr "Inombolo kamazisi yasendaweni" + +# English string: Local identity number +msgid "urn:mace:dir:attribute-def:norEduPersonLIN" +msgstr "Inombolo kamazisi yasendaweni" + +# English string: Local identity number +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.4" +msgstr "Inombolo kamazisi yasendaweni" + +# English string: Identity number assigned by public authorities +msgid "norEduPersonNIN" +msgstr "Inombolo kamazisi eyabelwe amagunya omphakathi" + +# English string: Identity number assigned by public authorities +msgid "urn:mace:dir:attribute-def:norEduPersonNIN" +msgstr "Inombolo kamazisi eyabelwe amagunya omphakathi" + +# English string: Identity number assigned by public authorities +msgid "urn:oid:1.3.6.1.4.1.2428.90.1.5" +msgstr "Inombolo kamazisi eyabelwe amagunya omphakathi" + +# English string: Organization name +msgid "o" +msgstr "Igama lenhlangano" + +# English string: Organization name +msgid "urn:mace:dir:attribute-def:o" +msgstr "Igama lenhlangano" + +# English string: Organization name +msgid "urn:oid:2.5.4.10" +msgstr "Igama lenhlangano" + +msgid "objectClass" +msgstr "objectClass" + +msgid "urn:mace:dir:attribute-def:objectClass" +msgstr "urn:mace:dir:attribute-def:objectClass" + +msgid "urn:oid:2.5.4.0" +msgstr "urn:oid:2.5.4.0" + +msgid "organizationName" +msgstr "organizationName" + +msgid "urn:mace:dir:attribute-def:organizationName" +msgstr "urn:mace:dir:attribute-def:organizationName" + +msgid "organizationalStatus" +msgstr "organizationalStatus" + +msgid "urn:mace:dir:attribute-def:organizationalStatus" +msgstr "urn:mace:dir:attribute-def:organizationalStatus" + +msgid "urn:oid:0.9.2342.19200300.100.1.45" +msgstr "urn:oid:0.9.2342.19200300.100.1.45" + +msgid "organizationalUnitName" +msgstr "organizationalUnitName" + +msgid "urn:mace:dir:attribute-def:organizationalUnitName" +msgstr "urn:mace:dir:attribute-def:organizationalUnitName" + +# English string: Organizational unit +msgid "urn:oid:2.5.4.11" +msgstr "Iyunithi yenhlangano" + +msgid "otherMailbox" +msgstr "otherMailbox" + +msgid "urn:mace:dir:attribute-def:otherMailbox" +msgstr "urn:mace:dir:attribute-def:otherMailbox" + +msgid "urn:oid:0.9.2342.19200300.100.1.22" +msgstr "urn:oid:0.9.2342.19200300.100.1.22" + +# English string: Organizational unit +msgid "ou" +msgstr "Iyunithi yenhlangano" + +# English string: Organizational unit +msgid "urn:mace:dir:attribute-def:ou" +msgstr "Iyunithi yenhlangano" + +msgid "owner" +msgstr "owner" + +msgid "urn:mace:dir:attribute-def:owner" +msgstr "urn:mace:dir:attribute-def:owner" + +msgid "urn:oid:2.5.4.32" +msgstr "urn:oid:2.5.4.32" + +msgid "pager" +msgstr "pager" + +msgid "urn:mace:dir:attribute-def:pager" +msgstr "urn:mace:dir:attribute-def:pager" + +msgid "urn:oid:0.9.2342.19200300.100.1.42" +msgstr "urn:oid:0.9.2342.19200300.100.1.42" + +msgid "pagerTelephoneNumber" +msgstr "pagerTelephoneNumber" + +msgid "urn:mace:dir:attribute-def:pagerTelephoneNumber" +msgstr "urn:mace:dir:attribute-def:pagerTelephoneNumber" + +# English string: Service-specific pseudonymous ID at home organization +msgid "pairwise-id" +msgstr "pairwise-id" + +# English string: Service-specific pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:pairwise-id" +msgstr "urn:oasis:names:tc:SAML:attribute:pairwise-id" + +msgid "personalSignature" +msgstr "personalSignature" + +msgid "urn:mace:dir:attribute-def:personalSignature" +msgstr "urn:mace:dir:attribute-def:personalSignature" + +msgid "urn:oid:0.9.2342.19200300.100.1.53" +msgstr "urn:oid:0.9.2342.19200300.100.1.53" + +msgid "personalTitle" +msgstr "personalTitle" + +msgid "urn:mace:dir:attribute-def:personalTitle" +msgstr "urn:mace:dir:attribute-def:personalTitle" + +msgid "urn:oid:0.9.2342.19200300.100.1.40" +msgstr "urn:oid:0.9.2342.19200300.100.1.40" + +msgid "photo" +msgstr "photo" + +msgid "urn:mace:dir:attribute-def:photo" +msgstr "urn:mace:dir:attribute-def:photo" + +msgid "urn:oid:0.9.2342.19200300.100.1.7" +msgstr "urn:oid:0.9.2342.19200300.100.1.7" + +msgid "physicalDeliveryOfficeName" +msgstr "physicalDeliveryOfficeName" + +msgid "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" +msgstr "urn:mace:dir:attribute-def:physicalDeliveryOfficeName" + +msgid "urn:oid:2.5.4.19" +msgstr "urn:oid:2.5.4.19" + +msgid "pkcs9email" +msgstr "pkcs9email" + +msgid "urn:mace:dir:attribute-def:pkcs9email" +msgstr "urn:mace:dir:attribute-def:pkcs9email" + +# English string: Post office box +msgid "postOfficeBox" +msgstr "Ibhokisi lehhovisi leposi" + +# English string: Post office box +msgid "urn:mace:dir:attribute-def:postOfficeBox" +msgstr "Ibhokisi lehhovisi leposi" + +# English string: Post office box +msgid "urn:oid:2.5.4.18" +msgstr "Ibhokisi lehhovisi leposi" + +# English string: Postal address +msgid "postalAddress" +msgstr "Ikheli leposi" + +# English string: Postal address +msgid "urn:mace:dir:attribute-def:postalAddress" +msgstr "Ikheli leposi" + +# English string: Postal address +msgid "urn:oid:2.5.4.16" +msgstr "Ikheli leposi" + +# English string: Postal code +msgid "postalCode" +msgstr "Ikhodi yeposi" + +# English string: Postal code +msgid "urn:mace:dir:attribute-def:postalCode" +msgstr "Ikhodi yeposi" + +# English string: Postal code +msgid "urn:oid:2.5.4.17" +msgstr "Ikhodi yeposi" + +msgid "preferredDeliveryMethod" +msgstr "preferredDeliveryMethod" + +msgid "urn:mace:dir:attribute-def:preferredDeliveryMethod" +msgstr "urn:mace:dir:attribute-def:preferredDeliveryMethod" + +msgid "urn:oid:2.5.4.28" +msgstr "urn:oid:2.5.4.28" + +# English string: Preferred language +msgid "preferredLanguage" +msgstr "Ulimi oluncanyelwayo" + +# English string: Preferred language +msgid "urn:mace:dir:attribute-def:preferredLanguage" +msgstr "Ulimi oluncanyelwayo" + +# English string: Preferred language +msgid "urn:oid:2.16.840.1.113730.3.1.39" +msgstr "Ulimi oluncanyelwayo" + +msgid "presentationAddress" +msgstr "presentationAddress" + +msgid "urn:mace:dir:attribute-def:presentationAddress" +msgstr "urn:mace:dir:attribute-def:presentationAddress" + +msgid "urn:oid:2.5.4.29" +msgstr "urn:oid:2.5.4.29" + +msgid "protocolInformation" +msgstr "protocolInformation" + +msgid "urn:mace:dir:attribute-def:protocolInformation" +msgstr "urn:mace:dir:attribute-def:protocolInformation" + +msgid "urn:oid:2.5.4.48" +msgstr "urn:oid:2.5.4.48" + +msgid "pseudonym" +msgstr "pseudonym" + +msgid "urn:mace:dir:attribute-def:pseudonym" +msgstr "urn:mace:dir:attribute-def:pseudonym" + +msgid "urn:oid:2.5.4.65" +msgstr "urn:oid:2.5.4.65" + +msgid "registeredAddress" +msgstr "registeredAddress" + +msgid "urn:mace:dir:attribute-def:registeredAddress" +msgstr "urn:mace:dir:attribute-def:registeredAddress" + +msgid "urn:oid:2.5.4.26" +msgstr "urn:oid:2.5.4.26" + +msgid "rfc822Mailbox" +msgstr "rfc822Mailbox" + +msgid "urn:mace:dir:attribute-def:rfc822Mailbox" +msgstr "urn:mace:dir:attribute-def:rfc822Mailbox" + +msgid "roleOccupant" +msgstr "roleOccupant" + +msgid "urn:mace:dir:attribute-def:roleOccupant" +msgstr "urn:mace:dir:attribute-def:roleOccupant" + +msgid "urn:oid:2.5.4.33" +msgstr "urn:oid:2.5.4.33" + +msgid "roomNumber" +msgstr "roomNumber" + +msgid "urn:mace:dir:attribute-def:roomNumber" +msgstr "urn:mace:dir:attribute-def:roomNumber" + +msgid "urn:oid:0.9.2342.19200300.100.1.6" +msgstr "urn:oid:0.9.2342.19200300.100.1.6" + +msgid "sOARecord" +msgstr "sOARecord" + +msgid "urn:mace:dir:attribute-def:sOARecord" +msgstr "urn:mace:dir:attribute-def:sOARecord" + +msgid "urn:oid:0.9.2342.19200300.100.1.30" +msgstr "urn:oid:0.9.2342.19200300.100.1.30" + +msgid "schacCountryOfCitizenship" +msgstr "schacCountryOfCitizenship" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfCitizenship" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.5" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.5" + +msgid "urn:schac:attribute-def:schacCountryOfCitizenship" +msgstr "urn:schac:attribute-def:schacCountryOfCitizenship" + +msgid "schacCountryOfResidence" +msgstr "schacCountryOfResidence" + +msgid "urn:mace:terena.org:attribute-def:schacCountryOfResidence" +msgstr "urn:mace:terena.org:attribute-def:schacCountryOfResidence" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.11" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.11" + +msgid "urn:schac:attribute-def:schacCountryOfResidence" +msgstr "urn:schac:attribute-def:schacCountryOfResidence" + +msgid "schacDateOfBirth" +msgstr "schacDateOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacDateOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacDateOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.3" + +msgid "urn:schac:attribute-def:schacDateOfBirth" +msgstr "urn:schac:attribute-def:schacDateOfBirth" + +msgid "schacExpiryDate" +msgstr "schacExpiryDate" + +msgid "urn:mace:terena.org:attribute-def:schacExpiryDate" +msgstr "urn:mace:terena.org:attribute-def:schacExpiryDate" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.17" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.17" + +msgid "urn:schac:attribute-def:schacExpiryDate" +msgstr "urn:schac:attribute-def:schacExpiryDate" + +msgid "schacGender" +msgstr "schacGender" + +msgid "urn:mace:terena.org:attribute-def:schacGender" +msgstr "urn:mace:terena.org:attribute-def:schacGender" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.2" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.2" + +msgid "urn:schac:attribute-def:schacGender" +msgstr "urn:schac:attribute-def:schacGender" + +# English string: Home organization domain name +msgid "schacHomeOrganization" +msgstr "Igama lesizinda senhlangano yasekhaya" + +# English string: Home organization domain name +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganization" +msgstr "Igama lesizinda senhlangano yasekhaya" + +# English string: Home organization domain name +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.9" +msgstr "Igama lesizinda senhlangano yasekhaya" + +# English string: Home organization domain name +msgid "urn:schac:attribute-def:schacHomeOrganization" +msgstr "Igama lesizinda senhlangano yasekhaya" + +msgid "schacHomeOrganizationType" +msgstr "schacHomeOrganizationType" + +msgid "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" +msgstr "urn:mace:terena.org:attribute-def:schacHomeOrganizationType" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.10" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.10" + +msgid "urn:schac:attribute-def:schacHomeOrganizationType" +msgstr "urn:schac:attribute-def:schacHomeOrganizationType" + +msgid "schacMotherTongue" +msgstr "schacMotherTongue" + +msgid "urn:mace:terena.org:attribute-def:schacMotherTongue" +msgstr "urn:mace:terena.org:attribute-def:schacMotherTongue" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.1" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.1" + +msgid "urn:schac:attribute-def:schacMotherTongue" +msgstr "urn:schac:attribute-def:schacMotherTongue" + +msgid "schacPersonalPosition" +msgstr "schacPersonalPosition" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalPosition" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalPosition" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.13" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.13" + +msgid "urn:schac:attribute-def:schacPersonalPosition" +msgstr "urn:schac:attribute-def:schacPersonalPosition" + +msgid "schacPersonalTitle" +msgstr "schacPersonalTitle" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalTitle" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalTitle" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.8" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.8" + +msgid "urn:schac:attribute-def:schacPersonalTitle" +msgstr "urn:schac:attribute-def:schacPersonalTitle" + +msgid "schacPersonalUniqueCode" +msgstr "schacPersonalUniqueCode" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueCode" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.14" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.14" + +msgid "urn:schac:attribute-def:schacPersonalUniqueCode" +msgstr "urn:schac:attribute-def:schacPersonalUniqueCode" + +msgid "schacPersonalUniqueID" +msgstr "schacPersonalUniqueID" + +msgid "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" +msgstr "urn:mace:terena.org:attribute-def:schacPersonalUniqueID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.15" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.15" + +msgid "urn:schac:attribute-def:schacPersonalUniqueID" +msgstr "urn:schac:attribute-def:schacPersonalUniqueID" + +msgid "schacPlaceOfBirth" +msgstr "schacPlaceOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacPlaceOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.4" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.4" + +msgid "urn:schac:attribute-def:schacPlaceOfBirth" +msgstr "urn:schac:attribute-def:schacPlaceOfBirth" + +msgid "schacProjectMembership" +msgstr "schacProjectMembership" + +msgid "urn:mace:terena.org:attribute-def:schacProjectMembership" +msgstr "urn:mace:terena.org:attribute-def:schacProjectMembership" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.20" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.20" + +msgid "urn:schac:attribute-def:schacProjectMembership" +msgstr "urn:schac:attribute-def:schacProjectMembership" + +msgid "schacProjectSpecificRole" +msgstr "schacProjectSpecificRole" + +msgid "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" +msgstr "urn:mace:terena.org:attribute-def:schacProjectSpecificRole" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.21" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.21" + +msgid "urn:schac:attribute-def:schacProjectSpecificRole" +msgstr "urn:schac:attribute-def:schacProjectSpecificRole" + +msgid "schacSn1" +msgstr "schacSn1" + +msgid "urn:mace:terena.org:attribute-def:schacSn1" +msgstr "urn:mace:terena.org:attribute-def:schacSn1" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.6" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.6" + +msgid "urn:schac:attribute-def:schacSn1" +msgstr "urn:schac:attribute-def:schacSn1" + +msgid "schacSn2" +msgstr "schacSn2" + +msgid "urn:mace:terena.org:attribute-def:schacSn2" +msgstr "urn:mace:terena.org:attribute-def:schacSn2" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.7" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.7" + +msgid "urn:schac:attribute-def:schacSn2" +msgstr "urn:schac:attribute-def:schacSn2" + +msgid "schacUserPresenceID" +msgstr "schacUserPresenceID" + +msgid "urn:mace:terena.org:attribute-def:schacUserPresenceID" +msgstr "urn:mace:terena.org:attribute-def:schacUserPresenceID" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.12" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.12" + +msgid "urn:schac:attribute-def:schacUserPresenceID" +msgstr "urn:schac:attribute-def:schacUserPresenceID" + +# English string: Private information elements +msgid "schacUserPrivateAttribute" +msgstr "Izingxenye zolwazi oluyimfihlo" + +# English string: Private information elements +msgid "urn:mace:terena.org:attribute-def:schacUserPrivateAttribute" +msgstr "Izingxenye zolwazi oluyimfihlo" + +# English string: Private information elements +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.18" +msgstr "Izingxenye zolwazi oluyimfihlo" + +# English string: Private information elements +msgid "urn:schac:attribute-def:schacUserPrivateAttribute" +msgstr "Izingxenye zolwazi oluyimfihlo" + +msgid "schacUserStatus" +msgstr "schacUserStatus" + +msgid "urn:mace:terena.org:attribute-def:schacUserStatus" +msgstr "urn:mace:terena.org:attribute-def:schacUserStatus" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.2.19" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.2.19" + +msgid "urn:schac:attribute-def:schacUserStatus" +msgstr "urn:schac:attribute-def:schacUserStatus" + +msgid "schacYearOfBirth" +msgstr "schacYearOfBirth" + +msgid "urn:mace:terena.org:attribute-def:schacYearOfBirth" +msgstr "urn:mace:terena.org:attribute-def:schacYearOfBirth" + +msgid "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" +msgstr "urn:oid:1.3.6.1.4.1.25178.1.0.2.3" + +msgid "urn:schac:attribute-def:schacYearOfBirth" +msgstr "urn:schac:attribute-def:schacYearOfBirth" + +msgid "searchGuide" +msgstr "searchGuide" + +msgid "urn:mace:dir:attribute-def:searchGuide" +msgstr "urn:mace:dir:attribute-def:searchGuide" + +msgid "urn:oid:2.5.4.14" +msgstr "urn:oid:2.5.4.14" + +msgid "secretary" +msgstr "secretary" + +msgid "urn:mace:dir:attribute-def:secretary" +msgstr "urn:mace:dir:attribute-def:secretary" + +msgid "urn:oid:0.9.2342.19200300.100.1.21" +msgstr "urn:oid:0.9.2342.19200300.100.1.21" + +msgid "seeAlso" +msgstr "seeAlso" + +msgid "urn:mace:dir:attribute-def:seeAlso" +msgstr "urn:mace:dir:attribute-def:seeAlso" + +msgid "urn:oid:2.5.4.34" +msgstr "urn:oid:2.5.4.34" + +msgid "serialNumber" +msgstr "serialNumber" + +msgid "urn:mace:dir:attribute-def:serialNumber" +msgstr "urn:mace:dir:attribute-def:serialNumber" + +msgid "urn:oid:2.5.4.5" +msgstr "urn:oid:2.5.4.5" + +msgid "singleLevelQuality" +msgstr "singleLevelQuality" + +msgid "urn:mace:dir:attribute-def:singleLevelQuality" +msgstr "urn:mace:dir:attribute-def:singleLevelQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.50" +msgstr "urn:oid:0.9.2342.19200300.100.1.50" + +msgid "sisSchoolGrade" +msgstr "sisSchoolGrade" + +msgid "urn:mace:dir:attribute-def:sisSchoolGrade" +msgstr "urn:mace:dir:attribute-def:sisSchoolGrade" + +msgid "urn:oid:1.2.752.194.10.2.2" +msgstr "urn:oid:1.2.752.194.10.2.2" + +msgid "sisLegalGuardianFor" +msgstr "sisLegalGuardianFor" + +msgid "urn:mace:dir:attribute-def:sisLegalGuardianFor" +msgstr "urn:mace:dir:attribute-def:sisLegalGuardianFor" + +msgid "urn:oid:1.2.752.194.10.2.1" +msgstr "urn:oid:1.2.752.194.10.2.1" + +# English string: Surname +msgid "sn" +msgstr "Isibongo" + +# English string: Surname +msgid "urn:mace:dir:attribute-def:sn" +msgstr "Isibongo" + +# English string: Surname +msgid "urn:oid:2.5.4.4" +msgstr "Isibongo" + +msgid "st" +msgstr "st" + +msgid "urn:mace:dir:attribute-def:st" +msgstr "urn:mace:dir:attribute-def:st" + +msgid "urn:oid:2.5.4.8" +msgstr "urn:oid:2.5.4.8" + +msgid "stateOrProvinceName" +msgstr "stateOrProvinceName" + +msgid "urn:mace:dir:attribute-def:stateOrProvinceName" +msgstr "urn:mace:dir:attribute-def:stateOrProvinceName" + +# English string: Street +msgid "street" +msgstr "Umgwaqo" + +# English string: Street +msgid "urn:mace:dir:attribute-def:street" +msgstr "Umgwaqo" + +# English string: Street +msgid "urn:oid:2.5.4.9" +msgstr "Umgwaqo" + +msgid "streetAddress" +msgstr "streetAddress" + +msgid "urn:mace:dir:attribute-def:streetAddress" +msgstr "urn:mace:dir:attribute-def:streetAddress" + +# English string: Pseudonymous ID at home organization +msgid "subject-id" +msgstr "subject-id" + +# English string: Pseudonymous ID at home organization +msgid "urn:oasis:names:tc:SAML:attribute:subject-id" +msgstr "urn:oasis:names:tc:SAML:attribute:subject-id" + +msgid "subtreeMaximumQuality" +msgstr "subtreeMaximumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMaximumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMaximumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.52" +msgstr "urn:oid:0.9.2342.19200300.100.1.52" + +msgid "subtreeMinimumQuality" +msgstr "subtreeMinimumQuality" + +msgid "urn:mace:dir:attribute-def:subtreeMinimumQuality" +msgstr "urn:mace:dir:attribute-def:subtreeMinimumQuality" + +msgid "urn:oid:0.9.2342.19200300.100.1.51" +msgstr "urn:oid:0.9.2342.19200300.100.1.51" + +msgid "supportedAlgorithms" +msgstr "supportedAlgorithms" + +msgid "urn:mace:dir:attribute-def:supportedAlgorithms" +msgstr "urn:mace:dir:attribute-def:supportedAlgorithms" + +msgid "urn:oid:2.5.4.52" +msgstr "urn:oid:2.5.4.52" + +msgid "supportedApplicationContext" +msgstr "supportedApplicationContext" + +msgid "urn:mace:dir:attribute-def:supportedApplicationContext" +msgstr "urn:mace:dir:attribute-def:supportedApplicationContext" + +msgid "urn:oid:2.5.4.30" +msgstr "urn:oid:2.5.4.30" + +msgid "surname" +msgstr "surname" + +msgid "urn:mace:dir:attribute-def:surname" +msgstr "urn:mace:dir:attribute-def:surname" + +# English string: Telephone number +msgid "telephoneNumber" +msgstr "Inombolo yocingo" + +# English string: Telephone number +msgid "urn:mace:dir:attribute-def:telephoneNumber" +msgstr "Inombolo yocingo" + +# English string: Telephone number +msgid "urn:oid:2.5.4.20" +msgstr "Inombolo yocingo" + +msgid "teletexTerminalIdentifier" +msgstr "teletexTerminalIdentifier" + +msgid "urn:mace:dir:attribute-def:teletexTerminalIdentifier" +msgstr "urn:mace:dir:attribute-def:teletexTerminalIdentifier" + +msgid "urn:oid:2.5.4.22" +msgstr "urn:oid:2.5.4.22" + +msgid "telexNumber" +msgstr "telexNumber" + +msgid "urn:mace:dir:attribute-def:telexNumber" +msgstr "urn:mace:dir:attribute-def:telexNumber" + +msgid "urn:oid:2.5.4.21" +msgstr "urn:oid:2.5.4.21" + +msgid "textEncodedORAddress" +msgstr "textEncodedORAddress" + +msgid "urn:mace:dir:attribute-def:textEncodedORAddress" +msgstr "urn:mace:dir:attribute-def:textEncodedORAddress" + +msgid "urn:oid:0.9.2342.19200300.100.1.2" +msgstr "urn:oid:0.9.2342.19200300.100.1.2" + +# English string: Title +msgid "title" +msgstr "Isiqu" + +# English string: Title +msgid "urn:mace:dir:attribute-def:title" +msgstr "Isiqu" + +# English string: Title +msgid "urn:oid:2.5.4.12" +msgstr "Isiqu" + +# English string: User ID +msgid "uid" +msgstr "I-ID yomsebenzisi" + +# English string: User ID +msgid "urn:mace:dir:attribute-def:uid" +msgstr "I-ID yomsebenzisi" + +# English string: User ID +msgid "urn:oid:0.9.2342.19200300.100.1.1" +msgstr "I-ID yomsebenzisi" + +msgid "uniqueIdentifier" +msgstr "uniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:uniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:uniqueIdentifier" + +msgid "urn:oid:0.9.2342.19200300.100.1.44" +msgstr "urn:oid:0.9.2342.19200300.100.1.44" + +msgid "uniqueMember" +msgstr "uniqueMember" + +msgid "urn:mace:dir:attribute-def:uniqueMember" +msgstr "urn:mace:dir:attribute-def:uniqueMember" + +msgid "urn:oid:2.5.4.50" +msgstr "urn:oid:2.5.4.50" + +msgid "userCertificate" +msgstr "userCertificate" + +msgid "urn:mace:dir:attribute-def:userCertificate" +msgstr "urn:mace:dir:attribute-def:userCertificate" + +msgid "urn:oid:2.5.4.36" +msgstr "urn:oid:2.5.4.36" + +msgid "userClass" +msgstr "userClass" + +msgid "urn:mace:dir:attribute-def:userClass" +msgstr "urn:mace:dir:attribute-def:userClass" + +msgid "urn:oid:0.9.2342.19200300.100.1.8" +msgstr "urn:oid:0.9.2342.19200300.100.1.8" + +msgid "userPKCS12" +msgstr "userPKCS12" + +msgid "urn:mace:dir:attribute-def:userPKCS12" +msgstr "urn:mace:dir:attribute-def:userPKCS12" + +msgid "urn:oid:2.16.840.1.113730.3.1.216" +msgstr "urn:oid:2.16.840.1.113730.3.1.216" + +# English string: User's password hash +msgid "userPassword" +msgstr "Uheshi wephasiwedi yomsebenzisi" + +# English string: User's password hash +msgid "urn:mace:dir:attribute-def:userPassword" +msgstr "Uheshi wephasiwedi yomsebenzisi" + +# English string: User's password hash +msgid "urn:oid:2.5.4.35" +msgstr "Uheshi wephasiwedi yomsebenzisi" + +msgid "userSMIMECertificate" +msgstr "userSMIMECertificate" + +msgid "urn:mace:dir:attribute-def:userSMIMECertificate" +msgstr "urn:mace:dir:attribute-def:userSMIMECertificate" + +msgid "urn:oid:2.16.840.1.113730.3.1.40" +msgstr "urn:oid:2.16.840.1.113730.3.1.40" + +msgid "userid" +msgstr "userid" + +msgid "urn:mace:dir:attribute-def:userid" +msgstr "urn:mace:dir:attribute-def:userid" + +msgid "x121Address" +msgstr "x121Address" + +msgid "urn:mace:dir:attribute-def:x121Address" +msgstr "urn:mace:dir:attribute-def:x121Address" + +msgid "urn:oid:2.5.4.24" +msgstr "urn:oid:2.5.4.24" + +msgid "x500UniqueIdentifier" +msgstr "x500UniqueIdentifier" + +msgid "urn:mace:dir:attribute-def:x500UniqueIdentifier" +msgstr "urn:mace:dir:attribute-def:x500UniqueIdentifier" + +msgid "urn:oid:2.5.4.45" +msgstr "urn:oid:2.5.4.45" + +# English string: Common name +msgid "facebook_cn" +msgstr "Igama elivamile" + +msgid "http://axschema.org/contact/country/home" +msgstr "http://axschema.org/contact/country/home" + +msgid "openid.sreg.country" +msgstr "openid.sreg.country" + +msgid "facebook.about_me" +msgstr "facebook.about_me" + +msgid "linkedin.summary" +msgstr "linkedin.summary" + +msgid "twitter.description" +msgstr "twitter.description" + +# English string: Display name +msgid "facebook.name" +msgstr "Igama lesibonisi" + +# English string: Display name +msgid "http://axschema.org/namePerson/friendly" +msgstr "Igama lesibonisi" + +# English string: Display name +msgid "openid.sreg.nickname" +msgstr "Igama lesibonisi" + +# English string: Display name +msgid "http://axschema.org/namePerson" +msgstr "Igama lesibonisi" + +# English string: Display name +msgid "openid.sreg.fullname" +msgstr "Igama lesibonisi" + +# English string: Display name +msgid "twitter.name" +msgstr "Igama lesibonisi" + +# English string: Display name +msgid "windowslive.displayName" +msgstr "Igama lesibonisi" + +# English string: Person's principal name at home organization +msgid "facebook_user" +msgstr "Igama eliyinhloko lomuntu enhlanganweni yasekhaya" + +# English string: Person's principal name at home organization +msgid "linkedin_user" +msgstr "Igama eliyinhloko lomuntu enhlanganweni yasekhaya" + +# English string: Person's principal name at home organization +msgid "twitter_screen_n_realm" +msgstr "Igama eliyinhloko lomuntu enhlanganweni yasekhaya" + +# English string: Person's principal name at home organization +msgid "windowslive_user" +msgstr "Igama eliyinhloko lomuntu enhlanganweni yasekhaya" + +# English string: Person's principal name at home organization +msgid "windowslive.userPrincipalName" +msgstr "Igama eliyinhloko lomuntu enhlanganweni yasekhaya" + +# English string: Persistent pseudonymous ID +msgid "facebook_targetedID" +msgstr "Isibizo esingashintshi esiqondene nesevisi" + +# English string: Persistent pseudonymous ID +msgid "linkedin_targetedID" +msgstr "Isibizo esingashintshi esiqondene nesevisi" + +# English string: Persistent pseudonymous ID +msgid "twitter_targetedID" +msgstr "Isibizo esingashintshi esiqondene nesevisi" + +# English string: Persistent pseudonymous ID +msgid "windowslive_targetedID" +msgstr "Isibizo esingashintshi esiqondene nesevisi" + +# English string: Fax number +msgid "http://axschema.org/contact/phone/fax" +msgstr "Inombolo yefeksi" + +# English string: Given name +msgid "facebook.first_name" +msgstr "Igama lokuzalwa" + +# English string: Given name +msgid "linkedin.firstName" +msgstr "Igama lokuzalwa" + +# English string: Given name +msgid "http://axschema.org/namePerson/first" +msgstr "Igama lokuzalwa" + +# English string: Given name +msgid "windowslive.FirstName" +msgstr "Igama lokuzalwa" + +# English string: Given name +msgid "windowslive.givenName" +msgstr "Igama lokuzalwa" + +# English string: Home telephone +msgid "http://axschema.org/contact/phone/home" +msgstr "Ucingo lwasekhaya" + +# English string: Locality +msgid "windowslive.Location" +msgstr "Indawo" + +# English string: Labeled URI +msgid "facebook.profile_url" +msgstr "I-URI Enelebula" + +# English string: Labeled URI +msgid "twitter.url" +msgstr "I-URI Enelebula" + +# English string: Mail +msgid "facebook.email" +msgstr "Imeyili" + +# English string: Mail +msgid "http://axschema.org/contact/email" +msgstr "Imeyili" + +# English string: Mail +msgid "openid.sreg.email" +msgstr "Imeyili" + +# English string: Mail +msgid "windowslive_mail" +msgstr "Imeyili" + +# English string: Mail +msgid "windowslive.mail" +msgstr "Imeyili" + +# English string: Mobile +msgid "http://axschema.org/contact/phone/cell" +msgstr "Imobhayili" + +# English string: Organization name +msgid "http://axschema.org/company/name" +msgstr "Igama lenhlangano" + +msgid "http://axschema.org/namePerson/prefix" +msgstr "http://axschema.org/namePerson/prefix" + +# English string: Postal code +msgid "http://axschema.org/contact/postalCode/home" +msgstr "Ikhodi yeposi" + +# English string: Postal code +msgid "openid.sreg.postcode" +msgstr "Ikhodi yeposi" + +# English string: Preferred language +msgid "facebook.locale" +msgstr "Ulimi oluncanyelwayo" + +# English string: Preferred language +msgid "http://axschema.org/pref/language" +msgstr "Ulimi oluncanyelwayo" + +# English string: Preferred language +msgid "openid.sreg.language" +msgstr "Ulimi oluncanyelwayo" + +# English string: Preferred language +msgid "twitter.lang" +msgstr "Ulimi oluncanyelwayo" + +# English string: Preferred language +msgid "windowslive.preferredLanguage" +msgstr "Ulimi oluncanyelwayo" + +# English string: Surname +msgid "facebook.last_name" +msgstr "Isibongo" + +# English string: Surname +msgid "linkedin.lastName" +msgstr "Isibongo" + +# English string: Surname +msgid "http://axschema.org/namePerson/last" +msgstr "Isibongo" + +# English string: Surname +msgid "windowslive.LastName" +msgstr "Isibongo" + +# English string: Surname +msgid "windowslive.surname" +msgstr "Isibongo" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/default" +msgstr "Inombolo yocingo" + +# English string: Telephone number +msgid "http://axschema.org/contact/phone/business" +msgstr "Inombolo yocingo" + +# English string: Title +msgid "linkedin.headline" +msgstr "Isiqu" + +# English string: Title +msgid "http://axschema.org/company/title" +msgstr "Isiqu" + +# English string: User ID +msgid "facebook.username" +msgstr "I-ID yomsebenzisi" + +# English string: User ID +msgid "linkedin.id" +msgstr "I-ID yomsebenzisi" + +# English string: User ID +msgid "twitter.screen_name" +msgstr "I-ID yomsebenzisi" + +# English string: User ID +msgid "windowslive_uid" +msgstr "I-ID yomsebenzisi" + +# English string: User ID +msgid "windowslive.id" +msgstr "I-ID yomsebenzisi" diff --git a/vendor/simplesamlphp/simplesamlphp/locales/zu/LC_MESSAGES/messages.po b/vendor/simplesamlphp/simplesamlphp/locales/zu/LC_MESSAGES/messages.po index 52b41aa0fffb73d3b659d36d34888a4375695f9f..e9a14aafe81faec4a0777692bbd27c0e633160b0 100644 --- a/vendor/simplesamlphp/simplesamlphp/locales/zu/LC_MESSAGES/messages.po +++ b/vendor/simplesamlphp/simplesamlphp/locales/zu/LC_MESSAGES/messages.po @@ -36,33 +36,15 @@ msgstr "" "Ulwazi lwesifunda lulahlekile, futhi ayikho indlela yokuqala kabusha " "isicelo" -msgid "{attributes:attribute_postaladdress}" -msgstr "Ikheli leposi" - msgid "{errors:title_SSOPARAMS}" msgstr "Asikho isicelo se-SAML esinikeziwe" -msgid "{attributes:attribute_ou}" -msgstr "Iyunithi yenhlangano" - -msgid "{status:header_wsfed}" -msgstr "Isibonelo Sedemo ye-WS-Fed SP" - msgid "{errors:descr_CASERROR}" msgstr "Iphutha ngenkathi kuxhunyanwa neseva ye-CAS." -msgid "{attributes:attribute_noreduorgnin}" -msgstr "Inombolo yenhlangano" - -msgid "{attributes:attribute_homephone}" -msgstr "Ucingo lwasekhaya" - msgid "{errors:title_SLOSERVICEPARAMS}" msgstr "Awukho umlayezo we-SAML onikeziwe" -msgid "{attributes:attribute_uid}" -msgstr "I-ID yomsebenzisi" - msgid "{login:error_nopassword}" msgstr "" "Uthumele okuthile ekhasini lokungena, kodwa ngasizathu simbe iphasiwedi " @@ -78,18 +60,12 @@ msgstr "" msgid "{status:authData_header}" msgstr "I-AuthData" -msgid "{attributes:attribute_facsimiletelephonenumber}" -msgstr "Inombolo yefeksi" - msgid "{errors:title_BADREQUEST}" msgstr "Kutholwe umlayezo ongalungile" msgid "{login:login_button}" msgstr "Ngena" -msgid "{status:validfor}" -msgstr "Iseshini yakho isebenza imizuzwana engu-%SECONDS% ukusuka manje." - msgid "{status:header_shib}" msgstr "Idemo ye-Shibboleth" @@ -99,9 +75,6 @@ msgstr "[Ukukhetha okuncanyelwayo]" msgid "{errors:descr_BADREQUEST}" msgstr "Kukhona iphutha kusicelo saleli khasi. Isizathu besithi: %REASON%" -msgid "{attributes:attribute_homepostaladdress}" -msgstr "Ikheli leposi lasekhaya" - msgid "{login:help_header}" msgstr "Siza! Angiyikhumbuli iphasiwedi yami." @@ -114,9 +87,6 @@ msgstr "Iphutha lokulayisha imethadatha" msgid "{errors:title_LOGOUTREQUEST}" msgstr "Iphutha lokucubungula Isicelo Sokuphuma" -msgid "{attributes:attribute_schacuserprivateattribute}" -msgstr "Izingxenye zolwazi oluyimfihlo" - msgid "{logout:hold}" msgstr "Imisiwe" @@ -137,9 +107,6 @@ msgstr "Kuvele iphutha ngenkathi izama ukwakha isicelo se-SAML." msgid "{login:help_desk_link}" msgstr "Ikhasi lasekhaya ledeski losizo" -msgid "{attributes:attribute_cn}" -msgstr "Igama elivamile" - msgid "{errors:debuginfo_header}" msgstr "Ulwazi lokususwa kwephutha" @@ -170,9 +137,6 @@ msgstr "Khumbula ukukhetha kwami" msgid "{general:remember}" msgstr "Khumbula" -msgid "{attributes:attribute_edupersonprincipalname}" -msgstr "Igama eliyinhloko lomuntu enhlanganweni yasekhaya" - msgid "{errors:title_PROCESSASSERTION}" msgstr "Iphutha lokucubungula impendulo esuka Kumhlinzeki Kamazisi" @@ -204,9 +168,6 @@ msgstr "Kuqedile" msgid "{status:subject_header}" msgstr "Isihloko Se-SAML" -msgid "{attributes:attribute_schachomeorganization}" -msgstr "Igama lesizinda senhlangano yasekhaya" - msgid "{errors:descr_LOGOUTINFOLOST}" msgstr "" "Ulwazi olumayelana nomsebenzi wokuphuma wamanje lulahlekile. Kufanele " @@ -217,9 +178,6 @@ msgstr "" "leli phutha lingase libonise elinye iphutha ngomiso. Uma inkinga " "iphikelela, thinta umhlinzeki wakho wesevisi." -msgid "{attributes:attribute_noredupersonlin}" -msgstr "Inombolo kamazisi yasendaweni" - msgid "{status:subject_notset}" msgstr "akusethiwe" @@ -229,15 +187,9 @@ msgstr "Iphutha litholwe ukusuka Kumhlinzeki Kamazisi" msgid "{disco:selectidp}" msgstr "Khetha umhlinzeki wakho kamazisi" -msgid "{attributes:attribute_edupersonorgdn}" -msgstr "Igama elihloniphekile (I-DN) lenhlangano yasekhaya yomuntu" - msgid "{errors:title_NOTSET}" msgstr "Iphasiwedi ayisethiwe" -msgid "{attributes:attribute_edupersonaffiliation}" -msgstr "Indima" - msgid "{login:user_pass_text}" msgstr "" "Isevisi icele ukuthi uziqinisekise. Sicela ufake igama lakho lomsebenzisi" @@ -249,9 +201,6 @@ msgstr "Cha, ku-%SP% kuphela" msgid "{login:username}" msgstr "Igama lomsebenzisi" -msgid "{attributes:attribute_edupersonprimaryorgunitdn}" -msgstr "Igama elihloniphekile (I-DN) Leyunithi Yenhlangano eyinhloko yomuntu" - msgid "{errors:error_header}" msgstr "Iphutha le-SimpleSAMLphp" @@ -281,24 +230,15 @@ msgstr "" "Lo Mhlinzeki Kamazisi uthole Isicelo Sokuqinisekisa ukusuka Kumhlinzeki " "Wesevisi, kodw,a kuvele iphutha ngenkathi ezama ukucubungula isicelo." -msgid "{attributes:attribute_mobile}" -msgstr "Imobhayili" - msgid "{login:remember_me}" msgstr "Ngikhumbule" msgid "{disco:previous_auth}" msgstr "Ngaphambilini ukhethe ukuqinisekisa kokuthi" -msgid "{attributes:attribute_l}" -msgstr "Indawo" - msgid "{general:yes_continue}" msgstr "Yebo, qhubeka" -msgid "{attributes:attribute_organisationname}" -msgstr "Igama lenhlangano" - msgid "{login:remember_username}" msgstr "Khumbula igama lami lomsebenzisi" @@ -308,9 +248,6 @@ msgstr "Ayikho impendulo ye-SAML enikeziwe" msgid "{login:user_pass_header}" msgstr "Faka igama lakho lomsebenzisi nephasiwedi" -msgid "{attributes:attribute_jpegphoto}" -msgstr "Isithombe se-JPEG" - msgid "{logout:logging_out_from}" msgstr "Iyaphuma kumasevisi alandelayo:" @@ -331,29 +268,17 @@ msgstr "" "Ulwazi lokususwa kwephutha olungezansi lungase lukhange kumlawuli / " "ideski losizo:" -msgid "{attributes:attribute_edupersontargetedid}" -msgstr "Isibizo esingashintshi esiqondene nesevisi" - msgid "{errors:descr_NOTFOUNDREASON}" msgstr "" "Ikhasi elinikeziwe alitholakalanga. Isizathu besithi: %REASON% I-URL " "ibithi: %URL%" -msgid "{attributes:attribute_noredupersonbirthdate}" -msgstr "Usuku lokuzalwa" - msgid "{logout:success}" msgstr "Uphume ngempumelelo kuwo wonke amasevisi abhalwe ngenhla." msgid "{login:error_wrongpassword}" msgstr "Igama lomsebenzisi noma iphasiwedi engalungile." -msgid "{attributes:attribute_edupersonprimaryaffiliation}" -msgstr "Indima eyinhloko" - -msgid "{attributes:attribute_sn}" -msgstr "Isibongo" - msgid "{login:error_header}" msgstr "Iphutha" @@ -368,9 +293,6 @@ msgstr "" "Ukuqinisekisa kuhlulekile: isitifiketi esithunyelwe isiphequluli sakho " "asaziwa" -msgid "{attributes:attribute_noredupersonnin}" -msgstr "Inombolo kamazisi eyabelwe amagunya omphakathi" - msgid "{errors:descr_RESPONSESTATUSNOSUCCESS}" msgstr "" "Umhlinzeki Womazisi uphendule ngephutha. (Ikhodi yesimo Sempendulo ye-" @@ -379,18 +301,12 @@ msgstr "" msgid "{general:service_provider}" msgstr "Umhlinzeki Wesevisi" -msgid "{attributes:attribute_edupersonnickname}" -msgstr "Isidlaliso" - msgid "{errors:descr_DISCOPARAMS}" msgstr "Amapharamitha athunyelwe kusevisi yokuthola abengavumelani nezici." msgid "{status:header_saml20_sp}" msgstr "Isampula Ledemo Ye-SAML 2.0 SP" -msgid "{attributes:attribute_edupersonorgunitdn}" -msgstr "Igama elihloniphekile (I-DN) leyunithi yenhlangano yasekhaya yomuntu" - msgid "{errors:descr_INVALIDCERT}" msgstr "" "Ukuqinisekisa kuhlulekile: isitifiketi esithunyelwe isiphequluli sakho " @@ -399,9 +315,6 @@ msgstr "" msgid "{login:change_home_org_button}" msgstr "Khetha inhlangano yasekhaya" -msgid "{attributes:attribute_eduorglegalname}" -msgstr "Igama elisemthethweni lenhlangano" - msgid "{status:logout}" msgstr "Phuma" @@ -410,18 +323,9 @@ msgstr "" "Iphasiwedi kumiso (auth.adminpassword) ayishintshiwe kunani " "elizenzakalelayo. Sicela uhlele ifayela lomiso." -msgid "{attributes:attribute_givenname}" -msgstr "Igama lokuzalwa" - msgid "{errors:title_AUTHSOURCEERROR}" msgstr "Iphutha lomthombo wokuqinisekisa" -msgid "{attributes:attribute_manager}" -msgstr "Umphathi" - -msgid "{attributes:attribute_edupersonentitlement}" -msgstr "Ilungelo eliphathelene nesevisi" - msgid "{errors:title_UNHANDLEDEXCEPTION}" msgstr "Okuhlukile okungasingathiwe" @@ -431,12 +335,6 @@ msgstr "Amaphutha ombiko" msgid "{errors:descr_LOGOUTREQUEST}" msgstr "Kuvele iphutha ngenkathi izama ukucubungula Isicelo Sokuphuma." -msgid "{attributes:attribute_postalcode}" -msgstr "Ikhodi yeposi" - -msgid "{attributes:attribute_street}" -msgstr "Umgwaqo" - msgid "{errors:title_NOTVALIDCERT}" msgstr "Isitifiketi esingalungile" @@ -463,18 +361,9 @@ msgstr "" " kube nokwenzeka ukuthola iseshini yakho kumalogi atholakalayo kumlawuli " "wesistimu:" -msgid "{attributes:attribute_displayname}" -msgstr "Igama lesibonisi" - -msgid "{attributes:attribute_eduorghomepageuri}" -msgstr "Ikhasi lasekhaya lenhlangano" - msgid "{login:change_home_org_title}" msgstr "Shintsha inhlangano yakho yasekhaya" -msgid "{attributes:attribute_edupersonorcid}" -msgstr "Isihlonzi se-ORCID" - msgid "{errors:title_UNKNOWNCERT}" msgstr "Isitifiketi esingaziwa" @@ -487,12 +376,6 @@ msgstr "Asikho isitifiketi" msgid "{errors:descr_UNHANDLEDEXCEPTION}" msgstr "Okuhlukile okungasingathiwe kulahliwe." -msgid "{attributes:attribute_title}" -msgstr "Isiqu" - -msgid "{attributes:attribute_dc}" -msgstr "Ingxenye yesizinda (I-DC)" - msgid "{errors:title_CREATEREQUEST}" msgstr "Iphutha lokwakha isicelo" @@ -508,12 +391,6 @@ msgstr "Asizange samukele impendulo ethunyelwe ukusuka Kumhlinzeki Kamazisi." msgid "{disco:selectidp_full}" msgstr "Sicela ukhethe umhlinzeki kamazisi lapho ofuna ukuqinisekisa khona:" -msgid "{attributes:attribute_edupersonassurance}" -msgstr "Iphrofayela yokuqinisekisa umazisi" - -msgid "{attributes:attribute_ismemberof}" -msgstr "Ubulungu beqembu" - msgid "{logout:failedsps}" msgstr "" "Ayikwazi ukuphuma kusevisi eyodwa noma ngaphezulu. Ukuze wenze " @@ -534,9 +411,6 @@ msgstr "Buyela emuva ekhasini lokufaka le-SimpleSAMLphp" msgid "{errors:descr_CONFIG}" msgstr "I-SimpleSAMLphp ibonakala ingamisiwe ngendlela efanele." -msgid "{attributes:attribute_preferredlanguage}" -msgstr "Ulimi oluncanyelwayo" - msgid "{errors:title_DISCOPARAMS}" msgstr "Isicelo esingalungile sesevisi yokuthola" @@ -564,9 +438,6 @@ msgstr "Ungenile futhi kulawa masevisi:" msgid "{logout:logout_all_question}" msgstr "Ingabe ufuna ukuphuma kuwo wonke amasevisi angenhla?" -msgid "{attributes:attribute_o}" -msgstr "Igama lenhlangano" - msgid "{logout:loggedoutfrom}" msgstr "Usuphume ngempumelelo kokuthi %SP%." @@ -599,9 +470,6 @@ msgstr "" "uhlinzeke umlayezo we-SAML ArtifactResolve. Sicela uphawule ukuthi " "isiphetho asihloselwe ukufinyelelwa ngokuqondile." -msgid "{attributes:attribute_edupersonscopedaffiliation}" -msgstr "Indima enhlanganweni yasekhaya" - msgid "{errors:title_MEMCACHEDOWN}" msgstr "Ayikwazi ukubuyisela idatha yeseshini" @@ -632,14 +500,6 @@ msgstr "Uphume ngemvume" msgid "{errors:report_explain}" msgstr "Chaza ukuthi yini oyenzile ngenkathi kuvela leli phutha..." -msgid "{attributes:attribute_telephonenumber}" -msgstr "Inombolo yocingo" - -msgid "{attributes:attribute_edupersonuniqueid}" -msgstr "" -"I-ID yesibizo ephikelelayo, engakwazi ukwabelwa kabusha yomuntu " -"yenhlangano yasekhaya" - msgid "{logout:failed}" msgstr "Ukuphuma kuhlulekile" @@ -661,29 +521,14 @@ msgstr "" "engalindelwe noma umiso olungafanele lwe-SimpleSAMLphp. Thinta umlawuli " "wale sevisi yokungena, bese umthumela umlayezo wephutha ongenhla." -msgid "{attributes:attribute_userpassword}" -msgstr "Uheshi wephasiwedi yomsebenzisi" - msgid "{errors:report_text}" msgstr "" "Faka ngokuzithandela ikheli lakho le-imeyili, ukuze abalawuli bakwazi " "ukukuthinta ngemibuzo eyengeziwe mayelana nenkinga yakho:" -msgid "{attributes:attribute_mail}" -msgstr "Imeyili" - msgid "{logout:progress}" msgstr "Iyaphuma..." -msgid "{attributes:attribute_labeleduri}" -msgstr "I-URI Enelebula" - msgid "{login:select_home_org}" msgstr "Khetha inhlangano yakho yasekhaya" -msgid "{attributes:attribute_noredupersonlegalname}" -msgstr "Igama elisemthethweni" - -msgid "{attributes:attribute_postofficebox}" -msgstr "Ibhokisi lehhovisi leposi" - diff --git a/vendor/simplesamlphp/simplesamlphp/metadata-templates/saml20-idp-hosted.php b/vendor/simplesamlphp/simplesamlphp/metadata-templates/saml20-idp-hosted.php index ecb05ce111e82712e65647eeb6f039f43b80fc1b..79dc926d6a8fc2fcdabf826ddbcdb935c47b23d0 100644 --- a/vendor/simplesamlphp/simplesamlphp/metadata-templates/saml20-idp-hosted.php +++ b/vendor/simplesamlphp/simplesamlphp/metadata-templates/saml20-idp-hosted.php @@ -1,4 +1,5 @@ <?php + /** * SAML 2.0 IdP configuration for SimpleSAMLphp. * diff --git a/vendor/simplesamlphp/simplesamlphp/metadata-templates/saml20-idp-remote.php b/vendor/simplesamlphp/simplesamlphp/metadata-templates/saml20-idp-remote.php index d390647e6c4492223c149a1812c3f3409280d130..264e8bcdb7f49d898fabb3132ae5f2e62c9de709 100644 --- a/vendor/simplesamlphp/simplesamlphp/metadata-templates/saml20-idp-remote.php +++ b/vendor/simplesamlphp/simplesamlphp/metadata-templates/saml20-idp-remote.php @@ -1,4 +1,5 @@ <?php + /** * SAML 2.0 remote IdP metadata for SimpleSAMLphp. * diff --git a/vendor/simplesamlphp/simplesamlphp/metadata-templates/saml20-sp-remote.php b/vendor/simplesamlphp/simplesamlphp/metadata-templates/saml20-sp-remote.php index a9940e8202da870bfc23199c7794c18b60454452..0b0315ce02f7a38a5e579f04c33eca13191f41d6 100644 --- a/vendor/simplesamlphp/simplesamlphp/metadata-templates/saml20-sp-remote.php +++ b/vendor/simplesamlphp/simplesamlphp/metadata-templates/saml20-sp-remote.php @@ -1,4 +1,5 @@ <?php + /** * SAML 2.0 remote SP metadata for SimpleSAMLphp. * diff --git a/vendor/simplesamlphp/simplesamlphp/metadata-templates/shib13-idp-hosted.php b/vendor/simplesamlphp/simplesamlphp/metadata-templates/shib13-idp-hosted.php index 28ccc42b33fd334964f13c7289a54a6c9f26dcc0..dc6c9e0a9516b5eb756b2a4960b6a16fdab15df8 100644 --- a/vendor/simplesamlphp/simplesamlphp/metadata-templates/shib13-idp-hosted.php +++ b/vendor/simplesamlphp/simplesamlphp/metadata-templates/shib13-idp-hosted.php @@ -1,4 +1,5 @@ <?php + /** * SAML 1.1 IdP configuration for SimpleSAMLphp. * diff --git a/vendor/simplesamlphp/simplesamlphp/metadata-templates/shib13-idp-remote.php b/vendor/simplesamlphp/simplesamlphp/metadata-templates/shib13-idp-remote.php index 69c1ef324edad0fc605baf4fc95963e1dbca1cb4..9aa6f0e647b7dbe9a6c008b8f08f855bfc2d000e 100644 --- a/vendor/simplesamlphp/simplesamlphp/metadata-templates/shib13-idp-remote.php +++ b/vendor/simplesamlphp/simplesamlphp/metadata-templates/shib13-idp-remote.php @@ -1,4 +1,5 @@ <?php + /** * SAML 1.1 remote IdP metadata for SimpleSAMLphp. * diff --git a/vendor/simplesamlphp/simplesamlphp/metadata-templates/shib13-sp-hosted.php b/vendor/simplesamlphp/simplesamlphp/metadata-templates/shib13-sp-hosted.php index e3581c9b864459d0927a6f2d5d7369ff53dadcd3..15a275a3837e0670afe7954712deebfc5ada0b71 100644 --- a/vendor/simplesamlphp/simplesamlphp/metadata-templates/shib13-sp-hosted.php +++ b/vendor/simplesamlphp/simplesamlphp/metadata-templates/shib13-sp-hosted.php @@ -1,4 +1,5 @@ <?php + /** * SAML 1.1 SP configuration for SimpleSAMLphp. * diff --git a/vendor/simplesamlphp/simplesamlphp/metadata-templates/shib13-sp-remote.php b/vendor/simplesamlphp/simplesamlphp/metadata-templates/shib13-sp-remote.php index f60174e28841f75a9cbf426621ca25e10abb4d0a..b2fb1d8e0a07cb2c7c8733b5e3c16b13e019c458 100644 --- a/vendor/simplesamlphp/simplesamlphp/metadata-templates/shib13-sp-remote.php +++ b/vendor/simplesamlphp/simplesamlphp/metadata-templates/shib13-sp-remote.php @@ -1,4 +1,5 @@ <?php + /** * SAML 1.1 remote SP metadata for SimpleSAMLphp. * diff --git a/vendor/simplesamlphp/simplesamlphp/metadata-templates/wsfed-idp-remote.php b/vendor/simplesamlphp/simplesamlphp/metadata-templates/wsfed-idp-remote.php index 214679ce372f8325c64acc281c047c28055adb59..05732c664d330c93b125f4ec117b80580954a649 100644 --- a/vendor/simplesamlphp/simplesamlphp/metadata-templates/wsfed-idp-remote.php +++ b/vendor/simplesamlphp/simplesamlphp/metadata-templates/wsfed-idp-remote.php @@ -1,4 +1,5 @@ <?php + /** * WS-Federation remote IdP metadata for SimpleSAMLphp. */ diff --git a/vendor/simplesamlphp/simplesamlphp/metadata-templates/wsfed-sp-hosted.php b/vendor/simplesamlphp/simplesamlphp/metadata-templates/wsfed-sp-hosted.php index 5ebdf21c197003673ea2fcf394cd43e9db10f8ad..bb123b941151baa68b71565bd63e56560ccfa70b 100644 --- a/vendor/simplesamlphp/simplesamlphp/metadata-templates/wsfed-sp-hosted.php +++ b/vendor/simplesamlphp/simplesamlphp/metadata-templates/wsfed-sp-hosted.php @@ -1,4 +1,5 @@ <?php + /** * WS-Federation SP configuration for SimpleSAMLphp. * diff --git a/vendor/simplesamlphp/simplesamlphp/modules/adfs/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/adfs/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..51854a2840f5289eb548cfcd640f40ec15a6fd77 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/adfs/.php_cs.dist @@ -0,0 +1,16 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/lib', + __DIR__ . '/tests', + __DIR__ . '/www/idp', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/adfs/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/adfs/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..fec43ab41a5a3b2129c6a4b00802c56325717fe9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/adfs/.travis.yml @@ -0,0 +1,31 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then composer require --dev vimeo/psalm:1.1.9; fi + +script: + - bin/check-syntax.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi +# - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/adfs/LICENSE b/vendor/simplesamlphp/simplesamlphp/modules/adfs/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..a345e48d049f9c6756e9364e908b3f26e36c9df1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/adfs/LICENSE @@ -0,0 +1,459 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/adfs/bin/check-syntax.sh b/vendor/simplesamlphp/simplesamlphp/modules/adfs/bin/check-syntax.sh new file mode 100755 index 0000000000000000000000000000000000000000..8fc2e8e342c724e46defc0ce5fc6881fee39cb1c --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/adfs/bin/check-syntax.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +PHP='/usr/bin/env php' +RETURN=0 + +# check PHP files +for FILE in `find lib templates tests www -name "*.php"`; do + $PHP -l $FILE > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Syntax check failed for ${FILE}" + RETURN=`expr ${RETURN} + 1` + fi +done + +exit $RETURN diff --git a/vendor/jaimeperez/twig-configurable-i18n/.codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/adfs/codecov.yml similarity index 100% rename from vendor/jaimeperez/twig-configurable-i18n/.codecov.yml rename to vendor/simplesamlphp/simplesamlphp/modules/adfs/codecov.yml diff --git a/vendor/simplesamlphp/simplesamlphp/modules/adfs/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/adfs/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..eae34314e6780ecb82b3fcd21a15c9ad954699a5 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/adfs/composer.json @@ -0,0 +1,42 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-adfs", + "description": "A module that implements the WS-federation IDP", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "adfs"], + "license": "LGPL-2.1-or-later", + "authors": [ + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\adfs\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "webmozart/assert": "<1.7", + "phpunit/phpunit": "~5.7" + }, + "support": { + "issues": "https://github.com/tvdijen/simplesamlphp-module-adfs/issues", + "source": "https://github.com/tvdijen/simplesamlphp-module-adfs" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/adfs/lib/AdfsController.php b/vendor/simplesamlphp/simplesamlphp/modules/adfs/lib/AdfsController.php new file mode 100644 index 0000000000000000000000000000000000000000..47eeb88f2328a7519466074c88c34eac58a1994d --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/adfs/lib/AdfsController.php @@ -0,0 +1,287 @@ +<?php + +namespace SimpleSAML\Module\adfs; + +use SAML2\Constants; +use SimpleSAML\Configuration; +use SimpleSAML\Error as SspError; +use SimpleSAML\IdP; +use SimpleSAML\Locale\Translate; +use SimpleSAML\Logger; +use SimpleSAML\Module; +use SimpleSAML\Module\adfs\IdP\ADFS; +use SimpleSAML\Metadata; +use SimpleSAML\Session; +use SimpleSAML\Utils; +use SimpleSAML\XHTML\Template; +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\HttpFoundation\StreamedResponse; +use Webmozart\Assert\Assert; + +/** + * Controller class for the adfs module. + * + * This class serves the adfs views available in the module. + * + * @package SimpleSAML\Module\adfs + */ +class AdfsController +{ + /** @var \SimpleSAML\Configuration */ + protected $config; + + /** @var \SimpleSAML\Metadata\MetaDataStorageHandler */ + protected $metadata; + + /** @var \SimpleSAML\Session */ + protected $session; + + /** + * AdfsController constructor. + * + * @param \SimpleSAML\Configuration $config The configuration to use. + * @param \SimpleSAML\Session $session The current user session. + */ + public function __construct(Configuration $config, Session $session) + { + $this->config = $config; + $this->metadata = Metadata\MetaDataStorageHandler::getMetadataHandler(); + $this->session = $session; + } + + + /** + * @param \Symfony\Component\HttpFoundation\Request $request + * @return \Symfony\Component\HttpFoundation\Response|\SimpleSAML\XHTML\Template + */ + public function metadata(Request $request) + { + if (!$this->config->getBoolean('enable.adfs-idp', false)) { + throw new SspError\Error('NOACCESS'); + } + + // check if valid local session exists + if ($this->config->getBoolean('admin.protectmetadata', false)) { + Utils\Auth::requireAdmin(); + } + + try { + $idpentityid = isset($_GET['idpentityid']) ? + $_GET['idpentityid'] : $this->metadata->getMetaDataCurrentEntityID('adfs-idp-hosted'); + $idpmeta = $this->metadata->getMetaDataConfig($idpentityid, 'adfs-idp-hosted'); + + $availableCerts = []; + $keys = []; + $certInfo = Utils\Crypto::loadPublicKey($idpmeta, false, 'new_'); + + if ($certInfo !== null) { + $availableCerts['new_idp.crt'] = $certInfo; + $keys[] = [ + 'type' => 'X509Certificate', + 'signing' => true, + 'encryption' => true, + 'X509Certificate' => $certInfo['certData'], + ]; + $hasNewCert = true; + } else { + $hasNewCert = false; + } + + /** @var array $certInfo */ + $certInfo = Utils\Crypto::loadPublicKey($idpmeta, true); + $availableCerts['idp.crt'] = $certInfo; + $keys[] = [ + 'type' => 'X509Certificate', + 'signing' => true, + 'encryption' => ($hasNewCert ? false : true), + 'X509Certificate' => $certInfo['certData'], + ]; + + if ($idpmeta->hasValue('https.certificate')) { + /** @var array $httpsCert */ + $httpsCert = Utils\Crypto::loadPublicKey($idpmeta, true, 'https.'); + Assert::keyExists($httpsCert, 'certData'); + $availableCerts['https.crt'] = $httpsCert; + $keys[] = [ + 'type' => 'X509Certificate', + 'signing' => true, + 'encryption' => false, + 'X509Certificate' => $httpsCert['certData'], + ]; + } + + $adfs_service_location = Module::getModuleURL('adfs').'/idp/prp.php'; + $metaArray = [ + 'metadata-set' => 'adfs-idp-remote', + 'entityid' => $idpentityid, + 'SingleSignOnService' => [ + 0 => [ + 'Binding' => Constants::BINDING_HTTP_REDIRECT, + 'Location' => $adfs_service_location + ] + ], + 'SingleLogoutService' => [ + 0 => [ + 'Binding' => Constants::BINDING_HTTP_REDIRECT, + 'Location' => $adfs_service_location + ] + ], + ]; + + if (count($keys) === 1) { + $metaArray['certData'] = $keys[0]['X509Certificate']; + } else { + $metaArray['keys'] = $keys; + } + + $metaArray['NameIDFormat'] = $idpmeta->getString( + 'NameIDFormat', + Constants::NAMEID_TRANSIENT + ); + + if ($idpmeta->hasValue('OrganizationName')) { + $metaArray['OrganizationName'] = $idpmeta->getLocalizedString('OrganizationName'); + $metaArray['OrganizationDisplayName'] = $idpmeta->getLocalizedString( + 'OrganizationDisplayName', + $metaArray['OrganizationName'] + ); + + if (!$idpmeta->hasValue('OrganizationURL')) { + throw new SspError\Exception('If OrganizationName is set, OrganizationURL must also be set.'); + } + $metaArray['OrganizationURL'] = $idpmeta->getLocalizedString('OrganizationURL'); + } + + if ($idpmeta->hasValue('scope')) { + $metaArray['scope'] = $idpmeta->getArray('scope'); + } + + if ($idpmeta->hasValue('EntityAttributes')) { + $metaArray['EntityAttributes'] = $idpmeta->getArray('EntityAttributes'); + } + + if ($idpmeta->hasValue('UIInfo')) { + $metaArray['UIInfo'] = $idpmeta->getArray('UIInfo'); + } + + if ($idpmeta->hasValue('DiscoHints')) { + $metaArray['DiscoHints'] = $idpmeta->getArray('DiscoHints'); + } + + if ($idpmeta->hasValue('RegistrationInfo')) { + $metaArray['RegistrationInfo'] = $idpmeta->getArray('RegistrationInfo'); + } + + $metaflat = '$metadata['.var_export($idpentityid, true).'] = '.var_export($metaArray, true).';'; + + $metaBuilder = new Metadata\SAMLBuilder($idpentityid); + $metaBuilder->addSecurityTokenServiceType($metaArray); + $metaBuilder->addOrganizationInfo($metaArray); + $technicalContactEmail = $this->config->getString('technicalcontact_email', null); + if ($technicalContactEmail && $technicalContactEmail !== 'na@example.org') { + $metaBuilder->addContact('technical', Utils\Config\Metadata::getContact([ + 'emailAddress' => $technicalContactEmail, + 'name' => $this->config->getString('technicalcontact_name', null), + 'contactType' => 'technical', + ])); + } + $output_xhtml = array_key_exists('output', $_GET) && $_GET['output'] == 'xhtml'; + $metaxml = $metaBuilder->getEntityDescriptorText($output_xhtml); + if (!$output_xhtml) { + $metaxml = str_replace("\n", '', $metaxml); + } + + // sign the metadata if enabled + $metaxml = Metadata\Signer::sign($metaxml, $idpmeta->toArray(), 'ADFS IdP'); + + if ($output_xhtml) { + $t = new Template($this->config, 'metadata.php', 'admin'); + + $t->data['clipboard.js'] = true; + $t->data['available_certs'] = $availableCerts; + $certdata = []; + foreach (array_keys($availableCerts) as $availableCert) { + $certdata[$availableCert]['name'] = $availableCert; + $certdata[$availableCert]['url'] = Module::getModuleURL('saml/idp/certs.php'). + '/'.$availableCert; + + $certdata[$availableCert]['comment'] = ''; + if ($availableCerts[$availableCert]['certFingerprint'][0] === 'afe71c28ef740bc87425be13a2263d37971da1f9') { + $certdata[$availableCert]['comment'] = 'This is the default certificate.'. + ' Generate a new certificate if this is a production system.'; + } + } + $t->data['certdata'] = $certdata; + $t->data['header'] = 'adfs-idp'; // TODO: Replace with headerString in 2.0 + $t->data['headerString'] = Translate::noop('metadata_adfs-idp'); + $t->data['metaurl'] = Utils\HTTP::getSelfURLNoQuery(); + $t->data['metadata'] = htmlspecialchars($metaxml); + $t->data['metadataflat'] = htmlspecialchars($metaflat); + + return $t; + } else { + // make sure to export only the md:EntityDescriptor + $i = strpos($metaxml, '<md:EntityDescriptor'); + $metaxml = substr($metaxml, $i ? $i : 0); + + // 22 = strlen('</md:EntityDescriptor>') + $i = strrpos($metaxml, '</md:EntityDescriptor>'); + $metaxml = substr($metaxml, 0, $i ? $i + 22 : 0); + + $response = new Response(); + $response->headers->set('Content-Type', 'application/xml'); + $response->setContent($metaxml); + + return $response; + } + } catch (\Exception $exception) { + throw new SspError\Error('METADATA', $exception); + } + } + + + /** + * @param \Symfony\Component\HttpFoundation\Request $request + * @return \Symfony\Component\HttpFoundation\Response + */ + public function prp(Request $request) + { + Logger::info('ADFS - IdP.prp: Accessing ADFS IdP endpoint prp'); + + $idpEntityId = $this->metadata->getMetaDataCurrentEntityID('adfs-idp-hosted'); + $idp = IdP::getById('adfs:'.$idpEntityId); + + if (isset($_GET['wa'])) { + if ($_GET['wa'] === 'wsignout1.0') { + return new StreamedResponse( + /** @return void */ + function () use ($idp) { + ADFS::receiveLogoutMessage($idp); + } + ); + } elseif ($_GET['wa'] === 'wsignin1.0') { + return new StreamedResponse( + /** @return void */ + function () use ($idp) { + ADFS::receiveAuthnRequest($idp); + } + ); + } + throw new SspError\BadRequest("Unsupported value for 'wa' specified in request."); + } elseif (isset($_GET['assocId'])) { + // logout response from ADFS SP + $assocId = $_GET['assocId']; // Association ID of the SP that sent the logout response + $relayState = $_GET['relayState']; // Data that was sent in the logout request to the SP. Can be null + $logoutError = null; // null on success, or an instance of a \SimpleSAML\Error\Exception on failure. + + return new StreamedResponse( + /** @return void */ + function () use ($idp, $assocId, $relayState, $logoutError) { + $idp->handleLogoutResponse($assocId, $relayState, $logoutError); + } + ); + } + throw new SspError\BadRequest("Missing parameter 'wa' or 'assocId' in request."); + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/adfs/lib/IdP/ADFS.php b/vendor/simplesamlphp/simplesamlphp/modules/adfs/lib/IdP/ADFS.php index 449c25e7d5728318bb08cb357413c7e523c10a82..5c9f8f2315e6f1fe64a342526ab69dbe34fb9395 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/adfs/lib/IdP/ADFS.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/adfs/lib/IdP/ADFS.php @@ -4,11 +4,20 @@ use RobRichards\XMLSecLibs\XMLSecurityDSig; use RobRichards\XMLSecLibs\XMLSecurityKey; +use SAML2\Constants; + use SimpleSAML\Utils\Config\Metadata; use SimpleSAML\Utils\Crypto; +use SimpleSAML\Utils\HTTP; +use SimpleSAML\Utils\Time; class ADFS { + /** + * @param \SimpleSAML\IdP $idp + * @return void + * @throws \SimpleSAML\Error\Error + */ public static function receiveAuthnRequest(\SimpleSAML\IdP $idp) { try { @@ -35,21 +44,36 @@ public static function receiveAuthnRequest(\SimpleSAML\IdP $idp) ]; if (isset($query['wreply']) && !empty($query['wreply'])) { - $state['adfs:wreply'] = \SimpleSAML\Utils\HTTP::checkURLAllowed($query['wreply']); + $state['adfs:wreply'] = HTTP::checkURLAllowed($query['wreply']); } $idp->handleAuthenticationRequest($state); } + + /** + * @param string $issuer + * @param string $target + * @param string $nameid + * @param array $attributes + * @param int $assertionLifetime + * @return string + */ private static function generateResponse($issuer, $target, $nameid, $attributes, $assertionLifetime) { - $issueInstant = \SimpleSAML\Utils\Time::generateTimestamp(); - $notBefore = \SimpleSAML\Utils\Time::generateTimestamp(time() - 30); - $assertionExpire = \SimpleSAML\Utils\Time::generateTimestamp(time() + $assertionLifetime); + $issueInstant = Time::generateTimestamp(); + $notBefore = Time::generateTimestamp(time() - 30); + $assertionExpire = Time::generateTimestamp(time() + $assertionLifetime); $assertionID = \SimpleSAML\Utils\Random::generateID(); $nameidFormat = 'http://schemas.xmlsoap.org/claims/UPN'; $nameid = htmlspecialchars($nameid); + if (HTTP::isHTTPS()) { + $method = Constants::AC_PASSWORD_PROTECTED_TRANSPORT; + } else { + $method = Constants::AC_PASSWORD; + } + $result = <<<MSG <wst:RequestSecurityTokenResponse xmlns:wst="http://schemas.xmlsoap.org/ws/2005/02/trust"> <wst:RequestedSecurityToken> @@ -59,7 +83,7 @@ private static function generateResponse($issuer, $target, $nameid, $attributes, <saml:Audience>$target</saml:Audience> </saml:AudienceRestrictionCondition> </saml:Conditions> - <saml:AuthenticationStatement AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:unspecified" AuthenticationInstant="$issueInstant"> + <saml:AuthenticationStatement AuthenticationMethod="$method" AuthenticationInstant="$issueInstant"> <saml:Subject> <saml:NameIdentifier Format="$nameidFormat">$nameid</saml:NameIdentifier> </saml:Subject> @@ -108,6 +132,15 @@ private static function generateResponse($issuer, $target, $nameid, $attributes, return $result; } + + /** + * @param string $response + * @param string $key + * @param string $cert + * @param string $algo + * @param string|null $passphrase + * @return string + */ private static function signResponse($response, $key, $cert, $algo, $passphrase) { $objXMLSecDSig = new XMLSecurityDSig(); @@ -115,6 +148,11 @@ private static function signResponse($response, $key, $cert, $algo, $passphrase) $objXMLSecDSig->setCanonicalMethod(XMLSecurityDSig::EXC_C14N); $responsedom = \SAML2\DOMDocumentFactory::fromString(str_replace("\r", "", $response)); $firstassertionroot = $responsedom->getElementsByTagName('Assertion')->item(0); + + if (is_null($firstassertionroot)) { + throw new \Exception("No assertion found in response."); + } + $objXMLSecDSig->addReferenceList( [$firstassertionroot], XMLSecurityDSig::SHA256, @@ -132,20 +170,49 @@ private static function signResponse($response, $key, $cert, $algo, $passphrase) $public_cert = file_get_contents($cert); $objXMLSecDSig->add509Cert($public_cert, true); } + + /** @var \DOMElement $objXMLSecDSig->sigNode */ $newSig = $responsedom->importNode($objXMLSecDSig->sigNode, true); $firstassertionroot->appendChild($newSig); return $responsedom->saveXML(); } + + /** + * @param string $url + * @param string $wresult + * @param string $wctx + * @return void + */ private static function postResponse($url, $wresult, $wctx) { $config = \SimpleSAML\Configuration::getInstance(); - $t = new \SimpleSAML\XHTML\Template($config, 'adfs:postResponse.twig'); - $t->data['baseurlpath'] = \SimpleSAML\Module::getModuleURL('adfs'); - $t->data['url'] = $url; - $t->data['wresult'] = $wresult; - $t->data['wctx'] = $wctx; - $t->show(); + $usenewui = $config->getBoolean('usenewui', false); + if ($usenewui === false) { + $wresult = htmlspecialchars($wresult); + $wctx = htmlspecialchars($wctx); + + $post = <<<MSG + <body onload="document.forms[0].submit()"> + <form method="post" action="$url"> + <input type="hidden" name="wa" value="wsignin1.0"> + <input type="hidden" name="wresult" value="$wresult"> + <input type="hidden" name="wctx" value="$wctx"> + <noscript> + <input type="submit" value="Continue"> + </noscript> + </form> + </body> +MSG; + echo $post; + } else { + $t = new \SimpleSAML\XHTML\Template($config, 'adfs:postResponse.twig'); + $t->data['baseurlpath'] = \SimpleSAML\Module::getModuleURL('adfs'); + $t->data['url'] = $url; + $t->data['wresult'] = $wresult; + $t->data['wctx'] = $wctx; + $t->show(); + } } @@ -169,15 +236,15 @@ public static function getHostedMetadata($entityid) 'entityid' => $entityid, 'SingleSignOnService' => [ [ - 'Binding' => \SAML2\Constants::BINDING_HTTP_REDIRECT, + 'Binding' => Constants::BINDING_HTTP_REDIRECT, 'Location' => $endpoint, ] ], 'SingleLogoutService' => [ - 'Binding' => \SAML2\Constants::BINDING_HTTP_REDIRECT, + 'Binding' => Constants::BINDING_HTTP_REDIRECT, 'Location' => $endpoint, ], - 'NameIDFormat' => $config->getString('NameIDFormat', \SAML2\Constants::NAMEID_TRANSIENT), + 'NameIDFormat' => $config->getString('NameIDFormat', Constants::NAMEID_TRANSIENT), 'contacts' => [], ]; @@ -196,6 +263,7 @@ public static function getHostedMetadata($entityid) $hasNewCert = true; } + /** @var array $certInfo */ $certInfo = Crypto::loadPublicKey($config, true); $keys[] = [ 'type' => 'X509Certificate', @@ -206,6 +274,7 @@ public static function getHostedMetadata($entityid) ]; if ($config->hasValue('https.certificate')) { + /** @var array $httpsCert */ $httpsCert = Crypto::loadPublicKey($config, true, 'https.'); $keys[] = [ 'type' => 'X509Certificate', @@ -226,7 +295,7 @@ public static function getHostedMetadata($entityid) ); if (!$config->hasValue('OrganizationURL')) { - throw new \SimpleSAMl\Error\Exception('If OrganizationName is set, OrganizationURL must also be set.'); + throw new \SimpleSAML\Error\Exception('If OrganizationName is set, OrganizationURL must also be set.'); } $metadata['OrganizationURL'] = $config->getLocalizedString('OrganizationURL'); } @@ -274,6 +343,11 @@ public static function getHostedMetadata($entityid) } + /** + * @param array $state + * @throws \Exception + * @return void + */ public static function sendResponse(array $state) { $spMetadata = $state["SPMetadata"]; @@ -327,22 +401,34 @@ public static function sendResponse(array $state) ADFS::postResponse($wreply, $wresult, $wctx); } + + /** + * @param \SimpleSAML\IdP $idp + * @param array $state + * @return void + */ public static function sendLogoutResponse(\SimpleSAML\IdP $idp, array $state) { // NB:: we don't know from which SP the logout request came from $idpMetadata = $idp->getConfig(); - \SimpleSAML\Utils\HTTP::redirectTrustedURL( - $idpMetadata->getValue('redirect-after-logout', \SimpleSAML\Utils\HTTP::getBaseURL()) + HTTP::redirectTrustedURL( + $idpMetadata->getValue('redirect-after-logout', HTTP::getBaseURL()) ); } + + /** + * @param \SimpleSAML\IdP $idp + * @throws \Exception + * @return void + */ public static function receiveLogoutMessage(\SimpleSAML\IdP $idp) { // if a redirect is to occur based on wreply, we will redirect to url as // this implies an override to normal sp notification if (isset($_GET['wreply']) && !empty($_GET['wreply'])) { - $idp->doLogoutRedirect(\SimpleSAML\Utils\HTTP::checkURLAllowed($_GET['wreply'])); - assert(false); + $idp->doLogoutRedirect(HTTP::checkURLAllowed($_GET['wreply'])); + throw new \Exception("Code should never be reached"); } $state = [ @@ -355,7 +441,15 @@ public static function receiveLogoutMessage(\SimpleSAML\IdP $idp) $idp->handleLogoutRequest($state, $assocId); } - // accepts an association array, and returns a URL that can be accessed to terminate the association + + /** + * accepts an association array, and returns a URL that can be accessed to terminate the association + * + * @param \SimpleSAML\IdP $idp + * @param array $association + * @param string $relayState + * @return string + */ public static function getLogoutURL(\SimpleSAML\IdP $idp, array $association, $relayState) { $metadata = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/adfs/lib/SAML2/XML/fed/Endpoint.php b/vendor/simplesamlphp/simplesamlphp/modules/adfs/lib/SAML2/XML/fed/Endpoint.php index d3ac56ad346d423bc21b354243dcaebae6112bb3..46b4940251b14f16e7b4615dca5fcc6e22503396 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/adfs/lib/SAML2/XML/fed/Endpoint.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/adfs/lib/SAML2/XML/fed/Endpoint.php @@ -15,6 +15,8 @@ class Endpoint * * @param \DOMElement $parent The element we should append this endpoint to. * @param string $name The name of the element we should create. + * @param string $address + * @return \DOMElement */ public static function appendXML(\DOMElement $parent, $name, $address) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/adfs/lib/SAML2/XML/fed/SecurityTokenServiceType.php b/vendor/simplesamlphp/simplesamlphp/modules/adfs/lib/SAML2/XML/fed/SecurityTokenServiceType.php index de386e9f65dc932d4c112dacc3bfa8e5a5389372..9eae1277795fdcabaa1bbcdf2e6d3d5a77b754aa 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/adfs/lib/SAML2/XML/fed/SecurityTokenServiceType.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/adfs/lib/SAML2/XML/fed/SecurityTokenServiceType.php @@ -13,16 +13,17 @@ class SecurityTokenServiceType extends \SAML2\XML\md\RoleDescriptor /** * List of supported protocols. * - * @var array + * @var array $protocolSupportEnumeration */ public $protocolSupportEnumeration = [Constants::NS_FED]; /** * The Location of Services. * - * @var string + * @var string|null $Location */ - public $Location; + public $Location = null; + /** * Initialize a SecurityTokenServiceType element. @@ -45,6 +46,10 @@ public function __construct(\DOMElement $xml = null) */ public function toXML(\DOMElement $parent) { + if (is_null($this->Location)) { + throw new \Exception('Location not set'); + } + assert(is_string($this->Location)); $e = parent::toXML($parent); @@ -61,7 +66,7 @@ public function toXML(\DOMElement $parent) /** * Get the location of this service. * - * @return string The full URL where this service can be reached. + * @return string|null The full URL where this service can be reached. */ public function getLocation() { @@ -73,6 +78,7 @@ public function getLocation() * Set the location of this service. * * @param string $location The full URL where this service can be reached. + * @return void */ public function setLocation($location) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/adfs/lib/SAML2/XML/fed/TokenTypesOffered.php b/vendor/simplesamlphp/simplesamlphp/modules/adfs/lib/SAML2/XML/fed/TokenTypesOffered.php index 5df8f3f9cccd17214333621b7800417cb4176187..659628ada5a0d3b4ea91e8ae487d436385fdc4d1 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/adfs/lib/SAML2/XML/fed/TokenTypesOffered.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/adfs/lib/SAML2/XML/fed/TokenTypesOffered.php @@ -14,6 +14,7 @@ class TokenTypesOffered * Add tokentypesoffered to an XML element. * * @param \DOMElement $parent The element we should append this endpoint to. + * @return \DOMElement */ public static function appendXML(\DOMElement $parent) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/adfs/metadata-templates/adfs-idp-hosted.php b/vendor/simplesamlphp/simplesamlphp/modules/adfs/metadata-templates/adfs-idp-hosted.php new file mode 100644 index 0000000000000000000000000000000000000000..dd81340695659141227cedfe84a77bbf0dbb82d1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/adfs/metadata-templates/adfs-idp-hosted.php @@ -0,0 +1,12 @@ +<?php + +$metadata['__DYNAMIC:1__'] = [ + 'host' => '__DEFAULT__', + 'privatekey' => 'server.pem', + 'certificate' => 'server.crt', + 'auth' => 'example-userpass', + 'authproc' => [ + // Convert LDAP names to WS-Fed Claims. + 100 => ['class' => 'core:AttributeMap', 'name2claim'], + ], +]; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/adfs/metadata-templates/adfs-sp-remote.php b/vendor/simplesamlphp/simplesamlphp/modules/adfs/metadata-templates/adfs-sp-remote.php new file mode 100644 index 0000000000000000000000000000000000000000..ec2d79c9167c4fc39ba90a5d7f26d10a9cc30d38 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/adfs/metadata-templates/adfs-sp-remote.php @@ -0,0 +1,12 @@ +<?php + +$metadata['urn:federation:localhost'] = [ + 'prp' => 'https://localhost/adfs/ls/', + 'simplesaml.nameidattribute' => 'uid', + 'authproc' => [ + 50 => [ + 'class' => 'core:AttributeLimit', + 'cn', 'mail', 'uid', 'eduPersonAffiliation', + ], + ], +]; diff --git a/vendor/jaimeperez/twig-configurable-i18n/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/adfs/phpunit.xml similarity index 100% rename from vendor/jaimeperez/twig-configurable-i18n/phpunit.xml rename to vendor/simplesamlphp/simplesamlphp/modules/adfs/phpunit.xml diff --git a/vendor/simplesamlphp/simplesamlphp/modules/adfs/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/adfs/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..1fe07be1a76714a99fc77701f72ab02e77f96ee8 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/adfs/psalm.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp ADFS module" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="lib" /> + <directory name="tests" /> + <directory name="www" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/adfs/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/adfs/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..1634f1ffc2f0b824613561213b4b70e978a374e2 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/adfs/tests/bootstrap.php @@ -0,0 +1,12 @@ +<?php + +$projectRoot = dirname(__DIR__); +/** @psalm-suppress UnresolvableInclude */ +require_once($projectRoot.'/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot.'/vendor/simplesamlphp/simplesamlphp/modules/adfs'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/adfs/www/idp/metadata.php b/vendor/simplesamlphp/simplesamlphp/modules/adfs/www/idp/metadata.php index 473af96dc6e9bf81e910b3e0fd4370998798f6fb..7d04309be17b744af32f3e73d4aae3d4a8c789de 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/adfs/www/idp/metadata.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/adfs/www/idp/metadata.php @@ -1,183 +1,15 @@ <?php -// load configuration and metadata -$config = \SimpleSAML\Configuration::getInstance(); -$metadata = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); +namespace SimpleSAML\Module\adfs; -if (!$config->getBoolean('enable.adfs-idp', false)) { - throw new \SimpleSAML\Error\Error('NOACCESS'); -} +use SimpleSAML\Configuration; +use SimpleSAML\Session; +use Symfony\Component\HttpFoundation\Request; -// check if valid local session exists -if ($config->getBoolean('admin.protectmetadata', false)) { - \SimpleSAML\Utils\Auth::requireAdmin(); -} +$config = Configuration::getInstance(); +$session = Session::getSessionFromRequest(); +$request = Request::createFromGlobals(); -try { - $idpentityid = isset($_GET['idpentityid']) ? - $_GET['idpentityid'] : $metadata->getMetaDataCurrentEntityID('adfs-idp-hosted'); - $idpmeta = $metadata->getMetaDataConfig($idpentityid, 'adfs-idp-hosted'); - - $availableCerts = []; - - $keys = []; - $certInfo = \SimpleSAML\Utils\Crypto::loadPublicKey($idpmeta, false, 'new_'); - if ($certInfo !== null) { - $availableCerts['new_idp.crt'] = $certInfo; - $keys[] = [ - 'type' => 'X509Certificate', - 'signing' => true, - 'encryption' => true, - 'X509Certificate' => $certInfo['certData'], - ]; - $hasNewCert = true; - } else { - $hasNewCert = false; - } - - $certInfo = \SimpleSAML\Utils\Crypto::loadPublicKey($idpmeta, true); - $availableCerts['idp.crt'] = $certInfo; - $keys[] = [ - 'type' => 'X509Certificate', - 'signing' => true, - 'encryption' => ($hasNewCert ? false : true), - 'X509Certificate' => $certInfo['certData'], - ]; - - if ($idpmeta->hasValue('https.certificate')) { - $httpsCert = \SimpleSAML\Utils\Crypto::loadPublicKey($idpmeta, true, 'https.'); - assert(isset($httpsCert['certData'])); - $availableCerts['https.crt'] = $httpsCert; - $keys[] = [ - 'type' => 'X509Certificate', - 'signing' => true, - 'encryption' => false, - 'X509Certificate' => $httpsCert['certData'], - ]; - } - - $adfs_service_location = \SimpleSAML\Module::getModuleURL('adfs').'/idp/prp.php'; - $metaArray = [ - 'metadata-set' => 'adfs-idp-remote', - 'entityid' => $idpentityid, - 'SingleSignOnService' => [ - 0 => [ - 'Binding' => \SAML2\Constants::BINDING_HTTP_REDIRECT, - 'Location' => $adfs_service_location - ] - ], - 'SingleLogoutService' => [ - 0 => [ - 'Binding' => \SAML2\Constants::BINDING_HTTP_REDIRECT, - 'Location' => $adfs_service_location - ] - ], - ]; - - if (count($keys) === 1) { - $metaArray['certData'] = $keys[0]['X509Certificate']; - } else { - $metaArray['keys'] = $keys; - } - - $metaArray['NameIDFormat'] = $idpmeta->getString( - 'NameIDFormat', - 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient' - ); - - if ($idpmeta->hasValue('OrganizationName')) { - $metaArray['OrganizationName'] = $idpmeta->getLocalizedString('OrganizationName'); - $metaArray['OrganizationDisplayName'] = $idpmeta->getLocalizedString( - 'OrganizationDisplayName', - $metaArray['OrganizationName'] - ); - - if (!$idpmeta->hasValue('OrganizationURL')) { - throw new \SimpleSAML\Error\Exception('If OrganizationName is set, OrganizationURL must also be set.'); - } - $metaArray['OrganizationURL'] = $idpmeta->getLocalizedString('OrganizationURL'); - } - - if ($idpmeta->hasValue('scope')) { - $metaArray['scope'] = $idpmeta->getArray('scope'); - } - - if ($idpmeta->hasValue('EntityAttributes')) { - $metaArray['EntityAttributes'] = $idpmeta->getArray('EntityAttributes'); - } - - if ($idpmeta->hasValue('UIInfo')) { - $metaArray['UIInfo'] = $idpmeta->getArray('UIInfo'); - } - - if ($idpmeta->hasValue('DiscoHints')) { - $metaArray['DiscoHints'] = $idpmeta->getArray('DiscoHints'); - } - - if ($idpmeta->hasValue('RegistrationInfo')) { - $metaArray['RegistrationInfo'] = $idpmeta->getArray('RegistrationInfo'); - } - - $metaflat = '$metadata['.var_export($idpentityid, true).'] = '.var_export($metaArray, true).';'; - - $metaBuilder = new \SimpleSAML\Metadata\SAMLBuilder($idpentityid); - $metaBuilder->addSecurityTokenServiceType($metaArray); - $metaBuilder->addOrganizationInfo($metaArray); - $technicalContactEmail = $config->getString('technicalcontact_email', null); - if ($technicalContactEmail && $technicalContactEmail !== 'na@example.org') { - $metaBuilder->addContact('technical', \SimpleSAML\Utils\Config\Metadata::getContact([ - 'emailAddress' => $technicalContactEmail, - 'name' => $config->getString('technicalcontact_name', null), - 'contactType' => 'technical', - ])); - } - $output_xhtml = array_key_exists('output', $_GET) && $_GET['output'] == 'xhtml'; - $metaxml = $metaBuilder->getEntityDescriptorText($output_xhtml); - if (!$output_xhtml) { - $metaxml = str_replace("\n", '', $metaxml); - } - - // sign the metadata if enabled - $metaxml = \SimpleSAML\Metadata\Signer::sign($metaxml, $idpmeta->toArray(), 'ADFS IdP'); - - if ($output_xhtml) { - $defaultidp = $config->getString('default-adfs-idp', null); - - $t = new \SimpleSAML\XHTML\Template($config, 'metadata.php', 'admin'); - - $t->data['clipboard.js'] = true; - $t->data['available_certs'] = $availableCerts; - $certdata = []; - foreach (array_keys($availableCerts) as $availableCert) { - $certdata[$availableCert]['name'] = $availableCert; - $certdata[$availableCert]['url'] = \SimpleSAML\Module::getModuleURL('saml/idp/certs.php'). - '/'.$availableCert; - - $certdata[$availableCert]['comment'] = ''; - if ($availableCerts[$availableCert]['certFingerprint'][0] === 'afe71c28ef740bc87425be13a2263d37971da1f9') { - $certdata[$availableCert]['comment'] = 'This is the default certificate.'. - ' Generate a new certificate if this is a production system.'; - } - } - $t->data['certdata'] = $certdata; - $t->data['header'] = 'adfs-idp'; // TODO: Replace with headerString in 2.0 - $t->data['headerString'] = \SimpleSAML\Locale\Translate::noop('metadata_adfs-idp'); - $t->data['metaurl'] = \SimpleSAML\Utils\HTTP::getSelfURLNoQuery(); - $t->data['metadata'] = htmlspecialchars($metaxml); - $t->data['metadataflat'] = htmlspecialchars($metaflat); - $t->data['defaultidp'] = $defaultidp; - $t->show(); - } else { - header('Content-Type: application/xml'); - - // make sure to export only the md:EntityDescriptor - $metaxml = substr($metaxml, strpos($metaxml, '<md:EntityDescriptor')); - // 22 = strlen('</md:EntityDescriptor>') - $metaxml = substr($metaxml, 0, strrpos($metaxml, '</md:EntityDescriptor>') + 22); - echo $metaxml; - - exit(0); - } -} catch (\Exception $exception) { - throw new \SimpleSAML\Error\Error('METADATA', $exception); -} +$controller = new AdfsController($config, $session); +$t = $controller->metadata($request); +$t->send(); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/adfs/www/idp/prp.php b/vendor/simplesamlphp/simplesamlphp/modules/adfs/www/idp/prp.php index 03a973b11656b4d2a020e79d0a4834c9ab8a265d..0ea84380977f0fc7f22329eddff4c364d285cfdd 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/adfs/www/idp/prp.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/adfs/www/idp/prp.php @@ -7,23 +7,16 @@ * @package SimpleSAMLphp */ -\SimpleSAML\Logger::info('ADFS - IdP.prp: Accessing ADFS IdP endpoint prp'); +namespace SimpleSAML\Module\adfs; -$metadata = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); -$idpEntityId = $metadata->getMetaDataCurrentEntityID('adfs-idp-hosted'); -$idp = \SimpleSAML\IdP::getById('adfs:'.$idpEntityId); +use SimpleSAML\Configuration; +use SimpleSAML\Session; +use Symfony\Component\HttpFoundation\Request; -if (isset($_GET['wa'])) { - if ($_GET['wa'] === 'wsignout1.0') { - \SimpleSAML\Module\adfs\IdP\ADFS::receiveLogoutMessage($idp); - } elseif ($_GET['wa'] === 'wsignin1.0') { - \SimpleSAML\Module\adfs\IdP\ADFS::receiveAuthnRequest($idp); - } - assert(false); -} elseif (isset($_GET['assocId'])) { - // logout response from ADFS SP - $assocId = $_GET['assocId']; // Association ID of the SP that sent the logout response - $relayState = $_GET['relayState']; // Data that was sent in the logout request to the SP. Can be null - $logoutError = null; // null on success, or an instance of a \SimpleSAML\Error\Exception on failure. - $idp->handleLogoutResponse($assocId, $relayState, $logoutError); -} +$config = Configuration::getInstance(); +$session = Session::getSessionFromRequest(); +$request = Request::createFromGlobals(); + +$controller = new AdfsController($config, $session); +$t = $controller->prp($request); +$t->send(); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/admin/lib/ConfigController.php b/vendor/simplesamlphp/simplesamlphp/modules/admin/lib/ConfigController.php index 217010a17e08a158cd8bc9dddd6f6c59152abba9..d4764b58502c09e98d764bf9546288a7eba0c5e1 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/admin/lib/ConfigController.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/admin/lib/ConfigController.php @@ -2,9 +2,13 @@ namespace SimpleSAML\Module\admin; +use SimpleSAML\Configuration; use SimpleSAML\HTTP\RunnableResponse; use SimpleSAML\Locale\Translate; -use SimpleSAML\Utils\HTTP; +use SimpleSAML\Module; +use SimpleSAML\Session; +use SimpleSAML\Utils; +use SimpleSAML\XHTML\Template; use Symfony\Component\HttpFoundation\Request; /** @@ -17,6 +21,7 @@ class ConfigController { const LATEST_VERSION_STATE_KEY = 'core:latest_simplesamlphp_version'; + const RELEASES_API = 'https://api.github.com/repos/simplesamlphp/simplesamlphp/releases/latest'; /** @var \SimpleSAML\Configuration */ @@ -35,7 +40,7 @@ class ConfigController * @param \SimpleSAML\Configuration $config The configuration to use. * @param \SimpleSAML\Session $session The current user session. */ - public function __construct(\SimpleSAML\Configuration $config, \SimpleSAML\Session $session) + public function __construct(Configuration $config, Session $session) { $this->config = $config; $this->session = $session; @@ -52,28 +57,28 @@ public function __construct(\SimpleSAML\Configuration $config, \SimpleSAML\Sessi */ public function diagnostics(Request $request) { - \SimpleSAML\Utils\Auth::requireAdmin(); + Utils\Auth::requireAdmin(); - $t = new \SimpleSAML\XHTML\Template($this->config, 'admin:diagnostics.twig'); + $t = new Template($this->config, 'admin:diagnostics.twig'); $t->data = [ 'remaining' => $this->session->getAuthData('admin', 'Expire') - time(), - 'logouturl' => \SimpleSAML\Utils\Auth::getAdminLogoutURL(), + 'logouturl' => Utils\Auth::getAdminLogoutURL(), 'items' => [ 'HTTP_HOST' => [$request->getHost()], 'HTTPS' => $request->isSecure() ? ['on'] : [], 'SERVER_PROTOCOL' => [$request->getProtocolVersion()], - 'getBaseURL()' => [HTTP::getBaseURL()], - 'getSelfHost()' => [HTTP::getSelfHost()], - 'getSelfHostWithNonStandardPort()' => [HTTP::getSelfHostWithNonStandardPort()], - 'getSelfURLHost()' => [HTTP::getSelfURLHost()], - 'getSelfURLNoQuery()' => [HTTP::getSelfURLNoQuery()], - 'getSelfHostWithPath()' => [HTTP::getSelfHostWithPath()], - 'getFirstPathElement()' => [HTTP::getFirstPathElement()], - 'getSelfURL()' => [HTTP::getSelfURL()], + 'getBaseURL()' => [Utils\HTTP::getBaseURL()], + 'getSelfHost()' => [Utils\HTTP::getSelfHost()], + 'getSelfHostWithNonStandardPort()' => [Utils\HTTP::getSelfHostWithNonStandardPort()], + 'getSelfURLHost()' => [Utils\HTTP::getSelfURLHost()], + 'getSelfURLNoQuery()' => [Utils\HTTP::getSelfURLNoQuery()], + 'getSelfHostWithPath()' => [Utils\HTTP::getSelfHostWithPath()], + 'getFirstPathElement()' => [Utils\HTTP::getFirstPathElement()], + 'getSelfURL()' => [Utils\HTTP::getSelfURL()], ], ]; - $this->menu->addOption('logout', \SimpleSAML\Utils\Auth::getAdminLogoutURL(), Translate::noop('Log out')); + $this->menu->addOption('logout', $t->data['logouturl'], Translate::noop('Log out')); return $this->menu->insert($t); } @@ -85,20 +90,20 @@ public function diagnostics(Request $request) */ public function main() { - \SimpleSAML\Utils\Auth::requireAdmin(); + Utils\Auth::requireAdmin(); - $t = new \SimpleSAML\XHTML\Template($this->config, 'admin:config.twig'); + $t = new Template($this->config, 'admin:config.twig'); $t->data = [ 'warnings' => $this->getWarnings(), 'directory' => $this->config->getBaseDir(), 'version' => $this->config->getVersion(), 'links' => [ [ - 'href' => \SimpleSAML\Module::getModuleURL('admin/diagnostics'), + 'href' => Module::getModuleURL('admin/diagnostics'), 'text' => Translate::noop('Diagnostics on hostname, port and protocol') ], [ - 'href' => \SimpleSAML\Module::getModuleURL('admin/phpinfo'), + 'href' => Module::getModuleURL('admin/phpinfo'), 'text' => Translate::noop('Information on your PHP installation') ] ], @@ -107,11 +112,11 @@ public function main() 'shib13idp' => $this->config->getBoolean('enable.shib13-idp', false), ], 'funcmatrix' => $this->getPrerequisiteChecks(), - 'logouturl' => \SimpleSAML\Utils\Auth::getAdminLogoutURL(), + 'logouturl' => Utils\Auth::getAdminLogoutURL(), ]; - \SimpleSAML\Module::callHooks('configpage', $t); - $this->menu->addOption('logout', \SimpleSAML\Utils\Auth::getAdminLogoutURL(), Translate::noop('Log out')); + Module::callHooks('configpage', $t); + $this->menu->addOption('logout', Utils\Auth::getAdminLogoutURL(), Translate::noop('Log out')); return $this->menu->insert($t); } @@ -150,11 +155,11 @@ protected function getPrerequisiteChecks() 'descr' => [ Translate::noop('PHP %minimum% or newer is needed. You are running: %current%'), [ - '%minimum%' => '5.5', + '%minimum%' => '5.6', '%current%' => explode('-', phpversion())[0] ] ], - 'enabled' => version_compare(phpversion(), '5.5', '>=') + 'enabled' => version_compare(phpversion(), '5.6', '>=') ] ]; $store = $this->config->getString('store.type', ''); @@ -241,14 +246,14 @@ protected function getPrerequisiteChecks() ] ], 'ldap_bind' => [ - 'required' => \SimpleSAML\Module::isModuleEnabled('ldap') ? 'required' : 'optional', + 'required' => Module::isModuleEnabled('ldap') ? 'required' : 'optional', 'descr' => [ 'optional' => Translate::noop('LDAP extension (required if an LDAP backend is used)'), 'required' => Translate::noop('LDAP extension'), ] ], 'radius_auth_open' => [ - 'required' => \SimpleSAML\Module::isModuleEnabled('radius') ? 'required' : 'optional', + 'required' => Module::isModuleEnabled('radius') ? 'required' : 'optional', 'descr' => [ 'optional' => Translate::noop('Radius extension (required if a radius backend is used)'), 'required' => Translate::noop('Radius extension'), @@ -332,11 +337,11 @@ protected function getWarnings() $warnings = []; // make sure we're using HTTPS - if (!\SimpleSAML\Utils\HTTP::isHTTPS()) { + if (!Utils\HTTP::isHTTPS()) { $warnings[] = Translate::noop( - '<strong>You are not using HTTPS</strong> to protect communications with your users. HTTP works fine '. - 'for testing purposes, but in a production environment you should use HTTPS. <a '. - 'href="https://simplesamlphp.org/docs/stable/simplesamlphp-maintenance">Read more about the '. + '<strong>You are not using HTTPS</strong> to protect communications with your users. HTTP works fine ' . + 'for testing purposes, but in a production environment you should use HTTPS. <a ' . + 'href="https://simplesamlphp.org/docs/stable/simplesamlphp-maintenance">Read more about the ' . 'maintenance of SimpleSAMLphp</a>.' ); } @@ -344,9 +349,9 @@ protected function getWarnings() // make sure we have a secret salt set if ($this->config->getValue('secretsalt') === 'defaultsecretsalt') { $warnings[] = Translate::noop( - '<strong>The configuration uses the default secret salt</strong>. Make sure to modify the <code>'. - 'secretsalt</code> option in the SimpleSAMLphp configuration in production environments. <a '. - 'href="https://simplesamlphp.org/docs/stable/simplesamlphp-install">Read more about the '. + '<strong>The configuration uses the default secret salt</strong>. Make sure to modify the <code>' . + 'secretsalt</code> option in the SimpleSAMLphp configuration in production environments. <a ' . + 'href="https://simplesamlphp.org/docs/stable/simplesamlphp-install">Read more about the ' . 'maintenance of SimpleSAMLphp</a>.' ); } @@ -356,12 +361,12 @@ protected function getWarnings() $len = ini_get('suhosin.get.max_value_length'); if (empty($len) || $len < 2048) { $warnings[] = Translate::noop( - 'The length of query parameters is limited by the PHP Suhosin extension. Please increase the '. + 'The length of query parameters is limited by the PHP Suhosin extension. Please increase the ' . '<code>suhosin.get.max_value_length</code> option in your php.ini to at least 2048 bytes.' ); } } - + /* * Check for updates. Store the remote result in the session so we don't need to fetch it on every access to * this page. @@ -383,7 +388,8 @@ protected function getWarnings() curl_setopt($ch, CURLOPT_PROXYUSERPWD, $this->config->getValue('proxy.auth', null)); $response = curl_exec($ch); - if (curl_getinfo($ch, CURLINFO_HTTP_CODE) === 200) { + if (curl_getinfo($ch, CURLINFO_RESPONSE_CODE) === 200) { + /** @psalm-suppress InvalidScalarArgument */ $latest = json_decode($response, true); $this->session->setData(self::LATEST_VERSION_STATE_KEY, 'version', $latest); } @@ -394,7 +400,7 @@ protected function getWarnings() if ($latest && version_compare($this->config->getVersion(), ltrim($latest['tag_name'], 'v'), 'lt')) { $warnings[] = [ Translate::noop( - 'You are running an outdated version of SimpleSAMLphp. Please update to <a href="'. + 'You are running an outdated version of SimpleSAMLphp. Please update to <a href="' . '%latest%">the latest version</a> as soon as possible.' ), [ diff --git a/vendor/simplesamlphp/simplesamlphp/modules/admin/lib/FederationController.php b/vendor/simplesamlphp/simplesamlphp/modules/admin/lib/FederationController.php index a6608ac62789fe11ce39c0cb03a108db8d152964..f167514972a4a4b3161d4fe2533c4a1162040db0 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/admin/lib/FederationController.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/admin/lib/FederationController.php @@ -2,14 +2,24 @@ namespace SimpleSAML\Module\admin; +use SimpleSAML\Auth; +use SimpleSAML\Configuration; +use SimpleSAML\HTTP\RunnableResponse; use SimpleSAML\Locale\Translate; +use SimpleSAML\Logger; use SimpleSAML\Metadata\MetaDataStorageHandler; use SimpleSAML\Metadata\SAMLBuilder; +use SimpleSAML\Metadata\SAMLParser; +use SimpleSAML\Metadata\Signer; use SimpleSAML\Module; use SimpleSAML\Module\adfs\IdP\ADFS as ADFS_IdP; use SimpleSAML\Module\saml\IdP\SAML1 as SAML1_IdP; use SimpleSAML\Module\saml\IdP\SAML2 as SAML2_IdP; -use SimpleSAML\Utils\Auth; +use SimpleSAML\Utils; +use SimpleSAML\XHTML\Template; +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\HttpFoundation\ResponseHeaderBag; /** * Controller class for the admin module. @@ -36,7 +46,7 @@ class FederationController * * @param \SimpleSAML\Configuration $config The configuration to use. */ - public function __construct(\SimpleSAML\Configuration $config) + public function __construct(Configuration $config) { $this->config = $config; $this->menu = new Menu(); @@ -49,11 +59,11 @@ public function __construct(\SimpleSAML\Configuration $config) * * @return \SimpleSAML\XHTML\Template * @throws \SimpleSAML\Error\Exception - * @throws \SimpleSAML_Error_Exception + * @throws \SimpleSAML\Error\Exception */ public function main() { - Auth::requireAdmin(); + Utils\Auth::requireAdmin(); // initialize basic metadata array $hostedSPs = $this->getHostedSP(); @@ -61,19 +71,19 @@ public function main() $entries = [ 'hosted' => array_merge($hostedSPs, $hostedIdPs), 'remote' => [ - 'saml20-idp-remote' => !empty($hostedSPs) ? $this->mdHandler->getList('saml20-idp-remote') : [], - 'shib13-idp-remote' => !empty($hostedSPs) ? $this->mdHandler->getList('shib13-idp-remote') : [], + 'saml20-idp-remote' => !empty($hostedSPs) ? $this->mdHandler->getList('saml20-idp-remote', true) : [], + 'shib13-idp-remote' => !empty($hostedSPs) ? $this->mdHandler->getList('shib13-idp-remote', true) : [], 'saml20-sp-remote' => $this->config->getBoolean('enable.saml20-idp', false) === true - ? $this->mdHandler->getList('saml20-sp-remote') : [], + ? $this->mdHandler->getList('saml20-sp-remote', true) : [], 'shib13-sp-remote' => $this->config->getBoolean('enable.shib13-idp', false) === true - ? $this->mdHandler->getList('shib13-sp-remote') : [], + ? $this->mdHandler->getList('shib13-sp-remote', true) : [], 'adfs-sp-remote' => ($this->config->getBoolean('enable.adfs-idp', false) === true) && - Module::isModuleEnabled('adfs') ? $this->mdHandler->getList('adfs-sp-remote') : [], + Module::isModuleEnabled('adfs') ? $this->mdHandler->getList('adfs-sp-remote', true) : [], ], ]; // initialize template and language - $t = new \SimpleSAML\XHTML\Template($this->config, 'admin:federation.twig'); + $t = new Template($this->config, 'admin:federation.twig'); $language = $t->getTranslator()->getLanguage()->getLanguage(); $defaultLang = $this->config->getString('language.default', 'en'); @@ -108,7 +118,8 @@ public function main() } elseif (isset($entity[$old]['en'])) { $entries['remote'][$key][$entityid][$new] = $entity[$old]['en']; } elseif (isset($entries['remote'][$key][$entityid][$old])) { - $entries['remote'][$key][$entityid][$new] = $entries['remote'][$key][$entityid][$old]; + $old_entry = $entries['remote'][$key][$entityid][$old]; + $entries['remote'][$key][$entityid][$new] = is_array($old_entry) ? $entityid : $old_entry; } } } @@ -117,7 +128,7 @@ public function main() $t->data = [ 'links' => [ [ - 'href' => Module::getModuleURL('admin/metadata-converter'), + 'href' => Module::getModuleURL('admin/federation/metadata-converter'), 'text' => Translate::noop('XML to SimpleSAMLphp metadata converter'), ] ], @@ -136,7 +147,7 @@ public function main() 'adfs-idp-remote' => Translate::noop('ADFS IdP metadata'), 'adfs-idp-hosted' => Translate::noop('ADFS IdP metadata'), ], - 'logouturl' => Auth::getAdminLogoutURL(), + 'logouturl' => Utils\Auth::getAdminLogoutURL(), ]; Module::callHooks('federationpage', $t); @@ -162,7 +173,7 @@ private function getHostedIdP() $saml2entities = []; if (count($idps) > 1) { foreach ($idps as $index => $idp) { - $idp['url'] = Module::getModuleURL('saml/2/idp/metadata/'.$idp['auth']); + $idp['url'] = Module::getModuleURL('saml/2/idp/metadata/' . $idp['auth']); $idp['metadata-set'] = 'saml20-idp-hosted'; $idp['metadata-index'] = $index; $idp['metadata_array'] = SAML2_IdP::getHostedMetadata($idp['entityid']); @@ -170,11 +181,10 @@ private function getHostedIdP() } } else { $saml2entities['saml20-idp'] = $this->mdHandler->getMetaDataCurrent('saml20-idp-hosted'); - $saml2entities['saml20-idp']['url'] = \SimpleSAML\Utils\HTTP::getBaseURL().'saml2/idp/metadata.php'; - $saml2entities['saml20-idp']['metadata_array'] = - SAML2_IdP::getHostedMetadata( - $this->mdHandler->getMetaDataCurrentEntityID('saml20-idp-hosted') - ); + $saml2entities['saml20-idp']['url'] = Utils\HTTP::getBaseURL() . 'saml2/idp/metadata.php'; + $saml2entities['saml20-idp']['metadata_array'] = SAML2_IdP::getHostedMetadata( + $this->mdHandler->getMetaDataCurrentEntityID('saml20-idp-hosted') + ); } foreach ($saml2entities as $index => $entity) { @@ -185,7 +195,7 @@ private function getHostedIdP() $builder->addContact($contact['contactType'], $contact); } - $entity['metadata'] = \SimpleSAML\Metadata\Signer::sign( + $entity['metadata'] = Signer::sign( $builder->getEntityDescriptorText(), $entity['metadata_array'], 'SAML 2 IdP' @@ -193,7 +203,7 @@ private function getHostedIdP() $entities[$index] = $entity; } } catch (\Exception $e) { - \SimpleSAML\Logger::error('Federation: Error loading saml20-idp: '.$e->getMessage()); + Logger::error('Federation: Error loading saml20-idp: ' . $e->getMessage()); } } @@ -204,7 +214,7 @@ private function getHostedIdP() $shib13entities = []; if (count($idps) > 1) { foreach ($idps as $index => $idp) { - $idp['url'] = Module::getModuleURL('saml/1.1/idp/metadata/'.$idp['auth']); + $idp['url'] = Module::getModuleURL('saml/1.1/idp/metadata/' . $idp['auth']); $idp['metadata-set'] = 'shib13-idp-hosted'; $idp['metadata-index'] = $index; $idp['metadata_array'] = SAML1_IdP::getHostedMetadata($idp['entityid']); @@ -212,14 +222,12 @@ private function getHostedIdP() } } else { $shib13entities['shib13-idp'] = $this->mdHandler->getMetaDataCurrent('shib13-idp-hosted'); - $shib13entities['shib13-idp']['url'] = \SimpleSAML\Utils\HTTP::getBaseURL(). - 'shib13/idp/metadata.php'; - $shib13entities['shib13-idp']['metadata_array'] = - SAML1_IdP::getHostedMetadata( - $this->mdHandler->getMetaDataCurrentEntityID('shib13-idp-hosted') - ); + $shib13entities['shib13-idp']['url'] = Utils\HTTP::getBaseURL() . 'shib13/idp/metadata.php'; + $shib13entities['shib13-idp']['metadata_array'] = SAML1_IdP::getHostedMetadata( + $this->mdHandler->getMetaDataCurrentEntityID('shib13-idp-hosted') + ); } - + foreach ($shib13entities as $index => $entity) { $builder = new SAMLBuilder($entity['entityid']); $builder->addMetadataIdP11($entity['metadata_array']); @@ -228,7 +236,7 @@ private function getHostedIdP() $builder->addContact($contact['contactType'], $contact); } - $entity['metadata'] = \SimpleSAML\Metadata\Signer::sign( + $entity['metadata'] = Signer::sign( $builder->getEntityDescriptorText(), $entity['metadata_array'], 'SAML 2 SP' @@ -236,7 +244,7 @@ private function getHostedIdP() $entities[$index] = $entity; } } catch (\Exception $e) { - \SimpleSAML\Logger::error('Federation: Error loading shib13-idp: '.$e->getMessage()); + Logger::error('Federation: Error loading shib13-idp: ' . $e->getMessage()); } } @@ -247,7 +255,7 @@ private function getHostedIdP() $adfsentities = []; if (count($idps) > 1) { foreach ($idps as $index => $idp) { - $idp['url'] = Module::getModuleURL('adfs/idp/metadata/'.$idp['auth']); + $idp['url'] = Module::getModuleURL('adfs/idp/metadata/' . $idp['auth']); $idp['metadata-set'] = 'adfs-idp-hosted'; $idp['metadata-index'] = $index; $idp['metadata_array'] = ADFS_IdP::getHostedMetadata($idp['entityid']); @@ -256,10 +264,9 @@ private function getHostedIdP() } else { $adfsentities['adfs-idp'] = $this->mdHandler->getMetaDataCurrent('adfs-idp-hosted'); $adfsentities['adfs-idp']['url'] = Module::getModuleURL('adfs/idp/metadata.php'); - $adfsentities['adfs-idp']['metadata_array'] = - ADFS_IdP::getHostedMetadata( - $this->mdHandler->getMetaDataCurrentEntityID('adfs-idp-hosted') - ); + $adfsentities['adfs-idp']['metadata_array'] = ADFS_IdP::getHostedMetadata( + $this->mdHandler->getMetaDataCurrentEntityID('adfs-idp-hosted') + ); } foreach ($adfsentities as $index => $entity) { @@ -270,7 +277,7 @@ private function getHostedIdP() $builder->addContact($contact['contactType'], $contact); } - $entity['metadata'] = \SimpleSAML\Metadata\Signer::sign( + $entity['metadata'] = Signer::sign( $builder->getEntityDescriptorText(), $entity['metadata_array'], 'ADFS IdP' @@ -278,7 +285,7 @@ private function getHostedIdP() $entities[$index] = $entity; } } catch (\Exception $e) { - \SimpleSAML\Logger::error('Federation: Error loading adfs-idp: '.$e->getMessage()); + Logger::error('Federation: Error loading adfs-idp: ' . $e->getMessage()); } } @@ -287,7 +294,7 @@ private function getHostedIdP() $entities[$index]['type'] = $entity['metadata-set']; foreach ($entity['metadata_array']['keys'] as $kidx => $key) { $key['url'] = Module::getModuleURL( - 'admin/cert', + 'admin/federation/cert', [ 'set' => $entity['metadata-set'], 'idp' => $entity['metadata-index'], @@ -324,13 +331,17 @@ private function getHostedSP() $entities = []; /** @var \SimpleSAML\Module\saml\Auth\Source\SP $source */ - foreach (\SimpleSAML\Auth\Source::getSourcesOfType('saml:SP') as $source) { + foreach (Auth\Source::getSourcesOfType('saml:SP') as $source) { $metadata = $source->getHostedMetadata(); - $certificates = $metadata['keys']; - if (count($metadata['keys']) === 1) { - $cert = array_pop($metadata['keys']); - $metadata['certData'] = $cert['X509Certificate']; - unset($metadata['keys']); + if (isset($metadata['keys'])) { + $certificates = $metadata['keys']; + if (count($metadata['keys']) === 1) { + $cert = array_pop($metadata['keys']); + $metadata['certData'] = $cert['X509Certificate']; + unset($metadata['keys']); + } + } else { + $certificates = []; } // get the name @@ -355,7 +366,7 @@ private function getHostedSP() } // sign the metadata if enabled - $xml = \SimpleSAML\Metadata\Signer::sign($xml, $source->getMetadata()->toArray(), 'SAML 2 SP'); + $xml = Signer::sign($xml, $source->getMetadata()->toArray(), 'SAML 2 SP'); $entities[] = [ 'authid' => $source->getAuthId(), @@ -371,4 +382,137 @@ private function getHostedSP() return $entities; } + + /** + * Metadata converter + * + * @param Request $request The current request. + * + * @return \SimpleSAML\XHTML\Template + */ + public function metadataConverter(Request $request) + { + Utils\Auth::requireAdmin(); + + if ($xmlfile = $request->files->get('xmlfile')) { + $xmldata = trim(file_get_contents($xmlfile)); + } elseif ($xmldata = $request->request->get('xmldata')) { + $xmldata = trim($xmldata); + } + + if (!empty($xmldata)) { + Utils\XML::checkSAMLMessage($xmldata, 'saml-meta'); + $entities = SAMLParser::parseDescriptorsString($xmldata); + + // get all metadata for the entities + foreach ($entities as &$entity) { + $entity = [ + 'shib13-sp-remote' => $entity->getMetadata1xSP(), + 'shib13-idp-remote' => $entity->getMetadata1xIdP(), + 'saml20-sp-remote' => $entity->getMetadata20SP(), + 'saml20-idp-remote' => $entity->getMetadata20IdP(), + ]; + } + + // transpose from $entities[entityid][type] to $output[type][entityid] + $output = Utils\Arrays::transpose($entities); + + // merge all metadata of each type to a single string which should be added to the corresponding file + foreach ($output as $type => &$entities) { + $text = ''; + foreach ($entities as $entityId => $entityMetadata) { + if ($entityMetadata === null) { + continue; + } + + /** + * remove the entityDescriptor element because it is unused, + * and only makes the output harder to read + */ + unset($entityMetadata['entityDescriptor']); + + $text .= '$metadata[' . var_export($entityId, true) . '] = ' + . var_export($entityMetadata, true) . ";\n"; + } + $entities = $text; + } + } else { + $xmldata = ''; + $output = []; + } + + $t = new Template($this->config, 'admin:metadata_converter.twig'); + $t->data = [ + 'logouturl' => Utils\Auth::getAdminLogoutURL(), + 'xmldata' => $xmldata, + 'output' => $output, + ]; + + $this->menu->addOption('logout', $t->data['logouturl'], Translate::noop('Log out')); + return $this->menu->insert($t); + } + + /** + * Download a certificate for a given entity. + * + * @param Request $request The current request. + * + * @return Response PEM-encoded certificate. + */ + public function downloadCert(Request $request) + { + Utils\Auth::requireAdmin(); + + $set = $request->get('set'); + $prefix = $request->get('prefix'); + + if ($set === 'saml20-sp-hosted') { + $sourceID = $request->get('source'); + /** + * The second argument ensures non-nullable return-value + * @var \SimpleSAML\Module\saml\Auth\Source\SP $source + */ + $source = \SimpleSAML\Auth\Source::getById($sourceID, Module\saml\Auth\Source\SP::class); + $mdconfig = $source->getMetadata(); + } else { + $entityID = $request->get('entity'); + $mdconfig = $this->mdHandler->getMetaDataConfig($entityID, $set); + } + + /** @var array $certInfo Second param ensures non-nullable return-value */ + $certInfo = Utils\Crypto::loadPublicKey($mdconfig, true, $prefix); + + $response = new Response($certInfo['PEM']); + $disposition = $response->headers->makeDisposition( + ResponseHeaderBag::DISPOSITION_ATTACHMENT, + 'cert.pem' + ); + + $response->headers->set('Content-Disposition', $disposition); + $response->headers->set('Content-Type', 'application/x-pem-file'); + + return $response; + } + + /** + * Show remote entity metadata + * + * @param Request $request The current request. + * + * @return Response + */ + public function showRemoteEntity(Request $request) + { + Utils\Auth::requireAdmin(); + + $entityId = $request->get('entityid'); + $set = $request->get('set'); + + $metadata = $this->mdHandler->getMetaData($entityId, $set); + + $t = new Template($this->config, 'admin:show_metadata.twig'); + $t->data['entityid'] = $entityId; + $t->data['metadata'] = var_export($metadata, true); + return $t; + } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/admin/lib/Menu.php b/vendor/simplesamlphp/simplesamlphp/modules/admin/lib/Menu.php index e4e55250cfda2b9e43a1e5bb8ab58b87298b52a1..c1d87d9597776ca7d533b26fcf2f578072c5fbac 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/admin/lib/Menu.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/admin/lib/Menu.php @@ -51,6 +51,7 @@ public function __construct() * @param string $id The identifier of this option. * @param string $url The URL this option points to. * @param string $name The name of the option for display purposes. + * @return void */ public function addOption($id, $url, $name) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/admin/lib/TestController.php b/vendor/simplesamlphp/simplesamlphp/modules/admin/lib/TestController.php index c330c81489d122b8aa66c5a4aad5003b9485bf5e..ac4afebcd6374ef5b4cef182b4d868002ebff057 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/admin/lib/TestController.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/admin/lib/TestController.php @@ -2,9 +2,16 @@ namespace SimpleSAML\Module\admin; +use SAML2\Constants; +use SAML2\XML\saml\NameID; +use SimpleSAML\Auth; +use SimpleSAML\Configuration; use SimpleSAML\HTTP\RunnableResponse; use SimpleSAML\Locale\Translate; -use SimpleSAML\Utils\HTTP; +use SimpleSAML\Module; +use SimpleSAML\Session; +use SimpleSAML\Utils; +use SimpleSAML\XHTML\Template; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -34,7 +41,7 @@ class TestController * @param \SimpleSAML\Configuration $config The configuration to use. * @param \SimpleSAML\Session $session The current user session. */ - public function __construct(\SimpleSAML\Configuration $config, \SimpleSAML\Session $session) + public function __construct(Configuration $config, Session $session) { $this->config = $config; $this->session = $session; @@ -45,29 +52,31 @@ public function __construct(\SimpleSAML\Configuration $config, \SimpleSAML\Sessi /** * Display the list of available authsources. * + * @param string|null $as * @return \SimpleSAML\XHTML\Template */ public function main(Request $request, $as) { - \SimpleSAML\Utils\Auth::requireAdmin(); + Utils\Auth::requireAdmin(); if (is_null($as)) { - $t = new \SimpleSAML\XHTML\Template($this->config, 'admin:authsource_list.twig'); + $t = new Template($this->config, 'admin:authsource_list.twig'); $t->data = [ - 'sources' => \SimpleSAML\Auth\Source::getSources(), + 'sources' => Auth\Source::getSources(), ]; } else { - $authsource = new \SimpleSAML\Auth\Simple($as); + $authsource = new Auth\Simple($as); if (!is_null($request->query->get('logout'))) { - $authsource->logout($this->config->getBasePath().'logout.php'); - } elseif (!is_null($request->query->get(\SimpleSAML\Auth\State::EXCEPTION_PARAM))) { + $authsource->logout($this->config->getBasePath() . 'logout.php'); + } elseif (!is_null($request->query->get(Auth\State::EXCEPTION_PARAM))) { // This is just a simple example of an error - $state = \SimpleSAML\Auth\State::loadExceptionState(); - assert(array_key_exists(\SimpleSAML\Auth\State::EXCEPTION_DATA, $state)); - throw $state[\SimpleSAML\Auth\State::EXCEPTION_DATA]; + /** @var array $state */ + $state = Auth\State::loadExceptionState(); + assert(array_key_exists(Auth\State::EXCEPTION_DATA, $state)); + throw $state[Auth\State::EXCEPTION_DATA]; } if (!$authsource->isAuthenticated()) { - $url = \SimpleSAML\Module::getModuleURL('admin/test/' .$as, []); + $url = Module::getModuleURL('admin/test/' . $as, []); $params = [ 'ErrorURL' => $url, 'ReturnTo' => $url, @@ -77,15 +86,17 @@ public function main(Request $request, $as) $attributes = $authsource->getAttributes(); $authData = $authsource->getAuthDataArray(); - $nameId = !is_null($authsource->getAuthData('saml:sp:NameID')) ? $authsource->getAuthData('saml:sp:NameID') : false; + $nameId = !is_null($authsource->getAuthData('saml:sp:NameID')) + ? $authsource->getAuthData('saml:sp:NameID') + : false; - $t = new \SimpleSAML\XHTML\Template($this->config, 'admin:status.twig', 'attributes'); + $t = new Template($this->config, 'admin:status.twig', 'attributes'); $t->data = [ 'attributes' => $attributes, 'attributesHtml' => $this->getAttributesHTML($t, $attributes, ''), 'authData' => $authData, 'nameid' => $nameId, - 'logouturl' => \SimpleSAML\Utils\HTTP::getSelfURLNoQuery().'?as='.urlencode($as).'&logout', + 'logouturl' => Utils\HTTP::getSelfURLNoQuery() . '?as=' . urlencode($as) . '&logout', ]; if ($nameId !== false) { @@ -93,24 +104,34 @@ public function main(Request $request, $as) } } - \SimpleSAML\Module::callHooks('configpage', $t); - $this->menu->addOption('logout', \SimpleSAML\Utils\Auth::getAdminLogoutURL(), Translate::noop('Log out')); + Module::callHooks('configpage', $t); + $this->menu->addOption('logout', Utils\Auth::getAdminLogoutURL(), Translate::noop('Log out')); return $this->menu->insert($t); } - private function getNameIDHTML(\SimpleSAML\XHTML\Template $t, \SAML2\XML\saml\NameID $nameId) + /** + * @param \SimpleSAML\XHTML\Template $t + * @param \SAML2\XML\saml\NameID $nameId + * @return string + */ + private function getNameIDHTML(Template $t, NameID $nameId) { + $translator = $t->getTranslator(); $result = ''; if ($nameId->getValue() === null) { - $list = ["NameID" => [$t->t('{status:subject_notset}')]]; - $result .= "<p>NameID: <span class=\"notset\">".$t->t('{status:subject_notset}')."</span></p>"; + $list = ["NameID" => [$translator->t('{status:subject_notset}')]]; + /** @var string $notset */ + $notset = $translator->t('{status:subject_notset}'); + $result .= "<p>NameID: <span class=\"notset\">" . $notset . "</span></p>"; } else { $list = [ "NameId" => [$nameId->getValue()], ]; if ($nameId->getFormat() !== null) { - $list[$t->t('{status:subject_format}')] = [$nameId->getFormat()]; + /** @var string $format */ + $format = $translator->t('{status:subject_format}'); + $list[$format] = [$nameId->getFormat()]; } if ($nameId->getNameQualifier() !== null) { $list['NameQualifier'] = [$nameId->getNameQualifier()]; @@ -122,53 +143,61 @@ private function getNameIDHTML(\SimpleSAML\XHTML\Template $t, \SAML2\XML\saml\Na $list['SPProvidedID'] = [$nameId->getSPProvidedID()]; } } - return $result.$this->getAttributesHTML($t, $list, ''); + return $result . $this->getAttributesHTML($t, $list, ''); } - private function getAttributesHTML(\SimpleSAML\XHTML\Template $t, $attributes, $nameParent) + /** + * @param \SimpleSAML\XHTML\Template $t + * @param array $attributes + * @param string $nameParent + * @return string + */ + private function getAttributesHTML(Template $t, $attributes, $nameParent) { $alternate = ['pure-table-odd', 'pure-table-even']; $i = 0; - $parentStr = (strlen($nameParent) > 0) ? strtolower($nameParent).'_' : ''; - $str = (strlen($nameParent) > 0) ? '<table class="pure-table pure-table-attributes" summary="attribute overview">' : - '<table id="table_with_attributes" class="pure-table pure-table-attributes" summary="attribute overview">'; + $parentStr = (strlen($nameParent) > 0) ? strtolower($nameParent) . '_' : ''; + $str = (strlen($nameParent) > 0) + ? '<table class="pure-table pure-table-attributes" summary="attribute overview">' + : '<table id="table_with_attributes" class="pure-table pure-table-attributes"' + . ' summary="attribute overview">'; foreach ($attributes as $name => $value) { $nameraw = $name; $trans = $t->getTranslator(); - $name = $trans->getAttributeTranslation($parentStr.$nameraw); + $name = $trans->getAttributeTranslation($parentStr . $nameraw); if (preg_match('/^child_/', $nameraw)) { $parentName = preg_replace('/^child_/', '', $nameraw); foreach ($value as $child) { - $str .= '<tr class="odd"><td colspan="2" style="padding: 2em">'. - $this->getAttributesHTML($t, $child, $parentName).'</td></tr>'; + $str .= '<tr class="odd"><td colspan="2" style="padding: 2em">' . + $this->getAttributesHTML($t, $child, $parentName) . '</td></tr>'; } } else { if (sizeof($value) > 1) { - $str .= '<tr class="'.$alternate[($i++ % 2)].'"><td class="attrname">'; + $str .= '<tr class="' . $alternate[($i++ % 2)] . '"><td class="attrname">'; if ($nameraw !== $name) { - $str .= htmlspecialchars($name).'<br/>'; + $str .= htmlspecialchars($name) . '<br/>'; } - $str .= '<code>'.htmlspecialchars($nameraw).'</code>'; + $str .= '<code>' . htmlspecialchars($nameraw) . '</code>'; $str .= '</td><td class="attrvalue"><ul>'; foreach ($value as $listitem) { if ($nameraw === 'jpegPhoto') { - $str .= '<li><img src="data:image/jpeg;base64,'.htmlspecialchars($listitem).'" /></li>'; + $str .= '<li><img src="data:image/jpeg;base64,' . htmlspecialchars($listitem) . '" /></li>'; } else { - $str .= '<li>'.$this->present_assoc($listitem).'</li>'; + $str .= '<li>' . $this->presentAssoc($listitem) . '</li>'; } } $str .= '</ul></td></tr>'; } elseif (isset($value[0])) { - $str .= '<tr class="'.$alternate[($i++ % 2)].'"><td class="attrname">'; + $str .= '<tr class="' . $alternate[($i++ % 2)] . '"><td class="attrname">'; if ($nameraw !== $name) { - $str .= htmlspecialchars($name).'<br/>'; + $str .= htmlspecialchars($name) . '<br/>'; } - $str .= '<code>'.htmlspecialchars($nameraw).'</code>'; + $str .= '<code>' . htmlspecialchars($nameraw) . '</code>'; $str .= '</td>'; if ($nameraw === 'jpegPhoto') { - $str .= '<td class="attrvalue"><img src="data:image/jpeg;base64,'.htmlspecialchars($value[0]). - '" /></td></tr>'; + $str .= '<td class="attrvalue"><img src="data:image/jpeg;base64,' . htmlspecialchars($value[0]) + . '" /></td></tr>'; } elseif (is_a($value[0], 'DOMNodeList')) { // try to see if we have a NameID here /** @var \DOMNodeList $value [0] */ @@ -176,18 +205,18 @@ private function getAttributesHTML(\SimpleSAML\XHTML\Template $t, $attributes, $ for ($idx = 0; $idx < $n; $idx++) { $elem = $value[0]->item($idx); /* @var \DOMElement $elem */ - if (!($elem->localName === 'NameID' && $elem->namespaceURI === \SAML2\Constants::NS_SAML)) { + if (!($elem->localName === 'NameID' && $elem->namespaceURI === Constants::NS_SAML)) { continue; } - $str .= $this->present_eptid($trans, new \SAML2\XML\saml\NameID($elem)); + $str .= $this->presentEptid($trans, new NameID($elem)); break; // we only support one NameID here } $str .= '</td></tr>'; } elseif (is_a($value[0], '\SAML2\XML\saml\NameID')) { - $str .= $this->present_eptid($trans, $value[0]); + $str .= $this->presentEptid($trans, $value[0]); $str .= '</td></tr>'; } else { - $str .= '<td class="attrvalue">'.htmlspecialchars($value[0]).'</td></tr>'; + $str .= '<td class="attrvalue">' . htmlspecialchars($value[0]) . '</td></tr>'; } } } @@ -197,12 +226,17 @@ private function getAttributesHTML(\SimpleSAML\XHTML\Template $t, $attributes, $ return $str; } - private function present_list($attr) + + /** + * @param array|string $attr + * @return string + */ + private function presentList($attr) { if (is_array($attr) && count($attr) > 1) { $str = '<ul>'; foreach ($attr as $value) { - $str .= '<li>'.htmlspecialchars($attr).'</li>'; + $str .= '<li>' . htmlspecialchars(strval($attr)) . '</li>'; } $str .= '</ul>'; return $str; @@ -211,12 +245,17 @@ private function present_list($attr) } } - private function present_assoc($attr) + + /** + * @param array|string $attr + * @return string + */ + private function presentAssoc($attr) { if (is_array($attr)) { $str = '<dl>'; foreach ($attr as $key => $value) { - $str .= "\n".'<dt>'.htmlspecialchars($key).'</dt><dd>'.$this->present_list($value).'</dd>'; + $str .= "\n" . '<dt>' . htmlspecialchars($key) . '</dt><dd>' . $this->presentList($value) . '</dd>'; } $str .= '</dl>'; return $str; @@ -225,13 +264,21 @@ private function present_assoc($attr) } } - private function present_eptid(\SimpleSAML\Locale\Translate $t, \SAML2\XML\saml\NameID $nameID) + + /** + * @param \SimpleSAML\Locale\Translate $t + * @param \SAML2\XML\saml\NameID $nameID + * @return string + */ + private function presentEptid(Translate $t, NameID $nameID) { $eptid = [ 'NameID' => [$nameID->getValue()], ]; if ($nameID->getFormat() !== null) { - $eptid[$t->t('{status:subject_format}')] = [$nameID->getFormat()]; + /** @var string $format */ + $format = $t->t('{status:subject_format}'); + $eptid[$format] = [$nameID->getFormat()]; } if ($nameID->getNameQualifier() !== null) { $eptid['NameQualifier'] = [$nameID->getNameQualifier()]; @@ -242,6 +289,6 @@ private function present_eptid(\SimpleSAML\Locale\Translate $t, \SAML2\XML\saml\ if ($nameID->getSPProvidedID() !== null) { $eptid['SPProvidedID'] = [$nameID->getSPProvidedID()]; } - return '<td class="attrvalue">'.$this->present_assoc($eptid); + return '<td class="attrvalue">' . $this->presentAssoc($eptid); } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/admin/routes.yaml b/vendor/simplesamlphp/simplesamlphp/modules/admin/routes.yaml index e19374da6b73a94b139884daf5b1f801b9139d3d..34490c3f96e88236489c96e16185ffb0940b8d75 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/admin/routes.yaml +++ b/vendor/simplesamlphp/simplesamlphp/modules/admin/routes.yaml @@ -13,3 +13,12 @@ admin-test: admin-fed: path: /federation defaults: { _controller: 'SimpleSAML\Module\admin\FederationController::main' } +admin-fed-cert: + path: /federation/cert + defaults: { _controller: 'SimpleSAML\Module\admin\FederationController::downloadCert' } +admin-fed-show: + path: /federation/show + defaults: { _controller: 'SimpleSAML\Module\admin\FederationController::showRemoteEntity' } +admin-fed-converter: + path: /federation/metadata-converter + defaults: { _controller: 'SimpleSAML\Module\admin\FederationController::metadataConverter' } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/admin/templates/authsource_list.twig b/vendor/simplesamlphp/simplesamlphp/modules/admin/templates/authsource_list.twig index e00b3c356a98a27d9a5b76590ba573e6fb0f022c..6a40aca0a4365e6026068a0e71b2eff36f6bf0e6 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/admin/templates/authsource_list.twig +++ b/vendor/simplesamlphp/simplesamlphp/modules/admin/templates/authsource_list.twig @@ -4,6 +4,8 @@ {% block content %} {%- include "@admin/includes/menu.twig" %} + + <h2>{{ pagetitle }} </h2> <ul> {% for key, name in sources %} <li><a href="test/{{ name|escape('url') }}">{{ name }}</a></li> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/admin/templates/diagnostics.twig b/vendor/simplesamlphp/simplesamlphp/modules/admin/templates/diagnostics.twig index 7e5e36064e20cd1312e6e1eda6dc79383ca081b9..8e900f48731384a75253852bfe44982c3e21e970 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/admin/templates/diagnostics.twig +++ b/vendor/simplesamlphp/simplesamlphp/modules/admin/templates/diagnostics.twig @@ -4,6 +4,9 @@ {% block content %} {%- include "@admin/includes/menu.twig" %} + + <h2>{{ pagetitle }} </h2> + {%- embed "_table.twig" %} {%- block namecol %} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/admin/templates/federation.twig b/vendor/simplesamlphp/simplesamlphp/modules/admin/templates/federation.twig index ab2921b53e902dceeba76247091abd509ccd2580..d9059ae761cc39b4e6eeeab39137a285607fc87f 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/admin/templates/federation.twig +++ b/vendor/simplesamlphp/simplesamlphp/modules/admin/templates/federation.twig @@ -71,9 +71,9 @@ {#- #}$metadata['{{ set.entityid }}'] = {{ set.metadata_array }};{# -#} </div> </dd> - <dt>{% trans %}Certificates{% endtrans %}</dt> {%- for cert in set.certificates %} {%- if loop.first %} + <dt>{% trans %}Certificates{% endtrans %}</dt> <ul> {%- endif %} @@ -105,18 +105,17 @@ <ul> {% for entityid, entity in set %} - <li><a href="{{ (metadata_url ~ '?entityid=' ~ entity.entityid ~ '&set=' ~ key) }}"> - {%- if entity.name_translated %} + <li><a href="federation/show{{ ('?entityid=' ~ (entity.entityid|url_encode) ~ '&set=' ~ key) }}"> + {%- if entity.name_translated -%} {{ entity.name_translated }} - {%- elseif entity.organizationdisplayname_translated %} + {%- elseif entity.organizationdisplayname_translated -%} {{ entity.organizationdisplayname_translated }} - {%- else %} + {%- else -%} {{ entity.entityid|escape('html') }} - {% endif -%} - + {%- endif -%} </a> {%- if entity.expire %} {%- if entity.expire < date().timestamp %} @@ -126,9 +125,8 @@ {%- set expiration = (entity.expire - date().timestamp) / 3600 %} ({% trans %}expires in {{ expiration }} hours{% endtrans %}) - {%- endif %} - {%- endif %} - + {%- endif -%} + {%- endif -%} </li> {% endfor %} </ul> @@ -144,7 +142,7 @@ {%- endfor %} </ul> - <form action="{{ metadata_url }}" method="get" class="pure-form"> + <form action="federation/show" method="get" class="pure-form"> <fieldset class="fancyfieldset"> <legend>{% trans %}Look up metadata for entity:{% endtrans %}</legend> <select name="set"> @@ -156,7 +154,7 @@ {%- endif %} </select> - <input type="text" name="entityid" placeholder="{% trans %}EntityID{% endtrans %}" /> + <input type="text" name="entityid" placeholder="{% trans %}EntityID{% endtrans %}"> <button class="pure-button pure-button-red" type="submit">{% trans %}Search{% endtrans %}</button> </fieldset> </form> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/admin/templates/metadata_converter.twig b/vendor/simplesamlphp/simplesamlphp/modules/admin/templates/metadata_converter.twig new file mode 100644 index 0000000000000000000000000000000000000000..785fe0f36cb5861c685a05a1fb80b37a5ffb8362 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/admin/templates/metadata_converter.twig @@ -0,0 +1,63 @@ +{% set pagetitle = 'Metadata parser'|trans %} +{% set frontpage_section = 'federation' %} +{% extends "base.twig" %} + +{% set i=1 %} +{% block content %} + {%- include "@admin/includes/menu.twig" %} + + <h2>{{ pagetitle }}</h2> + <form method="post" class="pure-form" enctype="multipart/form-data" action="#converted"> + <h3> {% trans 'XML metadata' %}</h3> + <div class="pure-control-group"> + <textarea name="xmldata" rows="20" class="text-area edge xmldata">{{ xmldata }}</textarea> + </div> + <br> + <div class="center"> + <div class="pure-button-group two-elements" role="group"> + <label class="pure-button"> + <span class="fa fa-folder-open"></span>{{ 'or select a file:'|trans }} + <input type="file" name="xmlfile" class="hidden" id="file-input"> + </label> + <label id="show-file" class="pure-button hollow show-files" disabled>{{ 'No file selected.'|trans }}</label> + </div> + <br> + <button class="pure-button pure-button-red pure-input-1-3">{{ 'Parse'|trans }}</button> + </div> + </form> + + {% if output -%} + <br> + <h2 id="converted">{{ 'Converted metadata'|trans }}</h2> + {% for type, text in output if text -%} +{# spaceless is to work around a clipboard.js bug that would add extra whitespace #} +{% spaceless %} + <div class="code-box"> + <div class="code-box-title"> + <h3>{{ type }}</h3> + <button data-clipboard-target="#metadata{{ loop.index }}" id="btn{{ loop.index }}" class="pure-button right clipboard-btn copy"> + <i class="fa fa-copy"></i> + </button> + </div> + <div class="code-box-content"> + <pre id="metadata{{ loop.index }}">{{ text|escape }}</pre> + </div> + </div> +{% endspaceless %} + <br><br> + {%- set i=i+1 %} + {%- endfor -%} + {% endif -%} +{% endblock content -%} +{% block postload %} +<script> + $('body').on('change', '#file-input', function () { + var files = this.files; + var fileNames = []; + for (var i = 0; i < files.length; i++) { + fileNames.push(files.item(i).name); + } + $('#show-file').html(fileNames.join(", ")); + }); +</script> +{% endblock postload %} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/admin/templates/show_metadata.twig b/vendor/simplesamlphp/simplesamlphp/modules/admin/templates/show_metadata.twig new file mode 100644 index 0000000000000000000000000000000000000000..ca51cca1cc41490a346a916e2f37244601f55531 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/admin/templates/show_metadata.twig @@ -0,0 +1,18 @@ +{% set pagetile = 'SimpleSAMLphp Show Metadata'|trans %} +{% extends 'base.twig' %} +{% block content %} + + <h2>{{ 'Metadata' | trans }}</h2> + <div class="code-box hljs"> + <div class="pure-button-group top-right-corner"> + <a class="pure-button copy hljs" data-clipboard-target="#metadata" + title="{% trans %}Copy to clipboard{% endtrans %}"><span class="fa fa-copy"></span></a> + </div> + <div id="metadata" class="code-box-content php"> + {#- #}$metadata["{{ entityid }}"] => {{ metadata|escape }};{# -#} + </div> + </div> + <div class="center"> + <a href="../federation" class="pure-button pure-button-red">{{ 'Back'|trans }}</a> + </div> +{% endblock content %} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/admin/templates/status.twig b/vendor/simplesamlphp/simplesamlphp/modules/admin/templates/status.twig index 341d3790efc5de2e950e09a8626081ee691a778d..f0ff2556267ee693ae6551a54d58b290f0242ffc 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/admin/templates/status.twig +++ b/vendor/simplesamlphp/simplesamlphp/modules/admin/templates/status.twig @@ -12,24 +12,67 @@ {{ attributesHtml|raw }} - {% if nameidHtml -%} - <h2>{{ '{status:subject_header}'|trans }}</h2> - {{ nameidHtml|raw }} - {%- endif %} + {%- if nameid or authData %} - {% if authData -%} - <h2>{% trans %}AuthData{% endtrans %}</h2> - <details><summary>{% trans %}Click to view AuthData{% endtrans %}</summary> - <pre>{{ authData|json_encode|raw }}</pre> - </details> - {%- endif %} + <h2>{% trans %}Technical information{% endtrans %}</h2> + {% endif %} + {%- if nameid %} - {% if logout -%} - <h2>{{ '{status:logout}'|trans }}</h2> - <p>{{ logout }}</p> - {%- endif %} + <h3>{% trans %}SAML Subject{% endtrans %}</h3> + {% set items = {'NameId' : nameid.value} %} + + {% if not nameid.value %} + {% set items = items|merge({'NameID' : 'not set'|trans}) %} + {% endif %} + + {% if nameid.Format %} + {% set items = items|merge({('Format'|trans) : nameid.Format}) %} + {% endif %} + + {% if nameid.NameQualifier %} + {% set items = items|merge({'NameQualifier' : nameid.NameQualifier}) %} + {% endif %} + + {% if nameid.SPNameQualifier %} + {% set items = items|merge({'SPNameQualifier' : nameid.SPNameQualifier}) %} + {% endif %} + + {% if nameid.SPProvidedID %} + {% set items = items|merge({'SPProvidedID' : nameid.SPProvidedID}) %} + {%- endif %} + + <table id="table_with_attributes" class="attributes pure-table pure-table-striped pure-table-attributes" + summary="{% trans %}SAML Subject{% endtrans %}"> + {%- for name, value in items %} + + <tr class="{{ cycle(['odd', 'even'], loop.index0) }}"> + <td class="attrname">{{ name }}</td> + <td class="attrvalue">{{ value }}</td> + </tr> + {%- endfor %} + + </table> + <br/> + {% endif %} + + {% if authData %} + <h3>{% trans %}Authentication data{% endtrans %}</h3> + <div class="code-box hljs"> + <div class="pure-button-group top-right-corner"> + <a class="pure-button copy hljs" data-clipboard-target="#auth-data" + title="{% trans %}Copy to clipboard{% endtrans %}"><span class="fa fa-copy"></span></a> + </div> + <code id="auth-data" class="code-box-content json"> + {{- authData|json_encode(constant("JSON_PRETTY_PRINT") b-or constant("JSON_UNESCAPED_SLASHES")) }} + </code> + </div> + <br/> + {% endif %} + + {%- if logouturl %} - {% if logouturl -%} - <a href="{{ logouturl }}">{{ '{status:logout}'|trans }}</a> + <div class="center"> + <a class="pure-button pure-button-red" href="{{ logouturl }}">{{ '{status:logout}'|trans }}</a> + </div> {%- endif %} {% endblock %} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authX509/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/authX509/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..33467ebed8fd85e1f86baae2dc2f5b75cbe7143f --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authX509/.php_cs.dist @@ -0,0 +1,16 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/lib', + __DIR__ . '/tests', + __DIR__ . '/www', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authX509/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/authX509/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..419406770ad975ccb1938cd3b18c3268ae92f36b --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authX509/.travis.yml @@ -0,0 +1,26 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then composer require --dev vimeo/psalm; fi + +script: +# - vendor/simplesamlphp/simplesamlphp-test-framework/bin/check-syntax-php.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authX509/codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/authX509/codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authX509/codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authX509/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/authX509/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..4403a4b9b546d7bf40bf8af44173994899590716 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authX509/composer.json @@ -0,0 +1,49 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-authx509", + "description": "A module that is able to authenticate users based on X509 client certificates", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "X509"], + "license": "LGPL-2.1-or-later", + "authors": [ + { + "name": "Joost van Dijk", + "email": "Joost.vanDijk@surfnet.nl" + }, + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\authX509\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.5", + "simplesamlphp/composer-module-installer": "~1.1", + "simplesamlphp/simplesamlphp-module-ldap": "^0.9.5" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.18", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.15" + }, + "extra": { + "ssp-mixedcase-module-name": "authX509" + }, + "support": { + "issues": "https://github.com/tvdijen/simplesamlphp-module-authx509/issues", + "source": "https://github.com/tvdijen/simplesamlphp-module-authx509" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authX509/default-disable b/vendor/simplesamlphp/simplesamlphp/modules/authX509/default-disable index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..f0c9e96956c67a83ccb12e237a484e96b6d721d5 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authX509/default-disable +++ b/vendor/simplesamlphp/simplesamlphp/modules/authX509/default-disable @@ -0,0 +1,3 @@ +This file indicates that the default state of this module +is disabled. To enable, create a file named enable in the +same directory as this file. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authX509/docs/authX509.md b/vendor/simplesamlphp/simplesamlphp/modules/authX509/docs/authX509.md index dcb8ff92590351fe477cefa1cf7be18db0a13dc6..0aaaba3de48743599d0d487961bfa4a8ce8d330d 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authX509/docs/authX509.md +++ b/vendor/simplesamlphp/simplesamlphp/modules/authX509/docs/authX509.md @@ -102,8 +102,7 @@ can hack your metadata/saml20-idp-hosted.php file that way: 'authority' => 'login', 'userid.attribute' => 'uid', 'logouttype' => 'iframe', - 'attributes.NameFormat' => - 'urn:oasis:names:tc:SAML:2.0:attrname-format:uri', + 'attributes.NameFormat' => 'urn:oasis:names:tc:SAML:2.0:attrname-format:uri', ) Checking certificate expiry diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authX509/lib/Auth/Process/ExpiryWarning.php b/vendor/simplesamlphp/simplesamlphp/modules/authX509/lib/Auth/Process/ExpiryWarning.php index 1b9c1ca8753b5dc95ae1bb3a6830245a400e45f7..9ef69aeb976d945157b1f187a4e81ea7cd8259fd 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authX509/lib/Auth/Process/ExpiryWarning.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/authX509/lib/Auth/Process/ExpiryWarning.php @@ -19,8 +19,10 @@ class ExpiryWarning extends \SimpleSAML\Auth\ProcessingFilter { - + /** @var int */ private $warndaysbefore = 30; + + /** @var string|null */ private $renewurl = null; /** @@ -57,6 +59,7 @@ public function __construct($config, $reserved) * is informed about the expiry date of his/her certificate. * * @param array $state The state of the response. + * @return void */ public function process(&$state) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authX509/lib/Auth/Source/X509userCert.php b/vendor/simplesamlphp/simplesamlphp/modules/authX509/lib/Auth/Source/X509userCert.php index 4605c0ee97e4b19e95909e81c2ab255ee7922254..b56862d6e3f39f5ed1360cb303f4bb96f32c198c 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authX509/lib/Auth/Source/X509userCert.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/authX509/lib/Auth/Source/X509userCert.php @@ -13,18 +13,21 @@ class X509userCert extends \SimpleSAML\Auth\Source { /** * x509 attributes to use from the certificate for searching the user in the LDAP directory. + * @var array */ private $x509attributes = ['UID' => 'uid']; /** * LDAP attribute containing the user certificate. + * This can be set to NULL to avoid looking up the certificate in LDAP + * @var array|null */ private $ldapusercert = ['userCertificate;binary']; /** - * LDAPConfigHelper object + * @var \SimpleSAML\Module\ldap\ConfigHelper */ private $ldapcf; @@ -56,8 +59,6 @@ public function __construct($info, &$config) $config, 'Authentication source '.var_export($this->authId, true) ); - - return; } @@ -67,6 +68,7 @@ public function __construct($info, &$config) * This function can be overloaded by a child authentication class that wish to perform some operations on failure. * * @param array &$state Information about the current authentication. + * @return void */ public function authFailed(&$state) { @@ -89,6 +91,7 @@ public function authFailed(&$state) * page. On failure, The authX509:X509error.php template is loaded. * * @param array &$state Information about the current authentication. + * @return void */ public function authenticate(&$state) { @@ -100,8 +103,7 @@ public function authenticate(&$state) $state['authX509.error'] = "NOCERT"; $this->authFailed($state); - assert(false); // should never be reached - return; + throw new \Exception("Should never be reached"); } $client_cert = $_SERVER['SSL_CLIENT_CERT']; @@ -111,8 +113,7 @@ public function authenticate(&$state) $state['authX509.error'] = "INVALIDCERT"; $this->authFailed($state); - assert(false); // should never be reached - return; + throw new \Exception("Should never be reached"); } $dn = null; @@ -122,6 +123,10 @@ public function authenticate(&$state) $value = $client_cert_data['subject'][$x509_attr]; \SimpleSAML\Logger::info('authX509: cert '.$x509_attr.' = '.$value); $dn = $ldapcf->searchfordn($ldap_attr, $value, true); + /** + * Remove when SSP 1.18 is released + * @psalm-suppress RedundantConditionGivenDocblockType + */ if ($dn !== null) { break; } @@ -133,8 +138,7 @@ public function authenticate(&$state) $state['authX509.error'] = "UNKNOWNCERT"; $this->authFailed($state); - assert(false); // should never be reached - return; + throw new \Exception("Should never be reached"); } if ($this->ldapusercert === null) { @@ -144,18 +148,17 @@ public function authenticate(&$state) $state['Attributes'] = $attributes; $this->authSuccesful($state); - assert(false); // should never be reached - return; + throw new \Exception("Should never be reached"); } $ldap_certs = $ldapcf->getAttributes($dn, $this->ldapusercert); - if ($ldap_certs === false) { + + if (empty($ldap_certs)) { \SimpleSAML\Logger::error('authX509: no certificate found in LDAP for dn='.$dn); $state['authX509.error'] = "UNKNOWNCERT"; $this->authFailed($state); - assert(false); // should never be reached - return; + throw new \Exception("Should never be reached"); } @@ -166,7 +169,7 @@ public function authenticate(&$state) $ldap_certs = $merged_ldapcerts; foreach ($ldap_certs as $ldap_cert) { - $pem = \SimpleSAML\Utils\Crypto::der2pem($ldap_cert); + $pem = "-----BEGIN CERTIFICATE-----\n" . chunk_split($ldap_cert, 64, "\n") . "-----END CERTIFICATE-----\n"; $ldap_cert_data = openssl_x509_parse($pem); if ($ldap_cert_data === false) { \SimpleSAML\Logger::error('authX509: cert in LDAP is invalid for dn='.$dn); @@ -179,8 +182,7 @@ public function authenticate(&$state) $state['Attributes'] = $attributes; $this->authSuccesful($state); - assert(false); // should never be reached - return; + throw new \Exception("Should never be reached"); } } @@ -188,8 +190,7 @@ public function authenticate(&$state) $state['authX509.error'] = "UNKNOWNCERT"; $this->authFailed($state); - assert(false); // should never be reached - return; + throw new \Exception("Should never be reached"); } @@ -199,12 +200,12 @@ public function authenticate(&$state) * This function can be overloaded by a child authentication class that wish to perform some operations after login. * * @param array &$state Information about the current authentication. + * @return void */ public function authSuccesful(&$state) { \SimpleSAML\Auth\Source::completeAuth($state); - assert(false); // should never be reached - return; + throw new \Exception("Should never be reached"); } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authX509/lib/Controller/ExpiryWarning.php b/vendor/simplesamlphp/simplesamlphp/modules/authX509/lib/Controller/ExpiryWarning.php new file mode 100644 index 0000000000000000000000000000000000000000..1a955344bc160d5178c6102bf320ebc386387d2f --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authX509/lib/Controller/ExpiryWarning.php @@ -0,0 +1,102 @@ +<?php + +namespace SimpleSAML\Module\authX509\Controller; + +use SimpleSAML\Auth; +use SimpleSAML\Configuration; +use SimpleSAML\Error; +use SimpleSAML\HTTP\RunnableResponse; +use SimpleSAML\Logger; +use SimpleSAML\Module; +use SimpleSAML\Module\authX509\Auth\Source\X509userCert; +use SimpleSAML\Session; +use SimpleSAML\XHTML\Template; +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; + +/** + * Controller class for the authx509 module. + * + * This class serves the different views available in the module. + * + * @package simplesamlphp/simplesamlphp-module-authx509 + */ +class ExpiryWarning +{ + /** @var \SimpleSAML\Configuration */ + protected $config; + + /** @var \SimpleSAML\Session */ + protected $session; + + /** + * @var \SimpleSAML\Auth\State|string + * @psalm-var \SimpleSAML\Auth\State|class-string + */ + protected $authState = Auth\State::class; + + + /** + * Controller constructor. + * + * It initializes the global configuration and session for the controllers implemented here. + * + * @param \SimpleSAML\Configuration $config The configuration to use by the controllers. + * @param \SimpleSAML\Session $session The session to use by the controllers. + * + * @throws \Exception + */ + public function __construct( + Configuration $config, + Session $session + ) { + $this->config = $config; + $this->session = $session; + } + + + /** + * Inject the \SimpleSAML\Auth\State dependency. + * + * @param \SimpleSAML\Auth\State $authState + */ + public function setAuthState(Auth\State $authState) + { + $this->authState = $authState; + } + + + /** + * Show expiry warning. + * + * @param \Symfony\Component\HttpFoundation\Request $request + * @return \SimpleSAML\XHTML\Template|\SimpleSAML\HTTP\RunnableResponse + * @throws \Exception + */ + public function main(Request $request) + { + Logger::info('AuthX509 - Showing expiry warning to user'); + + $id = $request->get('StateId', null); + if ($id === null) { + throw new Error\BadRequest('Missing required StateId query parameter.'); + } + + $state = $this->authState::loadState($id, 'warning:expire'); + + if (is_null($state)) { + throw new Error\NoState(); + } elseif ($request->get('proceed', null) !== null) { + // The user has pressed the proceed-button + return new RunnableResponse([Auth\ProcessingChain::class, 'resumeProcessing'], [$state]); + } + + $t = new Template($this->config, 'authX509:X509warning.twig'); + $t->data['target'] = Module::getModuleURL('authX509/expirywarning.php'); + $t->data['data'] = ['StateId' => $id]; + $t->data['daysleft'] = $state['daysleft']; + $t->data['renewurl'] = $state['renewurl']; + $t->data['errorcodes'] = Error\ErrorCodes::getAllErrorCodeMessages(); + return $t; + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authX509/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/authX509/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..f747895b9c3492aa1014d3000eade2f3635bc219 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authX509/phpunit.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authX509/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/authX509/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..81ff8041a72d23c22b906f5021a963946ed14a72 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authX509/psalm.xml @@ -0,0 +1,31 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp Module authX509" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="lib" /> + <directory name="www" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authX509/routing/routes/routes.yml b/vendor/simplesamlphp/simplesamlphp/modules/authX509/routing/routes/routes.yml new file mode 100644 index 0000000000000000000000000000000000000000..d1db74181e4d4ea77aca2e384208d225967e3a27 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authX509/routing/routes/routes.yml @@ -0,0 +1,6 @@ +authx509-main: + path: /expiryWarning + defaults: { _controller: 'SimpleSAML\Module\authX509\Controller\ExpiryWarning::main' } +authx509-main-legacy: + path: /expirywarning.php + defaults: { _controller: 'SimpleSAML\Module\authX509\Controller\ExpiryWarning::main' } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authX509/templates/X509error.php b/vendor/simplesamlphp/simplesamlphp/modules/authX509/templates/X509error.php index b7f8d42802a9a48e5923fd52e0d577909e409dd2..5db087b3adb7a9537add780cc47123b877f29d48 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authX509/templates/X509error.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/authX509/templates/X509error.php @@ -1,4 +1,5 @@ <?php + $this->data['header'] = $this->t('{authX509:X509error:certificate_header}'); $this->includeAtTemplateBase('includes/header.php'); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authX509/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/authX509/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..401e0c9295e1757f2c308601b80a311fddf7b090 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authX509/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot.'/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot.'/vendor/simplesamlphp/simplesamlphp/modules/authX509'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authX509/www/expirywarning.php b/vendor/simplesamlphp/simplesamlphp/modules/authX509/www/expirywarning.php index 7bd36030d44a399fb59d510220078311d564d0a3..e7685331cccc72b337adc57ef419cc6f1f08c350 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authX509/www/expirywarning.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/authX509/www/expirywarning.php @@ -14,8 +14,9 @@ $id = $_REQUEST['StateId']; $state = \SimpleSAML\Auth\State::loadState($id, 'warning:expire'); - -if (array_key_exists('proceed', $_REQUEST)) { +if (is_null($state)) { + throw new \SimpleSAML\Error\NoState(); +} else if (array_key_exists('proceed', $_REQUEST)) { // The user has pressed the proceed-button \SimpleSAML\Auth\ProcessingChain::resumeProcessing($state); } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/.codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/.codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/.codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..4453ab123e04029705e32aa27f216a347c84d952 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/.php_cs.dist @@ -0,0 +1,17 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/lib', + __DIR__ . '/libextinc', + __DIR__ . '/tests', + __DIR__ . '/www', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..3c250287a743959883e40e541e22f26fb1dd8635 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/.travis.yml @@ -0,0 +1,35 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +matrix: + allow_failures: + - php: 7.3 + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then composer require --dev vimeo/psalm:1.1.9; fi + +script: + - bin/check-syntax.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi +# - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/LICENSE b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..0a041280bd00a9d068f503b8ee7ce35214bd24a1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/bin/check-syntax.sh b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/bin/check-syntax.sh new file mode 100755 index 0000000000000000000000000000000000000000..d9e8bb70e0bd99c9ff53adf9adf1e03d81625a2c --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/bin/check-syntax.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +PHP='/usr/bin/env php' +RETURN=0 + +# check PHP files +for FILE in `find lib libextinc templates tests www -name "*.php"`; do + $PHP -l $FILE > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Syntax check failed for ${FILE}" + RETURN=`expr ${RETURN} + 1` + fi +done + +exit $RETURN diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..7a7c70b37f092c133e4c3c21311515c19df342f2 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/composer.json @@ -0,0 +1,45 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-authyubikey", + "description": "A module that is able to authenticate against YubiKey", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "authyubikey"], + "license": "LGPL-3.0-or-later", + "authors": [ + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "extra": { + "ssp-mixedcase-module-name": "authYubikey" + }, + "autoload": { + "psr-4": { + "SimpleSAML\\modules\\yubikey\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "phpunit/phpunit": "~5.7" + }, + "support": { + "issues": "https://github.com/tvdijen/simplesamlphp-module-authyubikey/issues", + "source": "https://github.com/tvdijen/simplesamlphp-module-authyubikey" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/default-disable b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/default-disable index fa0bd82e2df7bd79d57593d35bc53c1f9d3ef71f..3e99dbb6b9da14062ef735231855f54dec4c5c17 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/default-disable +++ b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/default-disable @@ -1,3 +1,3 @@ This file indicates that the default state of this module -is disabled. To enable, create a file named enable in the +is disbled. To enable, create a file named enable in the same directory as this file. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/dictionaries/yubikey.translation.json b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/dictionaries/yubikey.translation.json index 3aeb1d3db08d9cd9da2bce473014298e1d0665a9..b2ff0632c6b6908ef75c2e70cf654b80dbd0c8c7 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/dictionaries/yubikey.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/dictionaries/yubikey.translation.json @@ -31,7 +31,8 @@ "ro": "Login cu YubiKey", "cs": "P\u0159ihl\u00e1\u0161en\u00ed pomoc\u00ed YubiKey", "af": "Meld aan met YubiKey", - "el": "\u0395\u03af\u03c3\u03bf\u03b4\u03bf\u03c2 \u03bc\u03b5 YubiKey" + "el": "\u0395\u03af\u03c3\u03bf\u03b4\u03bf\u03c2 \u03bc\u03b5 YubiKey", + "ca": "Inicieu sessió amb YubiKey" }, "intro": { "no": "En tjeneste har bedt om at du autentiserer deg. For \u00e5 autentisere seg, trykk p\u00e5 knappen p\u00e5 din YubiKey. Feltet under vil da bli automatisk utfylt med et sikkert engangspassord.", @@ -65,6 +66,7 @@ "cs": "N\u011bkter\u00e1 slu\u017eba si vy\u017e\u00e1dala autentizaci. K p\u0159ihl\u00e1\u0161en\u00ed klikn\u011bte na v\u00e1\u0161 YubiKey. Spodn\u00ed pol\u00ed\u010dko by se pot\u00e9 m\u011blo automaticky vyplnit bezpe\u010dn\u00fdm jednor\u00e1zov\u00fdm heslem.", "eu": "Zerbitzu batek kautotzeko eskatu du. Kautotzeko, klikatu zure YubiKey botoia. Behean kokatutako eremua automatikoki bete beharko litzateke erabilera bakarreko (OTP) pasahitz seguru batekin", "af": "Sommige dienste vereis verifikasie. Kliek op jou YubiKey knoppie vir verifikasie. Die onderstaande veld sal dan outomaties gevul word met 'n veilige een-slag-wagwoord.", - "el": "\u0397 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03ae \u03c3\u03b1\u03c2 \u03b1\u03c0\u03b1\u03b9\u03c4\u03b5\u03af \u03c4\u03b7 \u03c7\u03c1\u03ae\u03c3\u03b7 YubiKey \u03bc\u03ad\u03c3\u03c9 \u03c4\u03bf\u03c5 \u03bf\u03c0\u03bf\u03af\u03bf\u03c5 \u03c4\u03bf \u03c0\u03b1\u03c1\u03b1\u03ba\u03ac\u03c4\u03c9 \u03c0\u03b5\u03b4\u03af\u03bf \u03b8\u03b1 \u03c3\u03c5\u03bc\u03c0\u03bb\u03b7\u03c1\u03c9\u03b8\u03b5\u03af \u03b1\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03b1 \u03bc\u03b5 \u03ad\u03bd\u03b1\u03bd \u03b1\u03c3\u03c6\u03b1\u03bb\u03ae \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03bc\u03b9\u03b1\u03c2 \u03c7\u03c1\u03ae\u03c3\u03b7\u03c2." + "el": "\u0397 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03ae \u03c3\u03b1\u03c2 \u03b1\u03c0\u03b1\u03b9\u03c4\u03b5\u03af \u03c4\u03b7 \u03c7\u03c1\u03ae\u03c3\u03b7 YubiKey \u03bc\u03ad\u03c3\u03c9 \u03c4\u03bf\u03c5 \u03bf\u03c0\u03bf\u03af\u03bf\u03c5 \u03c4\u03bf \u03c0\u03b1\u03c1\u03b1\u03ba\u03ac\u03c4\u03c9 \u03c0\u03b5\u03b4\u03af\u03bf \u03b8\u03b1 \u03c3\u03c5\u03bc\u03c0\u03bb\u03b7\u03c1\u03c9\u03b8\u03b5\u03af \u03b1\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03b1 \u03bc\u03b5 \u03ad\u03bd\u03b1\u03bd \u03b1\u03c3\u03c6\u03b1\u03bb\u03ae \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc \u03bc\u03b9\u03b1\u03c2 \u03c7\u03c1\u03ae\u03c3\u03b7\u03c2.", + "ca": "Alguns serveis han sol·licitat l’autenticació. Per autenticar, feu clic al botó del vostre YubiKey. El camp següent s’haurà de completar amb una contrasenya segura única." } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/lib/Auth/Process/OTP2YubiPrefix.php b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/lib/Auth/Process/OTP2YubiPrefix.php index 42ef300f39b3c68bdbb23e1a1ae7a89620e707ef..b6e7896715bcbe39cf21161d33ab01e6f1f28875 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/lib/Auth/Process/OTP2YubiPrefix.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/lib/Auth/Process/OTP2YubiPrefix.php @@ -52,6 +52,7 @@ class OTP2YubiPrefix extends \SimpleSAML\Auth\ProcessingFilter * a 'yubiPrefix' attribute that leaves out the dynamic part. * * @param array &$state The state we should update. + * @return void */ public function process(&$state) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/lib/Auth/Source/YubiKey.php b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/lib/Auth/Source/YubiKey.php index 65ddf84906d3de16f15fc0f04efc73100fe2cb0e..5596ecbd60c258a03ceb4f117abfc061ffdfd6d2 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/lib/Auth/Source/YubiKey.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/lib/Auth/Source/YubiKey.php @@ -62,10 +62,14 @@ class YubiKey extends \SimpleSAML\Auth\Source /** * The client id/key for use with the Auth_Yubico PHP module. + * @var string */ private $yubi_id; + + /** @var string */ private $yubi_key; + /** * Constructor for this authentication source. * @@ -97,6 +101,7 @@ public function __construct($info, $config) * login page. * * @param array &$state Information about the current authentication. + * @return void */ public function authenticate(&$state) { @@ -130,9 +135,14 @@ public static function handleLogin($authStateId, $otp) /* Retrieve the authentication state. */ $state = \SimpleSAML\Auth\State::loadState($authStateId, self::STAGEID); + if (is_null($state)) { + throw new \SimpleSAML\Error\NoState(); + } /* Find authentication source. */ assert(array_key_exists(self::AUTHID, $state)); + + /** @var \SimpleSAML\Module\authYubiKey\Auth\Source\YubiKey $source */ $source = \SimpleSAML\Auth\Source::getById($state[self::AUTHID]); if ($source === null) { throw new \Exception('Could not find authentication source with id '.$state[self::AUTHID]); @@ -162,8 +172,12 @@ public static function handleLogin($authStateId, $otp) return null; } + /** * Return the user id part of a one time passord + * + * @param string $otp + * @return string */ public static function getYubiKeyPrefix($otp) { @@ -171,6 +185,7 @@ public static function getYubiKeyPrefix($otp) return $uid; } + /** * Attempt to log in using the given username and password. * diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/libextinc/Yubico.php b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/libextinc/Yubico.php index d6f4c709aafe84ea19f5ff1a6724a8b322d49c59..d222f6b67e07a18c6b045a26cef2c7623fead10d 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/libextinc/Yubico.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/libextinc/Yubico.php @@ -125,9 +125,11 @@ public function verify($token) // Support https $url = "https://api.yubico.com/wsapi/verify?".$parameters; + /** @var string $responseMsg */ $responseMsg = \SimpleSAML\Utils\HTTP::fetch($url); - if (!preg_match("/status=([a-zA-Z0-9_]+)/", $responseMsg, $out)) { + $out = []; + if (preg_match("/status=([a-zA-Z0-9_]+)/", $responseMsg, $out) !== 1) { throw new Exception('Could not parse response'); } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0985fdd804b18d8d9179ecd956d63582c189e95 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/phpunit.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..fae732c2e1552e3a8610f46baf9654b067b29b7f --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/psalm.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp YubiKey Module" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="lib" /> + <directory name="libextinc" /> + <directory name="www" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/templates/yubikeylogin.twig b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/templates/yubikeylogin.twig index 8fa4385f21dfba30141035b379d0b5793764b82e..cedb3f703c3acff864cf0b0ba1790965d408b466 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/templates/yubikeylogin.twig +++ b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/templates/yubikeylogin.twig @@ -2,11 +2,11 @@ {% extends "base.twig" %} {% block preload %} - <link rel="stylesheet" type="text/css" href="{{ baseurlpath }}assets/css/yubikey.css"> + <link rel="stylesheet" href="/{{ baseurlpath }}module.php/authYubiKey/assets/css/yubikey.css"> {% endblock %} {% block postload %} - <script src="{{ baseurlpath }}assets/js/autofocus.js"></script> + <script src="/{{ baseurlpath }}module.php/authYubiKey/assets/js/autofocus.js"></script> {% endblock %} {% block content %} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..ce36e42de39370f8c970c613d7c47e195012d5af --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot.'/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot.'/vendor/simplesamlphp/simplesamlphp/modules/authyubikey'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/www/yubikeylogin.php b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/www/yubikeylogin.php index c484282515376306d2f2ea7b28cd52c3fed4d0c1..1f39767e13a694bb7081f50ce157acc5b7eee700 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/www/yubikeylogin.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/authYubiKey/www/yubikeylogin.php @@ -18,13 +18,17 @@ $t = new \SimpleSAML\XHTML\Template($globalConfig, 'authYubiKey:yubikeylogin.php'); $translator = $t->getTranslator(); -$errorCode = null; +$errorCode = []; if (array_key_exists('otp', $_REQUEST)) { // attempt to log in - $errorCode = \SimpleSAML\Module\authYubiKey\Auth\Source\YubiKey::handleLogin($authStateId, $_REQUEST['otp']); + $errorCode = \SimpleSAML\Module\authYubiKey\Auth\Source\YubiKey::handleLogin($authStateId, $_REQUEST['otp']) ?: $errorCode; $errorCodes = \SimpleSAML\Error\ErrorCodes::getAllErrorCodeMessages(); - $t->data['errorTitle'] = $errorCodes['title'][$errorCode]; - $t->data['errorDesc'] = $errorCodes['desc'][$errorCode]; + if (array_key_exists($errorCode, $errorCodes['title'])) { + $t->data['errorTitle'] = $errorCodes['title'][$errorCode]; + } + if (array_key_exists($errorCode, $errorCodes['desc'])) { + $t->data['errorDesc'] = $errorCodes['desc'][$errorCode]; + } } $t->data['header'] = $translator->t('{authYubiKey:yubikey:header}'); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/.codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/.codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/.codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..e7d314696c7e461b645c3d603f3a5d3034082ba5 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/.php_cs.dist @@ -0,0 +1,15 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/lib', + __DIR__ . '/tests', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..a090b629439d90419e41ea41034758c0fc8695c1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/.travis.yml @@ -0,0 +1,31 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then composer require --dev vimeo/psalm:1.1.9; fi + +script: + - bin/check-syntax.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi +# - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/LICENSE b/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..0a041280bd00a9d068f503b8ee7ce35214bd24a1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/bin/check-syntax.sh b/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/bin/check-syntax.sh new file mode 100755 index 0000000000000000000000000000000000000000..db6dc4b0140cb09231c6bf2e756c6a668e8e7cbe --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/bin/check-syntax.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +PHP='/usr/bin/env php' +RETURN=0 + +# check PHP files +for FILE in `find lib tests -name "*.php"`; do + $PHP -l $FILE > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Syntax check failed for ${FILE}" + RETURN=`expr ${RETURN} + 1` + fi +done + +exit $RETURN diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..e5e77a626ae53a658bc37d282a798b196538645a --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/composer.json @@ -0,0 +1,42 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-authcrypt", + "description": "This module provides authentication against password hashes or .htpasswd files", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "authcrypt"], + "license": "LGPL-3.0-or-later", + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\authcrypt\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "phpunit/phpunit": "~5.7" + }, + "support": { + "issues": "https://github.com/tvdijen/simplesamlphp-module-authcrypt/issues", + "source": "https://github.com/tvdijen/simplesamlphp-module-authcrypt" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/lib/Auth/Source/Hash.php b/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/lib/Auth/Source/Hash.php index aa17adcf68849033f114df0bf76b02e24295d6b0..4d1ee95dadcb33a4884efe89143f9dc4f54f3aae 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/lib/Auth/Source/Hash.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/lib/Auth/Source/Hash.php @@ -2,6 +2,10 @@ namespace SimpleSAML\Module\authcrypt\Auth\Source; +use SimpleSAML\Logger; +use SimpleSAML\Utils\Attributes; +use SimpleSAML\Utils\Crypto; + /** * Authentication source for username & hashed password. * @@ -55,7 +59,7 @@ public function __construct($info, $config) $passwordhash = $userpass[1]; try { - $attributes = \SimpleSAML\Utils\Attributes::normalizeAttributesArray($attributes); + $attributes = Attributes::normalizeAttributesArray($attributes); } catch (\Exception $e) { throw new \Exception('Invalid attributes for user '.$username. ' in authentication source '.$this->authId.': '. @@ -91,10 +95,10 @@ protected function login($username, $password) foreach ($this->users as $userpass => $attrs) { $matches = explode(':', $userpass, 2); if ($matches[0] === $username) { - if (\SimpleSAML\Utils\Crypto::pwValid($matches[1], $password)) { + if (Crypto::pwValid($matches[1], $password)) { return $attrs; } else { - \SimpleSAML\Logger::debug('Incorrect password "'.$password.'" for user '.$username); + Logger::debug('Incorrect password "'.$password.'" for user '.$username); } } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/lib/Auth/Source/Htpasswd.php b/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/lib/Auth/Source/Htpasswd.php index 72a1fce7289c5dbadf94d74baf75c2c195dc988c..fc05800fdba86950b161df730e7d9fa0829ce309 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/lib/Auth/Source/Htpasswd.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/lib/Auth/Source/Htpasswd.php @@ -9,6 +9,9 @@ * @package SimpleSAMLphp */ +use SimpleSAML\Logger; +use SimpleSAML\Utils\Attributes; +use SimpleSAML\Utils\Crypto; use WhiteHat101\Crypt\APR1_MD5; class Htpasswd extends \SimpleSAML\Module\core\Auth\UserPassBase @@ -53,7 +56,7 @@ public function __construct($info, $config) $this->users = explode("\n", trim($htpasswd)); try { - $this->attributes = \SimpleSAML\Utils\Attributes::normalizeAttributesArray($config['static_attributes']); + $this->attributes = Attributes::normalizeAttributesArray($config['static_attributes']); } catch (\Exception $e) { throw new \Exception('Invalid static_attributes in authentication source '. $this->authId.': '.$e->getMessage()); @@ -91,9 +94,9 @@ protected function login($username, $password) $attributes = array_merge(['uid' => [$username]], $this->attributes); // Traditional crypt(3) - if (\SimpleSAML\Utils\Crypto::secureCompare($crypted, crypt($password, $crypted))) { - \SimpleSAML\Logger::debug('User '.$username.' authenticated successfully'); - \SimpleSAML\Logger::warning( + if (Crypto::secureCompare($crypted, crypt($password, $crypted))) { + Logger::debug('User '.$username.' authenticated successfully'); + Logger::warning( 'CRYPT authentication is insecure. Please consider using something else.' ); return $attributes; @@ -101,13 +104,13 @@ protected function login($username, $password) // Apache's custom MD5 if (APR1_MD5::check($password, $crypted)) { - \SimpleSAML\Logger::debug('User '.$username.' authenticated successfully'); + Logger::debug('User '.$username.' authenticated successfully'); return $attributes; } // PASSWORD_BCRYPT - if (\SimpleSAML\Utils\Crypto::pwValid($crypted, $password)) { - \SimpleSAML\Logger::debug('User '.$username.' authenticated successfully'); + if (Crypto::pwValid($crypted, $password)) { + Logger::debug('User '.$username.' authenticated successfully'); return $attributes; } throw new \SimpleSAML\Error\Error('WRONGUSERPASS'); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0985fdd804b18d8d9179ecd956d63582c189e95 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/phpunit.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..5802afa68f4283322bf0eb7c8854f0c570dc6e75 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/psalm.xml @@ -0,0 +1,30 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp authCrypt module" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="lib" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..603b889e572c6d0dbdc2cf8092bad1f9d745ace8 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authcrypt/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot.'/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot.'/vendor/simplesamlphp/simplesamlphp/modules/authcrypt'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..aba775e95879036ecc29dfdb23ccaf3d5adfee9f --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/.php_cs.dist @@ -0,0 +1,17 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/lib', + __DIR__ . '/extlibinc', + __DIR__ . '/tests', + __DIR__ . '/www', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..208a6d6c78faaea8f1720aff7a6a2a756d266ab3 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/.travis.yml @@ -0,0 +1,30 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + +script: + - vendor/simplesamlphp/simplesamlphp-test-framework/bin/check-syntax-php.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi +# - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/LICENSE b/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..0a041280bd00a9d068f503b8ee7ce35214bd24a1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..ffee58ae498908d4b5fc3838585d507c5795af6c --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/composer.json @@ -0,0 +1,45 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-authfacebook", + "description": "A module that is able to authenticate against Facebook", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "facebook"], + "license": "LGPL-3.0-or-later", + "authors": [ + { + "name": "Andjelko Horvat", + "email": "comel@vingd.com" + }, + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\authfacebook\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.10" + }, + "support": { + "issues": "https://github.com/simplesamlphp/simplesamlphp-module-authfacebook/issues", + "source": "https://github.com/simplesamlphp/simplesamlphp-module-authfacebook" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/extlibinc/base_facebook.php b/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/extlibinc/base_facebook.php index aa1a23efb24e0139820037d699d1809a0d82b509..e53c2b2769ac343ab79d28dbb0cf51b161ba6ec9 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/extlibinc/base_facebook.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/extlibinc/base_facebook.php @@ -102,11 +102,11 @@ public function getType() */ public function __toString() { - $str = $this->getType().': '; + $str = $this->getType() . ': '; if ($this->code != 0) { - $str .= $this->code.': '; + $str .= $this->code . ': '; } - return $str.$this->message; + return $str . $this->message; } } @@ -170,25 +170,27 @@ abstract class BaseFacebook /** * The ID of the Facebook user, or 0 if the user is logged out. * - * @var integer + * @var integer|null */ - protected $user; + protected $user = null; /** * The data from the signed_request token. + * @var array|null */ - protected $signedRequest; + protected $signedRequest = null; /** * A CSRF state variable to assist in the defense against CSRF attacks. + * @var string|null */ - protected $state; + protected $state = null; /** * The OAuth access token received in exchange for a valid authorization * code. null means the access token has yet to be determined. * - * @var string + * @var string|null */ protected $accessToken = null; @@ -402,7 +404,7 @@ public function setExtendedAccessToken() * access token if a valid user access token wasn't available. Subsequent * calls return whatever the first call returned. * - * @return string The access token + * @return string|null The access token */ public function getAccessToken() { @@ -495,7 +497,7 @@ protected function getUserAccessToken() * Retrieve the signed request, either from a request parameter or, * if not present, from a cookie. * - * @return array the signed request, if available, or null otherwise. + * @return array|null the signed request, if available, or null otherwise. */ public function getSignedRequest() { @@ -517,7 +519,7 @@ public function getSignedRequest() * Get the UID of the connected user, or 0 * if the Facebook user is not connected. * - * @return string the UID if available. + * @return int the UID if available. */ public function getUser() { @@ -534,7 +536,7 @@ public function getUser() * requests, then considering an authorization code, and then * falling back to any persistent store storing the user. * - * @return integer The id of the connected Facebook user, + * @return int The id of the connected Facebook user, * or 0 if no such user exists. */ protected function getUserFromAvailableData() @@ -560,15 +562,18 @@ protected function getUserFromAvailableData() return 0; } - $user = $this->getPersistentData('user_id', $default = 0); + $user = $this->getPersistentData('user_id', $default = false); $persisted_access_token = $this->getPersistentData('access_token'); // use access_token to fetch user id if we have a user access_token, or if // the cached access token has changed $access_token = $this->getAccessToken(); - if ($access_token && - $access_token != $this->getApplicationAccessToken() && - !($user && $persisted_access_token == $access_token)) { + if ( + $access_token + && $access_token != $this->getApplicationAccessToken() + && !($user + && $persisted_access_token == $access_token) + ) { $user = $this->getUserFromAccessToken(); if ($user) { $this->setPersistentData('user_id', $user); @@ -690,7 +695,7 @@ public function api(/* polymorphic */) */ protected function getSignedRequestCookieName() { - return 'fbsr_'.$this->getAppId(); + return 'fbsr_' . $this->getAppId(); } /** @@ -702,7 +707,7 @@ protected function getSignedRequestCookieName() */ protected function getMetadataCookieName() { - return 'fbm_'.$this->getAppId(); + return 'fbm_' . $this->getAppId(); } /** @@ -716,16 +721,19 @@ protected function getMetadataCookieName() protected function getCode() { if (isset($_REQUEST['code'])) { - if ($this->state !== null && - isset($_REQUEST['state']) && - $this->state === $_REQUEST['state'] + if ( + $this->state !== null + && isset($_REQUEST['state']) + && $this->state === $_REQUEST['state'] ) { // CSRF state has done its job, so clear it $this->state = null; $this->clearPersistentData('state'); return $_REQUEST['code']; } else { - self::errorLog('CSRF state token does not match one provided. '.$this->state.'!='.$_REQUEST['state']); + self::errorLog( + 'CSRF state token does not match one provided. ' . strval($this->state) . '!=' . $_REQUEST['state'] + ); return false; } } @@ -762,7 +770,7 @@ protected function getUserFromAccessToken() */ protected function getApplicationAccessToken() { - return $this->appId.'|'.$this->appSecret; + return $this->appId . '|' . $this->appSecret; } /** @@ -773,7 +781,7 @@ protected function getApplicationAccessToken() protected function establishCSRFTokenState() { if ($this->state === null) { - $this->state = md5(uniqid(mt_rand(), true)); + $this->state = md5(uniqid(strval(mt_rand()), true)); $this->setPersistentData('state', $this->state); } } @@ -787,6 +795,7 @@ protected function establishCSRFTokenState() * either logged in to Facebook or has granted an offline access permission. * * @param string $code An authorization code. + * @param string|null $redirect_uri * @return mixed An access token exchanged for the authorization code, or * false if an access token could not be generated. */ @@ -828,7 +837,7 @@ protected function getAccessTokenFromCode($code, $redirect_uri = null) $response_params = json_decode($access_token_response, true); if (!isset($response_params['access_token'])) { - self::errorLog('No access token in response. '.$access_token_response); + self::errorLog('No access token in response. ' . $access_token_response); return false; } @@ -849,14 +858,13 @@ protected function _restserver($params) $params['api_key'] = $this->getAppId(); $params['format'] = 'json-strings'; - $result = json_decode( - $this->_oauthRequest( - $this->getApiUrl($params['method']), - $params - ), - true + $result = $this->_oauthRequest( + $this->getApiUrl($params['method']), + $params ); + $result = json_decode($result, true); + // results are returned, errors are thrown if (is_array($result) && isset($result['error_code'])) { $this->throwAPIException($result); @@ -865,8 +873,10 @@ protected function _restserver($params) // @codeCoverageIgnoreEnd $method = strtolower($params['method']); - if ($method === 'auth.expiresession' || - $method === 'auth.revokeauthorization') { + if ( + $method === 'auth.expiresession' + || $method === 'auth.revokeauthorization' + ) { $this->destroySession(); } @@ -893,7 +903,7 @@ protected function isVideoPost($path, $method = 'GET') * Invoke the Graph API. * * @param string $path The path (required) - * @param string $method The http method (default 'GET') + * @param array|string $method The http method (default 'GET') * @param array $params The query/post data * * @return mixed The decoded response object @@ -905,6 +915,8 @@ protected function _graph($path, $method = 'GET', $params = []) $params = $method; $method = 'GET'; } + + /** @var string $method */ $params['method'] = $method; // method override as we always do a POST if ($this->isVideoPost($path, $method)) { @@ -913,14 +925,13 @@ protected function _graph($path, $method = 'GET', $params = []) $domainKey = 'graph'; } - $result = json_decode( - $this->_oauthRequest( - $this->getUrl($domainKey, $path), - $params - ), - true + $result = $this->_oauthRequest( + $this->getUrl($domainKey, $path), + $params ); + $result = json_decode($result, true); + // results are returned, errors are thrown if (is_array($result) && isset($result['error'])) { $this->throwAPIException($result); @@ -963,13 +974,13 @@ protected function _oauthRequest($url, $params) * * @param string $url The URL to make the request to * @param array $params The parameters to use for the POST body - * @param CurlHandler $ch Initialized curl handle + * @param resource|null $ch Initialized curl handle * * @return string The response text */ protected function makeRequest($url, $params, $ch = null) { - if (!$ch) { + if ($ch === null) { $ch = curl_init(); } @@ -997,7 +1008,7 @@ protected function makeRequest($url, $params, $ch = null) if (curl_errno($ch) == 60) { // CURLE_SSL_CACERT self::errorLog('Invalid or no certificate authority found, using bundled information'); - curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__).'/fb_ca_chain_bundle.crt'); + curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . '/fb_ca_chain_bundle.crt'); $result = curl_exec($ch); } @@ -1011,7 +1022,7 @@ protected function makeRequest($url, $params, $ch = null) $regex = '/Failed to connect to ([^:].*): Network is unreachable/'; if (preg_match($regex, curl_error($ch), $matches)) { if (strlen(@inet_pton($matches[1])) === 16) { - self::errorLog('Invalid IPv6 configuration on server, '. + self::errorLog('Invalid IPv6 configuration on server, ' . 'Please disable or get native IPv6 on your server.'); self::$CURL_OPTS[CURLOPT_IPRESOLVE] = CURL_IPRESOLVE_V4; curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); @@ -1032,6 +1043,7 @@ protected function makeRequest($url, $params, $ch = null) throw $e; } curl_close($ch); + /** @var string $result */ return $result; } @@ -1039,7 +1051,7 @@ protected function makeRequest($url, $params, $ch = null) * Parses a signed_request and validates the signature. * * @param string $signed_request A signed token - * @return array The payload inside it or null if the sig is wrong + * @return array|null The payload inside it or null if the sig is wrong */ protected function parseSignedRequest($signed_request) { @@ -1050,7 +1062,7 @@ protected function parseSignedRequest($signed_request) $data = json_decode(self::base64UrlDecode($payload), true); if (strtoupper($data['algorithm']) !== self::SIGNED_REQUEST_ALGORITHM) { - self::errorLog('Unknown algorithm. Expected '.self::SIGNED_REQUEST_ALGORITHM); + self::errorLog('Unknown algorithm. Expected ' . self::SIGNED_REQUEST_ALGORITHM); return null; } @@ -1067,29 +1079,24 @@ protected function parseSignedRequest($signed_request) /** * Makes a signed_request blob using the given data. * - * @param $data array The data array. + * @param array $data The data array. * @return string The signed request. */ - protected function makeSignedRequest($data) + protected function makeSignedRequest(array $data) { - if (!is_array($data)) { - throw new InvalidArgumentException( - 'makeSignedRequest expects an array. Got: '.print_r($data, true) - ); - } $data['algorithm'] = self::SIGNED_REQUEST_ALGORITHM; $data['issued_at'] = time(); $json = json_encode($data); $b64 = self::base64UrlEncode($json); $raw_sig = hash_hmac('sha256', $b64, $this->getAppSecret(), $raw = true); $sig = self::base64UrlEncode($raw_sig); - return $sig.'.'.$b64; + return $sig . ' . ' . $b64; } /** * Build the URL for api given parameters. * - * @param $method String the method name. + * @param string $method String the method name. * @return string The URL for the given parameters */ protected function getApiUrl($method) @@ -1169,9 +1176,9 @@ protected function getApiUrl($method) /** * Build the URL for given domain alias, path and parameters. * - * @param $name string The name of the domain - * @param $path string Optional path (without a leading slash) - * @param $params array Optional query parameters + * @param string $name The name of the domain + * @param string $path Optional path (without a leading slash) + * @param array $params Optional query parameters * * @return string The URL for the given parameters */ @@ -1184,13 +1191,16 @@ protected function getUrl($name, $path = '', $params = []) } $url .= $path; } - if ($params) { - $url .= '?'.http_build_query($params, null, '&'); + if (!empty($params)) { + $url .= '?' . http_build_query($params, null, '&'); } return $url; } + /** + * @return string + */ protected function getHttpHost() { if ($this->trustForwarded && isset($_SERVER['HTTP_X_FORWARDED_HOST'])) { @@ -1199,6 +1209,9 @@ protected function getHttpHost() return $_SERVER['HTTP_HOST']; } + /** + * @return string + */ protected function getHttpProtocol() { if ($this->trustForwarded && isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) { @@ -1220,6 +1233,7 @@ protected function getHttpProtocol() /** * Get the base domain used for the cookie. + * @return string */ protected function getBaseDomain() { @@ -1240,9 +1254,9 @@ protected function getBaseDomain() */ protected function getCurrentUrl() { - $protocol = $this->getHttpProtocol().'://'; + $protocol = $this->getHttpProtocol() . '://'; $host = $this->getHttpHost(); - $currentUrl = $protocol.$host.$_SERVER['REQUEST_URI']; + $currentUrl = $protocol . $host . $_SERVER['REQUEST_URI']; $parts = parse_url($currentUrl); // use port if non default @@ -1250,10 +1264,10 @@ protected function getCurrentUrl() isset($parts['port']) && (($protocol === 'http://' && $parts['port'] !== 80) || ($protocol === 'https://' && $parts['port'] !== 443)) - ? ':'.$parts['port'] : ''; + ? ':' . $parts['port'] : ''; // rebuild - return $protocol.$parts['host'].$port.$parts['path']; + return $protocol . $parts['host'] . $port . $parts['path']; } /** @@ -1261,8 +1275,9 @@ protected function getCurrentUrl() * because the access token is no longer valid. If that is * the case, then we destroy the session. * - * @param $result array A record storing the error message returned + * @param array $result A record storing the error message returned * by a failed API call. + * @return void */ protected function throwAPIException($result) { @@ -1275,7 +1290,8 @@ protected function throwAPIException($result) // REST server errors are just Exceptions case 'Exception': $message = $e->getMessage(); - if ((strpos($message, 'Error validating access token') !== false) || + if ( + (strpos($message, 'Error validating access token') !== false) || (strpos($message, 'Invalid OAuth access token') !== false) || (strpos($message, 'An active access token must be used') !== false) ) { @@ -1292,6 +1308,7 @@ protected function throwAPIException($result) * Prints to the error log if you aren't in command line mode. * * @param string $msg Log message + * @return void */ protected static function errorLog($msg) { @@ -1336,6 +1353,7 @@ protected static function base64UrlEncode($input) /** * Destroy the current session + * @return void */ public function destroySession() { @@ -1351,12 +1369,12 @@ public function destroySession() unset($_COOKIE[$cookie_name]); if (!headers_sent()) { $base_domain = $this->getBaseDomain(); - setcookie($cookie_name, '', 1, '/', '.'.$base_domain); + setcookie($cookie_name, '', 1, '/', '.' . $base_domain); } else { // @codeCoverageIgnoreStart self::errorLog( - 'There exists a cookie that we wanted to clear that we couldn\'t '. - 'clear because headers was already sent. Make sure to do the first '. + 'There exists a cookie that we wanted to clear that we couldn\'t ' . + 'clear because headers was already sent. Make sure to do the first ' . 'API call before outputing anything.' ); // @codeCoverageIgnoreEnd @@ -1395,14 +1413,24 @@ protected function getMetadataCookie() return $metadata; } + /** + * @param string $big + * @param string $small + * @return string|bool + */ protected static function isAllowedDomain($big, $small) { if ($big === $small) { return true; } - return self::endsWith($big, '.'.$small); + return self::endsWith($big, '.' . $small); } + /** + * @param string $big + * @param string $small + * @return string|bool + */ protected static function endsWith($big, $small) { $len = strlen($small); @@ -1427,7 +1455,7 @@ protected static function endsWith($big, $small) * getPersistentData($key) return $value. This call may be in another request. * * @param string $key - * @param array $value + * @param mixed $value * * @return void */ diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/lib/Auth/Source/Facebook.php b/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/lib/Auth/Source/Facebook.php index a2bee6a7a368d460d2998aef16d72810a834ab97..b4a0c1ea9402ee9c943cda5c03318155a383ed7a 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/lib/Auth/Source/Facebook.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/lib/Auth/Source/Facebook.php @@ -2,7 +2,12 @@ namespace SimpleSAML\Module\authfacebook\Auth\Source; +use SimpleSAML\Auth; +use SimpleSAML\Configuration; +use SimpleSAML\Error; +use SimpleSAML\Logger; use SimpleSAML\Module; +use SimpleSAML\Utils; /** * Authenticate using Facebook Platform. @@ -72,9 +77,9 @@ public function __construct($info, $config) // Call the parent constructor first, as required by the interface parent::__construct($info, $config); - $cfgParse = \SimpleSAML\Configuration::loadFromArray( + $cfgParse = Configuration::loadFromArray( $config, - 'authsources['.var_export($this->authId, true).']' + 'authsources[' . var_export($this->authId, true) . ']' ); $this->api_key = $cfgParse->getString('api_key'); @@ -88,6 +93,7 @@ public function __construct($info, $config) * Log-in using Facebook platform * * @param array &$state Information about the current authentication. + * @return void */ public function authenticate(&$state) { @@ -95,7 +101,7 @@ public function authenticate(&$state) // We are going to need the authId in order to retrieve this authentication source later $state[self::AUTHID] = $this->authId; - \SimpleSAML\Auth\State::saveState($state, self::STAGE_INIT); + Auth\State::saveState($state, self::STAGE_INIT); $facebook = new Module\authfacebook\Facebook( ['appId' => $this->api_key, 'secret' => $this->secret], @@ -105,12 +111,16 @@ public function authenticate(&$state) $linkback = Module::getModuleURL('authfacebook/linkback.php'); $url = $facebook->getLoginUrl(['redirect_uri' => $linkback, 'scope' => $this->req_perms]); - \SimpleSAML\Auth\State::saveState($state, self::STAGE_INIT); + Auth\State::saveState($state, self::STAGE_INIT); - \SimpleSAML\Utils\HTTP::redirectTrustedURL($url); + Utils\HTTP::redirectTrustedURL($url); } + /** + * @param array &$state + * @return void + */ public function finalStep(&$state) { assert(is_array($state)); @@ -121,35 +131,36 @@ public function finalStep(&$state) ); $uid = $facebook->getUser(); - if (isset($uid) && $uid) { + $info = null; + if ($uid > 0) { try { - $info = $facebook->api("/".$uid.($this->user_fields ? "?fields=".$this->user_fields : "")); + $info = $facebook->api("/" . $uid . ($this->user_fields ? "?fields=" . $this->user_fields : "")); } catch (\FacebookApiException $e) { - throw new \SimpleSAML\Error\AuthSource($this->authId, 'Error getting user profile.', $e); + throw new Error\AuthSource($this->authId, 'Error getting user profile.', $e); } } if (!isset($info)) { - throw new \SimpleSAML\Error\AuthSource($this->authId, 'Error getting user profile.'); + throw new Error\AuthSource($this->authId, 'Error getting user profile.'); } $attributes = []; foreach ($info as $key => $value) { if (is_string($value) && !empty($value)) { - $attributes['facebook.'.$key] = [(string) $value]; + $attributes['facebook.' . $key] = [(string) $value]; } } if (array_key_exists('third_party_id', $info)) { - $attributes['facebook_user'] = [$info['third_party_id'].'@facebook.com']; + $attributes['facebook_user'] = [$info['third_party_id'] . '@facebook.com']; } else { - $attributes['facebook_user'] = [$uid.'@facebook.com']; + $attributes['facebook_user'] = [$uid . '@facebook.com']; } - $attributes['facebook_targetedID'] = ['http://facebook.com!'.$uid]; + $attributes['facebook_targetedID'] = ['http://facebook.com!' . $uid]; $attributes['facebook_cn'] = [$info['name']]; - \SimpleSAML\Logger::debug('Facebook Returned Attributes: '.implode(", ", array_keys($attributes))); + Logger::debug('Facebook Returned Attributes: ' . implode(", ", array_keys($attributes))); $state['Attributes'] = $attributes; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/lib/Facebook.php b/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/lib/Facebook.php index cf68d348a52d3530b98879a284977efc120cbf61..308bb6e6aa1b832bf4f000eec4da08bb2e7ff821 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/lib/Facebook.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/lib/Facebook.php @@ -2,7 +2,7 @@ namespace SimpleSAML\Module\authfacebook; -require_once(dirname(dirname(__FILE__)).'/extlibinc/base_facebook.php'); +require_once(dirname(dirname(__FILE__)) . '/extlibinc/base_facebook.php'); /** * Extends the BaseFacebook class with the intent of using @@ -17,14 +17,24 @@ class Facebook extends \BaseFacebook // expiration will trump this const FBSS_COOKIE_EXPIRE = 31556926; // 1 year - // Stores the shared session ID if one is set - protected $sharedSessionID; + /** + * Stores the shared session ID if one is set + * @var string + */ + protected $sharedSessionID = ''; - // SimpleSAMLphp state array - protected $ssp_state; + /** + * SimpleSAMLphp state array + * @var array + */ + protected $ssp_state = []; + + /** @var string|null */ + protected $state = null; + + /** @var array */ + protected static $kSupportedKeys = ['state', 'code', 'access_token', 'user_id']; - // \SimpleSAML\Auth\State - protected $state; /** * Identical to the parent constructor, except that @@ -32,7 +42,8 @@ class Facebook extends \BaseFacebook * access token if during the course of execution * we discover them. * - * @param Array $config the application configuration. Additionally + * @param array $config the application configuration. Additionally + * @param array &$ssp_state * accepts "sharedSession" as a boolean to turn on a secondary * cookie for environments with a shared session (that is, your app * shares the domain with other apps). @@ -48,15 +59,20 @@ public function __construct(array $config, &$ssp_state) } } - protected static $kSupportedKeys = ['state', 'code', 'access_token', 'user_id']; + /** + * @return void + */ protected function initSharedSession() { $cookie_name = $this->getSharedSessionCookieName(); if (isset($_COOKIE[$cookie_name])) { $data = $this->parseSignedRequest($_COOKIE[$cookie_name]); - if (!empty($data) && !empty($data['domain']) && - self::isAllowedDomain($this->getHttpHost(), $data['domain'])) { + if ( + !empty($data) + && !empty($data['domain']) + && self::isAllowedDomain($this->getHttpHost(), $data['domain']) + ) { // good case $this->sharedSessionID = $data['id']; return; @@ -65,7 +81,7 @@ protected function initSharedSession() } // evil/corrupt/missing case $base_domain = $this->getBaseDomain(); - $this->sharedSessionID = md5(uniqid(mt_rand(), true)); + $this->sharedSessionID = md5(uniqid(strval(mt_rand()), true)); $cookie_value = $this->makeSignedRequest( [ 'domain' => $base_domain, @@ -75,28 +91,33 @@ protected function initSharedSession() $_COOKIE[$cookie_name] = $cookie_value; if (!headers_sent()) { $expire = time() + self::FBSS_COOKIE_EXPIRE; - setcookie($cookie_name, $cookie_value, $expire, '/', '.'.$base_domain); + setcookie($cookie_name, $cookie_value, $expire, '/', '.' . $base_domain); } else { // @codeCoverageIgnoreStart \SimpleSAML\Logger::debug( - 'Shared session ID cookie could not be set! You must ensure you '. - 'create the Facebook instance before headers have been sent. This '. + 'Shared session ID cookie could not be set! You must ensure you ' . + 'create the Facebook instance before headers have been sent. This ' . 'will cause authentication issues after the first request.' ); // @codeCoverageIgnoreEnd } } + /** * Provides the implementations of the inherited abstract * methods. The implementation uses PHP sessions to maintain * a store for authorization codes, user ids, CSRF states, and * access tokens. + * + * @param string $key + * @param mixed $value + * @return void */ protected function setPersistentData($key, $value) { if (!in_array($key, self::$kSupportedKeys)) { - \SimpleSAML\Logger::debug("Unsupported key passed to setPersistentData: ".var_export($key, true)); + \SimpleSAML\Logger::debug("Unsupported key passed to setPersistentData: " . var_export($key, true)); return; } @@ -104,10 +125,16 @@ protected function setPersistentData($key, $value) $this->ssp_state[$session_var_name] = $value; } + + /** + * @param string $key + * @param bool $default + * @return mixed + */ protected function getPersistentData($key, $default = false) { if (!in_array($key, self::$kSupportedKeys)) { - \SimpleSAML\Logger::debug("Unsupported key passed to getPersistentData: ".var_export($key, true)); + \SimpleSAML\Logger::debug("Unsupported key passed to getPersistentData: " . var_export($key, true)); return $default; } @@ -115,10 +142,15 @@ protected function getPersistentData($key, $default = false) return isset($this->ssp_state[$session_var_name]) ? $this->ssp_state[$session_var_name] : $default; } + + /** + * @param string $key + * @return void + */ protected function clearPersistentData($key) { if (!in_array($key, self::$kSupportedKeys)) { - \SimpleSAML\Logger::debug("Unsupported key passed to clearPersistentData: ".var_export($key, true)); + \SimpleSAML\Logger::debug("Unsupported key passed to clearPersistentData: " . var_export($key, true)); return; } @@ -128,6 +160,10 @@ protected function clearPersistentData($key) } } + + /** + * @return void + */ protected function clearAllPersistentData() { foreach (self::$kSupportedKeys as $key) { @@ -138,19 +174,32 @@ protected function clearAllPersistentData() } } + + /** + * @return void + */ protected function deleteSharedSessionCookie() { $cookie_name = $this->getSharedSessionCookieName(); unset($_COOKIE[$cookie_name]); $base_domain = $this->getBaseDomain(); - setcookie($cookie_name, '', 1, '/', '.'.$base_domain); + setcookie($cookie_name, '', 1, '/', '.' . $base_domain); } + + /** + * @return string + */ protected function getSharedSessionCookieName() { - return self::FBSS_COOKIE_NAME.'_'.$this->getAppId(); + return self::FBSS_COOKIE_NAME . '_' . $this->getAppId(); } + + /** + * @param string $key + * @return string + */ protected function constructSessionVariableName($key) { $parts = ['authfacebook:authdata:fb', $this->getAppId(), $key]; @@ -160,6 +209,10 @@ protected function constructSessionVariableName($key) return implode('_', $parts); } + + /** + * @return void + */ protected function establishCSRFTokenState() { if ($this->state === null) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..cfe86d3ec52b3a54c722bd41a5fc66bc438575d5 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/phpunit.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>./vendor/simplesamlphp/simplesamlphp-test-framework/tests/</directory> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + <directory suffix=".php">./extlibinc</directory> + <directory suffix=".php">./tests</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..b670a64a6d43694b9e8e88dc2adb78565c0282c3 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/psalm.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp Module for Facebook Authentication" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="lib" /> + <directory name="extlibinc" /> + <directory name="www" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..0436c472c9cb630598497d27a3b44c9c095f4bb1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot . '/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot . '/vendor/simplesamlphp/simplesamlphp/modules/authfacebook'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/www/linkback.php b/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/www/linkback.php index 6a24590194e4ec6a3e390386b5f937853fec4e86..84e5e32c5db1689fb47e4e1dc2ea2ed0e92f8e37 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/www/linkback.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/authfacebook/www/linkback.php @@ -20,17 +20,18 @@ } // Find authentication source -if (!array_key_exists(\SimpleSAML\Module\authfacebook\Auth\Source\Facebook::AUTHID, $state)) { +if (is_null($state) || !array_key_exists(\SimpleSAML\Module\authfacebook\Auth\Source\Facebook::AUTHID, $state)) { throw new \SimpleSAML\Error\BadRequest( - 'No data in state for '.\SimpleSAML\Module\authfacebook\Auth\Source\Facebook::AUTHID + 'No data in state for ' . \SimpleSAML\Module\authfacebook\Auth\Source\Facebook::AUTHID ); } $sourceId = $state[\SimpleSAML\Module\authfacebook\Auth\Source\Facebook::AUTHID]; +/** @var \SimpleSAML\Module\authfacebook\Auth\Source\Facebook|null $source */ $source = \SimpleSAML\Auth\Source::getById($sourceId); if ($source === null) { throw new \SimpleSAML\Error\BadRequest( - 'Could not find authentication source with id '.var_export($sourceId, true) + 'Could not find authentication source with id ' . var_export($sourceId, true) ); } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authorize/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/authorize/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..59267ee96c7911780c11de4d2e1c4db1838d8752 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authorize/.php_cs.dist @@ -0,0 +1,17 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/lib', + __DIR__ . '/templates', + __DIR__ . '/tests', + __DIR__ . '/www', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authorize/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/authorize/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..3c250287a743959883e40e541e22f26fb1dd8635 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authorize/.travis.yml @@ -0,0 +1,35 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +matrix: + allow_failures: + - php: 7.3 + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then composer require --dev vimeo/psalm:1.1.9; fi + +script: + - bin/check-syntax.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi +# - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authorize/LICENSE b/vendor/simplesamlphp/simplesamlphp/modules/authorize/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..0a041280bd00a9d068f503b8ee7ce35214bd24a1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authorize/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authorize/bin/check-syntax.sh b/vendor/simplesamlphp/simplesamlphp/modules/authorize/bin/check-syntax.sh new file mode 100755 index 0000000000000000000000000000000000000000..8fc2e8e342c724e46defc0ce5fc6881fee39cb1c --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authorize/bin/check-syntax.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +PHP='/usr/bin/env php' +RETURN=0 + +# check PHP files +for FILE in `find lib templates tests www -name "*.php"`; do + $PHP -l $FILE > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Syntax check failed for ${FILE}" + RETURN=`expr ${RETURN} + 1` + fi +done + +exit $RETURN diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authorize/codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/authorize/codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authorize/codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authorize/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/authorize/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..2e2194e354061416265c50f170761000dd5f12b6 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authorize/composer.json @@ -0,0 +1,42 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-authorize", + "description": "This module provides a user authorization filter based on attribute matching", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "authorize"], + "license": "LGPL-3.0-or-later", + "authors": [ + { + "name": "Ernesto Revilla", + "email": "erny@yaco.es" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\authorize\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Module\\Authorize\\Tests\\Utils\\": "tests/Utils", + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "phpunit/phpunit": "~5.7" + }, + "support": { + "issues": "https://github.com/tvdijen/simplesamlphp-module-authorize/issues", + "source": "https://github.com/tvdijen/simplesamlphp-module-authorize" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authorize/dictionaries/Authorize.translation.json b/vendor/simplesamlphp/simplesamlphp/modules/authorize/dictionaries/Authorize.translation.json index d3611a83f504cee012b6239dc960d5d48165db8c..fa87780cfa30071bd6e11816f3cdd0cc396f642f 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authorize/dictionaries/Authorize.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/modules/authorize/dictionaries/Authorize.translation.json @@ -33,7 +33,9 @@ "pt-br": "Acesso proibido", "el": "\u0394\u03b5\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03c4\u03b1\u03b9 \u03b7 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7", "xh": "Ufikelelo luthintelwe", - "zu": "Ukufinyelela kwenqatshelwe" + "zu": "Ukufinyelela kwenqatshelwe", + "st": "Phihlello e thibetswe", + "ca": "Accés prohibit" }, "403_text": { "es": "No tiene los privilegios necesarios para acceder a esta aplicaci\u00f3n. Si considera que esto no es correcto, consulte el administrador.", @@ -68,6 +70,8 @@ "pt-br": "Voc\u00ea n\u00e3o tem privil\u00e9gios necess\u00e1rios para acessar esta aplica\u00e7\u00e3o. Entre em contato com o administrador se voc\u00ea achar que isso seja incorreto.", "el": "\u0394\u03b5\u03bd \u03ad\u03c7\u03b5\u03c4\u03b5 \u03c4\u03b1 \u03b1\u03c0\u03b1\u03c1\u03b1\u03af\u03c4\u03b7\u03c4\u03b1 \u03b4\u03b9\u03ba\u03b1\u03b9\u03ce\u03bc\u03b1\u03c4\u03b1 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b1\u03c0\u03bf\u03ba\u03c4\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03ae \u03c4\u03b7\u03bd \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03bf\u03cd\u03bc\u03b5 \u03b5\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03ae\u03c3\u03c4\u03b5 \u03bc\u03b5 \u03c4\u03bf \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae \u03b1\u03bd \u03b8\u03b5\u03c9\u03c1\u03b5\u03af\u03c4\u03b5 \u03cc\u03c4\u03b9 \u03b1\u03c5\u03c4\u03cc \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03bb\u03b1\u03bd\u03b8\u03b1\u03c3\u03bc\u03ad\u03bd\u03bf.", "zu": "Awunawo amalungelo adingekile okufinyelela lolu hlelo. Sicela uthinte umlawuli uma uthola ukuthi lokhu akulona iqiniso.", - "xh": "Awunawo amalungelo afunekayo ukuze ufikelele olu setyenziso. Nceda uqhagamshelane nomlawuli ukuba ngaba ukufumanisa oku kungachanekanga." + "xh": "Awunawo amalungelo afunekayo ukuze ufikelele olu setyenziso. Nceda uqhagamshelane nomlawuli ukuba ngaba ukufumanisa oku kungachanekanga.", + "st": "Ha o na makgabane a lokelang ho fihlella tshebediso ena. Ka kopo ikopanye le motsamaisi haeba o fumana sena se sa nepahala.", + "ca": "No teniu els privilegis necessaris per accedir a aquesta aplicació. Si us plau, poseu-vos en contacte amb l’administrador si penseu que això no és correcte." } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authorize/docs/authorize.md b/vendor/simplesamlphp/simplesamlphp/modules/authorize/docs/authorize.md index 36ac30c90b9a776e19459706c221bea9cb6bf1a5..d18964d63cc939bee4d438fea832e8d2c28c53c2 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authorize/docs/authorize.md +++ b/vendor/simplesamlphp/simplesamlphp/modules/authorize/docs/authorize.md @@ -50,14 +50,17 @@ Note: If regex is enabled, you must use the preg_match format, i.e. you have to (as far as I know), you have to close the browser. ### Examples ### -To use this filter configure it in `config/config.php`: +To use this filter configure it in `config/config.php`. +For unstructured attributes use `^` and `$` to anchor your regex as necessary: + ```php 'authproc.sp' => [ 60 => [ 'class' => 'authorize:Authorize', 'uid' => [ - '/.*@example.com/', - '/(user1|user2|user3)@example.edu/', + '/^.*@example.com$/', + // Use anchors to prevent matching 'wronguser1@example.edu.attacker.com' + '/^(user1|user2|user3)@example.edu$/', ], 'schacUserStatus' => '@urn:mace:terena.org:userStatus:' . 'example.org:service:active.*@', @@ -72,10 +75,10 @@ An alternate way of using this filter is to deny certain users. Or even use mult 'authproc.sp' => [ 60 => array[ 'class' => 'authorize:Authorize', - 'deny' => TRUE, + 'deny' => true, 'uid' => [ - '/.*@students.example.edu/', - '/(stu1|stu2|stu3)@example.edu/', + '/.*@students.example.edu$/', + '/^(stu1|stu2|stu3)@example.edu$/', ] ] ] @@ -89,7 +92,7 @@ Additionally, some helpful instructions are shown. 'authproc.sp' => [ 60 => [ 'class' => 'authorize:Authorize', - 'regex' => FALSE, + 'regex' => false, 'group' => [ 'CN=SimpleSAML Students,CN=Users,DC=example,DC=edu', 'CN=All Teachers,OU=Staff,DC=example,DC=edu', diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authorize/lib/Auth/Process/Authorize.php b/vendor/simplesamlphp/simplesamlphp/modules/authorize/lib/Auth/Process/Authorize.php index e40cbaf36274373fc66bb2694d84bfa79cc3ea18..5d57b36f6c68a5b129b777a904409cd41e64aeff 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authorize/lib/Auth/Process/Authorize.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/authorize/lib/Auth/Process/Authorize.php @@ -2,6 +2,13 @@ namespace SimpleSAML\Module\authorize\Auth\Process; +use SimpleSAML\Auth\State; +use SimpleSAML\Module; +use SimpleSAML\Utils\Arrays; +use SimpleSAML\Utils\HTTP; +use SimpleSAML\Module\Authorize\Tests\Utils; +use Webmozart\Assert\Assert; + /** * Filter to authorize only certain users. * See docs directory. @@ -53,36 +60,35 @@ public function __construct($config, $reserved) assert(is_array($config)); - // Check for the deny option, get it and remove it - // Must be bool specifically, if not, it might be for a attrib filter below + // Check for the deny option + // Must be bool specifically, if not, it might be for an attrib filter below if (isset($config['deny']) && is_bool($config['deny'])) { $this->deny = $config['deny']; - unset($config['deny']); } - // Check for the regex option, get it and remove it - // Must be bool specifically, if not, it might be for a attrib filter below + // Check for the regex option + // Must be bool specifically, if not, it might be for an attrib filter below if (isset($config['regex']) && is_bool($config['regex'])) { $this->regex = $config['regex']; - unset($config['regex']); } - // Check for the reject_msg option, get it and remove it - // Must be array of languages + // Check for the reject_msg option; Must be array of languages if (isset($config['reject_msg']) && is_array($config['reject_msg'])) { $this->reject_msg = $config['reject_msg']; - unset($config['reject_msg']); } + // Remove all above options + unset($config['deny'], $config['regex'], $config['reject_msg']); + foreach ($config as $attribute => $values) { if (is_string($values)) { - $values = [$values]; - } - if (!is_array($values)) { + $values = Arrays::arrayize($values); + } else if (!is_array($values)) { throw new \Exception( 'Filter Authorize: Attribute values is neither string nor array: '.var_export($attribute, true) ); } + foreach ($values as $value) { if (!is_string($value)) { throw new \Exception( @@ -99,26 +105,24 @@ public function __construct($config, $reserved) * Apply filter to validate attributes. * * @param array &$request The current request + * @return void */ public function process(&$request) { - $authorize = $this->deny; assert(is_array($request)); assert(array_key_exists('Attributes', $request)); + $authorize = $this->deny; $attributes = &$request['Attributes']; // Store the rejection message array in the $request - if(!empty($this->reject_msg)) { + if (!empty($this->reject_msg)) { $request['authprocAuthorize_reject_msg'] = $this->reject_msg; } foreach ($this->valid_attribute_values as $name => $patterns) { if (array_key_exists($name, $attributes)) { foreach ($patterns as $pattern) { - $values = $attributes[$name]; - if (!is_array($values)) { - $values = [$values]; - } + $values = Arrays::arrayize($attributes[$name]); foreach ($values as $value) { if ($this->regex) { $matched = preg_match($pattern, $value); @@ -149,12 +153,13 @@ public function process(&$request) * permission logic. * * @param array $request + * @return void */ - protected function unauthorized(&$request) + protected function unauthorized(array &$request) { // Save state and redirect to 403 page - $id = \SimpleSAML\Auth\State::saveState($request, 'authorize:Authorize'); - $url = \SimpleSAML\Module::getModuleURL('authorize/authorize_403.php'); - \SimpleSAML\Utils\HTTP::redirectTrustedURL($url, ['StateId' => $id]); + $id = State::saveState($request, 'authorize:Authorize'); + $url = Module::getModuleURL('authorize/authorize_403.php'); + HTTP::redirectTrustedURL($url, ['StateId' => $id]); } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authorize/locales/st/LC_MESSAGES/authorize.po b/vendor/simplesamlphp/simplesamlphp/modules/authorize/locales/st/LC_MESSAGES/authorize.po new file mode 100644 index 0000000000000000000000000000000000000000..31501512501e6cda373a4f474c0f366c7b45d833 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authorize/locales/st/LC_MESSAGES/authorize.po @@ -0,0 +1,35 @@ + +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: SimpleSAMLphp 1.15\n" +"Report-Msgid-Bugs-To: simplesamlphp-translation@googlegroups.com\n" +"POT-Creation-Date: 2016-10-12 09:23+0200\n" +"PO-Revision-Date: 2016-10-14 12:14+0200\n" +"Last-Translator: \n" +"Language: st\n" +"Language-Team: \n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.3.4\n" + +msgid "{authorize:Authorize:403_text}" +msgstr "" +"Ha o na makgabane a lokelang ho fihlella tshebediso ena. Ka kopo ikopanye " +"le motsamaisi haeba o fumana sena se sa nepahala." + +msgid "{authorize:Authorize:403_header}" +msgstr "Phihlello e thibetswe" + +msgid "Access forbidden" +msgstr "Phihlello e thibetswe" + +msgid "" +"You don't have the needed privileges to access this application. Please " +"contact the administrator if you find this to be incorrect." +msgstr "" +"Ha o na makgabane a lokelang ho fihlella tshebediso ena. Ka kopo ikopanye " +"le motsamaisi haeba o fumana sena se sa nepahala." + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authorize/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/authorize/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0985fdd804b18d8d9179ecd956d63582c189e95 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authorize/phpunit.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authorize/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/authorize/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..c65291ecd792b55c14138165b906fbf622f00861 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authorize/psalm.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp authCrypt module" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="lib" /> + <directory name="templates" /> + <directory name="www" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authorize/templates/authorize_403.php b/vendor/simplesamlphp/simplesamlphp/modules/authorize/templates/authorize_403.php index d4d5b79a09c0f49916ab6af16a9def6da26e8626..8de2696b218c6395b44256c82bee35c06a15e9e5 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authorize/templates/authorize_403.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/authorize/templates/authorize_403.php @@ -9,13 +9,14 @@ * @package SimpleSAMLphp */ +$translator = $this->getTranslator(); -$this->data['403_header'] = $this->t('{authorize:Authorize:403_header}'); -$this->data['403_text'] = $this->t('{authorize:Authorize:403_text}'); +$this->data['403_header'] = $translator->t('{authorize:Authorize:403_header}'); +$this->data['403_text'] = $translator->t('{authorize:Authorize:403_text}'); if (array_key_exists('reject_msg', $this->data)) { - if(isset($this->data['reject_msg'][$this->getLanguage()])) { - $this->data['403_text'] = $this->data['reject_msg'][$this->getLanguage()]; + if (isset($this->data['reject_msg'][$translator->getLanguage()->getLanguage()])) { + $this->data['403_text'] = $this->data['reject_msg'][$translator->getLanguage()->getLanguage()]; } } $this->includeAtTemplateBase('includes/header.php'); @@ -23,7 +24,7 @@ echo '<h1>'.$this->data['403_header'].'</h1>'; echo '<p>'.$this->data['403_text'].'</p>'; if (isset($this->data['logoutURL'])) { - echo '<p><a href="'.htmlspecialchars($this->data['logoutURL']).'">'.$this->t('{status:logout}').'</a></p>'; + echo '<p><a href="'.htmlspecialchars($this->data['logoutURL']).'">'.$translator->t('{status:logout}').'</a></p>'; } $this->includeAtTemplateBase('includes/footer.php'); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authorize/tests/Utils/TestableAuthorize.php b/vendor/simplesamlphp/simplesamlphp/modules/authorize/tests/Utils/TestableAuthorize.php new file mode 100644 index 0000000000000000000000000000000000000000..236f8888a03fbfbdd56b7e51c87681d88174ac48 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authorize/tests/Utils/TestableAuthorize.php @@ -0,0 +1,20 @@ +<?php +/** + * Subclass authorize filter to make it unit testable. + */ + +namespace SimpleSAML\Module\Authorize\Tests\Utils; + +use SimpleSAML\Module\authorize\Auth\Process\Authorize; + +class TestableAuthorize extends Authorize +{ + /** + * Override the redirect behavior since its difficult to test + * @param array $request the state + */ + protected function unauthorized(array &$request) + { + $request['NOT_AUTHORIZED'] = true; + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authorize/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/authorize/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..296f70baac2fe30941cd11ec838cd4c01e207535 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authorize/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot.'/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot.'/vendor/simplesamlphp/simplesamlphp/modules/authorize'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authorize/tests/lib/Auth/Process/AuthorizeTest.php b/vendor/simplesamlphp/simplesamlphp/modules/authorize/tests/lib/Auth/Process/AuthorizeTest.php new file mode 100644 index 0000000000000000000000000000000000000000..025bc88a97c99293d0945b9a9765bca1ac23e115 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authorize/tests/lib/Auth/Process/AuthorizeTest.php @@ -0,0 +1,162 @@ +<?php +/** + * Test for the authorize:Authorize authproc filter. + */ + +namespace SimpleSAML\Module\authorize\Auth\Process; + +use PHPUnit\Framework\TestCase; +use SimpleSAML\Module\Authorize\Tests\Utils\TestableAuthorize; +use SimpleSAML\Utils\Attributes; + +class AuthorizeTest extends TestCase +{ + /** + * Helper function to run the filter with a given configuration. + * + * @param array $config The filter configuration. + * @param array $request The request state. + * @return array The state array after processing. + */ + private function processFilter(array $config, array $request) + { + $filter = new TestableAuthorize($config, null); + $filter->process($request); + return $request; + } + + /** + * Test that having a matching attribute grants access + * @dataProvider allowScenarioProvider + * @param array $userAttributes The attributes to test + * @param bool $isAuthorized Should the user be authorized + */ + public function testAllowScenarios($userAttributes, $isAuthorized) + { + $userAttributes = Attributes::normalizeAttributesArray($userAttributes); + $config = [ + 'uid' => [ + '/^.*@example.com$/', + '/^(user1|user2|user3)@example.edu$/', + ], + 'schacUserStatus' => '@urn:mace:terena.org:userStatus:example.org:service:active.*@', + ]; + + $resultState = $this->processFilter($config, ['Attributes' => $userAttributes]); + + $resultAuthorized = isset($resultState['NOT_AUTHORIZED']) ? false : true; + $this->assertEquals($isAuthorized, $resultAuthorized); + } + + public function allowScenarioProvider() + { + return [ + // Should be allowed + [['uid' => 'anything@example.com'], true], + [['uid' => 'user2@example.edu'], true], + [['schacUserStatus' => 'urn:mace:terena.org:userStatus:example.org:service:active.my.service'], true], + [ + [ + 'uid' => ['wrongValue', 'user2@example.edu', 'wrongValue2'], + 'schacUserStatus' => 'incorrectstatus' + ], + true + ], + + //Should be denied + [['wrongAttributes' => ['abc']], false], + [ + [ + 'uid' => [ + 'anything@example.com.wrong', + 'wronguser@example.edu', + 'user2@example.edu.wrong', + 'prefixuser2@example.edu' + ] + ], + false + ], + ]; + } + + /** + * Test that having a matching attribute prevents access + * @dataProvider invertScenarioProvider + * @param array $userAttributes The attributes to test + * @param bool $isAuthorized Should the user be authorized + */ + public function testInvertAllowScenarios($userAttributes, $isAuthorized) + { + $userAttributes = Attributes::normalizeAttributesArray($userAttributes); + $config = [ + 'deny' => true, + 'uid' => [ + '/.*@students.example.edu$/', + '/^(stu1|stu2|stu3)@example.edu$/', + ], + 'schacUserStatus' => '@urn:mace:terena.org:userStatus:example.org:service:blocked.*@', + ]; + + $resultState = $this->processFilter($config, ['Attributes' => $userAttributes]); + + $resultAuthorized = isset($resultState['NOT_AUTHORIZED']) ? false : true; + $this->assertEquals($isAuthorized, $resultAuthorized); + } + + public function invertScenarioProvider() + { + return [ + // Should be allowed + [['noMatch' => 'abc'], true], + [['uid' => 'anything@example.edu'], true], + + //Should be denied + [['uid' => 'anything@students.example.edu'], false], + [['uid' => 'stu3@example.edu'], false], + [['schacUserStatus' => 'urn:mace:terena.org:userStatus:example.org:service:blocked'], false], + // Matching any of the attributes results in denial + [ + [ + 'uid' => ['noMatch', 'abc@students.example.edu', 'noMatch2'], + 'schacUserStatus' => 'noMatch' + ], + false + ], + ]; + } + + /** + * Test that having a matching attribute prevents access + * @dataProvider noregexScenarioProvider + * @param array $userAttributes The attributes to test + * @param bool $isAuthorized Should the user be authorized + */ + public function testDisableRegex($userAttributes, $isAuthorized) + { + $userAttributes = Attributes::normalizeAttributesArray($userAttributes); + $config = [ + 'regex' => false, + 'group' => [ + 'CN=SimpleSAML Students,CN=Users,DC=example,DC=edu', + 'CN=All Teachers,OU=Staff,DC=example,DC=edu', + ], + ]; + + $resultState = $this->processFilter($config, ['Attributes' => $userAttributes]); + + $resultAuthorized = isset($resultState['NOT_AUTHORIZED']) ? false : true; + $this->assertEquals($isAuthorized, $resultAuthorized); + } + + public function noregexScenarioProvider() + { + return [ + // Should be allowed + [['group' => 'CN=SimpleSAML Students,CN=Users,DC=example,DC=edu'], true], + + //Should be denied + [['wrongAttribute' => 'CN=SimpleSAML Students,CN=Users,DC=example,DC=edu'], false], + [['group' => 'CN=wrongCN=SimpleSAML Students,CN=Users,DC=example,DC=edu'], false], + ]; + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/.codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/.codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/.codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..33467ebed8fd85e1f86baae2dc2f5b75cbe7143f --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/.php_cs.dist @@ -0,0 +1,16 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/lib', + __DIR__ . '/tests', + __DIR__ . '/www', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..fec43ab41a5a3b2129c6a4b00802c56325717fe9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/.travis.yml @@ -0,0 +1,31 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then composer require --dev vimeo/psalm:1.1.9; fi + +script: + - bin/check-syntax.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi +# - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/LICENSE b/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..0a041280bd00a9d068f503b8ee7ce35214bd24a1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/bin/check-syntax.sh b/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/bin/check-syntax.sh new file mode 100755 index 0000000000000000000000000000000000000000..c49a8b641998df31bd13c1a272170f26bc602b6f --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/bin/check-syntax.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +PHP='/usr/bin/env php' +RETURN=0 + +# check PHP files +for FILE in `find lib www -name "*.php"`; do + $PHP -l $FILE > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Syntax check failed for ${FILE}" + RETURN=`expr ${RETURN} + 1` + fi +done + +exit $RETURN diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..c2166419679630dcd5136c12a8d48628db63e9f3 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/composer.json @@ -0,0 +1,46 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-authtwitter", + "description": "A module that is able to perform authentication against Twitter", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "twitter"], + "license": "LGPL-3.0-or-later", + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + }, + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\authtwitter\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.5", + "simplesamlphp/composer-module-installer": "~1.0", + "simplesamlphp/simplesamlphp-module-oauth": "^0.9" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "phpunit/phpunit": "~4.8.35" + }, + "support": { + "issues": "https://github.com/tvdijen/simplesamlphp-module-authtwitter/issues", + "source": "https://github.com/tvdijen/simplesamlphp-module-authtwitter" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/lib/Auth/Source/Twitter.php b/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/lib/Auth/Source/Twitter.php index 19ff725800132cef6758cdaf9366a9b1a96f0f35..59fab27f90e00ed787b52d6949c12c671f2a3001 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/lib/Auth/Source/Twitter.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/lib/Auth/Source/Twitter.php @@ -2,7 +2,16 @@ namespace SimpleSAML\Module\authtwitter\Auth\Source; -require_once(dirname(dirname(dirname(dirname(dirname(__FILE__))))).'/oauth/libextinc/OAuth.php'); +$default = dirname(dirname(dirname(dirname(dirname(__FILE__))))).'/oauth/libextinc/OAuth.php'; +$travis = dirname(dirname(dirname(dirname(__FILE__)))).'/vendor/simplesamlphp/simplesamlphp/modules/oauth/libextinc/OAuth.php'; + +if (file_exists($default)) { + require_once($default); +} else if (file_exists($travis)) { + require_once($travis); +} else { + // Probably codecov, but we can't raise an exception here or Travis will fail +} /** * Authenticate using Twitter. @@ -72,6 +81,7 @@ public function __construct($info, $config) * Log-in using Twitter platform * * @param array &$state Information about the current authentication. + * @return void */ public function authenticate(&$state) { @@ -103,6 +113,11 @@ public function authenticate(&$state) $consumer->getAuthorizeRequest($url, $requestToken); } + + /** + * @param array &$state + * @return void + */ public function finalStep(&$state) { $requestToken = $state['authtwitter:authdata:requestToken']; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0985fdd804b18d8d9179ecd956d63582c189e95 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/phpunit.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..c7b2d2fa72e439aa5bb0fe61904a7cc40fdc5f19 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/psalm.xml @@ -0,0 +1,31 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp Module for Twitter authentication" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="lib" /> + <directory name="www" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..513443b00829377a960ed8fcac3f145a50858a45 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot.'/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot.'/vendor/simplesamlphp/simplesamlphp/modules/authtwitter'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/www/linkback.php b/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/www/linkback.php index cbeed68a7be8028ae0e217cadb15d199948b56af..cc4b274c7769b732c41256cf5aa4b38215a947ef 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/www/linkback.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/authtwitter/www/linkback.php @@ -13,13 +13,14 @@ ); // Find authentication source -if (!array_key_exists(\SimpleSAML\Module\authtwitter\Auth\Source\Twitter::AUTHID, $state)) { +if (is_null($state) || !array_key_exists(\SimpleSAML\Module\authtwitter\Auth\Source\Twitter::AUTHID, $state)) { throw new \SimpleSAML\Error\BadRequest( 'No data in state for '.\SimpleSAML\Module\authtwitter\Auth\Source\Twitter::AUTHID ); } $sourceId = $state[\SimpleSAML\Module\authtwitter\Auth\Source\Twitter::AUTHID]; +/** @var \SimpleSAML\Module\authtwitter\Auth\Source\Twitter|null $source */ $source = \SimpleSAML\Auth\Source::getById($sourceId); if ($source === null) { throw new \SimpleSAML\Error\BadRequest( diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/.codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/.codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/.codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..33467ebed8fd85e1f86baae2dc2f5b75cbe7143f --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/.php_cs.dist @@ -0,0 +1,16 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/lib', + __DIR__ . '/tests', + __DIR__ . '/www', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..fec43ab41a5a3b2129c6a4b00802c56325717fe9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/.travis.yml @@ -0,0 +1,31 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then composer require --dev vimeo/psalm:1.1.9; fi + +script: + - bin/check-syntax.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi +# - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/LICENSE b/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..0a041280bd00a9d068f503b8ee7ce35214bd24a1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/bin/check-syntax.sh b/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/bin/check-syntax.sh new file mode 100755 index 0000000000000000000000000000000000000000..96dfbb9f5565e3550d3609f8ca9a44814d157af5 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/bin/check-syntax.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +PHP='/usr/bin/env php' +RETURN=0 + +# check PHP files +for FILE in `find lib tests www -name "*.php"`; do + $PHP -l $FILE > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Syntax check failed for ${FILE}" + RETURN=`expr ${RETURN} + 1` + fi +done + +exit $RETURN diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..484f420145b5d09b18dac359a6f4db22db87a777 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/composer.json @@ -0,0 +1,47 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-authwindowslive", + "description": "A module that is able to perform authentication against Windows Live", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "windowslive", "windows", "live"], + "license": "LGPL-3.0-or-later", + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + }, + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\authwindowslive\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "Tests\\SimpleSAML\\modules\\authwindowslive\\TestFiles\\": "tests/files", + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "phpunit/phpunit": "~5.7" + }, + "support": { + "issues": "https://github.com/tvdijen/simplesamlphp-module-authwindowslive/issues", + "source": "https://github.com/tvdijen/simplesamlphp-module-authwindowslive" + } +} + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/lib/Auth/Source/LiveID.php b/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/lib/Auth/Source/LiveID.php index 3f4dc5446d3cd64b7020d66f2fd4e821736a2d58..5a1ef32018b3a21f4a317a83d460505df85c66ad 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/lib/Auth/Source/LiveID.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/lib/Auth/Source/LiveID.php @@ -21,9 +21,13 @@ class LiveID extends \SimpleSAML\Auth\Source */ const AUTHID = 'authwindowslive:AuthId'; + /** @var string */ private $key; + + /** @var string */ private $secret; + /** * Constructor for this authentication source. * @@ -57,6 +61,7 @@ public function __construct($info, $config) * Log-in using LiveID platform * * @param array &$state Information about the current authentication. + * @return void */ public function authenticate(&$state) { @@ -85,8 +90,8 @@ public function authenticate(&$state) } /** - * @param $state - * + * @param array &$state + * @return void * @throws \Exception */ public function finalStep(&$state) @@ -113,7 +118,8 @@ public function finalStep(&$state) ], ]; - $result = \SimpleSAML\Utils\HTTP::fetch('https://login.microsoftonline.com/common/oauth2/v2.0/token', $context); + /** @var string $result */ + $result = \SimpleSAML\Utils\HTTP::fetch('https://login.microsoftonline.com/common/oauth2/v2.0/token', $context, false); $response = json_decode($result, true); @@ -134,6 +140,8 @@ public function finalStep(&$state) 'http' => ['header' => "Accept: application/json\r\nAuthorization: Bearer ". $response['access_token']."\r\n"] ]; + + /** @var string $data */ $data = \SimpleSAML\Utils\HTTP::fetch('https://graph.microsoft.com/v1.0/me', $opts); $userdata = json_decode($data, true); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0985fdd804b18d8d9179ecd956d63582c189e95 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/phpunit.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..0d86dfe3c1ed28e249d2ee86ed48cfd18b8e982d --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/psalm.xml @@ -0,0 +1,31 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp Authentication Module for Windows Live" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="lib" /> + <directory name="www" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..60d182a767e9a61b714ccb93cb6a19312cc80174 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot.'/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot.'/vendor/simplesamlphp/simplesamlphp/modules/simplesamlphp-module-authwindowslive'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/www/linkback.php b/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/www/linkback.php index 758bdd215f6b490ef11b8b554e1cf2914929595b..a87c7b09780fe85a16150bdc9855d1103d4b6c08 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/www/linkback.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/authwindowslive/www/linkback.php @@ -26,7 +26,7 @@ // newer API, but the parameter name has changed to error. It doesn't hurt // to preserve support for this, so this is left in as a placeholder. // redirect them to their original page so they can choose another auth mechanism - if ($_REQUEST['error'] === 'user_denied') { + if (($_REQUEST['error'] === 'user_denied') && ($state !== null)) { $e = new \SimpleSAML\Error\UserAborted(); \SimpleSAML\Auth\State::throwException($state, $e); } @@ -35,10 +35,12 @@ throw new \Exception('Authentication failed: ['.$_REQUEST['error'].'] '.$_REQUEST['error_description']); } -// find authentication source assert(array_key_exists(\SimpleSAML\Module\authwindowslive\Auth\Source\LiveID::AUTHID, $state)); + +// find authentication source $sourceId = $state[\SimpleSAML\Module\authwindowslive\Auth\Source\LiveID::AUTHID]; +/** @var \SimpleSAML\Module\authwindowslive\Auth\Source\LiveID|null $source */ $source = \SimpleSAML\Auth\Source::getById($sourceId); if ($source === null) { throw new \Exception('Could not find authentication source with id '.$sourceId); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cas/.codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/cas/.codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/cas/.codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cas/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/cas/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..e7d314696c7e461b645c3d603f3a5d3034082ba5 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/cas/.php_cs.dist @@ -0,0 +1,15 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/lib', + __DIR__ . '/tests', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cas/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/cas/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..a090b629439d90419e41ea41034758c0fc8695c1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/cas/.travis.yml @@ -0,0 +1,31 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then composer require --dev vimeo/psalm:1.1.9; fi + +script: + - bin/check-syntax.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi +# - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cas/bin/check-syntax.sh b/vendor/simplesamlphp/simplesamlphp/modules/cas/bin/check-syntax.sh new file mode 100755 index 0000000000000000000000000000000000000000..db6dc4b0140cb09231c6bf2e756c6a668e8e7cbe --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/cas/bin/check-syntax.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +PHP='/usr/bin/env php' +RETURN=0 + +# check PHP files +for FILE in `find lib tests -name "*.php"`; do + $PHP -l $FILE > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Syntax check failed for ${FILE}" + RETURN=`expr ${RETURN} + 1` + fi +done + +exit $RETURN diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cas/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/cas/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..23e4b0943c6cd1085bbfc6e8fe1b1cd02861fdd5 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/cas/composer.json @@ -0,0 +1,43 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-cas", + "description": "A module that provides CAS authentication", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "cas"], + "license": "LGPL-3.0-or-later", + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\cas\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "simplesamlphp/simplesamlphp-module-ldap": "^0.9", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "phpunit/phpunit": "~5.7" + }, + "support": { + "issues": "https://github.com/tvdijen/simplesamlphp-module-cas/issues", + "source": "https://github.com/tvdijen/simplesamlphp-module-cas" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cas/docs/cas.md b/vendor/simplesamlphp/simplesamlphp/modules/cas/docs/cas.md index 5bfd50cadc72aa500a46ddec9ae173d68f0326d6..c4c6ba72d9350f6d3923c34ee3f628c1c6203b3b 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/cas/docs/cas.md +++ b/vendor/simplesamlphp/simplesamlphp/modules/cas/docs/cas.md @@ -7,10 +7,6 @@ the only diffrence is this is authentication module and not a script. Setting up the CAS authentication module ---------------------------------- -The first thing you need to do is to enable the cas module: - - touch modules/cas/enable - Adding a authentication source example authsource.php diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cas/lib/Auth/Source/CAS.php b/vendor/simplesamlphp/simplesamlphp/modules/cas/lib/Auth/Source/CAS.php index 08f153c130f4a0ae2b545ba3e950f369f06f9d64..0b0d23460ff6f4ff1b70f0791cc26ef142c24d6b 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/cas/lib/Auth/Source/CAS.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/cas/lib/Auth/Source/CAS.php @@ -2,6 +2,8 @@ namespace SimpleSAML\Module\cas\Auth\Source; +use Webmozart\Assert\Assert; + /** * Authenticate using CAS. * @@ -29,7 +31,7 @@ class CAS extends \SimpleSAML\Auth\Source private $ldapConfig; /** - * @var cas configuration + * @var array cas configuration */ private $casConfig; @@ -52,8 +54,8 @@ class CAS extends \SimpleSAML\Auth\Source */ public function __construct($info, $config) { - assert(is_array($info)); - assert(is_array($config)); + Assert::isArray($info); + Assert::isArray($config); // Call the parent constructor first, as required by the interface parent::__construct($info, $config); @@ -100,6 +102,8 @@ private function casValidate($ticket, $service) 'service' => $service, ]); $result = \SimpleSAML\Utils\HTTP::fetch($url); + + /** @var string $result */ $res = preg_split("/\r?\n/", $result); if (strcmp($res[0], "yes") == 0) { @@ -129,6 +133,7 @@ private function casServiceValidate($ticket, $service) ); $result = \SimpleSAML\Utils\HTTP::fetch($url); + /** @var string $result */ $dom = \SAML2\DOMDocumentFactory::fromString($result); $xPath = new \DOMXpath($dom); $xPath->registerNamespace("cas", 'http://www.yale.edu/tp/cas'); @@ -147,7 +152,12 @@ private function casServiceValidate($ticket, $service) } } } - $casusername = $success->item(0)->textContent; + + $item = $success->item(0); + if (is_null($item)) { + throw new \Exception("Error parsing serviceResponse."); + } + $casusername = $item->textContent; return [$casusername, $attributes]; } @@ -178,6 +188,7 @@ protected function casValidation($ticket, $service) /** * Called by linkback, to finish validate/ finish logging in. * @param array $state + * @return void */ public function finalStep(&$state) { @@ -192,7 +203,7 @@ public function finalStep(&$state) 'Authentication source '.var_export($this->authId, true) ); if ($this->ldapConfig['servers']) { - $ldap = new \SimpleSAML\Auth\LDAP( + $ldap = new \SimpleSAML\Module\ldap\Auth\Ldap( $config->getString('servers'), $config->getBoolean('enable_tls', false), $config->getBoolean('debug', false), @@ -201,6 +212,9 @@ public function finalStep(&$state) $config->getBoolean('referrals', true) ); $ldapattributes = $ldap->validate($this->ldapConfig, $username); + if ($ldapattributes === false) { + throw new \Exception("Failed to authenticate against LDAP-server."); + } } $attributes = array_merge_recursive($casattributes, $ldapattributes); $state['Attributes'] = $attributes; @@ -213,10 +227,11 @@ public function finalStep(&$state) * Log-in using cas * * @param array &$state Information about the current authentication. + * @return void */ public function authenticate(&$state) { - assert(is_array($state)); + Assert::isArray($state); // We are going to need the authId in order to retrieve this authentication source later $state[self::AUTHID] = $this->authId; @@ -241,10 +256,11 @@ public function authenticate(&$state) * showing the user a page, or redirecting, this function should return. * * @param array &$state Information about the current logout operation. + * @return void */ public function logout(&$state) { - assert(is_array($state)); + Assert::isArray($state); $logoutUrl = $this->casConfig['logout']; \SimpleSAML\Auth\State::deleteState($state); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cas/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/cas/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0985fdd804b18d8d9179ecd956d63582c189e95 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/cas/phpunit.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cas/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/cas/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..4340e105df8bfe90a623d444c4b36cd0531cca21 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/cas/psalm.xml @@ -0,0 +1,30 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp CAS module" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="lib" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cas/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/cas/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..f0c4e8c00af08ab3c490d5520fe4f14b347ba75c --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/cas/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot.'/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot.'/vendor/simplesamlphp/simplesamlphp/modules/cas'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cas/www/linkback.php b/vendor/simplesamlphp/simplesamlphp/modules/cas/www/linkback.php index 366583c8a7e572099e66cfaad716faaa084f3788..15bae662e70d7d2a5cb08a98bf6bbb37eeeac8f2 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/cas/www/linkback.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/cas/www/linkback.php @@ -1,5 +1,9 @@ <?php +use Webmozart\Assert\Assert; + +use \SimpleSAML\Module\cas\Auth\Source\CAS; + /** * Handle linkback() response from CAS. */ @@ -7,7 +11,7 @@ if (!isset($_GET['stateID'])) { throw new \SimpleSAML\Error\BadRequest('Missing stateID parameter.'); } -$state = \SimpleSAML\Auth\State::loadState($_GET['stateID'], \SimpleSAML\Module\cas\Auth\Source\CAS::STAGE_INIT); +$state = \SimpleSAML\Auth\State::loadState($_GET['stateID'], CAS::STAGE_INIT); if (!isset($_GET['ticket'])) { throw new \SimpleSAML\Error\BadRequest('Missing ticket parameter.'); @@ -15,9 +19,10 @@ $state['cas:ticket'] = (string) $_GET['ticket']; // Find authentication source -assert(array_key_exists(\SimpleSAML\Module\cas\Auth\Source\CAS::AUTHID, $state)); -$sourceId = $state[\SimpleSAML\Module\cas\Auth\Source\CAS::AUTHID]; +Assert::keyExists($state, CAS::AUTHID); +$sourceId = $state[CAS::AUTHID]; +/** @var \SimpleSAML\Module\cas\Auth\Source\CAS|null $source */ $source = \SimpleSAML\Auth\Source::getById($sourceId); if ($source === null) { throw new \Exception('Could not find authentication source with id '.$sourceId); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cdc/.codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/cdc/.codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/cdc/.codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cdc/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/cdc/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..4d93b5f789308a1bc97c91c497d09294b71bb605 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/cdc/.travis.yml @@ -0,0 +1,31 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then composer require --dev vimeo/psalm:1.1.9; fi + +script: + - bin/check-syntax.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi + # - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cdc/bin/check-syntax.sh b/vendor/simplesamlphp/simplesamlphp/modules/cdc/bin/check-syntax.sh new file mode 100755 index 0000000000000000000000000000000000000000..f1c63bd69cd9847c6786928ca9732ecb614c257c --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/cdc/bin/check-syntax.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +PHP='/usr/bin/env php' +RETURN=0 + +# check PHP files +for FILE in `find config-templates lib tests www -name "*.php"`; do + $PHP -l $FILE > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Syntax check failed for ${FILE}" + RETURN=`expr ${RETURN} + 1` + fi +done + +exit $RETURN diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cdc/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/cdc/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..0a373bebd08ce10eb93ca1a45c12af65839e3cb3 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/cdc/composer.json @@ -0,0 +1,45 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-cdc", + "description": "A SimpleSAMLphp module that allows integration with CDC", + "type": "simplesamlphp-module", + "keywords": [ "SimpleSAMLphp", "CDC"], + "homepage": "https://simplesamlphp.org/", + "license": "LGPL-3.0-or-later", + "authors": [ + { + "name": "Olav Morken", + "email": "olav.morken@uninett.no" + }, + { + "name": "Jaime Perez Crespo", + "email": "jaime.perez@uninett.no" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\cdc\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "simplesamlphp/composer-module-installer": ">=1.1.6" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "phpunit/phpunit": "~5.7" + }, + "support": { + "issues": "https://github.com/simplesamlphp/simplesamlphp-module-cdc/issues", + "source": "https://github.com/simplesamlphp/simplesamlphp-module-cdc/" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cdc/lib/Auth/Process/CDC.php b/vendor/simplesamlphp/simplesamlphp/modules/cdc/lib/Auth/Process/CDC.php index bf2a669d67ca5b60275cb3c4f26ea71deab7fd29..425f5c451bbef3fb6d4d567ff9920879d6e21277 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/cdc/lib/Auth/Process/CDC.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/cdc/lib/Auth/Process/CDC.php @@ -50,6 +50,7 @@ public function __construct($config, $reserved) * Redirect to page setting CDC. * * @param array &$state The request state. + * @return void */ public function process(&$state) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cdc/lib/Client.php b/vendor/simplesamlphp/simplesamlphp/modules/cdc/lib/Client.php index 609aef63f403f78256597fc3a2e4f6a4d075cfe9..05acfa3b988dc8799c2d7d991a92d465b486c004 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/cdc/lib/Client.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/cdc/lib/Client.php @@ -21,7 +21,7 @@ class Client /** * The CDC server we send requests to. * - * @var Server|NULL + * @var Server */ private $server; @@ -43,7 +43,7 @@ public function __construct($domain) /** * Receive a CDC response. * - * @return array|NULL The response, or NULL if no response is received. + * @return array|null The response, or NULL if no response is received. */ public function getResponse() { @@ -57,6 +57,7 @@ public function getResponse() * @param string $returnTo The URL we should return to afterwards. * @param string $op The operation we are performing. * @param array $params Additional parameters. + * @return void */ public function sendRequest($returnTo, $op, array $params = []) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cdc/lib/Server.php b/vendor/simplesamlphp/simplesamlphp/modules/cdc/lib/Server.php index affcf668ac241429c7eb933f87bfb48605dac0f1..839d333f9031f783ec6081421f08a540f64d961d 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/cdc/lib/Server.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/cdc/lib/Server.php @@ -48,6 +48,7 @@ class Server * Initialize a CDC server. * * @param string $domain The domain we are a server for. + * @throws \SimpleSAML\Error\Exception */ public function __construct($domain) { @@ -77,6 +78,7 @@ public function __construct($domain) * Send a request to this CDC server. * * @param array $request The CDC request. + * @return void */ public function sendRequest(array $request) { @@ -91,7 +93,8 @@ public function sendRequest(array $request) /** * Parse and validate response received from a CDC server. * - * @return array|NULL The response, or NULL if no response is received. + * @return array|null The response, or NULL if no response is received. + * @throws \SimpleSAML\Error\Exception */ public function getResponse() { @@ -112,6 +115,8 @@ public function getResponse() /** * Parse and process a CDC request. + * @throws \SimpleSAML\Error\BadRequest + * @return void */ public static function processRequest() { @@ -132,6 +137,8 @@ public static function processRequest() * Handle a parsed CDC requst. * * @param array $request + * @throws \SimpleSAML\Error\Exception + * @return void */ private function handleRequest(array $request) { @@ -181,6 +188,7 @@ private function handleRequest(array $request) * Handle an append request. * * @param array $request The request. + * @throws \SimpleSAML\Error\BadRequest * @return string The response. */ private function handleAppend(array $request) @@ -245,7 +253,8 @@ private function handleRead(array $request) * Helper function for parsing and validating a CDC message. * * @param string $parameter The name of the query parameter. - * @return array|NULL The response, or NULL if no response is received. + * @throws \SimpleSAML\Error\BadRequest + * @return array|null The response, or NULL if no response is received. */ private static function get($parameter) { @@ -292,6 +301,8 @@ private static function get($parameter) * Will throw an exception if the message is invalid. * * @param string $parameter The name of the query parameter. + * @throws \SimpleSAML\Error\BadRequest + * @return void */ private function validate($parameter) { @@ -318,6 +329,7 @@ private function validate($parameter) * @param string $to The URL the message should be delivered to. * @param string $parameter The query parameter the message should be sent in. * @param array $message The CDC message. + * @return void */ private function send($to, $parameter, array $message) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cdc/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/cdc/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..16ca579962da55db8cfa9c3b3a669b04107504c9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/cdc/phpunit.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cdc/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/cdc/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..7ca2f8c71b737af072e417624d819e51f5428f7d --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/cdc/psalm.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp Monitor" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="config-templates" /> + <directory name="lib" /> + <directory name="www" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cdc/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/cdc/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..ccfe7de727880b8d224d01c3b46da2a5ef8b8c4c --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/cdc/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot.'/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot.'/vendor/simplesamlphp/simplesamlphp/modules/cdc'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cdc/www/resume.php b/vendor/simplesamlphp/simplesamlphp/modules/cdc/www/resume.php index ebe6b1cc9f246b94dca7ab01d3b208f8f15bd281..078964248e88a7efaa1bf1daee1037c20ad9abca 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/cdc/www/resume.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/cdc/www/resume.php @@ -15,6 +15,10 @@ if (!isset($response['id'])) { throw new \SimpleSAML\Error\BadRequest('CDCResponse without id.'); } -$state = \SimpleSAML\Auth\State::loadState($response['id'], 'cdc:resume'); -\SimpleSAML\Auth\ProcessingChain::resumeProcessing($state); +$state = \SimpleSAML\Auth\State::loadState($response['id'], 'cdc:resume'); +if (!is_null($state)) { + \SimpleSAML\Auth\ProcessingChain::resumeProcessing($state); +} else { + throw new \SimpleSAML\Error\NoState(); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/consent/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..33467ebed8fd85e1f86baae2dc2f5b75cbe7143f --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/.php_cs.dist @@ -0,0 +1,16 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/lib', + __DIR__ . '/tests', + __DIR__ . '/www', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/consent/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..fec43ab41a5a3b2129c6a4b00802c56325717fe9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/.travis.yml @@ -0,0 +1,31 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then composer require --dev vimeo/psalm:1.1.9; fi + +script: + - bin/check-syntax.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi +# - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/LICENSE b/vendor/simplesamlphp/simplesamlphp/modules/consent/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..a345e48d049f9c6756e9364e908b3f26e36c9df1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/LICENSE @@ -0,0 +1,459 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/bin/check-syntax.sh b/vendor/simplesamlphp/simplesamlphp/modules/consent/bin/check-syntax.sh new file mode 100755 index 0000000000000000000000000000000000000000..db41fee32bca42eb5e9f219194c91e57aee8f4dd --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/bin/check-syntax.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +PHP='/usr/bin/env php' +RETURN=0 + +# check PHP files +for FILE in `find lib www templates -name "*.php"`; do + $PHP -l $FILE > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Syntax check failed for ${FILE}" + RETURN=`expr ${RETURN} + 1` + fi +done + +exit $RETURN diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/consent/codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/consent/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..bde251e4bd90b6e219fd5c5c54f6ab8642a5ec00 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/composer.json @@ -0,0 +1,42 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-consent", + "description": "A module that will ask for user consent before releasing attributes", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "consent"], + "license": "LGPL-2.1-or-later", + "authors": [ + { + "name": "Olav Morken", + "email": "lavmrk@gmail.com" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\consent\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "phpunit/phpunit": "~5.7", + "webmozart/assert": "<1.7" + }, + "support": { + "issues": "https://github.com/tvdijen/simplesamlphp-module-consent/issues", + "source": "https://github.com/tvdijen/simplesamlphp-module-consent" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/default-disable b/vendor/simplesamlphp/simplesamlphp/modules/consent/default-disable index fa0bd82e2df7bd79d57593d35bc53c1f9d3ef71f..3e99dbb6b9da14062ef735231855f54dec4c5c17 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/consent/default-disable +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/default-disable @@ -1,3 +1,3 @@ This file indicates that the default state of this module -is disabled. To enable, create a file named enable in the +is disbled. To enable, create a file named enable in the same directory as this file. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/dictionaries/consent.translation.json b/vendor/simplesamlphp/simplesamlphp/modules/consent/dictionaries/consent.translation.json index 9901beb5a221777eeae38353ee41d20cab764ef2..8e7cb1bfa04c6d2ad76fb13cb72b27e47d36019a 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/consent/dictionaries/consent.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/dictionaries/consent.translation.json @@ -32,10 +32,11 @@ "sr": "Da, nastavi", "ro": "Da, continu\u0103", "eu": "Bai, jarraitu", - "af": "Ja, voortgaan", + "af": "Ja, gaan voort", "el": "\u0391\u03c0\u03bf\u03b4\u03bf\u03c7\u03ae", "zu": "Yebo, qhubeka", - "xh": "Ewe, qhubeka" + "xh": "Ewe, qhubeka", + "st": "E, tswela pele" }, "no": { "no": "Nei, avbryt", @@ -73,7 +74,8 @@ "af": "Nee, kanselleer", "el": "\u0391\u03c0\u03cc\u03c1\u03c1\u03b9\u03c8\u03b7", "xh": "Hayi, rhoxisa", - "zu": "Cha, khansela" + "zu": "Cha, khansela", + "st": "Tjhe, hlakola" }, "remember": { "no": "Godta ogs\u00e5 for fremtiden", @@ -111,7 +113,8 @@ "af": "Onthou", "el": "\u039d\u03b1 \u03b8\u03c5\u03bc\u03ac\u03c3\u03b1\u03b9 \u03c4\u03b7\u03bd \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03bc\u03bf\u03c5", "zu": "Khumbula", - "xh": "Khumbula" + "xh": "Khumbula", + "st": "Hopola" }, "consent_accept": { "no": "For \u00e5 fullf\u00f8re innloggingen m\u00e5 du godta at opplysningene nedenfor sendes til SPNAME.", @@ -139,7 +142,7 @@ "et": "SPNAME n\u00f5uab allpool oleva info edastamist.", "he": "SPNAME \u05d3\u05d5\u05e8\u05e9 \u05e9\u05de\u05d9\u05d3\u05e2 \u05d4\u05e0\"\u05dc \u05d9\u05d5\u05e2\u05d1\u05e8", "ru": "SPNAME \u0442\u0440\u0435\u0431\u0443\u0435\u0442, \u0447\u0442\u043e\u0431\u044b \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u043d\u0438\u0436\u0435, \u0431\u044b\u043b\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u0430.", - "zh": "SPNAME\u8bf7\u6c42\u7684\u4fe1\u606f\u5df2\u7ecf\u88ab\u4f20\u8f93\u51fa\u53bb", + "zh": "SPNAME\u8bf7\u6c42\u4ee5\u4e0b\u4fe1\u606f\u88ab\u4f20\u9001\u3002", "ar": "\u064a\u062d\u062a\u0627\u062c SPNAME \u062a\u062d\u0648\u064a\u0644 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0623\u062f\u0646\u0627\u0647 ", "lv": "SPNAME prasa p\u0101rraid\u012bt pa t\u012bklu zem\u0101k eso\u0161o inform\u0101ciju.", "id": "SPNAME mensyaratkan informasi dibawah ini harus ditransder.", @@ -149,7 +152,8 @@ "af": "SPNAME vereis dat die inligting hieronder oorgedra word.", "el": "\u0395\u03ac\u03bd \u03c0\u03c1\u03bf\u03c7\u03c9\u03c1\u03ae\u03c3\u03b5\u03c4\u03b5\u002c \u03c4\u03b1 \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03b1 \u03c0\u03bf\u03c5 \u03b1\u03ba\u03bf\u03bb\u03bf\u03c5\u03b8\u03bf\u03cd\u03bd \u03b8\u03b1 \u03b4\u03b9\u03b1\u03bc\u03bf\u03b9\u03c1\u03b1\u03c3\u03c4\u03bf\u03cd\u03bd \u03bc\u03b5 \u03c4\u03b7\u03bd \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1 <b>SPNAME<\/b>. \u03a3\u03c5\u03bc\u03c6\u03c9\u03bd\u03b5\u03af\u03c4\u03b5 \u03bc\u03b5 \u03c4\u03b7\u03bd \u03b1\u03c0\u03b5\u03bb\u03b5\u03c5\u03b8\u03ad\u03c1\u03c9\u03c3\u03b7 \u03c4\u03c9\u03bd \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03c9\u03bd \u03b1\u03c5\u03c4\u03ce\u03bd \u03c3\u03c4\u03b7\u03bd \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1 \u03ba\u03ac\u03b8\u03b5 \u03c6\u03bf\u03c1\u03ac \u03c0\u03bf\u03c5 \u03b5\u03c0\u03b9\u03b8\u03c5\u03bc\u03b5\u03af\u03c4\u03b5 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03ae\u003b", "xh": "I-SPNAME idinga ukuba inkcazelo engezantsi idluliselwe.", - "zu": "I-SPNAME idinga ukuthi ulwazi olungezansi ludluliswe." + "zu": "I-SPNAME idinga ukuthi ulwazi olungezansi ludluliswe.", + "st": "SPNAME e hloka hore tlhahisoleseding e ka tlase mona e fetiswe." }, "login": { "no": "innlogging", @@ -187,7 +191,8 @@ "af": "meld aan", "el": "\u0395\u03af\u03c3\u03bf\u03b4\u03bf\u03c2", "xh": "ngena", - "zu": "ngena" + "zu": "ngena", + "st": "keno" }, "service_providers_for": { "no": "Tjenesteleverand\u00f8r for", @@ -225,7 +230,8 @@ "af": "Diens Verskaffers vir", "el": "\u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03b9 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd \u03b3\u03b9\u03b1", "zu": "Abahlinzeki Besevisi bokuthi", - "xh": "Umboneleli enkonzo we-" + "xh": "Umboneleli enkonzo we-", + "st": "Bafani ba Tshebeletso bakeng sa" }, "service_provider_header": { "no": "Tjenesteleverand\u00f8r", @@ -263,7 +269,8 @@ "af": "Diens Verskaffer", "el": "\u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1\u03c2", "zu": "Umhlinzeki Wesevisi", - "xh": "Umboneleli Wenkonzo" + "xh": "Umboneleli Wenkonzo", + "st": "Mofani wa Tshebeletso" }, "status_header": { "no": "Samtykke-status", @@ -301,7 +308,8 @@ "af": "Toestemming status", "el": "\u039a\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 \u03c3\u03c5\u03b3\u03ba\u03b1\u03c4\u03ac\u03b8\u03b5\u03c3\u03b7\u03c2", "zu": "Isimo semvume", - "xh": "Ubume bemvume" + "xh": "Ubume bemvume", + "st": "Boemo ba tumelo" }, "show_hide_attributes": { "no": "Vis\/skjul opplysninger", @@ -339,7 +347,8 @@ "af": "vertoon\/verberg eienskappe", "el": "\u03b5\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7\/\u03b1\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b7 \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03c9\u03bd", "xh": "bonisa/fihla iimpawu", - "zu": "bonisa/fihla izici" + "zu": "bonisa/fihla izici", + "st": "bontsha/pata makgabane" }, "consent_privacypolicy": { "no": "Personvern for tjenesten", @@ -376,7 +385,8 @@ "af": "Privaatheidsbeleid vir die diens", "el": "\u03a0\u03bf\u03bb\u03b9\u03c4\u03b9\u03ba\u03ae \u03c0\u03c1\u03bf\u03c3\u03c4\u03b1\u03c3\u03af\u03b1\u03c2 \u03b1\u03c0\u03bf\u03c1\u03c1\u03ae\u03c4\u03bf\u03c5 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1\u03c2", "zu": "Inqubomgomo yobumfihlo yesevisi", - "xh": "Ipolisi yokugcinwa kwemfihlelo yenkonzo" + "xh": "Ipolisi yokugcinwa kwemfihlelo yenkonzo", + "st": "Leano la sephiri bakeng sa tshebeletso" }, "noconsent_title": { "no": "Ikke akseptert overf\u00f8ring av informasjon", @@ -413,7 +423,8 @@ "af": "Geen toestemming is gegee nie", "el": "\u039c\u03b7 \u03b1\u03c0\u03bf\u03b4\u03bf\u03c7\u03ae \u03c3\u03c5\u03b3\u03ba\u03b1\u03c4\u03ac\u03b8\u03b5\u03c3\u03b7\u03c2", "zu": "Ayikho imvume enikeziwe", - "xh": "Akukho mvume inikelweyo" + "xh": "Akukho mvume inikelweyo", + "st": "Ha ho tumello e fanweng" }, "noconsent_text": { "no": "Du har ikke akseptert \u00e5 overlevere opplysninger til SPNAME.", @@ -440,7 +451,7 @@ "et": "Sa ei andnud n\u00f5usolekut sinu atribuutide teenusepakkujale edastamiseks.", "he": "\u05dc\u05d0 \u05e0\u05ea\u05e0\u05ea \u05d4\u05e1\u05db\u05de\u05d4 \u05dc\u05d4\u05e2\u05d1\u05e8\u05ea \u05d4\u05de\u05d0\u05e4\u05d9\u05d9\u05e0\u05d9\u05dd \u05dc\u05e1\u05e4\u05e7 \u05d4\u05e9\u05d9\u05e8\u05d5\u05ea.", "ru": "\u0412\u044b \u043d\u0435 \u0434\u0430\u043b\u0438 \u0441\u043e\u0433\u043b\u0430\u0441\u0438\u044f \u043d\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0432\u0430\u0448\u0438\u0445 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u043a \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0443 \u0443\u0441\u043b\u0443\u0433.", - "zh": "\u4f60\u6ca1\u6709\u540c\u610f\u4f20\u8f93\u4f60\u7684\u76f8\u5173\u5c5e\u6027\u7ed9\u670d\u52a1\u63d0\u4f9b\u8005", + "zh": "\u4f60\u6ca1\u6709\u540c\u610f\u4f20\u8f93\u4f60\u7684\u76f8\u5173\u5c5e\u6027\u7ed9SPNAME", "ar": "\u0644\u0645 \u062a\u0648\u0627\u0641\u0642 \u0639\u0644\u064a \u062a\u062d\u0648\u064a\u0644 \u0633\u0645\u0627\u062a\u0643 \u0644\u0645\u0642\u062f\u0645 \u0627\u0644\u062e\u062f\u0645\u0629", "lv": "J\u016bs neesat devis at\u013cauju p\u0101rraid\u012bt inform\u0101ciju servisa pieg\u0101d\u0101t\u0101jam.", "id": "Anda tidak memberikan persetujuan untuk mentransfer atribut-atribute Anda ke service provider.", @@ -450,7 +461,8 @@ "af": "Jy het nie toestemming gegee vir die oordrag van jou eienskappe na SPNAME nie.", "el": "\u0394\u03b5\u03bd \u03ad\u03c7\u03b5\u03c4\u03b5 \u03b4\u03ce\u03c3\u03b5\u03b9 \u03c3\u03c5\u03b3\u03ba\u03b1\u03c4\u03ac\u03b8\u03b5\u03c3\u03b7 \u03b3\u03b9\u03b1 \u03c4\u03bf\u03bd \u03b4\u03b9\u03b1\u03bc\u03bf\u03b9\u03c1\u03b1\u03c3\u03bc\u03cc \u03c0\u03c1\u03bf\u03c3\u03c9\u03c0\u03b9\u03ba\u03ce\u03bd \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03bc\u03b5 \u03c4\u03b7\u03bd \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1 SPNAME", "xh": "Awuyinikelanga imvume yokudluliselwa iimpawu zakho kwi-SPNAME.", - "zu": "Awuzange uyinikeze imvume yokudlulisa izici zakho ku-SPNAME." + "zu": "Awuzange uyinikeze imvume yokudlulisa izici zakho ku-SPNAME.", + "st": "Ha o a fana ka tumello bakeng sa ho fetisetsa makgabane a hao ho SPNAME." }, "noconsent_return": { "no": "G\u00e5 tilbake til samtykkesiden", @@ -487,7 +499,8 @@ "af": "Keer terug na die toestemmingsbladsy", "el": "\u0395\u03c0\u03b9\u03c3\u03c4\u03c1\u03bf\u03c6\u03ae \u03c3\u03c4\u03b7 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1 \u03b4\u03ae\u03bb\u03c9\u03c3\u03b7\u03c2 \u03c3\u03c5\u03b3\u03ba\u03b1\u03c4\u03ac\u03b8\u03b5\u03c3\u03b7\u03c2", "xh": "Buyela kwikhasi lemvume", - "zu": "Buyela ekhasini lemvume" + "zu": "Buyela ekhasini lemvume", + "st": "Kgutlela leqepheng la tumello" }, "consent_header": { "no": "Samtykke om overf\u00f8ring av personinformasjon", @@ -513,7 +526,7 @@ "et": "N\u00f5usolek isikuandmete edastamiseks", "he": "\u05d4\u05e1\u05db\u05de\u05d4 \u05dc\u05d4\u05e2\u05d1\u05e8\u05ea \u05de\u05d9\u05d3\u05e2 \u05d0\u05d9\u05e9\u05d9", "pt-br": "Consentimento sobre a libera\u00e7\u00e3o de informa\u00e7\u00f5es pessoais", - "zh": "\u540c\u610f\u5f00\u653e\u4e2a\u4eba\u4fe1\u606f", + "zh": "\u540c\u610f\u91ca\u653e\u4e2a\u4eba\u4fe1\u606f", "ar": "\u0627\u0648\u0627\u0641\u0642 \u0639\u0644\u064a \u0646\u0634\u0631 \u0633\u0645\u0627\u062a\u064a \u0627\u0644\u0634\u062e\u0635\u064a\u0629", "lv": "Noteikumi par person\u012bg\u0101s inform\u0101cijas nodo\u0161anu", "id": "Persetujuan tentang melepas informasi personal", @@ -524,7 +537,8 @@ "af": "Toestemming mbt. die vrystelling van persoonlike informasie", "el": "\u0394\u03ae\u03bb\u03c9\u03c3\u03b7 \u03c3\u03c5\u03b3\u03ba\u03b1\u03c4\u03ac\u03b8\u03b5\u03c3\u03b7\u03c2 \u03b3\u03b9\u03b1 \u03c4\u03bf\u03bd \u03b4\u03b9\u03b1\u03bc\u03bf\u03b9\u03c1\u03b1\u03c3\u03bc\u03cc \u03c0\u03c1\u03bf\u03c3\u03c9\u03c0\u03b9\u03ba\u03ce\u03bd \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd", "xh": "Imvume malunga nokukhutshwa kwenkcazelo yobuqu", - "zu": "Imvume mayelana nokukhulula ulwazi lomuntu siqu" + "zu": "Imvume mayelana nokukhulula ulwazi lomuntu siqu", + "st": "Tumello e mabapi le tlhahisoleseding ya botho" }, "consent_attributes_header": { "no": "Opplysninger som vil bli sendt til SPNAME", @@ -549,7 +563,7 @@ "zh-tw": "\u8cc7\u8a0a\u5c07\u88ab\u50b3\u9001\u81f3 SPNAME", "et": "Andmed saadetakse SPNAME-le", "he": "\u05d4\u05de\u05d9\u05d3\u05e2 \u05d9\u05e9\u05dc\u05d7 \u05dc SPNAME", - "zh": "\u4fe1\u606f\u5c06\u4f1a\u53d1\u9001\u7ed9SPNAME", + "zh": "\u5c06\u4f1a\u53d1\u9001\u7ed9SPNAME\u7684\u4fe1\u606f", "ar": "\u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0627\u0644\u062a\u064a \u0633\u064a\u062a\u0645 \u0625\u0631\u0633\u0627\u0644\u0647\u0627 \u0644 SPNAME", "lv": "Inform\u0101cija, kas tiks s\u016bt\u012bta SPNAME", "id": "Informasi yang akan dikirim ke SPNAME", @@ -560,7 +574,8 @@ "af": "Informasie wat gestuur sal word na SPNAME", "el": "\u03a0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 \u03c0\u03bf\u03c5 \u03b8\u03b1 \u03b4\u03b9\u03b1\u03bc\u03bf\u03b9\u03c1\u03b1\u03c3\u03c4\u03bf\u03cd\u03bd \u03bc\u03b5 \u03c4\u03b7\u03bd \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1 SPNAME", "xh": "Inkcazelo eza kuthunyelwa ku-SPNAME", - "zu": "Ulwazi oluzothunyelwa ku-SPNAME" + "zu": "Ulwazi oluzothunyelwa ku-SPNAME", + "st": "Tlhahisoleseding e tla romelwa ho SPNAME" }, "show_attributes": { "no": "Vis opplysninger", @@ -596,7 +611,8 @@ "eu": "Erakutsi atributuak", "af": "Vertoon eienskappe", "zu": "Bonisa okuqukethwe", - "xh": "Bonisa isiqulatho" + "xh": "Bonisa isiqulatho", + "st": "Bontsha makgabane" }, "noconsent_goto_about": { "no": "G\u00e5 til informasjonsside om tjenesten", @@ -622,7 +638,7 @@ "et": "Mine teenuse infolehele", "he": "\u05dc\u05da \u05d0\u05dc \u05d3\u05e3 \u05d4\u05de\u05d9\u05d3\u05e2 \u05e9\u05dc \u05d4\u05e9\u05d9\u05e8\u05d5\u05ea", "pt-br": "Ir para a P\u00e1gina de Informa\u00e7\u00e3o do servi\u00e7o", - "zh": "\u83b7\u53d6\u8be5\u670d\u52a1\u7684\u4fe1\u606f", + "zh": "\u8f6c\u5230\u8be5\u670d\u52a1\u7684\u4fe1\u606f\u9875\u9762", "ar": "\u0627\u0630\u0647\u0628 \u0644\u0635\u0641\u062d\u0629 \u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0639\u0646 \u0627\u0644\u062e\u062f\u0645\u0629", "lv": "Iet uz servisa inform\u0101cijas lapu", "id": "Pergi ke halaman informasi untul layanan", @@ -633,7 +649,8 @@ "af": "Gaan na die informasie bladsy vir die diens", "el": "\u0395\u03c0\u03b9\u03c0\u03bb\u03ad\u03bf\u03bd \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1", "xh": "Yiya kwikhasi lenkcazelo ukuze ufumane inkonzo", - "zu": "Iya ekhasini lolwazi lesevisi" + "zu": "Iya ekhasini lolwazi lesevisi", + "st": "Eya leqepheng la tlhahisoleseding bakeng sa tshebeletso" }, "consent_purpose": { "no": "Form\u00e5let med SPNAME er SPDESC", @@ -669,7 +686,8 @@ "af": "Die doel van SPNAME is SPDESC", "el": "\u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03cc\u03c0\u03c9\u03c2 \u03c0\u03b1\u03c1\u03ad\u03c7\u03b5\u03c4\u03b1\u03b9 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1\u003a SPDESC", "zu": "Injongo ye-SPNAME yi-SPDESC", - "xh": "Injongo ye-SPNAME yi-SPDESC" + "xh": "Injongo ye-SPNAME yi-SPDESC", + "st": "Sepheo sa SPNAME ke SPDESC" }, "table_caption": { "no": "Bruker innformasjon", @@ -705,7 +723,8 @@ "af": "Gebruiker informasie", "el": "\u03a0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7", "xh": "Inkcazelo yomsebenzisi", - "zu": "Ulwazi lomsebenzisi" + "zu": "Ulwazi lomsebenzisi", + "st": "Tlhahisoleseding ya mosebedisi" }, "table_summary": { "no": "Her listes den innformasjonen om deg som blir send til den tjenesten du er i ferd med \u00e5 logge p\u00e5", @@ -741,7 +760,8 @@ "af": "Lys die informasie mbt. jou wat op die punt is om gestuur te word vir die diens waarby jy wil aanmeld.", "el": "\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03b9\u03ce\u03bd \u03c0\u03bf\u03c5 \u03b8\u03b1 \u03b4\u03b9\u03b1\u03bc\u03bf\u03b9\u03c1\u03b1\u03c3\u03c4\u03bf\u03cd\u03bd \u03bc\u03b5 \u03c4\u03b7\u03bd \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03ae", "zu": "Enza uhlu olumayelana nolwazi lwakho oluzodluliselwa kusevisi ozongena kuyo", - "xh": "Dwelisa inkcazelo engawe eza kudluliselwa kwinkonzo oza kungena kuyo" + "xh": "Dwelisa inkcazelo engawe eza kudluliselwa kwinkonzo oza kungena kuyo", + "st": "Hlahlamisa tlhahisoleseding e mabapi le wena e haufi le ho fetisetswa tshebeletsong eo o tlo kena ho yona" }, "show_attribute": { "no": "Vis innhold", @@ -802,6 +822,7 @@ "el": "\u0391\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7 \u03b5\u03b9\u03c3\u03cc\u03b4\u03bf\u03c5 \u03c3\u03c4\u03b7\u03bd \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1 SPNAME", "xh": "Yeka ungeno kwi-SPNAME", "zu": "Yeka ukungena ku-SPNAME", - "sl": "Prekini prijavo na SPNAME" + "sl": "Prekini prijavo na SPNAME", + "st": "Kgaotsa keno ho SPNAME" } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/lib/Auth/Process/Consent.php b/vendor/simplesamlphp/simplesamlphp/modules/consent/lib/Auth/Process/Consent.php index f5b6bfc8105732dccc4ed98a80cd2075de87afb1..6af1b63dd867f19ae8b6f6560e7896c2021f83d4 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/consent/lib/Auth/Process/Consent.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/lib/Auth/Process/Consent.php @@ -383,7 +383,7 @@ public static function getTargetedID($userid, $source, $destination) * Create a hash value for the attributes that changes when attributes are added or removed. If the attribute * values are included in the hash, the hash will change if the values change. * - * @param string $attributes The attributes. + * @param array $attributes The attributes. * @param bool $includeValues Whether or not to include the attribute value in the generation of the hash. * * @return string SHA1 of the user id, source id, destination id and salt. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/lib/Consent/Store/Cookie.php b/vendor/simplesamlphp/simplesamlphp/modules/consent/lib/Consent/Store/Cookie.php index 1a878073525be1850ec912ec36d8bf93b7cc7088..f12e7071c46fd33f73bb582539f8095490d22a5f 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/consent/lib/Consent/Store/Cookie.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/lib/Consent/Store/Cookie.php @@ -89,7 +89,7 @@ public function hasConsent($userId, $destinationId, $attributeSet) * @param string $destinationId A string which identifies the destination. * @param string $attributeSet A hash which identifies the attributes. * - * @return void + * @return bool */ public function saveConsent($userId, $destinationId, $attributeSet) { @@ -103,7 +103,7 @@ public function saveConsent($userId, $destinationId, $attributeSet) \SimpleSAML\Logger::debug('Consent cookie - Set ['.$value.']'); $value = self::sign($value); - $this->setConsentCookie($name, $value); + return $this->setConsentCookie($name, $value); } @@ -269,12 +269,12 @@ private static function getCookieName($userId, $destinationId) * @param string $name Name of the cookie. * @param string|null $value Value of the cookie. Set this to null to delete the cookie. * - * @return void + * @return bool */ private function setConsentCookie($name, $value) { assert(is_string($name)); - assert(is_string($value) || $value === null); + assert(is_string($value) || is_null($value)); $globalConfig = \SimpleSAML\Configuration::getInstance(); $params = [ @@ -284,6 +284,11 @@ private function setConsentCookie($name, $value) 'secure' => \SimpleSAML\Utils\HTTP::isHTTPS(), ]; - \SimpleSAML\Utils\HTTP::setCookie($name, $value, $params, false); + try { + \SimpleSAML\Utils\HTTP::setCookie($name, $value, $params, false); + return true; + } catch (\SimpleSAML\Error\CannotSetCookie $e) { + return false; + } } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/lib/Consent/Store/Database.php b/vendor/simplesamlphp/simplesamlphp/modules/consent/lib/Consent/Store/Database.php index ba1975bc5b779ca2907e407b1b57c68e7535bc98..1e64104db0fab6691f20d442ddce2910f0c3f87b 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/consent/lib/Consent/Store/Database.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/lib/Consent/Store/Database.php @@ -202,7 +202,7 @@ public function hasConsent($userId, $destinationId, $attributeSet) * @param string $destinationId A string which identifies the destination. * @param string $attributeSet A hash which identifies the attributes. * - * @return void|true True if consent is deleted. + * @return bool True if consent is deleted, false otherwise. */ public function saveConsent($userId, $destinationId, $attributeSet) { @@ -219,13 +219,13 @@ public function saveConsent($userId, $destinationId, $attributeSet) ); if ($st === false) { - return; + return false; } if ($st->rowCount() > 0) { // Consent has already been stored in the database \SimpleSAML\Logger::debug('consent:Database - Updated old consent.'); - return; + return false; } // Add new consent @@ -348,7 +348,7 @@ public function getConsents($userId) * @param string $statement The statement which should be executed. * @param array $parameters Parameters for the statement. * - * @return \PDOStatement|bool The statement, or false if execution failed. + * @return \PDOStatement|false The statement, or false if execution failed. */ private function execute($statement, $parameters) { @@ -360,6 +360,7 @@ private function execute($statement, $parameters) return false; } + /** @var \PDOStatement|false $st */ $st = $db->prepare($statement); if ($st === false) { \SimpleSAML\Logger::error( diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/lib/Logout.php b/vendor/simplesamlphp/simplesamlphp/modules/consent/lib/Logout.php index f82961ee3d487f34ca42225d7f400157f1f57894..0bfcf338528e36fd1ce35f66eece6493c3b99d0c 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/consent/lib/Logout.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/lib/Logout.php @@ -10,6 +10,11 @@ class Logout { + /** + * @param \SimpleSAML\IdP $idp + * @param array $state + * @return void + */ public static function postLogout(\SimpleSAML\IdP $idp, array $state) { $url = \SimpleSAML\Module::getModuleURL('consent/logout_completed.php'); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/lib/Store.php b/vendor/simplesamlphp/simplesamlphp/modules/consent/lib/Store.php index 5e14d37720c9e19d1f966645df1208823752791e..b69f9a4c2a54e29c82297073be2df1ad4e7c8d66 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/consent/lib/Store.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/lib/Store.php @@ -144,6 +144,11 @@ public static function parseStoreConfig($config) ); unset($config[0]); - return new $className($config); + /** + * @psalm-suppress InvalidStringClass + * @var \SimpleSAML\Module\consent\Store $retval + */ + $retval = new $className($config); + return $retval; } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/locales/af/LC_MESSAGES/consent.po b/vendor/simplesamlphp/simplesamlphp/modules/consent/locales/af/LC_MESSAGES/consent.po index b5cb9cd85da5f38301048cdd75b1bd6095e34004..100d201770705d4ffcdb8b4baaee9c4e0199557d 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/consent/locales/af/LC_MESSAGES/consent.po +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/locales/af/LC_MESSAGES/consent.po @@ -80,7 +80,7 @@ msgid "{consent:consent:noconsent_return}" msgstr "Keer terug na die toestemmingsbladsy" msgid "{consent:consent:yes}" -msgstr "Ja, voortgaan" +msgstr "Ja, gaan voort" msgid "{consent:consent:consent_attributes_header}" msgstr "Informasie wat gestuur sal word na SPNAME" diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/locales/st/LC_MESSAGES/consent.po b/vendor/simplesamlphp/simplesamlphp/modules/consent/locales/st/LC_MESSAGES/consent.po new file mode 100644 index 0000000000000000000000000000000000000000..c62a6c1f53187da76edc38f6f0ead45c10b6d805 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/locales/st/LC_MESSAGES/consent.po @@ -0,0 +1,148 @@ + +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: SimpleSAMLphp 1.15\n" +"Report-Msgid-Bugs-To: simplesamlphp-translation@googlegroups.com\n" +"POT-Creation-Date: 2019-12-12 08:47+0200\n" +"PO-Revision-Date: 2019-12-12 08:47+0200\n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 1.3\n" + +msgid "Yes, continue" +msgstr "E, tswela pele" + +msgid "{consent:consent:abort}" +msgstr "Kgaotsa keno ho SPNAME" + +msgid "Show attributes" +msgstr "Bontsha makgabane" + +msgid "{consent:consent:noconsent_return}" +msgstr "Kgutlela leqepheng la tumello" + +msgid "{consent:consent:consent_header}" +msgstr "Tumello e mabapi le tlhahisoleseding ya botho" + +msgid "{consent:consent:show_attributes}" +msgstr "Bontsha makgabane" + +msgid "{consent:consent:consent_attributes_header}" +msgstr "Tlhahisoleseding e tla romelwa ho SPNAME" + +msgid "{consent:consent:show_hide_attributes}" +msgstr "bontsha/pata makgabane" + +msgid "The purpose of SPNAME is SPDESC" +msgstr "Sepheo sa SPNAME ke SPDESC" + +msgid "You did not give consent for transfering your attributes to SPNAME." +msgstr "Ha o a fana ka tumello bakeng sa ho fetisetsa makgabane a hao ho SPNAME." + +msgid "" +"List the information about you that is about to be transmitted to the " +"service you are going to login to" +msgstr "" +"Hlahlamisa tlhahisoleseding e mabapi le wena e haufi le ho fetisetswa " +"tshebeletsong eo o tlo kena ho yona" + +msgid "Abort login to SPNAME" +msgstr "Kgaotsa keno ho SPNAME" + +msgid "Privacy policy for the service" +msgstr "Leano la sephiri bakeng sa tshebeletso" + +msgid "Consent about releasing personal information" +msgstr "Tumello e mabapi le tlhahisoleseding ya botho" + +msgid "Service Provider" +msgstr "Mofani wa Tshebeletso" + +msgid "{consent:consent:consent_accept}" +msgstr "SPNAME e hloka hore tlhahisoleseding e ka tlase mona e fetiswe." + +msgid "{consent:consent:noconsent_text}" +msgstr "Ha o a fana ka tumello bakeng sa ho fetisetsa makgabane a hao ho SPNAME." + +msgid "Return to consent page" +msgstr "Kgutlela leqepheng la tumello" + +msgid "{consent:consent:service_provider_header}" +msgstr "Mofani wa Tshebeletso" + +msgid "{consent:consent:table_caption}" +msgstr "Tlhahisoleseding ya mosebedisi" + +msgid "{consent:consent:consent_privacypolicy}" +msgstr "Leano la sephiri bakeng sa tshebeletso" + +msgid "{consent:consent:remember}" +msgstr "Hopola" + +msgid "{consent:consent:login}" +msgstr "keno" + +msgid "Service Providers for" +msgstr "Bafani ba Tshebeletso bakeng sa" + +msgid "{consent:consent:consent_purpose}" +msgstr "Sepheo sa SPNAME ke SPDESC" + +msgid "{consent:consent:no}" +msgstr "Tjhe, hlakola" + +msgid "{consent:consent:table_summary}" +msgstr "" +"Hlahlamisa tlhahisoleseding e mabapi le wena e haufi le ho fetisetswa " +"tshebeletsong eo o tlo kena ho yona" + +msgid "show/hide attributes" +msgstr "bontsha/pata makgabane" + +msgid "{consent:consent:noconsent_goto_about}" +msgstr "Eya leqepheng la tlhahisoleseding bakeng sa tshebeletso" + +msgid "No, cancel" +msgstr "Tjhe, hlakola" + +msgid "{consent:consent:status_header}" +msgstr "Boemo ba tumelo" + +msgid "No consent given" +msgstr "Ha ho tumello e fanweng" + +msgid "User information" +msgstr "Tlhahisoleseding ya mosebedisi" + +msgid "Consent status" +msgstr "Boemo ba tumelo" + +msgid "Remember" +msgstr "Hopola" + +msgid "login" +msgstr "keno" + +msgid "SPNAME requires that the information below is transferred." +msgstr "SPNAME e hloka hore tlhahisoleseding e ka tlase mona e fetiswe." + +msgid "{consent:consent:service_providers_for}" +msgstr "Bafani ba Tshebeletso bakeng sa" + +msgid "Go to information page for the service" +msgstr "Eya leqepheng la tlhahisoleseding bakeng sa tshebeletso" + +msgid "{consent:consent:noconsent_title}" +msgstr "Ha ho tumello e fanweng" + +msgid "{consent:consent:yes}" +msgstr "E, tswela pele" + +msgid "Information that will be sent to SPNAME" +msgstr "Tlhahisoleseding e tla romelwa ho SPNAME" + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/locales/xh/LC_MESSAGES/consent.po b/vendor/simplesamlphp/simplesamlphp/modules/consent/locales/xh/LC_MESSAGES/consent.po index dc5d79f5eb338c34e689e311ddf26ad23b8c7c3a..a44c03ddc5e2682d9910dce077e0edcd6b4ccdca 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/consent/locales/xh/LC_MESSAGES/consent.po +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/locales/xh/LC_MESSAGES/consent.po @@ -5,7 +5,7 @@ msgstr "" "Project-Id-Version: SimpleSAMLphp 1.15\n" "Report-Msgid-Bugs-To: simplesamlphp-translation@googlegroups.com\n" "POT-Creation-Date: 2018-11-15 14:49+0200\n" -"PO-Revision-Date: 2018-11-15 14:49+0200\n" +"PO-Revision-Date: 2019-12-12 08:47+0200\n" "Last-Translator: \n" "Language-Team: \n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" @@ -80,3 +80,71 @@ msgstr "Dwelisa inkcazelo engawe eza kudluliselwa kwinkonzo oza kungena kuyo" msgid "{consent:consent:remember}" msgstr "Khumbula" +msgid "Consent about releasing personal information" +msgstr "Imvume malunga nokukhutshwa kwenkcazelo yobuqu" + +msgid "Show attributes" +msgstr "Bonisa isiqulatho" + +msgid "show/hide attributes" +msgstr "bonisa/fihla iimpawu" + +msgid "Yes, continue" +msgstr "Ewe, qhubeka" + +msgid "No consent given" +msgstr "Akukho mvume inikelweyo" + +msgid "Information that will be sent to SPNAME" +msgstr "Inkcazelo eza kuthunyelwa ku-SPNAME" + +msgid "Service Providers for" +msgstr "Umboneleli enkonzo we-" + +msgid "Consent status" +msgstr "Ubume bemvume" + +msgid "Go to information page for the service" +msgstr "Yiya kwikhasi lenkcazelo ukuze ufumane inkonzo" + +msgid "Return to consent page" +msgstr "Buyela kwikhasi lemvume" + +msgid "Service Provider" +msgstr "Umboneleli Wenkonzo" + +msgid "No, cancel" +msgstr "Hayi, rhoxisa" + +msgid "Show content" +msgstr "Bonisa iimpawu" + +msgid "Privacy policy for the service" +msgstr "Ipolisi yokugcinwa kwemfihlelo yenkonzo" + +msgid "The purpose of SPNAME is SPDESC" +msgstr "Injongo ye-SPNAME yi-SPDESC" + +msgid "Abort login to SPNAME" +msgstr "Yeka ungeno kwi-SPNAME" + +msgid "Remember" +msgstr "Khumbula" + +msgid "SPNAME requires that the information below is transferred." +msgstr "I-SPNAME idinga ukuba inkcazelo engezantsi idluliselwe." + +msgid "User information" +msgstr "Inkcazelo yomsebenzisi" + +msgid "" +"List the information about you that is about to be transmitted to the " +"service you are going to login to" +msgstr "Dwelisa inkcazelo engawe eza kudluliselwa kwinkonzo oza kungena kuyo" + +msgid "login" +msgstr "ngena" + +msgid "You did not give consent for transfering your attributes to SPNAME." +msgstr "Awuyinikelanga imvume yokudluliselwa iimpawu zakho kwi-SPNAME." + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/locales/zh/LC_MESSAGES/consent.po b/vendor/simplesamlphp/simplesamlphp/modules/consent/locales/zh/LC_MESSAGES/consent.po index 62429e2e3485a8706f33d36079851ea03b9d574d..03e8daa2c96b3a7e5604f0ae0869d201d5fb49c4 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/consent/locales/zh/LC_MESSAGES/consent.po +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/locales/zh/LC_MESSAGES/consent.po @@ -31,10 +31,10 @@ msgid "{consent:consent:consent_purpose}" msgstr "SPNAME的目的是SPDESC" msgid "{consent:consent:noconsent_goto_about}" -msgstr "获取该服务的信息" +msgstr "转到该服务的信息页面" msgid "{consent:consent:consent_header}" -msgstr "同意开放个人信息" +msgstr "同意释放个人信息" msgid "{consent:consent:show_hide_attributes}" msgstr "显示/隐藏属性" @@ -49,7 +49,7 @@ msgid "{consent:consent:noconsent_title}" msgstr "未同意" msgid "{consent:consent:consent_accept}" -msgstr "SPNAME请求的信息已经被传输出去" +msgstr "SPNAME请求以下信息被传送。" msgid "{consent:consent:table_summary}" msgstr "当你登录时将要传输给服务的信息列表" @@ -70,7 +70,7 @@ msgid "{consent:consent:consent_privacypolicy}" msgstr "该服务的隐私策略" msgid "{consent:consent:noconsent_text}" -msgstr "你没有同意传输你的相关属性给服务提供者" +msgstr "你没有同意传输你的相关属性给SPNAME" msgid "{consent:consent:noconsent_return}" msgstr "返回同意界面" @@ -79,7 +79,7 @@ msgid "{consent:consent:yes}" msgstr "是的,继续" msgid "{consent:consent:consent_attributes_header}" -msgstr "信息将会发送给SPNAME" +msgstr "将会发送给SPNAME的信息" msgid "Service Providers for" msgstr "服务提供者给" diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/locales/zu/LC_MESSAGES/consent.po b/vendor/simplesamlphp/simplesamlphp/modules/consent/locales/zu/LC_MESSAGES/consent.po index 2738559d801f61515fe36ebbf7b0c6abf6204ae0..61bb392af1f3325a81fa1cfe4eabe359f19d0825 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/consent/locales/zu/LC_MESSAGES/consent.po +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/locales/zu/LC_MESSAGES/consent.po @@ -5,7 +5,7 @@ msgstr "" "Project-Id-Version: SimpleSAMLphp 1.15\n" "Report-Msgid-Bugs-To: simplesamlphp-translation@googlegroups.com\n" "POT-Creation-Date: 2018-11-15 14:49+0200\n" -"PO-Revision-Date: 2018-11-15 14:49+0200\n" +"PO-Revision-Date: 2019-12-12 08:47+0200\n" "Last-Translator: \n" "Language-Team: \n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" @@ -82,3 +82,73 @@ msgstr "" msgid "{consent:consent:remember}" msgstr "Khumbula" +msgid "Consent about releasing personal information" +msgstr "Imvume mayelana nokukhulula ulwazi lomuntu siqu" + +msgid "Show attributes" +msgstr "Bonisa okuqukethwe" + +msgid "show/hide attributes" +msgstr "bonisa/fihla izici" + +msgid "Yes, continue" +msgstr "Yebo, qhubeka" + +msgid "No consent given" +msgstr "Ayikho imvume enikeziwe" + +msgid "Information that will be sent to SPNAME" +msgstr "Ulwazi oluzothunyelwa ku-SPNAME" + +msgid "Service Providers for" +msgstr "Abahlinzeki Besevisi bokuthi" + +msgid "Consent status" +msgstr "Isimo semvume" + +msgid "Go to information page for the service" +msgstr "Iya ekhasini lolwazi lesevisi" + +msgid "Return to consent page" +msgstr "Buyela ekhasini lemvume" + +msgid "Service Provider" +msgstr "Umhlinzeki Wesevisi" + +msgid "No, cancel" +msgstr "Cha, khansela" + +msgid "Show content" +msgstr "Bonisa izici" + +msgid "Privacy policy for the service" +msgstr "Inqubomgomo yobumfihlo yesevisi" + +msgid "The purpose of SPNAME is SPDESC" +msgstr "Injongo ye-SPNAME yi-SPDESC" + +msgid "Abort login to SPNAME" +msgstr "Yeka ukungena ku-SPNAME" + +msgid "Remember" +msgstr "Khumbula" + +msgid "SPNAME requires that the information below is transferred." +msgstr "I-SPNAME idinga ukuthi ulwazi olungezansi ludluliswe." + +msgid "User information" +msgstr "Ulwazi lomsebenzisi" + +msgid "" +"List the information about you that is about to be transmitted to the " +"service you are going to login to" +msgstr "" +"Enza uhlu olumayelana nolwazi lwakho oluzodluliselwa kusevisi ozongena " +"kuyo" + +msgid "login" +msgstr "ngena" + +msgid "You did not give consent for transfering your attributes to SPNAME." +msgstr "Awuzange uyinikeze imvume yokudlulisa izici zakho ku-SPNAME." + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/consent/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0985fdd804b18d8d9179ecd956d63582c189e95 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/phpunit.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/consent/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..fc3303ddce0af85e586914bfacdff1169791f5b6 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/psalm.xml @@ -0,0 +1,31 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp consent module" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="lib" /> + <directory name="www" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/templates/consentform.php b/vendor/simplesamlphp/simplesamlphp/modules/consent/templates/consentform.php index 90907e0ed2812bd8654edfa8c10f1b54320b7670..d87a8ba8bcd72093b6ac9268be831364838a6918 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/consent/templates/consentform.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/templates/consentform.php @@ -1,4 +1,5 @@ <?php + /** * Template form for giving consent. * @@ -9,6 +10,7 @@ * * @package SimpleSAMLphp */ + assert(is_string($this->data['yesTarget'])); assert(is_string($this->data['noTarget'])); assert($this->data['sppp'] === false || is_string($this->data['sppp'])); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/templates/consentform.twig b/vendor/simplesamlphp/simplesamlphp/modules/consent/templates/consentform.twig index b1433046a9e07af6757ec0453c9b2c14c715f98b..c755ba001f6a6fe3d22e06442849054f0c47b0fe 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/consent/templates/consentform.twig +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/templates/consentform.twig @@ -2,7 +2,7 @@ {% extends "base.twig" %} {% block preload %} -<link rel="stylesheet" type="text/css" href="{{ baseurlpath }}assets/css/consent.css" /> +<link rel="stylesheet" href="/{{ baseurlpath }}module.php/consent/assets/css/consent.css"> {% endblock %} {% block content %} @@ -19,17 +19,17 @@ {% endif %} <input type="hidden" name="StateId" value="{{ stateId }}" /> - <button type="submit" name="yes" class="btn" id="yesbutton"{%- if autofocus == 'yesbutton' %} autofocus{% endif -%}>{{ '{consent:consent:yes}'|trans }}</button> + <button type="submit" name="yes" class="btn" id="yesbutton"{%- if autofocus is defined and autofocus == 'yesbutton' %} autofocus{% endif -%}>{{ '{consent:consent:yes}'|trans }}</button> </form> <form id="consent_no" action="{{ noTarget }}"> <input type="hidden" name="StateId" value="{{ stateId }}" /> - <button type="submit" class="btn" name="no" id="nobutton"{%- if autofocus == 'nobutton' %} autofocus{% endif -%}>{{ '{consent:consent:no}'|trans }}</button> + <button type="submit" class="btn" name="no" id="nobutton"{%- if autofocus is defined and autofocus == 'nobutton' %} autofocus{% endif -%}>{{ '{consent:consent:no}'|trans }}</button> </form> {% if sppp != false %} <p>{{ '{consent:consent:consent_privacypolicy}'|trans }} - <a target='_blank' href='{{ sppp|escape('url') }} '>{{ dstName }}</a> + <a target='_blank' href='{{ sppp|escape('html') }} '>{{ dstName }}</a> </p> {% endif %} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/consent/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..ec0d0cf0d543cbe6958cdea42f2914ba730bb117 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot.'/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot.'/vendor/simplesamlphp/simplesamlphp/modules/consent'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/tests/lib/Auth/Process/ConsentTest.php b/vendor/simplesamlphp/simplesamlphp/modules/consent/tests/lib/Auth/Process/ConsentTest.php new file mode 100644 index 0000000000000000000000000000000000000000..8cc5b2034d6c90f6e4ff777d5610fd395e0f29e8 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/tests/lib/Auth/Process/ConsentTest.php @@ -0,0 +1,251 @@ +<?php +/** + * Test for the consent:Consent authproc filter. + * + * @author Vincent Rioux <vrioux@ctech.ca> + * @package SimpleSAMLphp + */ + +namespace SimpleSAML\Test\Module\consent\Auth\Process; + +use PHPUnit\Framework\TestCase; +use SimpleSAML\Configuration; +use SimpleSAML\Module\consent\Auth\Process\Consent; + +class ConsentTest extends TestCase +{ + /** + * @return void + */ + public function setUp() + { + $this->config = Configuration::loadFromArray(['module.enable' => ['consent' => true]], '[ARRAY]', 'simplesaml'); + Configuration::setPreLoadedConfig($this->config, 'config.php'); + } + + + /** + * Helper function to run the filter with a given configuration. + * + * @param array $config The filter configuration. + * @param array $request The request state. + * @return array The state array after processing. + */ + private function processFilter(array $config, array $request) + { + $filter = new Consent($config, null); + $filter->process($request); + return $request; + } + + + /** + * Test for the private checkDisable() method. + * + * @return void + */ + public function testCheckDisable() + { + // test consent disable regex with match + $config = []; + + // test consent disable with match on specific SP entityid + $request = [ + 'Source' => [ + 'entityid' => 'https://idp.example.org', + 'metadata-set' => 'saml20-idp-local', + 'consent.disable' => [ + 'https://valid.flatstring.example.that.does.not.match', + ], + 'SingleSignOnService' => [ + [ + 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect', + 'Location' => 'https://idp.example.org/saml2/idp/SSOService.php', + ], + ], + ], + 'Destination' => [ + // valid entityid equal to the last one in the consent.disable array + 'entityid' => 'https://sp.example.org/my-sp', + 'metadata-set' => 'saml20-sp-remote', + 'consent.disable' => [ + ['type' => 'regex', 'pattern' => '/invalid/i'], + 'https://sp.example.org/my-sp', // accept the SP that has this specific entityid + 'https://idp.example.org', + ], + ], + 'UserID' => 'jdoe', + 'Attributes' => [ + 'eduPersonPrincipalName' => ['jdoe@example.com'], + ], + ]; + $result = $this->processFilter($config, $request); + // the state should NOT have changed because NO consent should be necessary (match) + $this->assertEquals($request, $result); + + // test consent disable with match on SP through regular expression + $request = [ + 'Source' => [ + 'entityid' => 'https://idp.example.org', + 'metadata-set' => 'saml20-idp-local', + 'consent.disable' => [ + [], // invalid consent option array should be ignored + 1234, // bad option + [''], // no type + ['type'=>'invalid'], // invalid consent option type should be ignored + ['type'=>'regex'], // regex consent option without pattern should be ignored + ['type'=>'regex', 'pattern'=>'/.*\.valid.regex\.that\.does\.not\.match.*/i'], + // accept any SP that has an entityid that contains the string ".example.org" + ['type'=>'regex', 'pattern'=>'/.*\.example\.org\/.*/i'], + ], + 'SingleSignOnService' => [ + [ + 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect', + 'Location' => 'https://idp.example.org/saml2/idp/SSOService.php', + ], + ], + ], + 'Destination' => [ + 'entityid' => 'https://sp.example.org/my-sp', // sp contains the string ".example.org" + 'metadata-set' => 'saml20-sp-remote', + ], + 'UserID' => 'jdoe', + 'Attributes' => [ + 'eduPersonPrincipalName' => ['jdoe@example.com'], + ], + ]; + $result = $this->processFilter($config, $request); + // the state should NOT have changed because NO consent should be necessary (match) + $this->assertEquals($request, $result); + + // test corner cases + $request['Source']['consent.disable'] = [ + 'https://valid.flatstring.example.that.does.not.match', + ['foo' => 'bar'], + ]; + $request['Destination']['consent.disable'] = 1; + $result = $this->processFilter($config, $request); + // the state should NOT have changed because NO consent should be necessary (match) + $this->assertEquals($request, $result); + } + + + /** + * @return void + */ + public function testAttributeHashIsConsistentWhenOrderOfValuesChange() + { + $attributes1 = [ + 'attribute1' => ['val1', 'val2'], + 'attribute2' => ['val1', 'val2'] + ]; + $attributeHash1 = Consent::getAttributeHash($attributes1, true); + + $attributes2 = [ + 'attribute1' => ['val1', 'val2'], + 'attribute2' => ['val2', 'val1'] + ]; + $attributeHash2 = Consent::getAttributeHash($attributes2, true); + + $this->assertEquals($attributeHash1, $attributeHash2, "Hash is not the same when the order of values changes"); + } + + + /** + * @return void + */ + public function testAttributeHashIsConsistentWhenOrderOfAttributesChange() + { + $attributes1 = [ + 'attribute2' => ['val1', 'val2'], + 'attribute1' => ['val1', 'val2'] + ]; + $attributeHash1 = Consent::getAttributeHash($attributes1, true); + + $attributes2 = [ + 'attribute1' => ['val1', 'val2'], + 'attribute2' => ['val1', 'val2'] + ]; + $attributeHash2 = Consent::getAttributeHash($attributes2, true); + + $this->assertEquals( + $attributeHash1, + $attributeHash2, + "Hash is not the same when the order of the attributs changes" + ); + } + + + /** + * @return void + */ + public function testAttributeHashIsConsistentWithoutValuesWhenOrderOfAttributesChange() + { + $attributes1 = [ + 'attribute2' => ['val1', 'val2'], + 'attribute1' => ['val1', 'val2'] + ]; + $attributeHash1 = Consent::getAttributeHash($attributes1); + + $attributes2 = [ + 'attribute1' => ['val1', 'val2'], + 'attribute2' => ['val1', 'val2'] + ]; + $attributeHash2 = Consent::getAttributeHash($attributes2); + + $this->assertEquals( + $attributeHash1, + $attributeHash2, + "Hash is not the same when the order of the attributs changes and the values are not included" + ); + } + + + /** + * @return void + */ + public function testConstructorSetsInstancePrivateVars() + { + $reflection = new \ReflectionClass(Consent::class); + + $values = [ + 'includeValues', + 'checked', + 'focus', + 'hiddenAttributes', + 'noconsentattributes', + 'showNoConsentAboutService' + ]; + foreach ($values as $v) { + $instanceVars[$v] = $reflection->getProperty($v); + $instanceVars[$v]->setAccessible(true); + } + + /* these just need to be different to the default values */ + $config = [ + 'includeValues' => true, + 'checked' => true, + 'focus' => 'yes', + 'hiddenAttributes' => ['attribute1', 'attribute2'], + 'attributes.exclude' => ['attribute1', 'attribute2'], + 'showNoConsentAboutService' => false, + ]; + + ob_start(); + $testcase = $reflection->newInstance($config, null); + ob_end_clean(); + + $this->assertEquals($instanceVars['includeValues']->getValue($testcase), $config['includeValues']); + $this->assertEquals($instanceVars['checked']->getValue($testcase), $config['checked']); + $this->assertEquals($instanceVars['focus']->getValue($testcase), $config['focus']); + $this->assertEquals($instanceVars['hiddenAttributes']->getValue($testcase), $config['hiddenAttributes']); + $this->assertEquals($instanceVars['noconsentattributes']->getValue($testcase), $config['attributes.exclude']); + $this->assertEquals( + $instanceVars['showNoConsentAboutService']->getValue($testcase), + $config['showNoConsentAboutService'] + ); + + $deprecated = $reflection->newInstance(['noconsentattributes' => $config['attributes.exclude']], null); + $this->assertEquals($instanceVars['noconsentattributes']->getValue($deprecated), $config['attributes.exclude']); + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/www/getconsent.php b/vendor/simplesamlphp/simplesamlphp/modules/consent/www/getconsent.php index 2da2fc870e3e42abe49789643bb158dec8eaae6f..cf393c396f864b06838ae7e48c927c0dd47edde9 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/consent/www/getconsent.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/www/getconsent.php @@ -31,7 +31,9 @@ $id = $_REQUEST['StateId']; $state = \SimpleSAML\Auth\State::loadState($id, 'consent:request'); -if (array_key_exists('core:SP', $state)) { +if (is_null($state)) { + throw new \SimpleSAML\Error\NoState; +} elseif (array_key_exists('core:SP', $state)) { $spentityid = $state['core:SP']; } elseif (array_key_exists('saml:sp:State', $state)) { $spentityid = $state['saml:sp:State']['core:SP']; @@ -158,8 +160,12 @@ $t->data['dstName'] = $dstName; // Fetch privacypolicy -if (array_key_exists('privacypolicy', $state['Destination'])) { +if (array_key_exists('UIInfo', $state['Destination']) && array_key_exists('PrivacyStatementURL', $state['Destination']['UIInfo']) && (!empty($state['Destination']['UIInfo']['PrivacyStatementURL']))) { + $privacypolicy = reset($state['Destination']['UIInfo']['PrivacyStatementURL']); +} elseif (array_key_exists('privacypolicy', $state['Destination'])) { $privacypolicy = $state['Destination']['privacypolicy']; +} elseif (array_key_exists('UIInfo', $state['Source']) && array_key_exists('PrivacyStatementURL', $state['Source']['UIInfo']) && (!empty($state['Source']['UIInfo']['PrivacyStatementURL']))) { + $privacypolicy = reset($state['Source']['UIInfo']['PrivacyStatementURL']); } elseif (array_key_exists('privacypolicy', $state['Source'])) { $privacypolicy = $state['Source']['privacypolicy']; } else { @@ -209,7 +215,7 @@ * * @return string HTML representation of the attributes */ -function present_attributes($t, $attributes, $nameParent) +function present_attributes(\SimpleSAML\XHTML\Template $t, array $attributes, $nameParent) { $translator = $t->getTranslator(); @@ -248,6 +254,7 @@ function present_attributes($t, $attributes, $nameParent) $hiddenId = \SimpleSAML\Utils\Random::generateID(); $str .= '<td><span class="attrvalue hidden" id="hidden_'.$hiddenId.'">'; } else { + $hiddenId = ''; $str .= '<td><span class="attrvalue">'; } @@ -279,7 +286,7 @@ function present_attributes($t, $attributes, $nameParent) $str .= '... '; $str .= '<a class="consent_showattributelink" href="javascript:SimpleSAML_show(\'hidden_'.$hiddenId; $str .= '\'); SimpleSAML_hide(\'visible_'.$hiddenId.'\');">'; - $str .= $t->t('{consent:consent:show_attribute}'); + $str .= $translator->t('{consent:consent:show_attribute}'); $str .= '</a>'; $str .= '</div>'; } @@ -287,6 +294,6 @@ function present_attributes($t, $attributes, $nameParent) $str .= '</td></tr>'; } // end else: not child table } // end foreach - $str .= isset($attributes) ? '</table>' : ''; + $str .= '</table>'; return $str; } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consent/www/logout.php b/vendor/simplesamlphp/simplesamlphp/modules/consent/www/logout.php index f84a51bb246d616206137696002c1cda35aeddf9..36224787d21050053f25283c6635bdb9575a828e 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/consent/www/logout.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/consent/www/logout.php @@ -14,4 +14,4 @@ $idp = \SimpleSAML\IdP::getByState($state); $idp->handleLogoutRequest($state, null); -assert(false); +throw new \Exception('Should never happen'); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/.codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/.codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/.codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..6a85976937a39ed88adfeb1e30fb2085e7b002fc --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/.php_cs.dist @@ -0,0 +1,17 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/config-templates', + __DIR__ . '/hooks', + __DIR__ . '/tests', + __DIR__ . '/www', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..fec43ab41a5a3b2129c6a4b00802c56325717fe9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/.travis.yml @@ -0,0 +1,31 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then composer require --dev vimeo/psalm:1.1.9; fi + +script: + - bin/check-syntax.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi +# - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/LICENSE b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..0a041280bd00a9d068f503b8ee7ce35214bd24a1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/bin/check-syntax.sh b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/bin/check-syntax.sh new file mode 100755 index 0000000000000000000000000000000000000000..718d5d51b6fe566f88e28d6d44700eb94c55aa6b --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/bin/check-syntax.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +PHP='/usr/bin/env php' +RETURN=0 + +# check PHP files +for FILE in `find config-templates hooks tests templates www -name "*.php"`; do + $PHP -l $FILE > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Syntax check failed for ${FILE}" + RETURN=`expr ${RETURN} + 1` + fi +done + +exit $RETURN diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..f83c8b3edda1f9472af4c7ef699637d9d5deb0b2 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/composer.json @@ -0,0 +1,45 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-consentadmin", + "description": "A module that allows users to manage their consent", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "consentadmin"], + "license": "LGPL-3.0-or-later", + "authors": [ + { + "name": "Jacob Christiansen", + "email": "jach@wayf.dk" + }, + { + "name": "Olav Morken", + "email": "olav.morken@uninett.no" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "simplesamlphp/simplesamlphp-module-consent": "^0.9", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "phpunit/phpunit": "~5.7" + }, + "extra": { + "ssp-mixedcase-module-name": "consentAdmin" + }, + "support": { + "issues": "https://github.com/simplesamlphp/simplesamlphp-module-consentadmin/issues", + "source": "https://github.com/simplesamlphp/simplesamlphp-module-consentadmin" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/hooks/hook_configpage.php b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/hooks/hook_configpage.php index 2ea75afb1108e123dbe9c064e97d75e967cc672c..fc9384f983097fe93d335834b7e9a33c8281ae60 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/hooks/hook_configpage.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/hooks/hook_configpage.php @@ -3,8 +3,8 @@ * Hook to add the consentAdmin module to the config page. * * @param \SimpleSAML\XHTML\Template $template The template that we should alter in this hook. + * @return void */ - function consentAdmin_hook_configpage(\SimpleSAML\XHTML\Template &$template) { $template->data['links']['consentAdmin'] = [ diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/hooks/hook_frontpage.php b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/hooks/hook_frontpage.php index b1903a580ab08beeed8ecc3b742b09a1ea3cf67a..5059384b6e6f1c232cf9cd62df046b2175ffb184 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/hooks/hook_frontpage.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/hooks/hook_frontpage.php @@ -1,10 +1,11 @@ <?php + /** * Hook to add the consentAdmin module to the frontpage. * * @param array &$links The links on the frontpage, split into sections. + * @return void */ - function consentAdmin_hook_frontpage(&$links) { assert(is_array($links)); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0985fdd804b18d8d9179ecd956d63582c189e95 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/phpunit.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..072745148a99b542f42f8ad5bc9a103488f2fd0d --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/psalm.xml @@ -0,0 +1,31 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp consent admin module" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="hooks" /> + <directory name="www" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/templates/consentadmin.twig b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/templates/consentadmin.twig index b3197b5304a4dcdec0b17388b25ca3a1ab6d3f55..aa1e81ff42580b74a9f54d84673f6f9fa053cf43 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/templates/consentadmin.twig +++ b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/templates/consentadmin.twig @@ -77,6 +77,6 @@ <p>{{ '{consentAdmin:consentadmin:consentadmin_description2}'|trans|raw }}</p> <h2>Logout</h2> -<p><a href="{{ baseurlpath }}consentAdmin.php?logout=1">Logout</a></p> +<p><a href="/{{ baseurlpath }}module.php/consentAdmin/consentAdmin.php?logout=1">Logout</a></p> {% endblock %} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..1c94a497a14a5cedc06903a0bd913de3838ef298 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot.'/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot.'/vendor/simplesamlphp/simplesamlphp/modules/consentadmin'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/www/assets/js/consentAdmin.js b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/www/assets/js/consentAdmin.js index 59cf4e17b4bbf471ed32249df7df163e45be1368..83248d3f5e6f2e96b575abb288cd09bd76b15357 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/www/assets/js/consentAdmin.js +++ b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/www/assets/js/consentAdmin.js @@ -6,7 +6,7 @@ function checkConsent() var checkbox = document.getElementById("checkbox_"+show_spid); xmlHttp = GetXmlHttpObject() - if (xmlHttp == null) { + if (xmlHttp === null) { alert("Browser does not support HTTP Request") return } @@ -69,8 +69,8 @@ document.addEventListener( } var checkbox = document.getElementsByClassName("checkbox"); - for (var i = 0; i < checkbox.length; i++) { - checkbox[i].addEventListener( + for (var j = 0; j < checkbox.length; j++) { + checkbox[j].addEventListener( 'click', checkConsent ); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/www/consentAdmin.php b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/www/consentAdmin.php index 17a091d0871c7a32efdc150c074f7daaaeb8a3c3..7029afa96615f876a6b4781c145d44727fea5eee 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/www/consentAdmin.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/consentAdmin/www/consentAdmin.php @@ -11,9 +11,19 @@ * Author: Mads Freek <freek@ruc.dk>, Jacob Christiansen <jach@wayf.dk> */ -/* +/** * Runs the processing chain and ignores all filter which have user * interaction. + * + * @param array $idp_metadata + * @param string $source + * @param array $sp_metadata + * @param string $sp_entityid + * @param array $attributes + * @param string $userid + * @param bool $hashAttributes + * @param array $excludeAttributes + * @return array */ function driveProcessingChain( $idp_metadata, @@ -44,7 +54,9 @@ function driveProcessingChain( ]; /* we're being bridged, so add that info to the state */ if (strpos($source, '-idp-remote|') !== false) { - $authProcState['saml:sp:IdP'] = substr($source, strpos($source, '|') + 1); + /** @var int $i */ + $i = strpos($source, '|'); + $authProcState['saml:sp:IdP'] = substr($source, $i + 1); } /* @@ -107,7 +119,6 @@ function driveProcessingChain( * Get IdP id and metadata */ - $idp_entityid = $metadata->getMetaDataCurrentEntityID('saml20-idp-hosted'); $idp_metadata = $metadata->getMetaData($idp_entityid, 'saml20-idp-hosted'); @@ -176,6 +187,7 @@ function driveProcessingChain( 'consentAdmin:consentadminajax.php', 'consentAdmin:consentadmin' ); + $translator = $template->getTranslator(); // Get SP metadata $sp_metadata = $metadata->getMetaData($sp_entityid, 'saml20-sp-remote'); @@ -207,8 +219,9 @@ function driveProcessingChain( $rowcount = $consent_storage->deleteConsent($hashed_user_id, $targeted_id); if ($rowcount > 0) { $res = $translator->t("removed"); + } else { + throw new \Exception("Unknown action (should not happen)"); } - // Unknown action (should not happen) } else { \SimpleSAML\Logger::info('consentAdmin: unknown action'); $res = $translator->t("unknown"); @@ -236,6 +249,7 @@ function driveProcessingChain( $translator->includeLanguageFile('attributes'); // attribute listings translated by this dictionary $sp_empty_description = $translator->getTag('sp_empty_description'); +$sp_list = []; // Process consents for all SP foreach ($all_sp_metadata as $sp_entityid => $sp_values) { @@ -274,7 +288,7 @@ function driveProcessingChain( \SimpleSAML\Logger::info('consentAdmin: ok'); $sp_status = "ok"; } - // Consent does not exists + // Consent does not exist } else { SimpleSAML\Logger::info('consentAdmin: none'); $sp_status = "none"; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/dictionaries/cardinality.translation.json b/vendor/simplesamlphp/simplesamlphp/modules/core/dictionaries/cardinality.translation.json index a0a31ded62938fe619961896976a10ff3e55f53a..0a23c76ccbee6483af4ab9ece2d4f4c73453b9ea 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/dictionaries/cardinality.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/dictionaries/cardinality.translation.json @@ -5,7 +5,8 @@ "es": "Atributos inválidos", "no": "Ugyldige atributter", "zu": "Izici Ezingalungile", - "xh": "Iimpawu Ezingachanekanga" + "xh": "Iimpawu Ezingachanekanga", + "ca": "Atributs incorrectes" }, "cardinality_text": { "af": "Een of meer van die eienskappe wat deur u identiteits-verskaffer voorsien was, bevat nie die verwagte aantal waardes nie.", @@ -13,7 +14,8 @@ "es": "Uno o más atributos proporcionados por su proveedor de identidad no contiene la cantidad de valores esperada.", "no": "Én eller flere atributter levert av din identitetsleverandør har ikke så mange verdier som forventes.", "zu": "Isici esisodwa noma ngaphezulu esinikezwe umhlinzeki wakho kamazisi asizange siqukathe inani lezinombolo ezilindelwe.", - "xh": "Uphawu olunye okanye olungakumbi olunikelwe ngumboonelei wesazisi sakho aluqulethanga inani lamaxabiso alindelekileyo." + "xh": "Uphawu olunye okanye olungakumbi olunikelwe ngumboonelei wesazisi sakho aluqulethanga inani lamaxabiso alindelekileyo.", + "ca": "Un o més dels atributs facilitats pel vostre proveïdor d’identitat no contenia el nombre de valors esperat." }, "problematic_attributes": { "af": "Die problematiese eienskap(pe) is:", @@ -21,7 +23,8 @@ "es": "Los atributos problemáticos son:", "no": "De ugyldige atributter er:", "zu": "Isici(izici) esiyinkinga sithi:", - "xh": "Iimpawu eziyingxaki zezi:" + "xh": "Iimpawu eziyingxaki zezi:", + "ca": "Els atributs problemàtics són:" }, "got_want": { "af": "%GOT% waarde ontvang, %WANT% nodig", @@ -29,6 +32,7 @@ "es": "contiene %GOT% valores, se esperaban %WANT%", "no": "har %GOT% verdier, forventer %WANT%", "zu": "uthole amanani angu-%GOT%, ufuna %WANT%", - "xh": "kukho amaxabiso e-%GOT%, sifuna %WANT%" + "xh": "kukho amaxabiso e-%GOT%, sifuna %WANT%", + "ca": "tens %GOT% valors, desitjats %WANT%" } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/dictionaries/frontpage.translation.json b/vendor/simplesamlphp/simplesamlphp/modules/core/dictionaries/frontpage.translation.json index 0cb5eed172acb3f95e6c212331a4e31ddc3025c4..19508a65b0b98d785a09ff88b46bc48dec3857d9 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/dictionaries/frontpage.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/dictionaries/frontpage.translation.json @@ -32,7 +32,8 @@ "sr": "<strong>\u010cestitamo<\/strong>, uspe\u0161no ste instalirali SimpleSAMLphp. Ovo je po\u010detna stranica na kojoj mo\u017eete prona\u0107i primere, dijagnostiku, metapodatke i linkove na relevantnu dokumentaciju.", "ro": "<strong>Felciit\u0103ri<\/strong>, a\u021bi instalat cu succes SimpleSAMLphp. Aceasta este pagina de start unde g\u0103si\u021bi link-uri c\u0103tre exemple, diagnostic\u0103ri, metadate, documenta\u021bie.", "eu": "<strong>¡Zorionak!<\/strong> SimpleSAMLphp zuzen instalatu duzu. Hau instalazioaren hasiera orria da, hemen, aurkituko dituzu loturak froga, metadatu edo dokumentu garrantzitsuetan sartzeko.", - "el": "<strong>\u03a3\u03c5\u03b3\u03c7\u03b1\u03c1\u03b7\u03c4\u03ae\u03c1\u03b9\u03b1<\/strong>, \u03ad\u03c7\u03b5\u03c4\u03b5 \u03b5\u03b3\u03ba\u03b1\u03c4\u03b1\u03c3\u03c4\u03ae\u03c3\u03b5\u03b9 \u03bc\u03b5 \u03b5\u03c0\u03b9\u03c4\u03c5\u03c7\u03af\u03b1 \u03c4\u03bf SimpleSAMLphp. \u0391\u03c5\u03c4\u03ae \u03b5\u03af\u03bd\u03b1\u03b9 \u03b7 \u03b1\u03c1\u03c7\u03b9\u03ba\u03ae \u03c3\u03b5\u03bb\u03af\u03b4\u03b1 \u03c4\u03b7\u03c2 \u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03ae\u03c2 \u03c3\u03b1\u03c2, \u03cc\u03c0\u03bf\u03c5 \u03b8\u03b1 \u03b2\u03c1\u03b5\u03af\u03c4\u03b5 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03bc\u03bf\u03c5\u03c2 \u03c3\u03b5 \u03b4\u03b9\u03b1\u03b3\u03bd\u03c9\u03c3\u03c4\u03b9\u03ba\u03ac\u002c \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1\u002c \u03c0\u03b1\u03c1\u03b1\u03b4\u03b5\u03af\u03b3\u03bc\u03b1\u03c4\u03b1 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd \u03b3\u03b9\u03b1 \u03b4\u03bf\u03ba\u03b9\u03bc\u03ae\u002c \u03ba\u03b1\u03b8\u03ce\u03c2 \u03ba\u03b1\u03b9 \u03c4\u03b7 \u03c3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ae \u03c4\u03b5\u03ba\u03bc\u03b7\u03c1\u03af\u03c9\u03c3\u03b7." + "el": "<strong>\u03a3\u03c5\u03b3\u03c7\u03b1\u03c1\u03b7\u03c4\u03ae\u03c1\u03b9\u03b1<\/strong>, \u03ad\u03c7\u03b5\u03c4\u03b5 \u03b5\u03b3\u03ba\u03b1\u03c4\u03b1\u03c3\u03c4\u03ae\u03c3\u03b5\u03b9 \u03bc\u03b5 \u03b5\u03c0\u03b9\u03c4\u03c5\u03c7\u03af\u03b1 \u03c4\u03bf SimpleSAMLphp. \u0391\u03c5\u03c4\u03ae \u03b5\u03af\u03bd\u03b1\u03b9 \u03b7 \u03b1\u03c1\u03c7\u03b9\u03ba\u03ae \u03c3\u03b5\u03bb\u03af\u03b4\u03b1 \u03c4\u03b7\u03c2 \u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03ae\u03c2 \u03c3\u03b1\u03c2, \u03cc\u03c0\u03bf\u03c5 \u03b8\u03b1 \u03b2\u03c1\u03b5\u03af\u03c4\u03b5 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03bc\u03bf\u03c5\u03c2 \u03c3\u03b5 \u03b4\u03b9\u03b1\u03b3\u03bd\u03c9\u03c3\u03c4\u03b9\u03ba\u03ac\u002c \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1\u002c \u03c0\u03b1\u03c1\u03b1\u03b4\u03b5\u03af\u03b3\u03bc\u03b1\u03c4\u03b1 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd \u03b3\u03b9\u03b1 \u03b4\u03bf\u03ba\u03b9\u03bc\u03ae\u002c \u03ba\u03b1\u03b8\u03ce\u03c2 \u03ba\u03b1\u03b9 \u03c4\u03b7 \u03c3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ae \u03c4\u03b5\u03ba\u03bc\u03b7\u03c1\u03af\u03c9\u03c3\u03b7.", + "ca": "<strong>Felicitats<\/strong>, heu instal·lat correctament SimpleSAMLphp. Aquesta és la pàgina d'inici de la vostra instal·lació, on trobareu enllaços per provar exemples, diagnòstics, les metadades i documentació rellevant." }, "useful_links_header": { "no": "Nyttige lenker for denne installasjonen", @@ -67,7 +68,8 @@ "lv": "Der\u012bgas saites instal\u0101cijai", "sr": "Korisni linkovi", "ro": "Link-uri utile pentru instalare", - "el": "\u03a7\u03c1\u03ae\u03c3\u03b9\u03bc\u03bf\u03b9 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03bf\u03b9 \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03ae \u03c3\u03b1\u03c2" + "el": "\u03a7\u03c1\u03ae\u03c3\u03b9\u03bc\u03bf\u03b9 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03bf\u03b9 \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03ae \u03c3\u03b1\u03c2", + "ca": "Enllaços útils per a la vostra instal·lació" }, "metadata_header": { "no": "Metadata", @@ -102,7 +104,8 @@ "lv": "Metadati", "sr": "Medapodaci", "ro": "Metadate", - "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1" + "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1", + "ca": "Metadades" }, "doc_header": { "no": "Dokumentasjon", @@ -137,7 +140,8 @@ "lv": "Dokument\u0101cija", "sr": "Dokumentacija", "ro": "Documenta\u021bie", - "el": "\u03a4\u03b5\u03ba\u03bc\u03b7\u03c1\u03af\u03c9\u03c3\u03b7" + "el": "\u03a4\u03b5\u03ba\u03bc\u03b7\u03c1\u03af\u03c9\u03c3\u03b7", + "ca": "Documentació" }, "checkphp": { "no": "Sjekker din PHP installasjon", @@ -172,7 +176,8 @@ "lv": "P\u0101rbauda J\u016bsu PHP instal\u0101ciju", "sr": "Provera va\u0161e PHP instalacije", "ro": "Verificarea instal\u0103rii PHP", - "el": "\u0388\u03bb\u03b5\u03b3\u03c7\u03bf\u03c2 \u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7\u03c2 PHP" + "el": "\u0388\u03bb\u03b5\u03b3\u03c7\u03bf\u03c2 \u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7\u03c2 PHP", + "ca": "Comprovant la vostra instal·lació de PHP" }, "required": { "no": "P\u00e5krevd", @@ -207,7 +212,8 @@ "id": "Diperlukan", "sr": "Obavezno", "ro": "Necesar", - "el": "\u0391\u03c0\u03b1\u03b9\u03c4\u03b5\u03af\u03c4\u03b1\u03b9" + "el": "\u0391\u03c0\u03b1\u03b9\u03c4\u03b5\u03af\u03c4\u03b1\u03b9", + "ca": "Necessari" }, "required_ldap": { "no": "P\u00e5krevd for LDAP", @@ -242,7 +248,8 @@ "id": "Diperlukan untuk LDAP", "sr": "Obavezno za LDAP", "ro": "Necesar pentru LDAP", - "el": "\u0391\u03c0\u03b1\u03b9\u03c4\u03b5\u03af\u03c4\u03b1\u03b9 \u03b3\u03b9\u03b1 \u03c5\u03c0\u03bf\u03c3\u03c4\u03ae\u03c1\u03b9\u03be\u03b7 LDAP" + "el": "\u0391\u03c0\u03b1\u03b9\u03c4\u03b5\u03af\u03c4\u03b1\u03b9 \u03b3\u03b9\u03b1 \u03c5\u03c0\u03bf\u03c3\u03c4\u03ae\u03c1\u03b9\u03be\u03b7 LDAP", + "ca": "Necessari per LDAP" }, "required_radius": { "no": "P\u00e5krevd for Radius", @@ -277,7 +284,8 @@ "id": "Diperlukan untuk Radius", "sr": "Obavezno za Radius", "ro": "Necesar pentru RADIUS", - "el": "\u0391\u03c0\u03b1\u03b9\u03c4\u03b5\u03af\u03c4\u03b1\u03b9 \u03b3\u03b9\u03b1 \u03c5\u03c0\u03bf\u03c3\u03c4\u03ae\u03c1\u03b9\u03be\u03b7 RADIUS" + "el": "\u0391\u03c0\u03b1\u03b9\u03c4\u03b5\u03af\u03c4\u03b1\u03b9 \u03b3\u03b9\u03b1 \u03c5\u03c0\u03bf\u03c3\u03c4\u03ae\u03c1\u03b9\u03be\u03b7 RADIUS", + "ca": "Necessari per a Radius" }, "optional": { "no": "Valgfritt", @@ -312,7 +320,8 @@ "sr": "Opciono", "ro": "Op\u021bional", "eu": "Hautazkoa", - "el": "\u03a0\u03c1\u03bf\u03b1\u03b9\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc" + "el": "\u03a0\u03c1\u03bf\u03b1\u03b9\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc", + "ca": "Opcional" }, "recommended": { "no": "Anbefalt", @@ -347,7 +356,8 @@ "sr": "Preporu\u010deno", "ro": "Recomandat", "eu": "Gomendatua", - "el": "\u03a0\u03c1\u03bf\u03c4\u03b5\u03af\u03bd\u03b5\u03c4\u03b1\u03b9" + "el": "\u03a0\u03c1\u03bf\u03c4\u03b5\u03af\u03bd\u03b5\u03c4\u03b1\u03b9", + "ca": "Recomanat" }, "warnings": { "no": "Advarsler", @@ -382,7 +392,8 @@ "sr": "Upozorenja", "ro": "Aten\u021bion\u0103ri", "eu": "Oharrak", - "el": "\u03a0\u03c1\u03bf\u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03b9\u03c2" + "el": "\u03a0\u03c1\u03bf\u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03b9\u03c2", + "ca": "Advertències" }, "warnings_https": { "no": "<strong>Du bruker ikke HTTPS<\/strong> - kryptert kommunikasjon med brukeren. HTTP fungerer utmerket til testform\u00e5l, men i et produksjonsmilj\u00f8 anbefales sterkt \u00e5 skru p\u00e5 sikker kommunikasjon med HTTPS. [ <a href=\"https:\/\/simplesamlphp.org\/docs\/stable\/simplesamlphp-maintenance\">Les mer i dokumentet: SimpleSAMLphp maintenance<\/a> ]", @@ -417,7 +428,8 @@ "sr": "<strong>Ne koristite HTTPS<\/strong> - kriptovanu komunikaciju s korisnikom. HTTP se mo\u017ee koristiti za potrebe testiranja, ali u produkcionom okru\u017eenju trebali biste koristiti HTTPS. [ <a href=\"https:\/\/simplesamlphp.org\/docs\/stable\/simplesamlphp-maintenance\">Pro\u010ditajte vi\u0161e o SimpleSAMLphp pode\u0161avanjima<\/a> ]", "ro": "<strong>Aten\u021bie, nu utiliza\u021bi HTTPS<\/strong> - comunicare criptat\u0103 cu utilizatorul. HTTP func\u021bioneaza bine pentru teste, dar \u00een produc\u021bie trebuie folosit HTTPS. [<a href=\"https:\/\/simplesamlphp.org\/docs\/stable\/simplesamlphp-maintenance\">Citi\u021bi mai multe despre \u00eentre\u021binerea SimpleSAMLphp<\/a> ]", "eu": "<strong>Ez zara erabiltzen ari HTTPSak<\/strong> - erabiltzailearekin zifratutako komunikazioak. HTTP zuzen ibiltzen da ebaluaketa ingurunetan, baina ustiapenean erabili behar baduzu, HTTPS erabili beharko zenuke. [ <a href=\"https:\/\/simplesamlphp.org\/docs\/stable\/simplesamlphp-maintenance\">Irakur ezazu gehiago SimpleSAMLphp-ren mantentze-lanei buruz <\/a> ]", - "el": "\u0394\u03b5\u03bd \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b5\u03af\u03c4\u03b5 <strong>HTTPS<\/strong> \u03b3\u03b9\u03b1 \u03ba\u03c1\u03c5\u03c0\u03c4\u03bf\u03b3\u03c1\u03b1\u03c6\u03b7\u03bc\u03ad\u03bd\u03b7 \u03b5\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03af\u03b1 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7. \u03a4\u03bf HTTP \u03b5\u03c0\u03b1\u03c1\u03ba\u03b5\u03af \u03b3\u03b9\u03b1 \u03b4\u03bf\u03ba\u03b9\u03bc\u03b1\u03c3\u03c4\u03b9\u03ba\u03bf\u03cd\u03c2 \u03c3\u03ba\u03bf\u03c0\u03bf\u03cd\u03c2, \u03c9\u03c3\u03c4\u03cc\u03c3\u03bf \u03c3\u03b5 \u03c0\u03b5\u03c1\u03b9\u03b2\u03ac\u03bb\u03bb\u03bf\u03bd \u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03ae\u03c2 \u03b8\u03b1 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03c4\u03b5 \u0048\u0054\u0054\u0050\u0053. [ <a href=\"https:\/\/simplesamlphp.org\/docs\/stable\/simplesamlphp-maintenance\">\u0394\u03b9\u03b1\u03b2\u03ac\u03c3\u03c4\u03b5 \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03b1...<\/a> ]" + "el": "\u0394\u03b5\u03bd \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b5\u03af\u03c4\u03b5 <strong>HTTPS<\/strong> \u03b3\u03b9\u03b1 \u03ba\u03c1\u03c5\u03c0\u03c4\u03bf\u03b3\u03c1\u03b1\u03c6\u03b7\u03bc\u03ad\u03bd\u03b7 \u03b5\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03af\u03b1 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7. \u03a4\u03bf HTTP \u03b5\u03c0\u03b1\u03c1\u03ba\u03b5\u03af \u03b3\u03b9\u03b1 \u03b4\u03bf\u03ba\u03b9\u03bc\u03b1\u03c3\u03c4\u03b9\u03ba\u03bf\u03cd\u03c2 \u03c3\u03ba\u03bf\u03c0\u03bf\u03cd\u03c2, \u03c9\u03c3\u03c4\u03cc\u03c3\u03bf \u03c3\u03b5 \u03c0\u03b5\u03c1\u03b9\u03b2\u03ac\u03bb\u03bb\u03bf\u03bd \u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03ae\u03c2 \u03b8\u03b1 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03c4\u03b5 \u0048\u0054\u0054\u0050\u0053. [ <a href=\"https:\/\/simplesamlphp.org\/docs\/stable\/simplesamlphp-maintenance\">\u0394\u03b9\u03b1\u03b2\u03ac\u03c3\u03c4\u03b5 \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03b1...<\/a> ]", + "ca": "<strong>No utilitzeu HTTPS<\/strong> - comunicació xifrada amb l'usuari. HTTP funciona bé per a proves, però en un entorn de producció, heu d’utilitzar HTTPS. [ <a href=\"https:\/\/simplesamlphp.org\/docs\/stable\/simplesamlphp-maintenance\">Llegiu més sobre el manteniment de SimpleSAMLphp<\/a> ]" }, "link_saml2example": { "no": "SAML 2.0 SP eksempel - test innlogging med SAML 2.0 via din IdP", @@ -452,7 +464,8 @@ "sr": "SAML 2.0 SP primer - testirajte autentifikaciju kroz va\u0161 Davalac Identieta", "ro": "Exemplu furnizor de servicii SAML 2.0 - testarea autentific\u0103rii prin furnizorul dumneavoastr\u0103 de identitate", "eu": "SPren adibidea SAML 2.0rekin - saiakera zure IdP erabiliz sartzen", - "el": "\u03a0\u03b1\u03c1\u03ac\u03b4\u03b5\u03b9\u03b3\u03bc\u03b1 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd SAML 2.0 - \u03b4\u03bf\u03ba\u03b9\u03bc\u03ae \u03b5\u03b9\u03c3\u03cc\u03b4\u03bf\u03c5 \u03bc\u03ad\u03c3\u03c9 \u03c4\u03bf\u03c5 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03ac\u03c2 \u03c3\u03b1\u03c2" + "el": "\u03a0\u03b1\u03c1\u03ac\u03b4\u03b5\u03b9\u03b3\u03bc\u03b1 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd SAML 2.0 - \u03b4\u03bf\u03ba\u03b9\u03bc\u03ae \u03b5\u03b9\u03c3\u03cc\u03b4\u03bf\u03c5 \u03bc\u03ad\u03c3\u03c9 \u03c4\u03bf\u03c5 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03ac\u03c2 \u03c3\u03b1\u03c2", + "ca": "Exemple de SAML 2.0 SP: proveu el registre a través del vostre IdP" }, "link_shib13example": { "no": "Shibboleth 1.3 SP eksempel - test innlogging med Shibboleth 1.3 via din IdP", @@ -487,7 +500,8 @@ "sr": "Shibboleth 1.3 SP primer - testirajte autentifikaciju kroz va\u0161 Shib Davalac Servisa", "ro": "Exemplu furnizor de servicii Shibboleth 1.3 - testarea autentific\u0103rii prin furnizorul dumneavoastr\u0103 de identitate Shib", "eu": "SPren adibidea Shibboleth 1.3 erabiliz - saikera zure IdP Shibboleth erabiliz sartzen", - "el": "\u03a0\u03b1\u03c1\u03ac\u03b4\u03b5\u03b9\u03b3\u03bc\u03b1 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd Shibboleth 1.3 - \u03b4\u03bf\u03ba\u03b9\u03bc\u03ae \u03b5\u03b9\u03c3\u03cc\u03b4\u03bf\u03c5 \u03bc\u03ad\u03c3\u03c9 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 Shibboleth 1.3" + "el": "\u03a0\u03b1\u03c1\u03ac\u03b4\u03b5\u03b9\u03b3\u03bc\u03b1 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd Shibboleth 1.3 - \u03b4\u03bf\u03ba\u03b9\u03bc\u03ae \u03b5\u03b9\u03c3\u03cc\u03b4\u03bf\u03c5 \u03bc\u03ad\u03c3\u03c9 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 Shibboleth 1.3", + "ca": "Exemple de Shibboleth 1.3 SP: proveu el registre a través del vostre IdP" }, "link_openidprovider": { "no": "OpenID Provider side - Alpha versjon (testkode)", @@ -522,7 +536,8 @@ "sr": "Davalac OpenID digitalnih identiteta - razvojna verzija (test)", "ro": "Furnizor OpenID - versiune alpha (cod de test)", "eu": "OpenID hornitzailearen gunea - Alfa bertsioa (proba kodea)", - "el": "\u03a3\u03b5\u03bb\u03af\u03b4\u03b1 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 OpenID - \u0388\u03ba\u03b4\u03bf\u03c3\u03b7 Alpha (\u03b4\u03bf\u03ba\u03b9\u03bc\u03b1\u03c3\u03c4\u03b9\u03ba\u03cc\u03c2 \u03ba\u03ce\u03b4\u03b9\u03ba\u03b1\u03c2)" + "el": "\u03a3\u03b5\u03bb\u03af\u03b4\u03b1 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 OpenID - \u0388\u03ba\u03b4\u03bf\u03c3\u03b7 Alpha (\u03b4\u03bf\u03ba\u03b9\u03bc\u03b1\u03c3\u03c4\u03b9\u03ba\u03cc\u03c2 \u03ba\u03ce\u03b4\u03b9\u03ba\u03b1\u03c2)", + "ca": "Lloc del proveïdor d'OpenID: versió Alpha (codi de prova)" }, "link_diagnostics": { "no": "Diagnostiser hostnavn, port og protokoll", @@ -557,7 +572,8 @@ "sr": "Dijagnostika vezana za naziv servera (hostname), port i protokol ", "ro": "Diagnostic despre numele de host, port \u0219i protocol", "eu": "Host, ataka eta protokoloen gaineko diagnostikoa", - "el": "\u0394\u03b9\u03b1\u03b3\u03bd\u03c9\u03c3\u03c4\u03b9\u03ba\u03ac \u03c3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ac \u03bc\u03b5 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2 \u03bf\u03bd\u03cc\u03bc\u03b1\u03c4\u03bf\u03c2 \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae\u002c \u03b8\u03cd\u03c1\u03b1\u03c2 \u03ba\u03b1\u03b9 \u03c0\u03c1\u03c9\u03c4\u03bf\u03ba\u03cc\u03bb\u03bb\u03bf\u03c5" + "el": "\u0394\u03b9\u03b1\u03b3\u03bd\u03c9\u03c3\u03c4\u03b9\u03ba\u03ac \u03c3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ac \u03bc\u03b5 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2 \u03bf\u03bd\u03cc\u03bc\u03b1\u03c4\u03bf\u03c2 \u03b4\u03b9\u03b1\u03ba\u03bf\u03bc\u03b9\u03c3\u03c4\u03ae\u002c \u03b8\u03cd\u03c1\u03b1\u03c2 \u03ba\u03b1\u03b9 \u03c0\u03c1\u03c9\u03c4\u03bf\u03ba\u03cc\u03bb\u03bb\u03bf\u03c5", + "ca": "Diagnòstic sobre el nom de host, el port i el protocol" }, "link_phpinfo": { "no": "PHPinfo", @@ -592,7 +608,8 @@ "id": "PHP info", "sr": "Informacije o PHP instalaciji", "ro": "Informa\u021bii despre PHP", - "el": "\u03a0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 PHP" + "el": "\u03a0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 PHP", + "ca": "PHP info" }, "link_meta_overview": { "no": "Oversikt over metadata for din installasjon. Diagnostiser metadatafilene her.", @@ -627,7 +644,8 @@ "sr": "Pregled metapodataka o va\u0161oj instalaciji. Proverite ispravnost sadr\u017eaja fajlova sa metapodacima.", "ro": "Privire de ansamblu a metadatelor pentru instalarea dumneavoastr\u0103. Diagnostica\u021bi fi\u0219ierele cu metadate", "eu": "Zure instalazioko metadatuen ikuspegi orokorra. Egiaztatu zure metadatu fitxategiak", - "el": "\u0395\u03c0\u03b9\u03c3\u03ba\u03cc\u03c0\u03b7\u03c3\u03b7 \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03ae \u03c3\u03b1\u03c2. \u0394\u03b9\u03ac\u03b3\u03bd\u03c9\u03c3\u03b7 \u03c4\u03c9\u03bd \u03b1\u03c1\u03c7\u03b5\u03af\u03c9\u03bd \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03c3\u03b1\u03c2" + "el": "\u0395\u03c0\u03b9\u03c3\u03ba\u03cc\u03c0\u03b7\u03c3\u03b7 \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03ae \u03c3\u03b1\u03c2. \u0394\u03b9\u03ac\u03b3\u03bd\u03c9\u03c3\u03b7 \u03c4\u03c9\u03bd \u03b1\u03c1\u03c7\u03b5\u03af\u03c9\u03bd \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03c3\u03b1\u03c2", + "ca": "Visió general de metadades per a la vostra instal·lació. Comprova els teus fitxers de metadades" }, "link_meta_saml2sphosted": { "no": "Hosted SAML 2.0 Service Provider Metadata (automatisk generert)", @@ -662,7 +680,8 @@ "sr": "Metapodaci za lokalni SAML 2.0 Davalac Servisa (automatski generisani)", "ro": "Metadate pentru furnizorul de servicii SAML 2.0 g\u0103zduit (generate automat)", "eu": "SP SAML 2.0ren ostatatutako metadatuak (automatikoki sortuak)", - "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03c6\u03b9\u03bb\u03bf\u03be\u03b5\u03bd\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf\u03c5 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd SAML 2.0 (\u03c0\u03b1\u03c1\u03ac\u03b3\u03bf\u03bd\u03c4\u03b1\u03b9 \u03b1\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03b1)" + "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03c6\u03b9\u03bb\u03bf\u03be\u03b5\u03bd\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf\u03c5 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd SAML 2.0 (\u03c0\u03b1\u03c1\u03ac\u03b3\u03bf\u03bd\u03c4\u03b1\u03b9 \u03b1\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03b1)", + "ca": "Metadades del proveïdor de serveis SAML 2.0 allotjades (generades automàticament)" }, "link_meta_saml2idphosted": { "no": "Hosted SAML 2.0 Identity Provider Metadata (automatisk generert)", @@ -697,7 +716,8 @@ "sr": "Metapodaci za lokalni SAML 2.0 Davalac Identiteta (automatski generisani) ", "ro": "Metadate pentru furnizorul de identitate SAML 2.0 g\u0103zduit (generate automat)", "eu": "IdP SAML 2.0ren ostatatutako metadatuak (automatikoki sortuak)", - "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03c6\u03b9\u03bb\u03bf\u03be\u03b5\u03bd\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf\u03c5 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 SAML 2.0 (\u03c0\u03b1\u03c1\u03ac\u03b3\u03bf\u03bd\u03c4\u03b1\u03b9 \u03b1\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03b1)" + "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03c6\u03b9\u03bb\u03bf\u03be\u03b5\u03bd\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf\u03c5 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 SAML 2.0 (\u03c0\u03b1\u03c1\u03ac\u03b3\u03bf\u03bd\u03c4\u03b1\u03b9 \u03b1\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03b1)", + "ca": "Metadades de proveïdors d'identitat SAML 2.0 allotjades (generats automàticament)" }, "link_meta_shib13sphosted": { "no": "Hosted Shibboleth 1.3 Service Provider Metadata (automatisk generert)", @@ -732,7 +752,8 @@ "sr": "Metapodaci za lokalni Shibboleth 1.3 Davalac Servisa (automatski generisani)", "ro": "Metadate pentru furnizorul de servicii Shibboleth 1.3 g\u0103zduit (generate automat)", "eu": "SP Shibooleth 1.3ren ostatatutako metadatuak (automatikoki sortuak)", - "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03c6\u03b9\u03bb\u03bf\u03be\u03b5\u03bd\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf\u03c5 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd Shibboleth 1.3 (\u03c0\u03b1\u03c1\u03ac\u03b3\u03bf\u03bd\u03c4\u03b1\u03b9 \u03b1\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03b1)" + "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03c6\u03b9\u03bb\u03bf\u03be\u03b5\u03bd\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf\u03c5 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd Shibboleth 1.3 (\u03c0\u03b1\u03c1\u03ac\u03b3\u03bf\u03bd\u03c4\u03b1\u03b9 \u03b1\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03b1)", + "ca": "Metadades del proveïdor de serveis Shibboleth 1.3 allotjades (generades automàticament)" }, "link_meta_shib13idphosted": { "no": "Hosted Shibboleth 1.3 Identity Provider Metadata (automatisk generert)", @@ -767,7 +788,8 @@ "sr": "Metapodaci za lokalni Shibboleth 1.3 Davalac Identiteta (automatski generisani)", "ro": "Metadate pentru furnizorul de identitate Shibboleth 1.3 g\u0103zduit (generate automat)", "eu": "IdP Shibooleth 1.3ren ostatatutako metadatuak (automatikoki sortuak)", - "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03c6\u03b9\u03bb\u03bf\u03be\u03b5\u03bd\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf\u03c5 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 Shibboleth 1.3 (\u03c0\u03b1\u03c1\u03ac\u03b3\u03bf\u03bd\u03c4\u03b1\u03b9 \u03b1\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03b1)" + "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03c6\u03b9\u03bb\u03bf\u03be\u03b5\u03bd\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf\u03c5 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 Shibboleth 1.3 (\u03c0\u03b1\u03c1\u03ac\u03b3\u03bf\u03bd\u03c4\u03b1\u03b9 \u03b1\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03b1)", + "ca": "Metadades del proveïdor d’identitat Shibboleth 1.3 allotjades (generades automàticament)" }, "link_xmlconvert": { "no": "XML til SimpleSAMLphp metadata-oversetter", @@ -802,7 +824,8 @@ "sr": "Pretvaranje metapodataka iz XML formata u SimpleSAMLphp format", "ro": "Convertor metadate din XML \u00een SimpleSAMLphp", "eu": "XML-tik SimpleSAMLphp metadatuetara bihurgailua", - "el": "\u039c\u03b5\u03c4\u03b1\u03c4\u03c1\u03bf\u03c0\u03ae \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03b1\u03c0\u03cc XML \u03c3\u03b5 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2 SimpleSAMLphp" + "el": "\u039c\u03b5\u03c4\u03b1\u03c4\u03c1\u03bf\u03c0\u03ae \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03b1\u03c0\u03cc XML \u03c3\u03b5 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2 SimpleSAMLphp", + "ca": "Convertidor d'XML a metadades de SimpleSAMLphp" }, "link_doc_install": { "no": "Installerer SimpleSAMLphp", @@ -837,7 +860,8 @@ "id": "Instalasi SimpleSAMLphp", "sr": "Instalacija SimpleSAMLphp-a", "ro": "Se instaleaz\u0103 SimpleSAMLphp", - "el": "\u0395\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 SimpleSAMLphp" + "el": "\u0395\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 SimpleSAMLphp", + "ca": "Instal·lació de SimpleSAMLphp" }, "link_doc_sp": { "no": "Bruk SimpleSAMLphp som Service Provider", @@ -872,7 +896,8 @@ "id": "Menggunakan SimpleSAMLphp sebagai Service Provider", "sr": "Kako iskoristiti SimpleSAMLphp kao autentifikacioni modul kod Davaoca Servisa", "ro": "Utilizarea SimpleSAMLphp ca furnizor de servicii", - "el": "\u03a7\u03c1\u03ae\u03c3\u03b7 SimpleSAMLphp \u03b3\u03b9\u03b1 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5\u03c2 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd" + "el": "\u03a7\u03c1\u03ae\u03c3\u03b7 SimpleSAMLphp \u03b3\u03b9\u03b1 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5\u03c2 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd", + "ca": "Ús de SimpleSAMLphp com a proveïdor de serveis" }, "link_doc_idp": { "no": "Bruk SimpleSAMLphp som identitetstjeneste", @@ -907,7 +932,8 @@ "id": "Menggunakan SimpleSAMLphp sebagai Identity Provider", "sr": "Kako iskoristiti SimpleSAMLphp za implementaciju Davaoca Identiteta", "ro": "Utilizarea SimpleSAMLphp ca furnizor de identitate", - "el": "\u03a7\u03c1\u03ae\u03c3\u03b7 SimpleSAMLphp \u03b3\u03b9\u03b1 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5\u03c2 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2" + "el": "\u03a7\u03c1\u03ae\u03c3\u03b7 SimpleSAMLphp \u03b3\u03b9\u03b1 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5\u03c2 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2", + "ca": "Ús de SimpleSAMLphp com a proveïdor d’identitat" }, "link_doc_shibsp": { "no": "Konfigurer Shibboleth 1.3 SP for \u00e5 fungere sammen med SimpleSAMLphp identitetstjeneste", @@ -942,7 +968,8 @@ "id": "Mengkonfigurasi Shibboleth 1.3 SP untuk bekerja dengan SimpleSAMLphp IdP", "sr": "Podesite Shibboleth 1.3 SP za rad sa SimpleSAMLphp Davaocem Identeteta", "ro": "Configurare furnizor de servicii Shibboleth 1.3 care s\u0103 func\u021bioneze cu furnizor de identitate SimpleSAMLphp", - "el": "\u03a1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd Shibboleth 1.3 \u0053\u0068\u0069\u0062\u0062\u006f\u006c\u0065\u0074\u0068 \u0031\u002e\u0033 \u03b3\u03b9\u03b1 \u03c3\u03c5\u03bc\u03b2\u03b1\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1 \u03bc\u03b5 \u03a0\u03ac\u03c1\u03bf\u03c7\u03bf \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 SimpleSAMLphp" + "el": "\u03a1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd Shibboleth 1.3 \u0053\u0068\u0069\u0062\u0062\u006f\u006c\u0065\u0074\u0068 \u0031\u002e\u0033 \u03b3\u03b9\u03b1 \u03c3\u03c5\u03bc\u03b2\u03b1\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1 \u03bc\u03b5 \u03a0\u03ac\u03c1\u03bf\u03c7\u03bf \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 SimpleSAMLphp", + "ca": "Configureu Shibboleth 1.3 SP per treballar amb SimpleSAMLphp IdP" }, "link_doc_googleapps": { "no": "SimpleSAMLphp som identitetstjeneste for Google Apps for Education", @@ -977,7 +1004,8 @@ "id": "SimpleSAMLphp sebagai IdP untuk Google Apps for Education", "sr": "SimpleSAMLphp kao autentifikacioni servis za Google Apps for Education", "ro": "Furnizor de identitate cu SimpleSAMLphp pentru GoogleApps \u00een educa\u021bie", - "el": "\u03a4\u03bf SimpleSAMLphp \u03c9\u03c2 \u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 \u03b3\u03b9\u03b1 Google Apps" + "el": "\u03a4\u03bf SimpleSAMLphp \u03c9\u03c2 \u03a0\u03ac\u03c1\u03bf\u03c7\u03bf\u03c2 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 \u03b3\u03b9\u03b1 Google Apps", + "ca": "SimpleSAMLphp com a IdP per a Google Apps for Education" }, "link_doc_advanced": { "no": "SimpleSAMLphp avansert funksjonalitet", @@ -1012,7 +1040,8 @@ "id": "Fitur Lanjutan SimpleSAMLphp", "sr": "Napredne mogu\u0107nosti SimpleSAMLphp-a", "ro": "Caracteristici avansate ale SimpleSAMLphp", - "el": "\u03a0\u03c1\u03bf\u03b7\u03b3\u03bc\u03ad\u03bd\u03b1 \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03b7\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03ac \u03c4\u03bf\u03c5 SimpleSAMLphp" + "el": "\u03a0\u03c1\u03bf\u03b7\u03b3\u03bc\u03ad\u03bd\u03b1 \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03b7\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03ac \u03c4\u03bf\u03c5 SimpleSAMLphp", + "ca": "Característiques avançades de SimpleSAMLphp" }, "link_doc_maintenance": { "no": "SimpleSAMLphp vedlikehold og konfigurasjon", @@ -1047,7 +1076,8 @@ "id": "Konfigurasi dan Pemeliharaan SimpleSAMLphp", "sr": "Odr\u017eavanje i pode\u0161avanja SimpleSAMLphp-a", "ro": "\u00centre\u021binerea \u0219i configurarea SimpleSAMLphp", - "el": "\u03a3\u03c5\u03bd\u03c4\u03ae\u03c1\u03b7\u03c3\u03b7 \u03ba\u03b1\u03b9 \u03b4\u03b9\u03b1\u03bc\u03cc\u03c1\u03c6\u03c9\u03c3\u03b7 \u03c4\u03bf\u03c5 SimpleSAMLphp" + "el": "\u03a3\u03c5\u03bd\u03c4\u03ae\u03c1\u03b7\u03c3\u03b7 \u03ba\u03b1\u03b9 \u03b4\u03b9\u03b1\u03bc\u03cc\u03c1\u03c6\u03c9\u03c3\u03b7 \u03c4\u03bf\u03c5 SimpleSAMLphp", + "ca": "Manteniment i configuració de SimpleSAMLphp" }, "link_configcheck": { "no": "Sjekk av SimpleSAMLphp konfigurasjonsfiler", @@ -1081,7 +1111,8 @@ "id": "Pemeriksaan konfigurasi SimpleSAMLphp", "sr": "Provera SimpleSAMLphp pode\u0161avanja", "ro": "Verificarea configura\u021biei SimpleSAMLphp", - "el": "\u0388\u03bb\u03b5\u03b3\u03c7\u03bf\u03c2 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd SimpleSAMLphp" + "el": "\u0388\u03bb\u03b5\u03b3\u03c7\u03bf\u03c2 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd SimpleSAMLphp", + "ca": "Verificació de la configuració de SimpleSAMLphp" }, "link_cleardiscochoices": { "no": "Slett mitt valg av IdP i IdP discovery tjenestene", @@ -1115,7 +1146,8 @@ "sr": "Poni\u0161ti moj izbor za Davaoca Identiteta u servisima za pronala\u017eenje Davaoca Identiteta ", "ro": "\u0218terge furnizorii de identitate ale\u0219i de mine din serviciile de c\u0103utare a furnizorilor de identitate", "eu": "Nire IdP aukerak ezabatu IdP aurkikuntza zerbitzuetan", - "el": "\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03bc\u03ad\u03bd\u03b7\u03c2 \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae\u03c2 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2" + "el": "\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03bc\u03ad\u03bd\u03b7\u03c2 \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae\u03c2 \u03a0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03a4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2", + "ca": "Elimineu les meves opcions d'IdP als serveis de descoberta d'IdP" }, "welcome": { "no": "Velkommen", @@ -1149,7 +1181,8 @@ "id": "Selamat Datang", "sr": "Dobrodo\u0161li", "ro": "Bine a\u021bi venit", - "el": "\u039a\u03b1\u03bb\u03ce\u03c2 \u03bf\u03c1\u03af\u03c3\u03b1\u03c4\u03b5" + "el": "\u039a\u03b1\u03bb\u03ce\u03c2 \u03bf\u03c1\u03af\u03c3\u03b1\u03c4\u03b5", + "ca": "Benvingut" }, "configuration": { "no": "Konfigurasjon", @@ -1183,7 +1216,8 @@ "id": "Konfigurasi", "sr": "Pode\u0161avanja", "ro": "Configurare", - "el": "\u03a1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2" + "el": "\u03a1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2", + "ca": "Configuració" }, "metadata": { "no": "Metadata", @@ -1217,7 +1251,8 @@ "id": "Metadata", "sr": "Metapodaci", "ro": "Metadate", - "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1" + "el": "\u039c\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1", + "ca": "Metadades" }, "tools": { "no": "Verkt\u00f8y", @@ -1251,7 +1286,8 @@ "id": "Peralatan", "sr": "Alati", "ro": "Unelte", - "el": "\u0395\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03b1" + "el": "\u0395\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03b1", + "ca": "Eines" }, "show_metadata": { "no": "Vis metadata", @@ -1285,7 +1321,8 @@ "id": "Perlihatkan metadata", "sr": "Prika\u017ei metapodatke", "ro": "Vizualizare metadate", - "el": "\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd" + "el": "\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd", + "ca": "Mostra les metadades" }, "login_as_admin": { "no": "Login som administrator", @@ -1319,7 +1356,8 @@ "id": "Login sebagai administrator", "sr": "Prijavite se kao administrator", "ro": "Autentificare ca adminstrator", - "el": "\u0395\u03af\u03c3\u03bf\u03b4\u03bf\u03c2 \u03c9\u03c2 \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae\u03c2" + "el": "\u0395\u03af\u03c3\u03bf\u03b4\u03bf\u03c2 \u03c9\u03c2 \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae\u03c2", + "ca": "Inicieu la sessió com a administrador" }, "loggedin_as_admin": { "no": "Du er logget inn som administrator", @@ -1353,11 +1391,13 @@ "id": "Anda login sebagai administrator", "sr": "Prijavljeni ste kao administrator", "ro": "V-a\u021bi autentificat ca administrator", - "el": "\u03a3\u03c5\u03bd\u03b4\u03b5\u03b4\u03b5\u03bc\u03ad\u03bd\u03bf\u03c2 \u03c9\u03c2 \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae\u03c2" + "el": "\u03a3\u03c5\u03bd\u03b4\u03b5\u03b4\u03b5\u03bc\u03ad\u03bd\u03bf\u03c2 \u03c9\u03c2 \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae\u03c2", + "ca": "Heu iniciat la sessió com a administrador" }, "logout": { "en": "Logout", - "nl": "Uitloggen" + "nl": "Uitloggen", + "ca": "Tancar sessió" }, "auth": { "no": "Autentisering", @@ -1378,7 +1418,7 @@ "hu": "Azonos\u00edt\u00e1s (autentik\u00e1ci\u00f3)", "ja": "\u8a8d\u8a3c", "zh-tw": "\u8a8d\u8b49", - "pl": "Autentykacja", + "pl": "Uwierzytelnianie", "ru": "\u0410\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f", "et": "Autentimine", "he": "\u05d0\u05d9\u05de\u05d5\u05ea", @@ -1391,7 +1431,8 @@ "ro": "Autentificare", "cs": "Autentizace", "eu": "Kautotzea", - "el": "\u03a4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7" + "el": "\u03a4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7", + "ca": "Autenticació" }, "federation": { "no": "F\u00f8derasjon", @@ -1425,7 +1466,8 @@ "ro": "Federa\u021bie", "cs": "Federace", "eu": "Federazioa", - "el": "\u039f\u03bc\u03bf\u03c3\u03c0\u03bf\u03bd\u03b4\u03af\u03b1" + "el": "\u039f\u03bc\u03bf\u03c3\u03c0\u03bf\u03bd\u03b4\u03af\u03b1", + "ca": "Federació" }, "authtest": { "no": "Test konfigurerte autentiseringskilder", @@ -1457,7 +1499,8 @@ "ro": "Surse de autentificare configurate pentru teste", "cs": "Otestovat nakonfigurovan\u00e9 autentiza\u010dn\u00ed zdroje", "eu": "Frogatu kautotzeko jada konfiguratuak dauden iturriak", - "el": "\u0394\u03bf\u03ba\u03b9\u03bc\u03ae \u03c0\u03b7\u03b3\u03ce\u03bd \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2 \u03c0\u03bf\u03c5 \u03ad\u03c7\u03bf\u03c5\u03bd \u03c1\u03c5\u03b8\u03bc\u03b9\u03c3\u03c4\u03b5\u03af" + "el": "\u0394\u03bf\u03ba\u03b9\u03bc\u03ae \u03c0\u03b7\u03b3\u03ce\u03bd \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2 \u03c0\u03bf\u03c5 \u03ad\u03c7\u03bf\u03c5\u03bd \u03c1\u03c5\u03b8\u03bc\u03b9\u03c3\u03c4\u03b5\u03af", + "ca": "Proveu les fonts d’autenticació configurades" }, "deprecated": { "no": "Utdatert", @@ -1490,7 +1533,8 @@ "ro": "Depreciate", "cs": "Zastaral\u00e9", "eu": "Zaharkitua", - "el": "\u03a5\u03c0\u03cc \u03b1\u03c0\u03cc\u03c3\u03c5\u03c1\u03c3\u03b7" + "el": "\u03a5\u03c0\u03cc \u03b1\u03c0\u03cc\u03c3\u03c5\u03c1\u03c3\u03b7", + "ca": "Obsolet" }, "page_title": { "sv": "Installationssida f\u00f6r SimpleSAMLphp", @@ -1520,7 +1564,8 @@ "ro": "Pagina de instalare a SimpleSAMLphp", "cs": "Instala\u010dn\u00ed str\u00e1nka SimpleSAMLphp", "eu": "SimpleSAMLphp instalatzeko orria", - "el": "\u03a3\u03b5\u03bb\u03af\u03b4\u03b1 \u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7\u03c2 SimpleSAMLphp" + "el": "\u03a3\u03b5\u03bb\u03af\u03b4\u03b1 \u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7\u03c2 SimpleSAMLphp", + "ca": "Pàgina d’instal·lació de SimpleSAMLphp" }, "warnings_suhosin_url_length": { "no": "Lengden p\u00e5 foresp\u00f8rselparametre er begrenset av PHP Suhosin utvidelsen. Vennligst \u00f8k suhosin.get.max_value_length konfigurasjonsinnstillingen til minst 2048 tegn.", @@ -1550,7 +1595,8 @@ "cs": "D\u00e9lka parametr\u016f dotazu je limitov\u00e1na roz\u0161\u00ed\u0159en\u00edm PHP Suhosin. Pros\u00edm, zvy\u0161te parametr suhosin.get.max_value_length alespo\u0148 na 2048 bajt\u016f.", "eu": "Eskaeraren parametroen luzera PHP Suhosin luzapenak mugatzen du. Mesedez, luza ezazu suhosin.get.max_value_length aukeraren balioa gutxienez 2048 bytetara. ", "zh-tw": "\u8b8a\u6578\u8981\u6c42\u9577\u5ea6\u65bc PHP Suhosin \u5957\u4ef6\u4e2d\u88ab\u9650\u5236\u3002\u8acb\u589e\u52a0 suhosin.get.max_value_length \u4e4b\u53c3\u6578\u81f3 2048 bytes \u4ee5\u4e0a\u3002", - "el": "\u03a4\u03bf \u03bc\u03ae\u03ba\u03bf\u03c2 \u03c4\u03c9\u03bd \u03c0\u03b1\u03c1\u03b1\u03bc\u03ad\u03c4\u03c1\u03c9\u03bd \u0071\u0075\u0065\u0072\u0079 \u03c0\u03b5\u03c1\u03b9\u03bf\u03c1\u03af\u03b6\u03b5\u03c4\u03b1\u03b9 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd \u03b5\u03c0\u03ad\u03ba\u03c4\u03b1\u03c3\u03b7 Suhosin \u03c4\u03b7\u03c2 PHP. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03b5\u03af\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03b1\u03c5\u03be\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b7\u03bd \u03c4\u03b9\u03bc\u03ae \u03c4\u03b7\u03c2 \u03c0\u03b1\u03c1\u03b1\u03bc\u03ad\u03c4\u03c1\u03bf\u03c5 'suhosin.get.max_value_length' \u03c4\u03bf\u03c5\u03bb\u03ac\u03c7\u03b9\u03c3\u03c4\u03bf\u03bd \u03c3\u03c4\u03b1 2048 bytes." + "el": "\u03a4\u03bf \u03bc\u03ae\u03ba\u03bf\u03c2 \u03c4\u03c9\u03bd \u03c0\u03b1\u03c1\u03b1\u03bc\u03ad\u03c4\u03c1\u03c9\u03bd \u0071\u0075\u0065\u0072\u0079 \u03c0\u03b5\u03c1\u03b9\u03bf\u03c1\u03af\u03b6\u03b5\u03c4\u03b1\u03b9 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd \u03b5\u03c0\u03ad\u03ba\u03c4\u03b1\u03c3\u03b7 Suhosin \u03c4\u03b7\u03c2 PHP. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03b5\u03af\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03b1\u03c5\u03be\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b7\u03bd \u03c4\u03b9\u03bc\u03ae \u03c4\u03b7\u03c2 \u03c0\u03b1\u03c1\u03b1\u03bc\u03ad\u03c4\u03c1\u03bf\u03c5 'suhosin.get.max_value_length' \u03c4\u03bf\u03c5\u03bb\u03ac\u03c7\u03b9\u03c3\u03c4\u03bf\u03bd \u03c3\u03c4\u03b1 2048 bytes.", + "ca": "La longitud dels paràmetres de consulta està limitada per l’extensió PHP Suhosin. Augmenteu l’opció suhosin.get.max_value_length a com a mínim 2048 bytes." }, "warnings_secretsalt": { "es": "<strong>Su configuración está usando el <em>salt<\/em> por defecto<\/strong>. Asegúrese de modificar la opción de configuración 'secretsalt' en entornos de producción. [<a href=\"https:\/\/simplesamlphp.org\/docs\/devel\/simplesamlphp-install\">Leer más sobre la configuración de SimpleSAMLphp<\/a>]", @@ -1558,14 +1604,23 @@ "zh-tw": "<strong>\u76ee\u524d\u8a2d\u5b9a\u6a94\u4f7f\u7528\u9810\u8a2d\u7684\u96dc\u6e4a\u53c3\u6578 (salt)<\/strong> - \u5728\u60a8\u4e0a\u7dda\u904b\u4f5c\u524d\u8acb\u78ba\u8a8d\u60a8\u5df2\u65bc simpleSAML \u8a2d\u5b9a\u9801\u4e2d\u4fee\u6539\u9810\u8a2d\u7684 'secretsalt'\u3002[<a href=\"https:\/\/simplesamlphp.org\/docs\/stable\/simplesamlphp-install\">\u95b1\u8b80\u66f4\u591a\u95dc\u65bc SimpleSAMLphp \u7684\u8a2d\u5b9a\u65b9\u5f0f<\/a> ]", "nl": "<strong>De configuratie bevat de standaard secret salt<\/strong> - verander altijd de 'secretsalt'-optie in de simpleSAML-configuratie voor productieomgevingen. [<a href=\"https:\/\/simplesamlphp.org\/docs\/stable\/simplesamlphp-install\">Lees meer over het configureren van SimpleSAMLphp<\/a> ]", "da": "<strong>Ops\u00e6tningen benytter standard 'secret salt'<\/strong> - s\u00f8rg for at \u00e6ndre standard indstillingen for 'secretsalt' i simpleSAML ops\u00e6tningen i produktionssystemer. [<a href=\"https:\/\/simplesamlphp.org\/docs\/stable\/simplesamlphp-install\">L\u00e6s mere om SimpleSAMLphp ops\u00e6tning.<\/a> ]", - "el": "<strong>\u03a7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b5\u03af\u03c4\u03b5 \u03c4\u03b7\u03bd \u03c0\u03c1\u03bf\u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03b7 \u03c4\u03b9\u03bc\u03ae \u03c4\u03bf\u03c5 \u03bc\u03c5\u03c3\u03c4\u03b9\u03ba\u03bf\u03cd \u03ba\u03bb\u03b5\u03b9\u03b4\u03b9\u03bf\u03cd (salt)<\/strong> - \u03c6\u03c1\u03bf\u03bd\u03c4\u03af\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03c4\u03c1\u03bf\u03c0\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b7\u03bd \u03c0\u03b1\u03c1\u03ac\u03bc\u03b5\u03c4\u03c1\u03bf 'secretsalt' \u03c3\u03c4\u03b9\u03c2 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2 \u03c4\u03bf\u03c5 SimpleSAMLphp \u03c3\u03b5 \u03c0\u03b5\u03c1\u03b9\u03b2\u03ac\u03bb\u03bb\u03bf\u03bd \u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03ae\u03c2. [<a href=\"https:\/\/simplesamlphp.org\/docs\/stable\/simplesamlphp-install\">\u0394\u03b9\u03b1\u03b2\u03ac\u03c3\u03c4\u03b5 \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03b1...<\/a> ]" + "el": "<strong>\u03a7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b5\u03af\u03c4\u03b5 \u03c4\u03b7\u03bd \u03c0\u03c1\u03bf\u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03b7 \u03c4\u03b9\u03bc\u03ae \u03c4\u03bf\u03c5 \u03bc\u03c5\u03c3\u03c4\u03b9\u03ba\u03bf\u03cd \u03ba\u03bb\u03b5\u03b9\u03b4\u03b9\u03bf\u03cd (salt)<\/strong> - \u03c6\u03c1\u03bf\u03bd\u03c4\u03af\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03c4\u03c1\u03bf\u03c0\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b7\u03bd \u03c0\u03b1\u03c1\u03ac\u03bc\u03b5\u03c4\u03c1\u03bf 'secretsalt' \u03c3\u03c4\u03b9\u03c2 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2 \u03c4\u03bf\u03c5 SimpleSAMLphp \u03c3\u03b5 \u03c0\u03b5\u03c1\u03b9\u03b2\u03ac\u03bb\u03bb\u03bf\u03bd \u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03ae\u03c2. [<a href=\"https:\/\/simplesamlphp.org\/docs\/stable\/simplesamlphp-install\">\u0394\u03b9\u03b1\u03b2\u03ac\u03c3\u03c4\u03b5 \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03b1...<\/a> ]", + "ca": "<strong>La configuració utilitza la clau secreta predeterminada</strong> - assegureu-vos de modificar l’opció per defecte 'secretsalt' a la configuració dels entorns de producció de SimpleSAMLphp. [<a href=\"https:\/\/simplesamlphp.org\/docs\/stable\/simplesamlphp-install\">Més informació sobre la configuració de SimpleSAMLphp<\/a> ]" }, "warnings_outdated": { "es": "Su instalación de SimpleSAMLphp está desactualizada. Por favor, actualice a la <a href=\"%LATEST_URL%\">última versión</a> lo antes posible.", "zh-tw": "\u60a8\u6b63\u5728\u4f7f\u7528\u5df2\u904e\u6642\u7684 SimpleSAMLphp \u7248\u672c\uff0c\u8acb\u76e1\u5feb\u66f4\u65b0\u81f3<a href=\"%LATEST_URL%\">\u6700\u65b0\u7248\u672c</a>\u3002", - "nl": "Deze installatie van SimpleSAMLphp is verouderd. Het is aan te raden zo snel mogelijk te upgraden naar <a href=\"%LATEST_URL%\">de meest recente versie</a>." + "nl": "Deze installatie van SimpleSAMLphp is verouderd. Het is aan te raden zo snel mogelijk te upgraden naar <a href=\"%LATEST_URL%\">de meest recente versie</a>.", + "ca": "Esteu executant una versió obsoleta de SimpleSAMLphp. Si us plau, actualitzeu a l'<a href=\"%LATEST_URL%\">última versió<\/a> el més aviat possible." }, "warnings_curlmissing": { - "nl": "PHP cURL-extensie ontbreekt. Kan niet controleren op updates voor simpleSAMLphp." + "nl": "PHP cURL-extensie ontbreekt. Kan niet controleren op updates voor simpleSAMLphp.", + "ca": "Falta l'extensió PHP CURL. No es pot comprovar les actualitzacions de SimpleSAMLphp." + }, + "link_oauth": { + "ca": "Registre OAuth Consumer" + }, + "link_metarefresh": { + "ca": "Metarefresh: obtenir metadades" } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/dictionaries/no_cookie.translation.json b/vendor/simplesamlphp/simplesamlphp/modules/core/dictionaries/no_cookie.translation.json index 0da9ef717a3be906e7ef537d8d7ff216618a9c99..9c13f8c18fa9be8dc45d58ffcb0e72c2be433843 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/dictionaries/no_cookie.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/dictionaries/no_cookie.translation.json @@ -31,7 +31,8 @@ "af": "Verlore cookie", "el": "\u03a0\u03c1\u03cc\u03b2\u03bb\u03b7\u03bc\u03b1 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1\u03c2 cookie", "xh": "Ikhuki engekhoyo", - "zu": "Ikhukhi engatholakali" + "zu": "Ikhukhi engatholakali", + "ca": "Falta la cookie" }, "description": { "no": "Du ser ut til \u00e5 ha deaktivert informasjonskapsler. Kontroller innstillingene i nettleseren din og pr\u00f8v igjen.", @@ -65,7 +66,8 @@ "af": "Dit blyk dat jy cookies in jou webblaaier af geskakel het. Gaan asseblief die stellings in jou webblaaier na en probeer weer.", "el": "\u0395\u03bd\u03b4\u03ad\u03c7\u03b5\u03c4\u03b1\u03b9 \u03c4\u03b1 cookie \u03c4\u03bf\u03c5 \u03c0\u03c1\u03bf\u03b3\u03c1\u03ac\u03bc\u03bc\u03b1\u03c4\u03bf\u03c2 \u03c0\u03b5\u03c1\u03b9\u03ae\u03b3\u03b7\u03c3\u03ae\u03c2 \u03c3\u03b1\u03c2 \u03bd\u03b1 \u03ad\u03c7\u03bf\u03c5\u03bd \u03b1\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03b5\u03af. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03bf\u03cd\u03bc\u03b5 \u03b5\u03bb\u03ad\u03b3\u03be\u03c4\u03b5 \u03c4\u03b9\u03c2 \u03c3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ad\u03c2 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2 \u03ba\u03b1\u03b9 \u03ba\u03b1\u03b9 \u03b4\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac.", "xh": "Ubonakala uzenze azasebenza iikhuki kwibhrawuza yakho. Nceda ujonge iisetingi ezikwibhrawuza yakho, uzame kwakhona.", - "zu": "Kubonakala sengathi uyekise amakhukhi kusiphequluli sakho. Sicela uhlole amasethingi kusiphequluli sakho, bese uzame futhi." + "zu": "Kubonakala sengathi uyekise amakhukhi kusiphequluli sakho. Sicela uhlole amasethingi kusiphequluli sakho, bese uzame futhi.", + "ca": "Sembla que heu desactivat les cookies al vostre navegador. Comproveu la configuració del vostre navegador i torneu-ho a provar." }, "retry": { "no": "Pr\u00f8v igjen", @@ -99,6 +101,7 @@ "af": "Probeer weer", "el": "\u0394\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac", "zu": "Zama futhi", - "xh": "Zama kwakhona" + "xh": "Zama kwakhona", + "ca": "Torna a provar" } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/dictionaries/no_metadata.translation.json b/vendor/simplesamlphp/simplesamlphp/modules/core/dictionaries/no_metadata.translation.json index 2ebd8b0f46b5f1476d4fe008678fc3e242073d3f..f423e027f47eb2216acff5b61023ef7ae9df2886 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/dictionaries/no_metadata.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/dictionaries/no_metadata.translation.json @@ -30,7 +30,8 @@ "af": "Metadata nie gevind nie", "el": "\u0394\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b1\u03bd \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1", "zu": "Imethadatha ayitholakali", - "xh": "I-Metadata ayifunyenwanga" + "xh": "I-Metadata ayifunyenwanga", + "ca": "No s'han trobat les metadades" }, "not_found_for": { "no": "Vi fant ikke metadataene for:", @@ -63,7 +64,8 @@ "af": "Ons was nie in staat om die metadata vir die entiteit op te spoor nie:", "el": "\u0394\u03b5\u03bd \u03ae\u03c4\u03b1\u03bd \u03b4\u03c5\u03bd\u03b1\u03c4\u03cc \u03bd\u03b1 \u03b2\u03c1\u03b5\u03b8\u03bf\u03cd\u03bd \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03bf\u03bd\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1:", "xh": "Asikwazanga ukufumana imetadata ye-entithi:", - "zu": "Asikwazanga ukuthola imethadatha yenhlangano:" + "zu": "Asikwazanga ukuthola imethadatha yenhlangano:", + "ca": "No hem pogut localitzar les metadades de l’entitat:" }, "config_problem": { "no": "Dette er sannsynligvis et konfigurasjonsproblem hos enten tjenesteleverand\u00f8ren eller identitetsleverand\u00f8ren.", @@ -96,7 +98,8 @@ "af": "Di\u00e9 is waarskynlik 'n probleem met die konfigurasie by die diensverskaffer \u00f3f die identiteit verskaffer.", "el": "\u0391\u03c5\u03c4\u03cc \u03c5\u03c0\u03bf\u03b4\u03b5\u03b9\u03ba\u03bd\u03cd\u03b5\u03b9 \u03c0\u03c1\u03cc\u03b2\u03bb\u03b7\u03bc\u03b1 \u03bc\u03b5 \u03c4\u03b9\u03c2 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2 \u03b5\u03af\u03c4\u03b5 \u03c4\u03bf\u03c5 \u03c0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd \u03b5\u03af\u03c4\u03b5 \u03c4\u03bf\u03c5 \u03c0\u03b1\u03c1\u03cc\u03c7\u03bf\u03c5 \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2.", "xh": "Kusenokwenzeka yingxaki yolungiselelo kumboneleli wenkonzo okanye umboneleli wesazisi.", - "zu": "Lokhu kungenzeka ukuthi kubangelwa inkinga yomiso yomhlinzeki wesevisi noma umhlinzeki kamazisi." + "zu": "Lokhu kungenzeka ukuthi kubangelwa inkinga yomiso yomhlinzeki wesevisi noma umhlinzeki kamazisi.", + "ca": "Aquest és probablement un problema de configuració del proveïdor de serveis o del proveïdor d’identitat." }, "suggestion_user_link": { "no": "Hvis du er en bruker som fikk denne feilen etter at du fulgte en link p\u00e5 en nettside, s\u00e5 b\u00f8r du rapportere denne feilen til eieren av den nettsiden.", @@ -129,7 +132,8 @@ "af": "As jy 'n gebruiker is wat na aanleiding van 'n skakel op 'n webwerf hierdie fout ontvang het, moet jy hierdie fout aan die eienaar van die webwerf aan stuur.", "el": "\u0391\u03bd \u03bb\u03ac\u03b2\u03b1\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03b1\u03ba\u03bf\u03bb\u03bf\u03c5\u03b8\u03ce\u03bd\u03c4\u03b1\u03c2 \u03ad\u03bd\u03b1\u03bd \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03bf \u03c3\u03b5 \u03ba\u03ac\u03c0\u03bf\u03b9\u03bf\u03bd \u03b9\u03c3\u03c4\u03cc\u03c4\u03bf\u03c0\u03bf, \u03b8\u03b1 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03c4\u03bf \u03b1\u03bd\u03b1\u03c6\u03ad\u03c1\u03b5\u03c4\u03b5 \u03c3\u03c4\u03bf\u03bd \u03b9\u03b4\u03b9\u03bf\u03ba\u03c4\u03ae\u03c4\u03b7 \u03c4\u03bf\u03c5 \u03b5\u03bd \u03bb\u03cc\u03b3\u03c9 \u03b9\u03c3\u03c4\u03cc\u03c4\u03bf\u03c0\u03bf\u03c5.", "xh": "Ukuba ngaba ungumsebenzisi ofumene le mpazamo emva kokulandela ilinki kwisayithi, ufanele uchaze le mpazamo kumnini walo sayithi.", - "zu": "Uma ungumsebenzisi othole leli phutha ngemva kokulandela ilinki ekusayithi, kufanele ubike leli phutha kumnikazi waleyo sayithi." + "zu": "Uma ungumsebenzisi othole leli phutha ngemva kokulandela ilinki ekusayithi, kufanele ubike leli phutha kumnikazi waleyo sayithi.", + "ca": "Si sou un usuari que ha rebut aquest error després de seguir un enllaç d’un lloc, haureu d’informar d’aquest error al propietari del lloc." }, "suggestion_developer": { "no": "Hvis du er en utvikler som setter opp en \"single sign-on\" l\u00f8sning, s\u00e5 har du et problem med metadataoppsettet. Kontroller at metadata er riktig konfigurert hos b\u00e5de identitetsleverand\u00f8ren og tjenesteleverand\u00f8ren.", @@ -162,6 +166,7 @@ "af": "As jy 'n programmeerder is wat die 'single sign-on' oplossing implementeer, het jy 'n probleem met die metadata opset. Bevestig dat die metadata korrek ingestel is op beide die identiteit verskaffer en diensverskaffer.", "el": "\u0395\u03ac\u03bd \u03b5\u03af\u03c3\u03c4\u03b5 \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae\u03c2 \u03c4\u03b7\u03c2 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1\u03c2 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2 \u03ba\u03b1\u03b9 \u03b5\u03be\u03bf\u03c5\u03c3\u03b9\u03bf\u03b4\u03cc\u03c4\u03b7\u03c3\u03b7\u03c2, \u03c4\u03cc\u03c4\u03b5 \u03b1\u03bd\u03c4\u03b9\u03bc\u03b5\u03c4\u03c9\u03c0\u03af\u03b6\u03b5\u03c4\u03b5 \u03ba\u03ac\u03c0\u03bf\u03b9\u03bf \u03c0\u03c1\u03cc\u03b2\u03bb\u03b7\u03bc\u03b1 \u03bc\u03b5 \u03c4\u03b7 \u03b4\u03b9\u03b1\u03bc\u03cc\u03c1\u03c6\u03c9\u03c3\u03b7 \u03c4\u03c9\u03bd \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd. \u0392\u03b5\u03b2\u03b1\u03b9\u03c9\u03b8\u03b5\u03af\u03c4\u03b5 \u03cc\u03c4\u03b9 \u03c4\u03b1 \u03bc\u03b5\u03c4\u03b1\u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03ad\u03c7\u03bf\u03c5\u03bd \u03c1\u03c5\u03b8\u03bc\u03b9\u03c3\u03c4\u03b5\u03af \u03c3\u03c9\u03c3\u03c4\u03ac \u03c4\u03cc\u03c3\u03bf \u03c3\u03c4\u03bf\u03bd \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 \u03cc\u03c3\u03bf \u03ba\u03b1\u03b9 \u03c3\u03c4\u03bf\u03bd \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd.", "xh": "Ukuba ungumvelisi osebenzisa isisombululo sokusayina ungene kanye, unengxaki nolungiselelo lwe-metadata. Qinisekisa ukuba i-metadata ilungiselelwe ngokuchanekileyo kuzo zombini umbonelei wesazisi nomboneleli wenkonzo.", - "zu": "Uma ungunjiniyela osebenzisa isixazululo sokusayinela ukungena esisodwa, unenkinga ngomiso lwemethadatha. Qinisekisa ukuthi imethadatha imiswe ngendlela efanele kokubili kumhlinzeki womazisi nomhlinzeki wesevisi." + "zu": "Uma ungunjiniyela osebenzisa isixazululo sokusayinela ukungena esisodwa, unenkinga ngomiso lwemethadatha. Qinisekisa ukuthi imethadatha imiswe ngendlela efanele kokubili kumhlinzeki womazisi nomhlinzeki wesevisi.", + "ca": "Si sou un desenvolupador que està desplegant una solució d'inici de sessió únic, teniu un problema amb la configuració de metadades. Verifiqueu que les metadades estiguin configurades correctament tant al proveïdor d’identitat com al proveïdor de serveis." } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/dictionaries/no_state.translation.json b/vendor/simplesamlphp/simplesamlphp/modules/core/dictionaries/no_state.translation.json index 30f0440f6f38d97d0fae0efdf8d57265d3e3062f..dbf1245c4f32abc0ba680eca166dc47dc31cc02d 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/dictionaries/no_state.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/dictionaries/no_state.translation.json @@ -28,7 +28,8 @@ "eu": "Egoeraren informazioa galdu da", "el": "\u0394\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b1\u03bd \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 \u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7\u03c2", "zu": "Ulwazi lwesifunda lulahlekile", - "xh": "Inkcazelo yobume ilahlekile" + "xh": "Inkcazelo yobume ilahlekile", + "ca": "Informació d'estat perduda" }, "description": { "no": "Vi kunne ikke finne tilstandsinformasjonen for denne foresp\u00f8rselen.", @@ -59,7 +60,8 @@ "eu": "Ez dugu aurkitu egoeraren informaziorik eskaera honentzat.", "el": "\u0394\u03b5\u03bd \u03ae\u03c4\u03b1\u03bd \u03b4\u03c5\u03bd\u03b1\u03c4\u03cc \u03bd\u03b1 \u03b5\u03bd\u03c4\u03bf\u03c0\u03b9\u03c3\u03c4\u03bf\u03cd\u03bd \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 \u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7\u03c2 \u03b3\u03b9\u03b1 \u03c4\u03bf \u03c4\u03c1\u03ad\u03c7\u03bf\u03bd \u03b1\u03af\u03c4\u03b7\u03bc\u03b1.", "xh": "Asikwazanga ukufumana inkcazelo yobume yesicelo sangoku.", - "zu": "Asikwazanga ukuthola ulwazi lwesifunda lwesicelo samanje." + "zu": "Asikwazanga ukuthola ulwazi lwesifunda lwesicelo samanje.", + "ca": "No hem pogut localitzar la informació de l’estat per a la sol·licitud actual." }, "suggestions": { "no": "Forslag for \u00e5 l\u00f8se dette problemet:", @@ -90,11 +92,13 @@ "eu": "Arazo hau konpontzeko iradokizunak:", "el": "\u03a0\u03c1\u03bf\u03c4\u03ac\u03c3\u03b5\u03b9\u03c2 \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03b5\u03c0\u03af\u03bb\u03c5\u03c3\u03b7 \u03b1\u03c5\u03c4\u03bf\u03cd \u03c4\u03bf\u03c5 \u03c0\u03c1\u03bf\u03b2\u03bb\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2:", "zu": "Iziphakamiso zokuxazulula le nkinga:", - "xh": "Iingcebiso zokulungisa le ngxaki:" + "xh": "Iingcebiso zokulungisa le ngxaki:", + "ca": "Suggeriments per resoldre aquest problema:" }, "suggestion_badlink": { "sv": "Kontrollera att länken du använde för att komma åt webplatsen är korrekt.", - "nl": "Controleer of u de juiste link gebruikt om de website te benaderen." + "nl": "Controleer of u de juiste link gebruikt om de website te benaderen.", + "ca": "Comproveu que l’enllaç que heu utilitzat per accedir al lloc web és correcte." }, "suggestion_goback": { "no": "G\u00e5 tilbake til forrige side og pr\u00f8v p\u00e5 nytt.", @@ -125,7 +129,8 @@ "eu": "Itzul zaitez aurreko orrira eta saiatu berriro", "el": "\u0395\u03c0\u03b9\u03c3\u03c4\u03c1\u03ad\u03c8\u03c4\u03b5 \u03c3\u03c4\u03b7\u03bd \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03b7 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1 \u03ba\u03b1\u03b9 \u03c0\u03c1\u03bf\u03c3\u03c0\u03b1\u03b8\u03ae\u03c3\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac.", "zu": "Buyela emuva ekhasini langaphambilini bese uzame futhi.", - "xh": "Buyela emva kwikhasi elidlulileyo uzame kwakhona." + "xh": "Buyela emva kwikhasi elidlulileyo uzame kwakhona.", + "ca": "Torneu a la pàgina anterior i torneu-ho a provar." }, "suggestion_closebrowser": { "no": "Lukk nettleseren, og pr\u00f8v p\u00e5 nytt.", @@ -156,7 +161,8 @@ "eu": "Nabigatzailea itxi eta saiatu berriro", "el": "\u039a\u03bb\u03b5\u03af\u03c3\u03c4\u03b5 \u03c4\u03bf \u03c0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1 \u03c0\u03b5\u03c1\u03b9\u03ae\u03b3\u03b7\u03c3\u03b7\u03c2 \u03b9\u03c3\u03c4\u03bf\u03cd (web browser) \u03ba\u03b1\u03b9 \u03c0\u03c1\u03bf\u03c3\u03c0\u03b1\u03b8\u03ae\u03c3\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac", "zu": "Vala isiphequluli sewebhu, bese uzame futhi.", - "xh": "Vala ibhrawuza yewebhu, uzame kwakhona." + "xh": "Vala ibhrawuza yewebhu, uzame kwakhona.", + "ca": "Tanqueu el navegador web i torneu-ho a provar." }, "causes": { "no": "Denne feilen kan v\u00e6re for\u00e5rsaket av:", @@ -187,11 +193,13 @@ "eu": "Errore hau honek eragin dezake:", "el": "\u0391\u03c5\u03c4\u03cc \u03c4\u03bf \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03c0\u03c1\u03bf\u03ba\u03cd\u03c8\u03b5\u03b9, \u03b5\u03ac\u03bd:", "zu": "Leli phutha kungenzeka libangelwa ukuthi:", - "xh": "Le mpazamo isenokuba ibangelwe:" + "xh": "Le mpazamo isenokuba ibangelwe:", + "ca": "Aquest error pot ser causat per:" }, "cause_badlink": { "sv": "Länken till websidan var felaktig, kanske till följd av elak automatisk ifyllning, en trasig länk eller ett trasigt bokmärke.", - "nl": "Verkeerde link gebruikt, bijvoorbeeld een bookmark (bladwijzer)." + "nl": "Verkeerde link gebruikt, bijvoorbeeld een bookmark (bladwijzer).", + "ca": "L’enllaç per arribar fins aquí era erroni, potser era un marcador." }, "cause_backforward": { "no": "Bruk av \"frem\"- og \"tilbake\"-knappene i nettleseren.", @@ -222,7 +230,8 @@ "eu": "Zure web nabigatzaileko atzera eta aurrera botoiak erabiltzen.", "el": "\u039c\u03b5\u03c4\u03b1\u03b2\u03ae\u03ba\u03b1\u03c4\u03b5 \u03c0\u03af\u03c3\u03c9 \u03ba\u03b1\u03b9 \u03b5\u03bc\u03c0\u03c1\u03cc\u03c2 \u03c3\u03c4\u03bf \u03b9\u03c3\u03c4\u03bf\u03c1\u03b9\u03ba\u03cc \u03c4\u03bf\u03c5 \u03c0\u03c1\u03bf\u03b3\u03c1\u03ac\u03bc\u03bc\u03b1\u03c4\u03bf\u03c2 \u03c0\u03b5\u03c1\u03b9\u03ae\u03b3\u03b7\u03c3\u03b7\u03c2 \u03b9\u03c3\u03c4\u03bf\u03cd.", "zu": "Ukusebenzisa izinkinobho ezithi emuva naphambili kusiphequluli sewebhu.", - "xh": "Ukusebenzisa amaqhosha okuya emva naphambili kwibhrawuza yewebhu." + "xh": "Ukusebenzisa amaqhosha okuya emva naphambili kwibhrawuza yewebhu.", + "ca": "Utilitzant els botons enrere i endavant del navegador web." }, "cause_openbrowser": { "no": "Starte nettleseren med faner lagret fra forrige gang.", @@ -253,7 +262,8 @@ "eu": "Zure web nabigatzailea aurreko saiotik gordeta zeuden fitxekin ireki duzu.", "el": "\u0391\u03bd\u03bf\u03af\u03be\u03b1\u03c4\u03b5 \u03c4\u03bf \u03c0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1 \u03c0\u03b5\u03c1\u03b9\u03ae\u03b3\u03b7\u03c3\u03b7\u03c2 \u03b9\u03c3\u03c4\u03bf\u03cd \u03ba\u03b1\u03b9 \u03b5\u03c0\u03b1\u03bd\u03b1\u03c6\u03ad\u03c1\u03b1\u03c4\u03b5 \u03ba\u03b1\u03c1\u03c4\u03ad\u03bb\u03b5\u03c2 \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03b7\u03c2 \u03c3\u03c5\u03bd\u03b5\u03b4\u03c1\u03af\u03b1\u03c2.", "xh": "Kuvulwe ibhrawuza yewebhu ngeethebhu eziseyivwe kwiseshoni edlulileyo.", - "zu": "Kuvulwe isiphequluli sewebhu ngamathebhu alondolozwe kuseshini yangaphambilini." + "zu": "Kuvulwe isiphequluli sewebhu ngamathebhu alondolozwe kuseshini yangaphambilini.", + "ca": "S'ha obert el navegador web amb pestanyes desades de la sessió anterior." }, "cause_nocookie": { "no": "At informasjonskapsler ikke er aktivert i nettleseren.", @@ -284,7 +294,8 @@ "eu": "Cookie-ak desgaituta egon litezke nabigatzailean.", "el": "\u0397 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 cookie \u03b5\u03af\u03bd\u03b1\u03b9 \u03b1\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03bc\u03ad\u03bd\u03b7 \u03c3\u03c4\u03bf \u03c0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1 \u03c0\u03b5\u03c1\u03b9\u03ae\u03b3\u03b7\u03c3\u03b7\u03c2 \u03b9\u03c3\u03c4\u03bf\u03cd.", "xh": "Iikhuki zisenokwenziwa zingasebenzi kwibhrawuza yewebhu.", - "zu": "Amakhukhi kungenzeka ukuthi ayekisiwe kusiphequluli sewebhu." + "zu": "Amakhukhi kungenzeka ukuthi ayekisiwe kusiphequluli sewebhu.", + "ca": "Les cookies poden estar desactivades al navegador web." }, "report_header": { "no": "Rapporter denne feilen", @@ -315,7 +326,8 @@ "eu": "Errore honen berri eman", "el": "\u0391\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1\u03c4\u03bf\u03c2", "xh": "Chaza le mpazamo", - "zu": "Bika leli phutha" + "zu": "Bika leli phutha", + "ca": "Informeu d'aquest error" }, "report_text": { "no": "Hvis problemet vedvarer, kan du rapportere det til systemadministratorene.", @@ -346,6 +358,7 @@ "eu": "Arazoak bere horretan badirau, sistemaren administratzaileei berri eman diezaiekezu.", "el": "\u0391\u03bd \u03c4\u03bf \u03c0\u03c1\u03cc\u03b2\u03bb\u03b7\u03bc\u03b1 \u03b5\u03be\u03b1\u03ba\u03bf\u03bb\u03bf\u03c5\u03b8\u03b5\u03af \u03bd\u03b1 \u03c5\u03c6\u03af\u03c3\u03c4\u03b1\u03c4\u03b1\u03b9, \u03bc\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03c4\u03bf \u03b1\u03bd\u03b1\u03c6\u03ad\u03c1\u03b5\u03c4\u03b5 \u03c3\u03c4\u03bf\u03c5\u03c2 \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ad\u03c2 \u03c4\u03bf\u03c5 \u03c3\u03c5\u03c3\u03c4\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2.", "xh": "Ukuba le ngxaki iyaqhubeka, ungayichaza kubalawuli besistim.", - "zu": "Uma le nkinga iphikelela, ungayibika kubalawuli besistimu." + "zu": "Uma le nkinga iphikelela, ungayibika kubalawuli besistimu.", + "ca": "Si aquest problema continua, podeu informar als administradors del sistema." } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/dictionaries/short_sso_interval.translation.json b/vendor/simplesamlphp/simplesamlphp/modules/core/dictionaries/short_sso_interval.translation.json index aee5b58fb67d9afd38fe4892f5cefaa7b7efe141..ac63374e27ef87e78c29dc4bfebaaab5b0a7c116 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/dictionaries/short_sso_interval.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/dictionaries/short_sso_interval.translation.json @@ -28,7 +28,8 @@ "ro": "A fost detectat faptul c\u0103 v-a\u021bi autentificat \u00een urm\u0103 cu doar c\u00e2teva secunde cu acest furnizor de servicii, se va considera c\u0103 exist\u0103 o problem\u0103 cu acest furnizor de servicii.", "eu": "Azken aldiz zerbitzu honetan kautotu zinenetik segundu gutxi batzu besterik ez direla igaro antzeman dugu, beraz ZH honekin arazoren bat dagoela hartuko dugu. ", "af": "Ons het ontdek dat daar slegs 'n paar sekondes was sedert jy laas geverifieer het met die diensverskaffer en neem dus aan dat daar 'n probleem is met hierdie SP.", - "el": "\u0388\u03c7\u03bf\u03c5\u03bd \u03c0\u03b5\u03c1\u03ac\u03c3\u03b5\u03b9 \u03bc\u03cc\u03bb\u03b9\u03c2 \u03bb\u03af\u03b3\u03b1 \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd \u03c4\u03b5\u03bb\u03b5\u03c5\u03c4\u03b1\u03af\u03b1 \u03c6\u03bf\u03c1\u03ac \u03c0\u03bf\u03c5 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03ae\u03ba\u03b1\u03c4\u03b5 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03cc\u03bd \u03c4\u03bf\u03bd \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd, \u03b3\u03b5\u03b3\u03bf\u03bd\u03cc\u03c2 \u03c0\u03bf\u03c5 \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03c5\u03c0\u03bf\u03b4\u03b7\u03bb\u03ce\u03bd\u03b5\u03b9 \u03c0\u03c1\u03cc\u03b2\u03bb\u03b7\u03bc\u03b1 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03c3\u03c5\u03b3\u03ba\u03b5\u03ba\u03c1\u03b9\u03bc\u03ad\u03bd\u03bf \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf." + "el": "\u0388\u03c7\u03bf\u03c5\u03bd \u03c0\u03b5\u03c1\u03ac\u03c3\u03b5\u03b9 \u03bc\u03cc\u03bb\u03b9\u03c2 \u03bb\u03af\u03b3\u03b1 \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd \u03c4\u03b5\u03bb\u03b5\u03c5\u03c4\u03b1\u03af\u03b1 \u03c6\u03bf\u03c1\u03ac \u03c0\u03bf\u03c5 \u03c3\u03c5\u03bd\u03b4\u03b5\u03b8\u03ae\u03ba\u03b1\u03c4\u03b5 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03cc\u03bd \u03c4\u03bf\u03bd \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03b9\u03ce\u03bd, \u03b3\u03b5\u03b3\u03bf\u03bd\u03cc\u03c2 \u03c0\u03bf\u03c5 \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03c5\u03c0\u03bf\u03b4\u03b7\u03bb\u03ce\u03bd\u03b5\u03b9 \u03c0\u03c1\u03cc\u03b2\u03bb\u03b7\u03bc\u03b1 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03c3\u03c5\u03b3\u03ba\u03b5\u03ba\u03c1\u03b9\u03bc\u03ad\u03bd\u03bf \u03c0\u03ac\u03c1\u03bf\u03c7\u03bf.", + "ca": "Hem detectat que només hi ha uns pocs segons des de la teva última autenticació amb aquest proveïdor de serveis i, per tant, assumim que hi ha un problema amb aquest SP." }, "warning_header": { "no": "For kort intervall imellom innloggingsforesp\u00f8rsler", @@ -59,7 +60,8 @@ "ro": "Interval prea scurt \u00eentre evenimentele <i>single sign-on<\/i>.", "eu": "Denbora tarte oso motza saio bakarreko gertaeren artean.", "af": "Te kort interval tussen enkel aanmeldings(single sign on) op die gebeure.", - "el": "\u03a3\u03cd\u03bd\u03c4\u03bf\u03bc\u03bf \u03c7\u03c1\u03bf\u03bd\u03b9\u03ba\u03cc \u03b4\u03b9\u03ac\u03c3\u03c4\u03b7\u03bc\u03b1 \u03bc\u03b5\u03c4\u03b1\u03be\u03cd \u03b4\u03b9\u03b1\u03b4\u03bf\u03c7\u03b9\u03ba\u03ce\u03bd \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03b5\u03c9\u03bd." + "el": "\u03a3\u03cd\u03bd\u03c4\u03bf\u03bc\u03bf \u03c7\u03c1\u03bf\u03bd\u03b9\u03ba\u03cc \u03b4\u03b9\u03ac\u03c3\u03c4\u03b7\u03bc\u03b1 \u03bc\u03b5\u03c4\u03b1\u03be\u03cd \u03b4\u03b9\u03b1\u03b4\u03bf\u03c7\u03b9\u03ba\u03ce\u03bd \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03b5\u03c9\u03bd.", + "ca": "Interval massa curt entre esdeveniments d’inici de sessió." }, "retry": { "no": "Fors\u00f8k \u00e5 logge inn p\u00e5 nytt", @@ -90,6 +92,7 @@ "ro": "\u00cencerca\u021bi din nou", "eu": "Saiatu berriro kautotzen", "af": "Probeer weer aanmeld", - "el": "\u0395\u03c0\u03b1\u03bd\u03ac\u03bb\u03b7\u03c8\u03b7 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2" + "el": "\u0395\u03c0\u03b1\u03bd\u03ac\u03bb\u03b7\u03c8\u03b7 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7\u03c2", + "ca": "Torneu a iniciar la sessió" } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/docs/authproc_attributealter.md b/vendor/simplesamlphp/simplesamlphp/modules/core/docs/authproc_attributealter.md index b9010691d27fd9aefaf9a8e588631e3d82bcc3ea..de4b47601dee593c6588e8b8762a8d8af494a868 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/docs/authproc_attributealter.md +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/docs/authproc_attributealter.md @@ -31,12 +31,12 @@ Parameters This parameter is OPTIONAL, and if not set, `subject` is used as `target`. `%replace` -: Indicates that the whole value of the attribute should be replaced, instead of just the match. - This parameter is OPTIONAL. +: Indicates that the whole value of the attribute should be replaced if there is a match, + instead of just the match. If there's no match, the value will not be changed. This parameter is OPTIONAL. `%remove` -: Indicates that the whole value of the attribute should be removed completely. If no other values exist, the - attribute will be removed completely. +: Indicates that the whole value of the attribute should be removed completely if there is a match. + If no other values exist, the attribute will be removed completely. This parameter is OPTIONAL. Examples @@ -44,88 +44,92 @@ Examples Change the domain on the `mail` attribute (when both the new and old domain are known): - 10 => array( + 10 => [ 'class' => 'core:AttributeAlter', 'subject' => 'mail', 'pattern' => '/olddomain.com/', 'replacement' => 'newdomain.com', - ), + ], Change the domain on the `mail` attribute (when new domain is known): - 10 => array( - 'class' => 'core:AttributeAlter', - 'subject' => 'mail', - 'pattern' => '/(?:[A-Za-z0-9-]+\.)+[A-Za-z]{2,6}$/', - 'replacement' => 'newdomain.com', - ), + 10 => [ + 'class' => 'core:AttributeAlter', + 'subject' => 'mail', + 'pattern' => '/(?:[A-Za-z0-9-]+\.)+[A-Za-z]{2,6}$/', + 'replacement' => 'newdomain.com', + ], -Set the eduPersonPrimaryAffiliation based on users distinguishedName: +Set the eduPersonPrimaryAffiliation based on users' distinguishedName: - 10 => array( + 10 => [ 'class' => 'core:AttributeAlter', 'subject' => 'dn', 'pattern' => '/OU=Staff/', 'replacement' => 'staff', 'target' => 'eduPersonPrimaryAffiliation', - ), + ], Normalize the eduPersonPrimaryAffiliation: - 10 => array( + 10 => [ 'class' => 'core:AttributeAlter', 'subject' => 'eduPersonPrimaryAffiliation', 'pattern' => '/Student in school/', 'replacement' => 'student', '%replace', - ), + ], -Get the domain of the email and put it in a separate attribute: +Get the domain of the emailaddress and put it in a separate attribute: - 10 => array( + 10 => [ 'class' => 'core:AttributeAlter', 'subject' => 'mail', 'pattern' => '/(?:[A-Za-z0-9-]+\.)+[A-Za-z]{2,6}$/', 'target' => 'domain', '%replace', - ), + ], -Defaulting an attribute to one value (Add it with the default before altering) unless another attribute meets a condition: +Defaulting an attribute to one value (add it with the default before altering) +unless another attribute meets a condition: - 10 => array ('class' => 'core:AttributeAdd', - 'myAttribute' => 'default-value'), - 11 => array ('class' => 'core:AttributeAlter', + 10 => [ + 'class' => 'core:AttributeAdd', + 'myAttribute' => 'default-value' + ], + 11 => [ + 'class' => 'core:AttributeAlter', 'subject' => 'entitlement', 'pattern' => '/faculty/', 'target' => 'myAttribute', '%replace', - ), + ], Remove internal, private values from eduPersonEntitlement: - 10 => array( + 10 => [ 'class' => 'core:AttributeAlter', 'subject' => 'eduPersonEntitlement', 'pattern' => '/ldap-admin/', '%remove', - ), + ], Set a value to be blank (which will be sent as an empty string): - 10 => array( + 10 => [ 'class' => 'core:AttributeAlter', 'subject' => 'cn', 'pattern' => '/No name/', 'replacement' => '', '%replace', - ), + ], Set a value to be NULL (which will be sent as a NULL value): - 10 => array( + 10 => [ 'class' => 'core:AttributeAlter', 'subject' => 'telephone', 'pattern' => '/NULL/', 'replacement' => null, '%replace', - ), + ], diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/hooks/hook_frontpage.php b/vendor/simplesamlphp/simplesamlphp/modules/core/hooks/hook_frontpage.php index d2b6eef9c0b15aa8d0020dd8cdd29472c1cf2edf..cbb1469c03a63179cd4d405d0e637b330f90e7f7 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/hooks/hook_frontpage.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/hooks/hook_frontpage.php @@ -1,10 +1,11 @@ <?php + /** * Hook to add the modinfo module to the frontpage. * * @param array &$links The links on the frontpage, split into sections. + * @return void */ - function core_hook_frontpage(&$links) { assert(is_array($links)); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/hooks/hook_sanitycheck.php b/vendor/simplesamlphp/simplesamlphp/modules/core/hooks/hook_sanitycheck.php index ef4af3049f99106c63bac2cbcad9d7f4a9fe578b..7e401a0dc5e7abdfb0f8157419b51018d1c00fe1 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/hooks/hook_sanitycheck.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/hooks/hook_sanitycheck.php @@ -1,10 +1,11 @@ <?php + /** * Hook to do sanitycheck * * @param array &$hookinfo hookinfo + * @return void */ - function core_hook_sanitycheck(&$hookinfo) { assert(is_array($hookinfo)); @@ -25,10 +26,10 @@ function core_hook_sanitycheck(&$hookinfo) $hookinfo['info'][] = '[core] In config.php technicalcontact_email is set properly'; } - if (version_compare(phpversion(), '5.5', '>=')) { + if (version_compare(phpversion(), '5.6', '>=')) { $hookinfo['info'][] = '[core] You are running a PHP version suitable for SimpleSAMLphp.'; } else { - $hookinfo['errors'][] = '[core] You are running an old PHP installation. '. + $hookinfo['errors'][] = '[core] You are running an old PHP installation. ' . 'Please check the requirements for your SimpleSAMLphp version and upgrade.'; } @@ -42,7 +43,7 @@ function core_hook_sanitycheck(&$hookinfo) if (isset($i['dependencies']) && is_array($i['dependencies'])) { foreach ($i['dependencies'] as $dep) { if (!in_array($dep, $availmodules, true)) { - $hookinfo['errors'][] = '[core] Module dependency not met: '.$mi.' requires '.$dep; + $hookinfo['errors'][] = '[core] Module dependency not met: ' . $mi . ' requires ' . $dep; } } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/ACL.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/ACL.php index 2c682a3e08d6bfa8aab90ae4eadcdee1f95e8fdf..dac755fe601e98912624f0379b0e5c86590daafd 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/ACL.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/ACL.php @@ -2,6 +2,9 @@ namespace SimpleSAML\Module\core; +use SimpleSAML\Configuration; +use SimpleSAML\Error; + /** * Generic library for access control lists. * @@ -32,16 +35,16 @@ public function __construct($acl) foreach ($acl as $rule) { if (!is_array($rule)) { - throw new \SimpleSAML\Error\Exception('Invalid rule in access control list: '.var_export($rule, true)); + throw new Error\Exception('Invalid rule in access control list: ' . var_export($rule, true)); } if (count($rule) === 0) { - throw new \SimpleSAML\Error\Exception('Empty rule in access control list.'); + throw new Error\Exception('Empty rule in access control list.'); } $action = array_shift($rule); if ($action !== 'allow' && $action !== 'deny') { - throw new \SimpleSAML\Error\Exception( - 'Invalid action in rule in access control list: '.var_export($action, true) + throw new Error\Exception( + 'Invalid action in rule in access control list: ' . var_export($action, true) ); } } @@ -58,9 +61,9 @@ private static function getById($id) { assert(is_string($id)); - $config = \SimpleSAML\Configuration::getOptionalConfig('acl.php'); + $config = Configuration::getOptionalConfig('acl.php'); if (!$config->hasValue($id)) { - throw new \SimpleSAML\Error\Exception('No ACL with id '.var_export($id, true).' in config/acl.php.'); + throw new Error\Exception('No ACL with id ' . var_export($id, true) . ' in config/acl.php.'); } return $config->getArray($id); @@ -121,7 +124,7 @@ private static function match(array $attributes, array $rule) case 'or': return self::opOr($attributes, $rule); default: - throw new \SimpleSAML\Error\Exception('Invalid ACL operation: '.var_export($op, true)); + throw new Error\Exception('Invalid ACL operation: ' . var_export($op, true)); } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeAdd.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeAdd.php index deb3ac310c4f1e8d6d4152080473dacaadc39814..33f419cd3ded36157df74df2212e440ea00c14f1 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeAdd.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeAdd.php @@ -10,28 +10,30 @@ * @author Olav Morken, UNINETT AS. * @package SimpleSAMLphp */ - class AttributeAdd extends \SimpleSAML\Auth\ProcessingFilter { /** * Flag which indicates wheter this filter should append new values or replace old values. + * @var bool */ private $replace = false; /** * Attributes which should be added/appended. * - * Assiciative array of arrays. + * Associative array of arrays. + * @var array */ private $attributes = []; + /** * Initialize this filter. * - * @param array $config Configuration information about this filter. + * @param array &$config Configuration information about this filter. * @param mixed $reserved For future use. */ - public function __construct($config, $reserved) + public function __construct(&$config, $reserved) { parent::__construct($config, $reserved); @@ -42,7 +44,7 @@ public function __construct($config, $reserved) if ($values === '%replace') { $this->replace = true; } else { - throw new \Exception('Unknown flag: '.var_export($values, true)); + throw new \Exception('Unknown flag: ' . var_export($values, true)); } continue; } @@ -52,7 +54,9 @@ public function __construct($config, $reserved) } foreach ($values as $value) { if (!is_string($value)) { - throw new \Exception('Invalid value for attribute '.$name.': '.var_export($values, true)); + throw new \Exception( + 'Invalid value for attribute ' . $name . ': ' . var_export($values, true) + ); } } @@ -60,12 +64,14 @@ public function __construct($config, $reserved) } } + /** * Apply filter to add or replace attributes. * * Add or replace existing attributes with the configured values. * * @param array &$request The current request + * @return void */ public function process(&$request) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeAlter.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeAlter.php index 0d181a0d7cd45700556bd4d121cf4c90da087704..710254db6303469a7d1d7c2a945703b0d854f767 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeAlter.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeAlter.php @@ -2,6 +2,8 @@ namespace SimpleSAML\Module\core\Auth\Process; +use SimpleSAML\Error; + /** * Filter to modify attributes using regular expressions * @@ -10,47 +12,53 @@ * @author Jacob Christiansen, WAYF * @package SimpleSAMLphp */ - class AttributeAlter extends \SimpleSAML\Auth\ProcessingFilter { /** * Should the pattern found be replaced? + * @var bool */ private $replace = false; /** * Should the value found be removed? + * @var bool */ private $remove = false; /** * Pattern to search for. + * @var string */ private $pattern = ''; /** * String to replace the pattern found with. + * @var string|false */ private $replacement = false; /** * Attribute to search in + * @var string */ private $subject = ''; /** * Attribute to place the result in. + * @var string */ private $target = ''; + /** * Initialize this filter. * - * @param array $config Configuration information about this filter. + * @param array &$config Configuration information about this filter. * @param mixed $reserved For future use. * @throws \SimpleSAML\Error\Exception In case of invalid configuration. */ - public function __construct($config, $reserved) + public function __construct(&$config, $reserved) { parent::__construct($config, $reserved); @@ -65,7 +73,7 @@ public function __construct($config, $reserved) } elseif ($value === '%remove') { $this->remove = true; } else { - throw new \SimpleSAML\Error\Exception('Unknown flag : '.var_export($value, true)); + throw new Error\Exception('Unknown flag : ' . var_export($value, true)); } continue; } elseif ($name === 'pattern') { @@ -84,6 +92,7 @@ public function __construct($config, $reserved) } } + /** * Apply the filter to modify attributes. * @@ -91,6 +100,7 @@ public function __construct($config, $reserved) * * @param array &$request The current request. * @throws \SimpleSAML\Error\Exception In case of invalid configuration. + * @return void */ public function process(&$request) { @@ -102,20 +112,21 @@ public function process(&$request) // check that all required params are set in config if (empty($this->pattern) || empty($this->subject)) { - throw new \SimpleSAML\Error\Exception("Not all params set in config."); + throw new Error\Exception("Not all params set in config."); } if (!$this->replace && !$this->remove && $this->replacement === false) { - throw new \SimpleSAML\Error\Exception("'replacement' must be set if neither '%replace' nor ". - "'%remove' are set."); + throw new Error\Exception( + "'replacement' must be set if neither '%replace' nor " . "'%remove' are set." + ); } if (!$this->replace && $this->replacement === null) { - throw new \SimpleSAML\Error\Exception("'%replace' must be set if 'replacement' is null."); + throw new Error\Exception("'%replace' must be set if 'replacement' is null."); } if ($this->replace && $this->remove) { - throw new \SimpleSAML\Error\Exception("'%replace' and '%remove' cannot be used together."); + throw new Error\Exception("'%replace' and '%remove' cannot be used together."); } if (empty($this->target)) { @@ -124,7 +135,7 @@ public function process(&$request) } if ($this->subject !== $this->target && $this->remove) { - throw new \SimpleSAML\Error\Exception("Cannot use '%remove' when 'target' is different than 'subject'."); + throw new Error\Exception("Cannot use '%remove' when 'target' is different than 'subject'."); } if (!array_key_exists($this->subject, $attributes)) { @@ -173,6 +184,7 @@ public function process(&$request) $attributes[$this->subject] ); } else { + /** @psalm-suppress InvalidArgument */ $attributes[$this->target] = array_diff( preg_replace( $this->pattern, diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeCopy.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeCopy.php index 1b54da17ae14826a5c6abe82c83b87fef681c6a3..f6b9a55ae074ebf4c8b8d13869d9d0a7af5aa7f1 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeCopy.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeCopy.php @@ -17,21 +17,22 @@ * ), * */ - class AttributeCopy extends \SimpleSAML\Auth\ProcessingFilter { /** * Assosiative array with the mappings of attribute names. + * @var array */ private $map = []; + /** * Initialize this filter, parse configuration * - * @param array $config Configuration information about this filter. + * @param array &$config Configuration information about this filter. * @param mixed $reserved For future use. */ - public function __construct($config, $reserved) + public function __construct(&$config, $reserved) { parent::__construct($config, $reserved); @@ -39,21 +40,23 @@ public function __construct($config, $reserved) foreach ($config as $source => $destination) { if (!is_string($source)) { - throw new \Exception('Invalid source attribute name: '.var_export($source, true)); + throw new \Exception('Invalid source attribute name: ' . var_export($source, true)); } if (!is_string($destination) && !is_array($destination)) { - throw new \Exception('Invalid destination attribute name: '.var_export($destination, true)); + throw new \Exception('Invalid destination attribute name: ' . var_export($destination, true)); } $this->map[$source] = $destination; } } + /** * Apply filter to rename attributes. * * @param array &$request The current request + * @return void */ public function process(&$request) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeLimit.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeLimit.php index b90d1b0cdedad5ec6f3d34264254d30ec8128744..2767a9555d0ee7ff571ee4f23b44113d49821cd8 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeLimit.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeLimit.php @@ -2,17 +2,20 @@ namespace SimpleSAML\Module\core\Auth\Process; +use SimpleSAML\Error; +use SimpleSAML\Logger; + /** * A filter for limiting which attributes are passed on. * * @author Olav Morken, UNINETT AS. * @package SimpleSAMLphp */ - class AttributeLimit extends \SimpleSAML\Auth\ProcessingFilter { /** * List of attributes which this filter will allow through. + * @var array */ private $allowedAttributes = []; @@ -23,14 +26,15 @@ class AttributeLimit extends \SimpleSAML\Auth\ProcessingFilter */ private $isDefault = false; + /** * Initialize this filter. * - * @param array $config Configuration information about this filter. + * @param array &$config Configuration information about this filter. * @param mixed $reserved For future use * @throws \SimpleSAML\Error\Exception If invalid configuration is found. */ - public function __construct($config, $reserved) + public function __construct(&$config, $reserved) { parent::__construct($config, $reserved); @@ -41,27 +45,28 @@ public function __construct($config, $reserved) $this->isDefault = (bool) $value; } elseif (is_int($index)) { if (!is_string($value)) { - throw new \SimpleSAML\Error\Exception('AttributeLimit: Invalid attribute name: '. + throw new Error\Exception('AttributeLimit: Invalid attribute name: ' . var_export($value, true)); } $this->allowedAttributes[] = $value; } elseif (is_string($index)) { if (!is_array($value)) { - throw new \SimpleSAML\Error\Exception('AttributeLimit: Values for '. - var_export($index, true).' must be specified in an array.'); + throw new Error\Exception('AttributeLimit: Values for ' . + var_export($index, true) . ' must be specified in an array.'); } $this->allowedAttributes[$index] = $value; } else { - throw new \SimpleSAML\Error\Exception('AttributeLimit: Invalid option: '.var_export($index, true)); + throw new Error\Exception('AttributeLimit: Invalid option: ' . var_export($index, true)); } } } + /** * Get list of allowed from the SP/IdP config. * * @param array &$request The current request. - * @return array|NULL Array with attribute names, or NULL if no limit is placed. + * @return array|null Array with attribute names, or NULL if no limit is placed. */ private static function getSPIdPAllowed(array &$request) { @@ -76,6 +81,7 @@ private static function getSPIdPAllowed(array &$request) return null; } + /** * Apply filter to remove attributes. * @@ -83,6 +89,7 @@ private static function getSPIdPAllowed(array &$request) * * @param array &$request The current request * @throws \SimpleSAML\Error\Exception If invalid configuration is found. + * @return void */ public function process(&$request) { @@ -112,8 +119,8 @@ public function process(&$request) if (array_key_exists($name, $allowedAttributes)) { // but it is an index of the array if (!is_array($allowedAttributes[$name])) { - throw new \SimpleSAML\Error\Exception('AttributeLimit: Values for '. - var_export($name, true).' must be specified in an array.'); + throw new Error\Exception('AttributeLimit: Values for ' . + var_export($name, true) . ' must be specified in an array.'); } $attributes[$name] = $this->filterAttributeValues($attributes[$name], $allowedAttributes[$name]); if (!empty($attributes[$name])) { @@ -125,6 +132,7 @@ public function process(&$request) } } + /** * Perform the filtering of attributes * @param array $values The current values for a given attribute @@ -146,7 +154,7 @@ private function filterAttributeValues(array $values, array $allowedConfigValues */ $regexResult = @preg_match($pattern, $attributeValue); if ($regexResult === false) { - \SimpleSAML\Logger::warning("Error processing regex '$pattern' on value '$attributeValue'"); + Logger::warning("Error processing regex '$pattern' on value '$attributeValue'"); break; } elseif ($regexResult === 1) { $matchedValues[] = $attributeValue; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeMap.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeMap.php index 7992f8b69d45163974ebc21096e7bdacec83087b..7efdd2f73e77c99e831b0d48c6eaed64d84737d0 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeMap.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeMap.php @@ -2,22 +2,26 @@ namespace SimpleSAML\Module\core\Auth\Process; +use SimpleSAML\Configuration; +use SimpleSAML\Module; + /** * Attribute filter for renaming attributes. * * @author Olav Morken, UNINETT AS. * @package SimpleSAMLphp */ - class AttributeMap extends \SimpleSAML\Auth\ProcessingFilter { /** * Associative array with the mappings of attribute names. + * @var array */ private $map = []; /** * Should attributes be duplicated or renamed. + * @var bool */ private $duplicate = false; @@ -25,12 +29,12 @@ class AttributeMap extends \SimpleSAML\Auth\ProcessingFilter /** * Initialize this filter, parse configuration * - * @param array $config Configuration information about this filter. + * @param array &$config Configuration information about this filter. * @param mixed $reserved For future use. * - * @throws Exception If the configuration of the filter is wrong. + * @throws \Exception If the configuration of the filter is wrong. */ - public function __construct($config, $reserved) + public function __construct(&$config, $reserved) { parent::__construct($config, $reserved); @@ -49,11 +53,11 @@ public function __construct($config, $reserved) } if (!is_string($origName)) { - throw new \Exception('Invalid attribute name: '.var_export($origName, true)); + throw new \Exception('Invalid attribute name: ' . var_export($origName, true)); } if (!is_string($newName) && !is_array($newName)) { - throw new \Exception('Invalid attribute name: '.var_export($newName, true)); + throw new \Exception('Invalid attribute name: ' . var_export($newName, true)); } $this->map[$origName] = $newName; @@ -72,31 +76,33 @@ public function __construct($config, $reserved) * @param string $fileName Name of attribute map file. Expected to be in the attributemap directory in the root * of the SimpleSAMLphp installation, or in the root of a module. * - * @throws Exception If the filter could not load the requested attribute map file. + * @throws \Exception If the filter could not load the requested attribute map file. + * @return void */ private function loadMapFile($fileName) { - $config = \SimpleSAML\Configuration::getInstance(); + $config = Configuration::getInstance(); $m = explode(':', $fileName); if (count($m) === 2) { // we are asked for a file in a module - if (!\SimpleSAML\Module::isModuleEnabled($m[0])) { + if (!Module::isModuleEnabled($m[0])) { throw new \Exception("Module '$m[0]' is not enabled."); } - $filePath = \SimpleSAML\Module::getModuleDir($m[0]).'/attributemap/'.$m[1].'.php'; + $filePath = Module::getModuleDir($m[0]) . '/attributemap/' . $m[1] . '.php'; } else { - $filePath = $config->getPathValue('attributenamemapdir', 'attributemap/').$fileName.'.php'; + $attributenamemapdir = $config->getPathValue('attributenamemapdir', 'attributemap/') ?: 'attributemap/'; + $filePath = $attributenamemapdir . $fileName . '.php'; } if (!file_exists($filePath)) { - throw new \Exception('Could not find attribute map file: '.$filePath); + throw new \Exception('Could not find attribute map file: ' . $filePath); } $attributemap = null; include($filePath); if (!is_array($attributemap)) { - throw new \Exception('Attribute map file "'.$filePath.'" didn\'t define an attribute map.'); + throw new \Exception('Attribute map file "' . $filePath . '" didn\'t define an attribute map.'); } if ($this->duplicate) { @@ -111,6 +117,7 @@ private function loadMapFile($fileName) * Apply filter to rename attributes. * * @param array &$request The current request. + * @return void */ public function process(&$request) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeRealm.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeRealm.php index f6366e9fe66abb5cd0cd219d173dae82ba3cc7fc..81a71235d05f2e78af050839f67ecc861e77ae6e 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeRealm.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeRealm.php @@ -13,15 +13,17 @@ class AttributeRealm extends \SimpleSAML\Auth\ProcessingFilter { + /** @var string */ private $attributename = 'realm'; + /** * Initialize this filter. * - * @param array $config Configuration information about this filter. + * @param array &$config Configuration information about this filter. * @param mixed $reserved For future use. */ - public function __construct($config, $reserved) + public function __construct(&$config, $reserved) { parent::__construct($config, $reserved); assert(is_array($config)); @@ -31,12 +33,14 @@ public function __construct($config, $reserved) } } + /** * Apply filter to add or replace attributes. * * Add or replace existing attributes with the configured values. * * @param array &$request The current request + * @return void */ public function process(&$request) { @@ -44,8 +48,8 @@ public function process(&$request) assert(array_key_exists('Attributes', $request)); if (!array_key_exists('UserID', $request)) { - throw new \Exception('core:AttributeRealm: Missing UserID for this user. Please'. - ' check the \'userid.attribute\' option in the metadata against the'. + throw new \Exception('core:AttributeRealm: Missing UserID for this user. Please' . + ' check the \'userid.attribute\' option in the metadata against the' . ' attributes provided by the authentication source.'); } $userID = $request['UserID']; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeValueMap.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeValueMap.php index 9979ea66f27b8d5768c89c122ec10dddbc6be795..7c41cf412db8e473a91b10df8ecf3853e8ab885f 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeValueMap.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/AttributeValueMap.php @@ -2,48 +2,56 @@ namespace SimpleSAML\Module\core\Auth\Process; +use SimpleSAML\Error; +use SimpleSAML\Logger; + /** * Filter to create target attribute based on value(s) in source attribute * * @author Martin van Es, m7 * @package SimpleSAMLphp */ - class AttributeValueMap extends \SimpleSAML\Auth\ProcessingFilter { /** * The name of the attribute we should assign values to (ie: the target attribute). + * @var string */ private $targetattribute; /** * The name of the attribute we should create values from. + * @var string */ private $sourceattribute; /** * The required $sourceattribute values and target affiliations. + * @var array */ private $values = []; - + /** * Whether $sourceattribute should be kept or not. + * @var bool */ private $keep = false; /** * Whether $target attribute values should be replaced by new values or not. + * @var bool */ private $replace = false; - + + /** * Initialize the filter. * - * @param array $config Configuration information about this filter. + * @param array &$config Configuration information about this filter. * @param mixed $reserved For future use. * @throws \SimpleSAML\Error\Exception If the configuration is not valid. */ - public function __construct($config, $reserved) + public function __construct(&$config, $reserved) { parent::__construct($config, $reserved); @@ -59,8 +67,8 @@ public function __construct($config, $reserved) $this->keep = true; } else { // unknown configuration option, log it and ignore the error - \SimpleSAML\Logger::warning( - "AttributeValueMap: unknown configuration flag '".var_export($value, true)."'" + Logger::warning( + "AttributeValueMap: unknown configuration flag '" . var_export($value, true) . "'" ); } continue; @@ -75,7 +83,7 @@ public function __construct($config, $reserved) if ($name === 'sourceattribute') { $this->sourceattribute = $value; } - + // set the values if ($name === 'values') { $this->values = $value; @@ -84,13 +92,13 @@ public function __construct($config, $reserved) // now validate it if (!is_string($this->sourceattribute)) { - throw new \SimpleSAML\Error\Exception("AttributeValueMap: 'sourceattribute' configuration option not set."); + throw new Error\Exception("AttributeValueMap: 'sourceattribute' configuration option not set."); } if (!is_string($this->targetattribute)) { - throw new \SimpleSAML\Error\Exception("AttributeValueMap: 'targetattribute' configuration option not set."); + throw new Error\Exception("AttributeValueMap: 'targetattribute' configuration option not set."); } if (!is_array($this->values)) { - throw new \SimpleSAML\Error\Exception("AttributeValueMap: 'values' configuration option is not an array."); + throw new Error\Exception("AttributeValueMap: 'values' configuration option is not an array."); } } @@ -99,10 +107,11 @@ public function __construct($config, $reserved) * Apply filter. * * @param array &$request The current request + * @return void */ public function process(&$request) { - \SimpleSAML\Logger::debug('Processing the AttributeValueMap filter.'); + Logger::debug('Processing the AttributeValueMap filter.'); assert(is_array($request)); assert(array_key_exists('Attributes', $request)); @@ -122,7 +131,7 @@ public function process(&$request) $values = [$values]; } if (count(array_intersect($values, $sourceattribute)) > 0) { - \SimpleSAML\Logger::debug("AttributeValueMap: intersect match for '$value'"); + Logger::debug("AttributeValueMap: intersect match for '$value'"); $targetvalues[] = $value; } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/Cardinality.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/Cardinality.php index ac4f1aad1edca4ca87a0ab54c71b40fe28fe9902..113cc6b622773e766746b3368c8c5aa496ffd013 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/Cardinality.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/Cardinality.php @@ -2,7 +2,11 @@ namespace SimpleSAML\Module\core\Auth\Process; -use SimpleSAML\Utils\HttpAdapter; +use SimpleSAML\Auth; +use SimpleSAML\Error; +use SimpleSAML\Logger; +use SimpleSAML\Module; +use SimpleSAML\Utils; /** * Filter to ensure correct cardinality of attributes @@ -10,7 +14,6 @@ * @author Guy Halse, http://orcid.org/0000-0002-9388-8592 * @package SimpleSAMLphp */ - class Cardinality extends \SimpleSAML\Auth\ProcessingFilter { /** @var array Associative array with the mappings of attribute names. */ @@ -19,23 +22,24 @@ class Cardinality extends \SimpleSAML\Auth\ProcessingFilter /** @var array Entities that should be ignored */ private $ignoreEntities = []; - /** @var HTTPAdapter */ + /** @var \SimpleSAML\Utils\HttpAdapter */ private $http; + /** * Initialize this filter, parse configuration. * - * @param array $config Configuration information about this filter. + * @param array &$config Configuration information about this filter. * @param mixed $reserved For future use. - * @param HTTPAdapter $http HTTP utility service (handles redirects). + * @param \SimpleSAML\Utils\HttpAdapter $http HTTP utility service (handles redirects). * @throws \SimpleSAML\Error\Exception */ - public function __construct($config, $reserved, HttpAdapter $http = null) + public function __construct(&$config, $reserved, Utils\HttpAdapter $http = null) { parent::__construct($config, $reserved); assert(is_array($config)); - $this->http = $http ? : new HttpAdapter(); + $this->http = $http ? : new Utils\HttpAdapter(); foreach ($config as $attribute => $rules) { if ($attribute === '%ignoreEntities') { @@ -44,7 +48,7 @@ public function __construct($config, $reserved, HttpAdapter $http = null) } if (!is_string($attribute)) { - throw new \SimpleSAML\Error\Exception('Invalid attribute name: '.var_export($attribute, true)); + throw new Error\Exception('Invalid attribute name: ' . var_export($attribute, true)); } $this->cardinality[$attribute] = ['warn' => false]; @@ -66,23 +70,26 @@ public function __construct($config, $reserved, HttpAdapter $http = null) /* sanity check the rules */ if (!array_key_exists('min', $this->cardinality[$attribute])) { $this->cardinality[$attribute]['min'] = 0; - } elseif (!is_int($this->cardinality[$attribute]['min']) || - $this->cardinality[$attribute]['min'] < 0 + } elseif ( + !is_int($this->cardinality[$attribute]['min']) + || $this->cardinality[$attribute]['min'] < 0 ) { - throw new \SimpleSAML\Error\Exception('Minimum cardinality must be a positive integer: '. + throw new Error\Exception('Minimum cardinality must be a positive integer: ' . var_export($attribute, true)); } - if (array_key_exists('max', $this->cardinality[$attribute]) && - !is_int($this->cardinality[$attribute]['max']) + if ( + array_key_exists('max', $this->cardinality[$attribute]) + && !is_int($this->cardinality[$attribute]['max']) ) { - throw new \SimpleSAML\Error\Exception('Maximum cardinality must be a positive integer: '. + throw new Error\Exception('Maximum cardinality must be a positive integer: ' . var_export($attribute, true)); } - if (array_key_exists('min', $this->cardinality[$attribute]) && - array_key_exists('max', $this->cardinality[$attribute]) && - $this->cardinality[$attribute]['min'] > $this->cardinality[$attribute]['max'] + if ( + array_key_exists('min', $this->cardinality[$attribute]) + && array_key_exists('max', $this->cardinality[$attribute]) + && $this->cardinality[$attribute]['min'] > $this->cardinality[$attribute]['max'] ) { - throw new \SimpleSAML\Error\Exception('Minimum cardinality must be less than maximium: '. + throw new Error\Exception('Minimum cardinality must be less than maximium: ' . var_export($attribute, true)); } @@ -94,10 +101,12 @@ public function __construct($config, $reserved, HttpAdapter $http = null) } } + /** * Process this filter * * @param array &$request The current request + * @return void */ public function process(&$request) { @@ -109,7 +118,7 @@ public function process(&$request) $entityid = $request['Source']['entityid']; } if (in_array($entityid, $this->ignoreEntities, true)) { - \SimpleSAML\Logger::debug('Cardinality: Ignoring assertions from '.$entityid); + Logger::debug('Cardinality: Ignoring assertions from ' . $entityid); return; } @@ -124,7 +133,7 @@ public function process(&$request) /* minimum cardinality */ if (count($v) < $this->cardinality[$k]['min']) { if ($this->cardinality[$k]['warn']) { - \SimpleSAML\Logger::warning( + Logger::warning( sprintf( 'Cardinality: attribute %s from %s does not meet minimum cardinality of %d (%d)', $k, @@ -145,7 +154,7 @@ public function process(&$request) /* maximum cardinality */ if (array_key_exists('max', $this->cardinality[$k]) && count($v) > $this->cardinality[$k]['max']) { if ($this->cardinality[$k]['warn']) { - \SimpleSAML\Logger::warning( + Logger::warning( sprintf( 'Cardinality: attribute %s from %s does not meet maximum cardinality of %d (%d)', $k, @@ -170,7 +179,7 @@ public function process(&$request) continue; } if ($this->cardinality[$k]['warn']) { - \SimpleSAML\Logger::warning(sprintf( + Logger::warning(sprintf( 'Cardinality: attribute %s from %s is missing', $k, $entityid @@ -185,8 +194,8 @@ public function process(&$request) /* abort if we found a problematic attribute */ if (array_key_exists('core:cardinality:errorAttributes', $request)) { - $id = \SimpleSAML\Auth\State::saveState($request, 'core:cardinality'); - $url = \SimpleSAML\Module::getModuleURL('core/cardinality_error.php'); + $id = Auth\State::saveState($request, 'core:cardinality'); + $url = Module::getModuleURL('core/cardinality_error.php'); $this->http->redirectTrustedURL($url, ['StateId' => $id]); return; } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/CardinalitySingle.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/CardinalitySingle.php index ac251319beef8ffe40c2e15e3da4db498bd4798b..a9f08001c7779fdb095e2eed9458f60115749d8d 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/CardinalitySingle.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/CardinalitySingle.php @@ -2,7 +2,10 @@ namespace SimpleSAML\Module\core\Auth\Process; -use SimpleSAML\Utils\HttpAdapter; +use SimpleSAML\Auth; +use SimpleSAML\Logger; +use SimpleSAML\Module; +use SimpleSAML\Utils; /** * Filter to ensure correct cardinality of single-valued attributes @@ -13,7 +16,6 @@ * @author Guy Halse, http://orcid.org/0000-0002-9388-8592 * @package SimpleSAMLphp */ - class CardinalitySingle extends \SimpleSAML\Auth\ProcessingFilter { /** @var array Attributes that should be single-valued or we generate an error */ @@ -31,22 +33,23 @@ class CardinalitySingle extends \SimpleSAML\Auth\ProcessingFilter /** @var array Entities that should be ignored */ private $ignoreEntities = []; - /** @var HTTPAdapter */ + /** @var \SimpleSAML\Utils\HttpAdapter */ private $http; + /** * Initialize this filter, parse configuration. * - * @param array $config Configuration information about this filter. + * @param array &$config Configuration information about this filter. * @param mixed $reserved For future use. - * @param HTTPAdapter $http HTTP utility service (handles redirects). + * @param \SimpleSAML\Utils\HttpAdapter $http HTTP utility service (handles redirects). */ - public function __construct($config, $reserved, HttpAdapter $http = null) + public function __construct(&$config, $reserved, Utils\HttpAdapter $http = null) { parent::__construct($config, $reserved); assert(is_array($config)); - $this->http = $http ? : new HttpAdapter(); + $this->http = $http ? : new Utils\HttpAdapter(); if (array_key_exists('singleValued', $config)) { $this->singleValued = $config['singleValued']; @@ -73,21 +76,24 @@ public function __construct($config, $reserved, HttpAdapter $http = null) } } + /** * Process this filter * * @param array &$request The current request + * @return void */ public function process(&$request) { assert(is_array($request)); assert(array_key_exists("Attributes", $request)); - if (array_key_exists('Source', $request) && - array_key_exists('entityid', $request['Source']) && - in_array($request['Source']['entityid'], $this->ignoreEntities, true) + if ( + array_key_exists('Source', $request) + && array_key_exists('entityid', $request['Source']) + && in_array($request['Source']['entityid'], $this->ignoreEntities, true) ) { - \SimpleSAML\Logger::debug('CardinalitySingle: Ignoring assertions from '.$request['Source']['entityid']); + Logger::debug('CardinalitySingle: Ignoring assertions from ' . $request['Source']['entityid']); return; } @@ -115,8 +121,8 @@ public function process(&$request) /* abort if we found a problematic attribute */ if (array_key_exists('core:cardinality:errorAttributes', $request)) { - $id = \SimpleSAML\Auth\State::saveState($request, 'core:cardinality'); - $url = \SimpleSAML\Module::getModuleURL('core/cardinality_error.php'); + $id = Auth\State::saveState($request, 'core:cardinality'); + $url = Module::getModuleURL('core/cardinality_error.php'); $this->http->redirectTrustedURL($url, ['StateId' => $id]); return; } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/ExtendIdPSession.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/ExtendIdPSession.php index 92102262b572ee8d0b0bfb07e35ef011c106c9a8..b582561e0ea85730975ebebe56f47b35aa1b383e 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/ExtendIdPSession.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/ExtendIdPSession.php @@ -2,12 +2,19 @@ namespace SimpleSAML\Module\core\Auth\Process; +use SimpleSAML\Configuration; +use SimpleSAML\Session; +use SimpleSAML\SessionHandler; + /** * Extend IdP session and cookies. */ - class ExtendIdPSession extends \SimpleSAML\Auth\ProcessingFilter { + /** + * @param array &$state + * @return void + */ public function process(&$state) { assert(is_array($state)); @@ -19,7 +26,7 @@ public function process(&$state) $now = time(); $delta = $state['Expire'] - $now; - $globalConfig = \SimpleSAML\Configuration::getInstance(); + $globalConfig = Configuration::getInstance(); $sessionDuration = $globalConfig->getInteger('session.duration', 28800); // 8*60*60 // Extend only if half of session duration already passed @@ -28,22 +35,24 @@ public function process(&$state) } // Update authority expire time - $session = \SimpleSAML\Session::getSessionFromRequest(); + $session = Session::getSessionFromRequest(); $session->setAuthorityExpire($state['Authority']); // Update session cookies duration // If remember me is active $rememberMeExpire = $session->getRememberMeExpire(); - if (!empty($state['RememberMe']) && $rememberMeExpire !== null && - $globalConfig->getBoolean('session.rememberme.enable', false) + if ( + !empty($state['RememberMe']) + && $rememberMeExpire !== null + && $globalConfig->getBoolean('session.rememberme.enable', false) ) { $session->setRememberMeExpire(); return; } // Or if session lifetime is more than zero - $sessionHandler = \SimpleSAML\SessionHandler::getSessionHandler(); + $sessionHandler = SessionHandler::getSessionHandler(); $cookieParams = $sessionHandler->getCookieParams(); if ($cookieParams['lifetime'] > 0) { $session->updateSessionCookies(); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/GenerateGroups.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/GenerateGroups.php index ab9d15aad0498e93e46fc9f4e2552455b9529912..a6e2257e774b5afa20a09805d8127c1cab756569 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/GenerateGroups.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/GenerateGroups.php @@ -2,27 +2,30 @@ namespace SimpleSAML\Module\core\Auth\Process; +use SimpleSAML\Logger; + /** * Filter to generate a groups attribute based on many of the attributes of the user. * * @author Olav Morken, UNINETT AS. * @package SimpleSAMLphp */ - class GenerateGroups extends \SimpleSAML\Auth\ProcessingFilter { /** * The attributes we should generate groups from. + * @var array */ private $generateGroupsFrom; + /** * Initialize this filter. * - * @param array $config Configuration information about this filter. + * @param array &$config Configuration information about this filter. * @param mixed $reserved For future use. */ - public function __construct($config, $reserved) + public function __construct(&$config, $reserved) { parent::__construct($config, $reserved); @@ -39,7 +42,7 @@ public function __construct($config, $reserved) // Validate configuration foreach ($config as $attributeName) { if (!is_string($attributeName)) { - throw new \Exception('Invalid attribute name for core:GenerateGroups filter: '. + throw new \Exception('Invalid attribute name for core:GenerateGroups filter: ' . var_export($attributeName, true)); } } @@ -47,10 +50,12 @@ public function __construct($config, $reserved) } } + /** * Apply filter to add groups attribute. * * @param array &$request The current request + * @return void */ public function process(&$request) { @@ -62,21 +67,21 @@ public function process(&$request) $realm = self::getRealm($attributes); if ($realm !== null) { - $groups[] = 'realm-'.$realm; + $groups[] = 'realm-' . $realm; } foreach ($this->generateGroupsFrom as $name) { if (!array_key_exists($name, $attributes)) { - \SimpleSAML\Logger::debug('GenerateGroups - attribute \''.$name.'\' not found.'); + Logger::debug('GenerateGroups - attribute \'' . $name . '\' not found.'); // Attribute not present continue; } foreach ($attributes[$name] as $value) { $value = self::escapeIllegalChars($value); - $groups[] = $name.'-'.$value; + $groups[] = $name . '-' . $value; if ($realm !== null) { - $groups[] = $name.'-'.$realm.'-'.$value; + $groups[] = $name . '-' . $realm . '-' . $value; } } } @@ -86,6 +91,7 @@ public function process(&$request) } } + /** * Determine which realm the user belongs to. * @@ -94,7 +100,7 @@ public function process(&$request) * a realm, NULL will be returned. * * @param array $attributes The attributes of the user. - * @return string|NULL The realm of the user, or NULL if we are unable to determine the realm. + * @return string|null The realm of the user, or NULL if we are unable to determine the realm. */ private static function getRealm($attributes) { @@ -119,6 +125,7 @@ private static function getRealm($attributes) return self::escapeIllegalChars($realm); } + /** * Escape special characters in a string. * @@ -135,6 +142,10 @@ private static function escapeIllegalChars($string) return preg_replace_callback( '/([^a-zA-Z0-9_@=.])/', + /** + * @param array $m + * @return string + */ function ($m) { return sprintf("%%%02x", ord($m[1])); }, diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/LanguageAdaptor.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/LanguageAdaptor.php index 771fb6357216575621aeaa067b77036e77c34e3a..85271d1659b8b6094b6d7a8be1f00e6e8ff4baf2 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/LanguageAdaptor.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/LanguageAdaptor.php @@ -2,24 +2,28 @@ namespace SimpleSAML\Module\core\Auth\Process; +use SimpleSAML\Locale\Language; +use SimpleSAML\Logger; + /** * Filter to set and get language settings from attributes. * * @author Andreas Åkre Solberg, UNINETT AS. * @package SimpleSAMLphp */ - class LanguageAdaptor extends \SimpleSAML\Auth\ProcessingFilter { + /** @var string */ private $langattr = 'preferredLanguage'; + /** * Initialize this filter. * - * @param array $config Configuration information about this filter. + * @param array &$config Configuration information about this filter. * @param mixed $reserved For future use. */ - public function __construct($config, $reserved) + public function __construct(&$config, $reserved) { parent::__construct($config, $reserved); assert(is_array($config)); @@ -29,12 +33,14 @@ public function __construct($config, $reserved) } } + /** * Apply filter to add or replace attributes. * * Add or replace existing attributes with the configured values. * * @param array &$request The current request + * @return void */ public function process(&$request) { @@ -48,18 +54,18 @@ public function process(&$request) $attrlang = $attributes[$this->langattr][0]; } - $lang = \SimpleSAML\Locale\Language::getLanguageCookie(); + $lang = Language::getLanguageCookie(); if (isset($attrlang)) { - \SimpleSAML\Logger::debug('LanguageAdaptor: Language in attribute was set ['.$attrlang.']'); + Logger::debug('LanguageAdaptor: Language in attribute was set [' . $attrlang . ']'); } if (isset($lang)) { - \SimpleSAML\Logger::debug('LanguageAdaptor: Language in session was set ['.$lang.']'); + Logger::debug('LanguageAdaptor: Language in session was set [' . $lang . ']'); } if (isset($attrlang) && !isset($lang)) { // Language set in attribute but not in cookie - update cookie - \SimpleSAML\Locale\Language::setLanguageCookie($attrlang); + Language::setLanguageCookie($attrlang); } elseif (!isset($attrlang) && isset($lang)) { // Language set in cookie, but not in attribute. Update attribute $request['Attributes'][$this->langattr] = [$lang]; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/PHP.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/PHP.php index cd424c76e9a01e1b4705eb217014eab2c9ec5ed1..fcf6e738aed078620c913b05147df83c6d177a0f 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/PHP.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/PHP.php @@ -2,6 +2,8 @@ namespace SimpleSAML\Module\core\Auth\Process; +use SimpleSAML\Error; + /** * Attribute filter for running arbitrary PHP code. * @@ -21,19 +23,19 @@ class PHP extends \SimpleSAML\Auth\ProcessingFilter /** * Initialize this filter, parse configuration * - * @param array $config Configuration information about this filter. + * @param array &$config Configuration information about this filter. * @param mixed $reserved For future use. * * @throws \SimpleSAML\Error\Exception if the 'code' option is not defined. */ - public function __construct($config, $reserved) + public function __construct(&$config, $reserved) { parent::__construct($config, $reserved); assert(is_array($config)); if (!isset($config['code'])) { - throw new \SimpleSAML\Error\Exception("core:PHP: missing mandatory configuration option 'code'."); + throw new Error\Exception("core:PHP: missing mandatory configuration option 'code'."); } $this->code = (string) $config['code']; } @@ -43,15 +45,22 @@ public function __construct($config, $reserved) * Apply the PHP code to the attributes. * * @param array &$request The current request + * @return void + * + * @scrutinizer ignore-unused */ public function process(&$request) { assert(is_array($request)); assert(array_key_exists('Attributes', $request)); - $function = function ( - /** @scrutinizer ignore-unused */ &$attributes, - /** @scrutinizer ignore-unused */ &$state + /** + * @param array &$attributes + * @param array &$state + */ + $function = /** @return void */ function ( + array &$attributes, + array &$state ) { eval($this->code); }; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/ScopeAttribute.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/ScopeAttribute.php index 1db7d3c18a1bf3dd3f1f4cc1a3d1cc1bd090d7d7..bc05f95388c74049428153b1428e9120fdc61d0a 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/ScopeAttribute.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/ScopeAttribute.php @@ -2,6 +2,8 @@ namespace SimpleSAML\Module\core\Auth\Process; +use SimpleSAML\Configuration; + /** * Add a scoped variant of an attribute. * @@ -38,29 +40,32 @@ class ScopeAttribute extends \SimpleSAML\Auth\ProcessingFilter */ private $onlyIfEmpty = false; + /** * Initialize this filter, parse configuration * - * @param array $config Configuration information about this filter. + * @param array &$config Configuration information about this filter. * @param mixed $reserved For future use. */ - public function __construct($config, $reserved) + public function __construct(&$config, $reserved) { parent::__construct($config, $reserved); assert(is_array($config)); - $config = \SimpleSAML\Configuration::loadFromArray($config, 'ScopeAttribute'); + $cfg = Configuration::loadFromArray($config, 'ScopeAttribute'); - $this->scopeAttribute = $config->getString('scopeAttribute'); - $this->sourceAttribute = $config->getString('sourceAttribute'); - $this->targetAttribute = $config->getString('targetAttribute'); - $this->onlyIfEmpty = $config->getBoolean('onlyIfEmpty', false); + $this->scopeAttribute = $cfg->getString('scopeAttribute'); + $this->sourceAttribute = $cfg->getString('sourceAttribute'); + $this->targetAttribute = $cfg->getString('targetAttribute'); + $this->onlyIfEmpty = $cfg->getBoolean('onlyIfEmpty', false); } + /** * Apply this filter to the request. * * @param array &$request The current request + * @return void */ public function process(&$request) { @@ -92,7 +97,7 @@ public function process(&$request) } foreach ($attributes[$this->sourceAttribute] as $value) { - $value = $value.'@'.$scope; + $value = $value . '@' . $scope; if (in_array($value, $attributes[$this->targetAttribute], true)) { // Already present diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/ScopeFromAttribute.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/ScopeFromAttribute.php index b043de9fd86a0c58ba16e8d332b730c26ded02f6..cc8411e311849198510d15d1b37325392d6c1ce7 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/ScopeFromAttribute.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/ScopeFromAttribute.php @@ -2,6 +2,9 @@ namespace SimpleSAML\Module\core\Auth\Process; +use SimpleSAML\Configuration; +use SimpleSAML\Logger; + /** * Retrieve a scope from a source attribute and add it as a virtual target * attribute. @@ -18,7 +21,6 @@ * to add a virtual 'scope' attribute from the eduPersonPrincipalName * attribute. */ - class ScopeFromAttribute extends \SimpleSAML\Auth\ProcessingFilter { /** @@ -35,26 +37,29 @@ class ScopeFromAttribute extends \SimpleSAML\Auth\ProcessingFilter */ private $targetAttribute; + /** * Initialize this filter, parse configuration * - * @param array $config Configuration information about this filter. + * @param array &$config Configuration information about this filter. * @param mixed $reserved For future use. */ - public function __construct($config, $reserved) + public function __construct(&$config, $reserved) { parent::__construct($config, $reserved); assert(is_array($config)); - $config = \SimpleSAML\Configuration::loadFromArray($config, 'ScopeFromAttribute'); - $this->targetAttribute = $config->getString('targetAttribute'); - $this->sourceAttribute = $config->getString('sourceAttribute'); - } // end constructor + $cfg = Configuration::loadFromArray($config, 'ScopeFromAttribute'); + $this->targetAttribute = $cfg->getString('targetAttribute'); + $this->sourceAttribute = $cfg->getString('sourceAttribute'); + } + /** * Apply this filter. * * @param array &$request The current request + * @return void */ public function process(&$request) { @@ -83,12 +88,12 @@ public function process(&$request) $attributes[$this->targetAttribute] = []; $scope = substr($sourceAttrVal, $scopeIndex + 1); $attributes[$this->targetAttribute][] = $scope; - \SimpleSAML\Logger::debug('ScopeFromAttribute: Inserted new attribute '. - $this->targetAttribute.', with scope '.$scope); + Logger::debug( + 'ScopeFromAttribute: Inserted new attribute ' . $this->targetAttribute . ', with scope ' . $scope + ); } else { - \SimpleSAML\Logger::warning('ScopeFromAttribute: The configured source attribute '. - $this->sourceAttribute.' does not have a scope. Did not add attribute '. - $this->targetAttribute.'.'); + Logger::warning('ScopeFromAttribute: The configured source attribute ' . $this->sourceAttribute + . ' does not have a scope. Did not add attribute ' . $this->targetAttribute . '.'); } - } // end process + } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/StatisticsWithAttribute.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/StatisticsWithAttribute.php index 86db3063c575396706a4373d8ba5f8db9bc3b3d6..63d0a62d89f4a3af52fdd8a0111c884e11869fed 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/StatisticsWithAttribute.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/StatisticsWithAttribute.php @@ -2,13 +2,14 @@ namespace SimpleSAML\Module\core\Auth\Process; +use SimpleSAML\Logger; + /** * Log a line in the STAT log with one attribute. * * @author Andreas Åkre Solberg, UNINETT AS. * @package SimpleSAMLphp */ - class StatisticsWithAttribute extends \SimpleSAML\Auth\ProcessingFilter { /** @@ -31,10 +32,10 @@ class StatisticsWithAttribute extends \SimpleSAML\Auth\ProcessingFilter /** * Initialize this filter. * - * @param array $config Configuration information about this filter. + * @param array &$config Configuration information about this filter. * @param mixed $reserved For future use. */ - public function __construct($config, $reserved) + public function __construct(&$config, $reserved) { parent::__construct($config, $reserved); @@ -64,6 +65,7 @@ public function __construct($config, $reserved) * Log line. * * @param array &$state The current state. + * @return void */ public function process(&$state) { @@ -81,7 +83,7 @@ public function process(&$state) $isPassive = 'passive-'; } - if (array_key_exists($this->attribute, $state['Attributes'])) { + if (!is_null($this->attribute) && array_key_exists($this->attribute, $state['Attributes'])) { $logAttribute = $state['Attributes'][$this->attribute][0]; } @@ -90,10 +92,10 @@ public function process(&$state) if (!array_key_exists('PreviousSSOTimestamp', $state)) { // The user hasn't authenticated with this SP earlier in this session - \SimpleSAML\Logger::stats($isPassive.$this->typeTag.'-first '.$dest.' '.$source.' '.$logAttribute); + Logger::stats($isPassive . $this->typeTag . '-first ' . $dest . ' ' . $source . ' ' . $logAttribute); } - \SimpleSAML\Logger::stats($isPassive.$this->typeTag.' '.$dest.' '.$source.' '.$logAttribute); + Logger::stats($isPassive . $this->typeTag . ' ' . $dest . ' ' . $source . ' ' . $logAttribute); } /** diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/TargetedID.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/TargetedID.php index 710fa7f648861b7b515f5807775e19a9b5ba6699..950f02f9ba3a5c8a3420fb6f215546b98f4fba53 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/TargetedID.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/TargetedID.php @@ -2,6 +2,10 @@ namespace SimpleSAML\Module\core\Auth\Process; +use SAML2\Constants; +use SAML2\XML\saml\NameID; +use SimpleSAML\Utils; + /** * Filter to generate the eduPersonTargetedID attribute. * @@ -30,12 +34,13 @@ * @author Olav Morken, UNINETT AS. * @package SimpleSAMLphp */ - class TargetedID extends \SimpleSAML\Auth\ProcessingFilter { /** * The attribute we should generate the targeted id from, or NULL if we should use the * UserID. + * + * @var string|null */ private $attribute = null; @@ -46,13 +51,14 @@ class TargetedID extends \SimpleSAML\Auth\ProcessingFilter */ private $generateNameId = false; + /** * Initialize this filter. * - * @param array $config Configuration information about this filter. + * @param array &$config Configuration information about this filter. * @param mixed $reserved For future use. */ - public function __construct($config, $reserved) + public function __construct(&$config, $reserved) { parent::__construct($config, $reserved); @@ -73,10 +79,12 @@ public function __construct($config, $reserved) } } + /** * Apply filter to add the targeted ID. * * @param array &$state The current state. + * @return void */ public function process(&$state) { @@ -85,15 +93,15 @@ public function process(&$state) if ($this->attribute === null) { if (!array_key_exists('UserID', $state)) { - throw new \Exception('core:TargetedID: Missing UserID for this user. Please'. - ' check the \'userid.attribute\' option in the metadata against the'. + throw new \Exception('core:TargetedID: Missing UserID for this user. Please' . + ' check the \'userid.attribute\' option in the metadata against the' . ' attributes provided by the authentication source.'); } $userID = $state['UserID']; } else { if (!array_key_exists($this->attribute, $state['Attributes'])) { - throw new \Exception('core:TargetedID: Missing attribute \''.$this->attribute. + throw new \Exception('core:TargetedID: Missing attribute \'' . $this->attribute . '\', which is needed to generate the targeted ID.'); } @@ -101,7 +109,7 @@ public function process(&$state) } - $secretSalt = \SimpleSAML\Utils\Config::getSecretSalt(); + $secretSalt = Utils\Config::getSecretSalt(); if (array_key_exists('Source', $state)) { $srcID = self::getEntityId($state['Source']); @@ -115,19 +123,19 @@ public function process(&$state) $dstID = ''; } - $uidData = 'uidhashbase'.$secretSalt; - $uidData .= strlen($srcID).':'.$srcID; - $uidData .= strlen($dstID).':'.$dstID; - $uidData .= strlen($userID).':'.$userID; + $uidData = 'uidhashbase' . $secretSalt; + $uidData .= strlen($srcID) . ':' . $srcID; + $uidData .= strlen($dstID) . ':' . $dstID; + $uidData .= strlen($userID) . ':' . $userID; $uidData .= $secretSalt; $uid = hash('sha1', $uidData); if ($this->generateNameId) { // Convert the targeted ID to a SAML 2.0 name identifier element - $nameId = new \SAML2\XML\saml\NameID(); + $nameId = new NameID(); $nameId->setValue($uid); - $nameId->setFormat(\SAML2\Constants::NAMEID_PERSISTENT); + $nameId->setFormat(Constants::NAMEID_PERSISTENT); if (isset($state['Source']['entityid'])) { $nameId->setNameQualifier($state['Source']['entityid']); @@ -142,6 +150,7 @@ public function process(&$state) $state['Attributes']['eduPersonTargetedID'] = [$nameId]; } + /** * Generate ID from entity metadata. * @@ -159,12 +168,12 @@ private static function getEntityId($metadata) if (array_key_exists('metadata-set', $metadata)) { $set = $metadata['metadata-set']; - $id .= 'set'.strlen($set).':'.$set; + $id .= 'set' . strlen($set) . ':' . $set; } if (array_key_exists('entityid', $metadata)) { $entityid = $metadata['entityid']; - $id .= 'set'.strlen($entityid).':'.$entityid; + $id .= 'set' . strlen($entityid) . ':' . $entityid; } return $id; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/WarnShortSSOInterval.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/WarnShortSSOInterval.php index 1d488b9db935886a2a2e2359ffddaf10ef3e4e56..5c5352d1b1bb070837b36b29fea7ac502e1afd1a 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/WarnShortSSOInterval.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Process/WarnShortSSOInterval.php @@ -2,12 +2,16 @@ namespace SimpleSAML\Module\core\Auth\Process; +use SimpleSAML\Auth; +use SimpleSAML\Logger; +use SimpleSAML\Module; +use SimpleSAML\Utils; + /** * Give a warning to the user if we receive multiple requests in a short time. * * @package SimpleSAMLphp */ - class WarnShortSSOInterval extends \SimpleSAML\Auth\ProcessingFilter { /** @@ -17,6 +21,7 @@ class WarnShortSSOInterval extends \SimpleSAML\Auth\ProcessingFilter * If it is to short a while since, we will show a warning to the user. * * @param array $state The state of the response. + * @return void */ public function process(&$state) { @@ -42,12 +47,12 @@ public function process(&$state) $entityId = 'UNKNOWN'; } - \SimpleSAML\Logger::warning('WarnShortSSOInterval: Only '.$timeDelta. - ' seconds since last SSO for this user from the SP '.var_export($entityId, true)); + Logger::warning('WarnShortSSOInterval: Only ' . $timeDelta . + ' seconds since last SSO for this user from the SP ' . var_export($entityId, true)); // Save state and redirect - $id = \SimpleSAML\Auth\State::saveState($state, 'core:short_sso_interval'); - $url = \SimpleSAML\Module::getModuleURL('core/short_sso_interval.php'); - \SimpleSAML\Utils\HTTP::redirectTrustedURL($url, ['StateId' => $id]); + $id = Auth\State::saveState($state, 'core:short_sso_interval'); + $url = Module::getModuleURL('core/short_sso_interval.php'); + Utils\HTTP::redirectTrustedURL($url, ['StateId' => $id]); } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Source/AdminPassword.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Source/AdminPassword.php index 45ce4c2696bb2514f9b579fcdf29f8c4dbcc1431..ea03893e75cb9f0a94c49f644ad0834355b1ed14 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Source/AdminPassword.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/Source/AdminPassword.php @@ -2,6 +2,9 @@ namespace SimpleSAML\Module\core\Auth\Source; +use SimpleSAML\Configuration; +use SimpleSAML\Error; + /** * Authentication source which verifies the password against * the 'auth.adminpassword' configuration option. @@ -28,6 +31,7 @@ public function __construct($info, $config) $this->setForcedUsername("admin"); } + /** * Attempt to log in using the given username and password. * @@ -46,19 +50,19 @@ protected function login($username, $password) assert(is_string($username)); assert(is_string($password)); - $config = \SimpleSAML\Configuration::getInstance(); + $config = Configuration::getInstance(); $adminPassword = $config->getString('auth.adminpassword', '123'); if ($adminPassword === '123') { // We require that the user changes the password - throw new \SimpleSAML\Error\Error('NOTSET'); + throw new Error\Error('NOTSET'); } if ($username !== "admin") { - throw new \SimpleSAML\Error\Error('WRONGUSERPASS'); + throw new Error\Error('WRONGUSERPASS'); } if (!\SimpleSAML\Utils\Crypto::pwValid($adminPassword, $password)) { - throw new \SimpleSAML\Error\Error('WRONGUSERPASS'); + throw new Error\Error('WRONGUSERPASS'); } return ['user' => ['admin']]; } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/UserPassBase.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/UserPassBase.php index 8473344666aa5e02a8df33ef1cde898c586fdfb8..90104e5f14d2999a5b0b04f2fccfc3672c62f2fa 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/UserPassBase.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/UserPassBase.php @@ -2,6 +2,14 @@ namespace SimpleSAML\Module\core\Auth; +use SAML2\Constants; +use SimpleSAML\Auth; +use SimpleSAML\Configuration; +use SimpleSAML\Error; +use SimpleSAML\Logger; +use SimpleSAML\Module; +use SimpleSAML\Utils\HTTP; + /** * Helper class for username/password authentication. * @@ -11,7 +19,6 @@ * @author Olav Morken, UNINETT AS. * @package SimpleSAMLphp */ - abstract class UserPassBase extends \SimpleSAML\Auth\Source { /** @@ -29,12 +36,16 @@ abstract class UserPassBase extends \SimpleSAML\Auth\Source * * A forced username cannot be changed by the user. * If this is NULL, we won't force any username. + * + * @var string|null */ private $forcedUsername; /** * Links to pages from login page. * From configuration + * + * @var array */ protected $loginLinks; @@ -42,6 +53,7 @@ abstract class UserPassBase extends \SimpleSAML\Auth\Source * Storage for authsource config option remember.username.enabled * loginuserpass.php and loginuserpassorg.php pages/templates use this option to * present users with a checkbox to save their username for the next login request. + * * @var bool */ protected $rememberUsernameEnabled = false; @@ -50,6 +62,7 @@ abstract class UserPassBase extends \SimpleSAML\Auth\Source * Storage for authsource config option remember.username.checked * loginuserpass.php and loginuserpassorg.php pages/templates use this option * to default the remember username checkbox to checked or not. + * * @var bool */ protected $rememberUsernameChecked = false; @@ -60,6 +73,7 @@ abstract class UserPassBase extends \SimpleSAML\Auth\Source * users with a checkbox to keep their session alive across * different browser sessions (that is, closing and opening the * browser again). + * * @var bool */ protected $rememberMeEnabled = false; @@ -68,10 +82,12 @@ abstract class UserPassBase extends \SimpleSAML\Auth\Source * Storage for general config option session.rememberme.checked. * loginuserpass.php page/template uses this option to default * the "remember me" checkbox to checked or not. + * * @var bool */ protected $rememberMeChecked = false; + /** * Constructor for this authentication source. * @@ -104,15 +120,17 @@ public function __construct($info, &$config) } // get the "remember me" config options - $sspcnf = \SimpleSAML\Configuration::getInstance(); + $sspcnf = Configuration::getInstance(); $this->rememberMeEnabled = $sspcnf->getBoolean('session.rememberme.enable', false); $this->rememberMeChecked = $sspcnf->getBoolean('session.rememberme.checked', false); } + /** * Set forced username. * - * @param string|NULL $forcedUsername The forced username. + * @param string|null $forcedUsername The forced username. + * @return void */ public function setForcedUsername($forcedUsername) { @@ -122,12 +140,14 @@ public function setForcedUsername($forcedUsername) /** * Return login links from configuration + * @return array */ public function getLoginLinks() { return $this->loginLinks; } + /** * Getter for the authsource config option remember.username.enabled * @return bool @@ -137,6 +157,7 @@ public function getRememberUsernameEnabled() return $this->rememberUsernameEnabled; } + /** * Getter for the authsource config option remember.username.checked * @return bool @@ -146,6 +167,7 @@ public function getRememberUsernameChecked() return $this->rememberUsernameChecked; } + /** * Check if the "remember me" feature is enabled. * @return bool TRUE if enabled, FALSE otherwise. @@ -155,6 +177,7 @@ public function isRememberMeEnabled() return $this->rememberMeEnabled; } + /** * Check if the "remember me" checkbox should be checked. * @return bool TRUE if enabled, FALSE otherwise. @@ -164,6 +187,7 @@ public function isRememberMeChecked() return $this->rememberMeChecked; } + /** * Initialize login. * @@ -171,6 +195,7 @@ public function isRememberMeChecked() * login page. * * @param array &$state Information about the current authentication. + * @return void */ public function authenticate(&$state) { @@ -197,11 +222,11 @@ public function authenticate(&$state) // doesn't define how the credentials are transferred, but Office 365 // uses the Authorization header, so we will just use that in lieu of // other use cases. - if (isset($state['saml:Binding']) && $state['saml:Binding'] === \SAML2\Constants::BINDING_PAOS) { + if (isset($state['saml:Binding']) && $state['saml:Binding'] === Constants::BINDING_PAOS) { if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW'])) { - \SimpleSAML\Logger::error("ECP AuthnRequest did not contain Basic Authentication header"); + Logger::error("ECP AuthnRequest did not contain Basic Authentication header"); // TODO Return a SOAP fault instead of using the current binding? - throw new \SimpleSAML\Error\Error("WRONGUSERPASS"); + throw new Error\Error("WRONGUSERPASS"); } $username = $_SERVER['PHP_AUTH_USER']; @@ -219,20 +244,21 @@ public function authenticate(&$state) } // Save the $state-array, so that we can restore it after a redirect - $id = \SimpleSAML\Auth\State::saveState($state, self::STAGEID); + $id = Auth\State::saveState($state, self::STAGEID); /* * Redirect to the login form. We include the identifier of the saved * state array as a parameter to the login form. */ - $url = \SimpleSAML\Module::getModuleURL('core/loginuserpass.php'); + $url = Module::getModuleURL('core/loginuserpass.php'); $params = ['AuthState' => $id]; - \SimpleSAML\Utils\HTTP::redirectTrustedURL($url, $params); + HTTP::redirectTrustedURL($url, $params); // The previous function never returns, so this code is never executed. assert(false); } + /** * Attempt to log in using the given username and password. * @@ -248,6 +274,7 @@ public function authenticate(&$state) */ abstract protected function login($username, $password); + /** * Handle login request. * @@ -258,6 +285,7 @@ abstract protected function login($username, $password); * @param string $authStateId The identifier of the authentication state. * @param string $username The username the user wrote. * @param string $password The password the user wrote. + * @return void */ public static function handleLogin($authStateId, $username, $password) { @@ -266,13 +294,16 @@ public static function handleLogin($authStateId, $username, $password) assert(is_string($password)); // Here we retrieve the state array we saved in the authenticate-function. - $state = \SimpleSAML\Auth\State::loadState($authStateId, self::STAGEID); + /** @var array $state */ + $state = Auth\State::loadState($authStateId, self::STAGEID); // Retrieve the authentication source we are executing. assert(array_key_exists(self::AUTHID, $state)); - $source = \SimpleSAML\Auth\Source::getById($state[self::AUTHID]); + + /** @var \SimpleSAML\Module\core\Auth\UserPassBase|null $source */ + $source = Auth\Source::getById($state[self::AUTHID]); if ($source === null) { - throw new \Exception('Could not find authentication source with id '.$state[self::AUTHID]); + throw new \Exception('Could not find authentication source with id ' . $state[self::AUTHID]); } /* @@ -284,17 +315,17 @@ public static function handleLogin($authStateId, $username, $password) try { $attributes = $source->login($username, $password); } catch (\Exception $e) { - \SimpleSAML\Logger::stats('Unsuccessful login attempt from '.$_SERVER['REMOTE_ADDR'].'.'); + Logger::stats('Unsuccessful login attempt from ' . $_SERVER['REMOTE_ADDR'] . '.'); throw $e; } - \SimpleSAML\Logger::stats('User \''.$username.'\' successfully authenticated from '.$_SERVER['REMOTE_ADDR']); + Logger::stats('User \'' . $username . '\' successfully authenticated from ' . $_SERVER['REMOTE_ADDR']); // Save the attributes we received from the login-function in the $state-array assert(is_array($attributes)); $state['Attributes'] = $attributes; // Return control to SimpleSAMLphp after successful authentication. - \SimpleSAML\Auth\Source::completeAuth($state); + Auth\Source::completeAuth($state); } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/UserPassOrgBase.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/UserPassOrgBase.php index 33168524c85c692c1f19fac1b3f08b684e3c3878..8271c8809b14eb5076a7dcdc7651f92b749cef3b 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/UserPassOrgBase.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Auth/UserPassOrgBase.php @@ -2,6 +2,12 @@ namespace SimpleSAML\Module\core\Auth; +use SimpleSAML\Auth; +use SimpleSAML\Error; +use SimpleSAML\Logger; +use SimpleSAML\Module; +use SimpleSAML\Utils; + /** * Helper class for username/password/organization authentication. * @@ -13,7 +19,6 @@ * @author Olav Morken, UNINETT AS. * @package SimpleSAMLphp */ - abstract class UserPassOrgBase extends \SimpleSAML\Auth\Source { /** @@ -40,6 +45,8 @@ abstract class UserPassOrgBase extends \SimpleSAML\Auth\Source * 'none': Force the user to select the correct organization from the dropdown box. * 'allow': Allow the user to enter the organization as part of the username. * 'force': Remove the dropdown box. + * + * @var string */ private $usernameOrgMethod; @@ -47,6 +54,7 @@ abstract class UserPassOrgBase extends \SimpleSAML\Auth\Source * Storage for authsource config option remember.username.enabled * loginuserpass.php and loginuserpassorg.php pages/templates use this option to * present users with a checkbox to save their username for the next login request. + * * @var bool */ protected $rememberUsernameEnabled = false; @@ -55,6 +63,7 @@ abstract class UserPassOrgBase extends \SimpleSAML\Auth\Source * Storage for authsource config option remember.username.checked * loginuserpass.php and loginuserpassorg.php pages/templates use this option * to default the remember username checkbox to checked or not. + * * @var bool */ protected $rememberUsernameChecked = false; @@ -63,6 +72,7 @@ abstract class UserPassOrgBase extends \SimpleSAML\Auth\Source * Storage for authsource config option remember.organization.enabled * loginuserpassorg.php page/template use this option to present users * with a checkbox to save their organization choice for the next login request. + * * @var bool */ protected $rememberOrganizationEnabled = false; @@ -71,6 +81,7 @@ abstract class UserPassOrgBase extends \SimpleSAML\Auth\Source * Storage for authsource config option remember.organization.checked * loginuserpassorg.php page/template use this option to * default the remember organization checkbox to checked or not. + * * @var bool */ protected $rememberOrganizationChecked = false; @@ -127,6 +138,7 @@ public function __construct($info, &$config) * If unconfigured, the default is 'none'. * * @param string $usernameOrgMethod The method which should be used. + * @return void */ protected function setUsernameOrgMethod($usernameOrgMethod) { @@ -151,6 +163,7 @@ public function getUsernameOrgMethod() return $this->usernameOrgMethod; } + /** * Getter for the authsource config option remember.username.enabled * @return bool @@ -160,6 +173,7 @@ public function getRememberUsernameEnabled() return $this->rememberUsernameEnabled; } + /** * Getter for the authsource config option remember.username.checked * @return bool @@ -169,6 +183,7 @@ public function getRememberUsernameChecked() return $this->rememberUsernameChecked; } + /** * Getter for the authsource config option remember.organization.enabled * @return bool @@ -178,6 +193,7 @@ public function getRememberOrganizationEnabled() return $this->rememberOrganizationEnabled; } + /** * Getter for the authsource config option remember.organization.checked * @return bool @@ -187,6 +203,7 @@ public function getRememberOrganizationChecked() return $this->rememberOrganizationChecked; } + /** * Initialize login. * @@ -194,6 +211,7 @@ public function getRememberOrganizationChecked() * login page. * * @param array &$state Information about the current authentication. + * @return void */ public function authenticate(&$state) { @@ -202,11 +220,11 @@ public function authenticate(&$state) // We are going to need the authId in order to retrieve this authentication source later $state[self::AUTHID] = $this->authId; - $id = \SimpleSAML\Auth\State::saveState($state, self::STAGEID); + $id = Auth\State::saveState($state, self::STAGEID); - $url = \SimpleSAML\Module::getModuleURL('core/loginuserpassorg.php'); + $url = Module::getModuleURL('core/loginuserpassorg.php'); $params = ['AuthState' => $id]; - \SimpleSAML\Utils\HTTP::redirectTrustedURL($url, $params); + Utils\HTTP::redirectTrustedURL($url, $params); } @@ -251,6 +269,7 @@ abstract protected function getOrganizations(); * @param string $username The username the user wrote. * @param string $password The password the user wrote. * @param string $organization The id of the organization the user chose. + * @return void */ public static function handleLogin($authStateId, $username, $password, $organization) { @@ -260,13 +279,16 @@ public static function handleLogin($authStateId, $username, $password, $organiza assert(is_string($organization)); /* Retrieve the authentication state. */ - $state = \SimpleSAML\Auth\State::loadState($authStateId, self::STAGEID); + /** @var array $state */ + $state = Auth\State::loadState($authStateId, self::STAGEID); /* Find authentication source. */ assert(array_key_exists(self::AUTHID, $state)); - $source = \SimpleSAML\Auth\Source::getById($state[self::AUTHID]); + + /** @var \SimpleSAML\Module\core\Auth\UserPassOrgBase|null $source */ + $source = Auth\Source::getById($state[self::AUTHID]); if ($source === null) { - throw new \Exception('Could not find authentication source with id '.$state[self::AUTHID]); + throw new \Exception('Could not find authentication source with id ' . $state[self::AUTHID]); } $orgMethod = $source->getUsernameOrgMethod(); @@ -278,20 +300,30 @@ public static function handleLogin($authStateId, $username, $password, $organiza } else { if ($orgMethod === 'force') { /* The organization should be a part of the username, but isn't. */ - throw new \SimpleSAML\Error\Error('WRONGUSERPASS'); + throw new Error\Error('WRONGUSERPASS'); } } } /* Attempt to log in. */ - $attributes = $source->login($username, $password, $organization); + try { + $attributes = $source->login($username, $password, $organization); + } catch (\Exception $e) { + Logger::stats('Unsuccessful login attempt from ' . $_SERVER['REMOTE_ADDR'] . '.'); + throw $e; + } + + Logger::stats( + 'User \'' . $username . '\' at \'' . $organization + . '\' successfully authenticated from ' . $_SERVER['REMOTE_ADDR'] + ); // Add the selected Org to the state $state[self::ORGID] = $organization; $state['PersistentAuthData'][] = self::ORGID; $state['Attributes'] = $attributes; - \SimpleSAML\Auth\Source::completeAuth($state); + Auth\Source::completeAuth($state); } @@ -301,7 +333,7 @@ public static function handleLogin($authStateId, $username, $password, $organiza * This function is used by the login form to get the available organizations. * * @param string $authStateId The identifier of the authentication state. - * @return array|NULL Array of organizations. NULL if the user must enter the + * @return array|null Array of organizations. NULL if the user must enter the * organization as part of the username. */ public static function listOrganizations($authStateId) @@ -309,13 +341,16 @@ public static function listOrganizations($authStateId) assert(is_string($authStateId)); /* Retrieve the authentication state. */ - $state = \SimpleSAML\Auth\State::loadState($authStateId, self::STAGEID); + /** @var array $state */ + $state = Auth\State::loadState($authStateId, self::STAGEID); /* Find authentication source. */ assert(array_key_exists(self::AUTHID, $state)); - $source = \SimpleSAML\Auth\Source::getById($state[self::AUTHID]); + + /** @var \SimpleSAML\Module\core\Auth\UserPassOrgBase|null $source */ + $source = Auth\Source::getById($state[self::AUTHID]); if ($source === null) { - throw new \Exception('Could not find authentication source with id '.$state[self::AUTHID]); + throw new \Exception('Could not find authentication source with id ' . $state[self::AUTHID]); } $orgMethod = $source->getUsernameOrgMethod(); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Controller.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Controller.php index 8a4563f42df18c96261dab9a35344e64c8a01c7e..a9737edb47cf44ab2cd0930f39cb743d5bddd3de 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Controller.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Controller.php @@ -2,9 +2,15 @@ namespace SimpleSAML\Module\core; -use SimpleSAML\Error\Exception; +use SimpleSAML\Auth; +use SimpleSAML\Auth\AuthenticationFactory; +use SimpleSAML\Configuration; +use SimpleSAML\Error; use SimpleSAML\HTTP\RunnableResponse; - +use SimpleSAML\Module; +use SimpleSAML\Session; +use SimpleSAML\Utils; +use SimpleSAML\XHTML\Template; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; @@ -17,7 +23,6 @@ */ class Controller { - /** @var \SimpleSAML\Configuration */ protected $config; @@ -43,9 +48,9 @@ class Controller * @throws \Exception */ public function __construct( - \SimpleSAML\Configuration $config, - \SimpleSAML\Session $session, - \SimpleSAML\Auth\AuthenticationFactory $factory + Configuration $config, + Session $session, + AuthenticationFactory $factory ) { $this->config = $config; $this->factory = $factory; @@ -67,24 +72,30 @@ public function __construct( public function account($as) { if (!array_key_exists($as, $this->sources)) { - throw new Exception('Invalid authentication source'); + throw new Error\Exception('Invalid authentication source'); } $auth = $this->factory->create($as); if (!$auth->isAuthenticated()) { // not authenticated, start auth with specified source - return new RedirectResponse(\SimpleSAML\Module::getModuleURL('core/login/'.urlencode($as))); + return new RedirectResponse(Module::getModuleURL('core/login/' . urlencode($as))); } $attributes = $auth->getAttributes(); + + $session = Session::getSessionFromRequest(); - $t = new \SimpleSAML\XHTML\Template($this->config, 'auth_status.twig', 'attributes'); + $t = new Template($this->config, 'auth_status.twig', 'attributes'); + $l = $t->getLocalization(); + $l->addDomain($l->getLocaleDir(), 'attributes'); $t->data['header'] = '{status:header_saml20_sp}'; $t->data['attributes'] = $attributes; $t->data['nameid'] = !is_null($auth->getAuthData('saml:sp:NameID')) ? $auth->getAuthData('saml:sp:NameID') : false; - $t->data['logouturl'] = \SimpleSAML\Module::getModuleURL('core/logout/'.urlencode($as)); + $t->data['authData'] = $auth->getAuthDataArray(); + $t->data['trackid'] = $session->getTrackID(); + $t->data['logouturl'] = Module::getModuleURL('core/logout/' . urlencode($as)); $t->data['remaining'] = $this->session->getAuthData($as, 'Expire') - time(); $t->setStatusCode(200); @@ -118,37 +129,39 @@ public function login(Request $request, $as = null) } if ($as === null) { // no authentication source specified - $t = new \SimpleSAML\XHTML\Template($this->config, 'core:login.twig'); - $t->data['loginurl'] = \SimpleSAML\Utils\Auth::getAdminLoginURL(); + $t = new Template($this->config, 'core:login.twig'); + $t->data['loginurl'] = Utils\Auth::getAdminLoginURL(); $t->data['sources'] = $this->sources; return $t; } // auth source defined, check if valid if (!array_key_exists($as, $this->sources)) { - throw new Exception('Invalid authentication source'); + throw new Error\Exception('Invalid authentication source'); } // at this point, we have a valid auth source selected, start auth $auth = $this->factory->create($as); $as = urlencode($as); - if ($request->get(\SimpleSAML\Auth\State::EXCEPTION_PARAM, false) !== false) { + if ($request->get(Auth\State::EXCEPTION_PARAM, false) !== false) { // This is just a simple example of an error - $state = \SimpleSAML\Auth\State::loadExceptionState(); - assert(array_key_exists(\SimpleSAML\Auth\State::EXCEPTION_DATA, $state)); - $e = $state[\SimpleSAML\Auth\State::EXCEPTION_DATA]; + /** @var array $state */ + $state = Auth\State::loadExceptionState(); + + assert(array_key_exists(Auth\State::EXCEPTION_DATA, $state)); + $e = $state[Auth\State::EXCEPTION_DATA]; throw $e; } if ($auth->isAuthenticated()) { - return new RedirectResponse(\SimpleSAML\Module::getModuleURL('core/account/'.$as)); + return new RedirectResponse(Module::getModuleURL('core/account/' . $as)); } // we're not logged in, start auth - $url = \SimpleSAML\Module::getModuleURL('core/login/'.$as); + $url = Module::getModuleURL('core/login/' . $as); $params = array( 'ErrorURL' => $url, 'ReturnTo' => $url, @@ -168,7 +181,7 @@ public function login(Request $request, $as = null) */ public function logout($as) { - $auth = new \SimpleSAML\Auth\Simple($as); - return new RunnableResponse([$auth, 'logout'], [$this->config->getBasePath().'logout.php']); + $auth = new Auth\Simple($as); + return new RunnableResponse([$auth, 'logout'], [$this->config->getBasePath() . 'logout.php']); } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Stats/Output/File.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Stats/Output/File.php index cac817c83b784f5e7fca13d3a6dca81d0497ab18..30a97e1722cfe45f7d204f8053b00efc7f894f9c 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Stats/Output/File.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Stats/Output/File.php @@ -2,12 +2,14 @@ namespace SimpleSAML\Module\core\Stats\Output; +use SimpleSAML\Configuration; +use SimpleSAML\Error; + /** * Statistics logger that writes to a set of log files * * @package SimpleSAMLphp */ - class File extends \SimpleSAML\Stats\Output { /** @@ -18,36 +20,40 @@ class File extends \SimpleSAML\Stats\Output /** * The file handle for the current file. - * @var resource|null|false + * @var resource|null */ private $file = null; /** * The current file date. - * @var string + * @var string|null */ private $fileDate = null; + /** * Initialize the output. * * @param \SimpleSAML\Configuration $config The configuration for this output. */ - public function __construct(\SimpleSAML\Configuration $config) + public function __construct(Configuration $config) { - $this->logDir = $config->getPathValue('directory'); - if ($this->logDir === null) { + $logDir = $config->getPathValue('directory'); + if ($logDir === null) { throw new \Exception('Missing "directory" option for core:File'); } - if (!is_dir($this->logDir)) { - throw new \Exception('Could not find log directory: '.var_export($this->logDir, true)); + if (!is_dir($logDir)) { + throw new \Exception('Could not find log directory: ' . var_export($logDir, true)); } + $this->logDir = $logDir; } + /** * Open a log file. * * @param string $date The date for the log file. + * @return void */ private function openLog($date) { @@ -58,22 +64,25 @@ private function openLog($date) $this->file = null; } - $fileName = $this->logDir.'/'.$date.'.log'; - $this->file = @fopen($fileName, 'a'); - if ($this->file === false) { - throw new \SimpleSAML\Error\Exception('Error opening log file: '.var_export($fileName, true)); + $fileName = $this->logDir . '/' . $date . '.log'; + $fh = @fopen($fileName, 'a'); + if ($fh === false) { + throw new Error\Exception('Error opening log file: ' . var_export($fileName, true)); } // Disable output buffering - stream_set_write_buffer($this->file, 0); + stream_set_write_buffer($fh, 0); + $this->file = $fh; $this->fileDate = $date; } + /** * Write a stats event. * * @param array $data The event. + * @return void */ public function emit(array $data) { @@ -82,7 +91,7 @@ public function emit(array $data) $time = $data['time']; $milliseconds = (int) (($time - (int) $time) * 1000); - $timestamp = gmdate('Y-m-d\TH:i:s', $time).sprintf('.%03dZ', $milliseconds); + $timestamp = gmdate('Y-m-d\TH:i:s', $time) . sprintf('.%03dZ', $milliseconds); $outDate = substr($timestamp, 0, 10); // The date-part of the timstamp @@ -90,7 +99,8 @@ public function emit(array $data) $this->openLog($outDate); } - $line = $timestamp.' '.json_encode($data)."\n"; + $line = $timestamp . ' ' . json_encode($data) . "\n"; + /** @psalm-suppress PossiblyNullArgument */ fwrite($this->file, $line); } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Stats/Output/Log.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Stats/Output/Log.php index e3eff86663cac6955df4ff620944547578e4d415..0175c2328a9bd5a548cd5531cd4fa6328496f2d9 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Stats/Output/Log.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Stats/Output/Log.php @@ -2,42 +2,48 @@ namespace SimpleSAML\Module\core\Stats\Output; +use SimpleSAML\Configuration; +use SimpleSAML\Logger; + /** * Statistics logger that writes to the default logging handler. * * @package SimpleSAMLphp */ - class Log extends \SimpleSAML\Stats\Output { /** * The logging function we should call. - * @var callback + * @var callable */ private $logger; + /** * Initialize the output. * * @param \SimpleSAML\Configuration $config The configuration for this output. + * @throws \Exception */ - public function __construct(\SimpleSAML\Configuration $config) + public function __construct(Configuration $config) { $logLevel = $config->getString('level', 'notice'); - $this->logger = ['\SimpleSAML\Logger', $logLevel]; + $this->logger = [Logger::class, $logLevel]; if (!is_callable($this->logger)) { - throw new \Exception('Invalid log level: '.var_export($logLevel, true)); + throw new \Exception('Invalid log level: ' . var_export($logLevel, true)); } } + /** * Write a stats event. * - * @param string $data The event (as a JSON string). + * @param array $data The event + * @return void */ public function emit(array $data) { $str_data = json_encode($data); - call_user_func($this->logger, 'EVENT '.$str_data); + call_user_func($this->logger, 'EVENT ' . $str_data); } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Storage/SQLPermanentStorage.php b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Storage/SQLPermanentStorage.php index 4360d5e84ad015e37438810cdc61712a85aef9ee..1ff18f8ab344a8ad58879a4b8ebb2e6aa09845d4 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Storage/SQLPermanentStorage.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/lib/Storage/SQLPermanentStorage.php @@ -2,6 +2,9 @@ namespace SimpleSAML\Module\core\Storage; +use PDO; +use SimpleSAML\Configuration; + /** * SQLPermanentStorage * @@ -14,34 +17,41 @@ class SQLPermanentStorage { + /** @var \PDO */ private $db; + + /** + * @param string $name + * @param \SimpleSAML\Configuration|null $config + * @throws \Exception + */ public function __construct($name, $config = null) { if (is_null($config)) { - $config = \SimpleSAML\Configuration::getInstance(); + $config = Configuration::getInstance(); } - $datadir = $config->getPathValue('datadir', 'data/'); + $datadir = $config->getPathValue('datadir', 'data/') ?: 'data/'; if (!is_dir($datadir)) { - throw new \Exception('Data directory ['.$datadir.'] does not exist'); + throw new \Exception('Data directory [' . $datadir . '] does not exist'); } elseif (!is_writable($datadir)) { - throw new \Exception('Data directory ['.$datadir.'] is not writable'); + throw new \Exception('Data directory [' . $datadir . '] is not writable'); } - $sqllitedir = $datadir.'sqllite/'; + $sqllitedir = $datadir . 'sqllite/'; if (!is_dir($sqllitedir)) { mkdir($sqllitedir); } - $dbfile = 'sqlite:'.$sqllitedir.$name.'.sqlite'; - if ($this->db = new \PDO($dbfile)) { + $dbfile = 'sqlite:' . $sqllitedir . $name . '.sqlite'; + if ($this->db = new PDO($dbfile)) { $q = @$this->db->query('SELECT key1 FROM data LIMIT 1'); if ($q === false) { $this->db->exec(' CREATE TABLE data ( - key1 text, + key1 text, key2 text, type text, value text, @@ -53,10 +63,19 @@ public function __construct($name, $config = null) '); } } else { - throw new \Exception('Error creating SQL lite database ['.$dbfile.'].'); + throw new \Exception('Error creating SQL lite database [' . $dbfile . '].'); } } + + /** + * @param string $type + * @param mixed $key1 + * @param mixed $key2 + * @param mixed $value + * @param int|null $duration + * @return void + */ public function set($type, $key1, $key2, $value, $duration = null) { if ($this->exists($type, $key1, $key2)) { @@ -66,45 +85,72 @@ public function set($type, $key1, $key2, $value, $duration = null) } } + + /** + * @param string $type + * @param mixed $key1 + * @param mixed $key2 + * @param mixed $value + * @param int|null $duration + * @return array + */ private function insert($type, $key1, $key2, $value, $duration = null) { $expire = is_null($duration) ? null : (time() + $duration); - $query = "INSERT INTO data (key1, key2, type, created, updated, expire, value)". + $query = "INSERT INTO data (key1, key2, type, created, updated, expire, value)" . " VALUES(:key1, :key2, :type, :created, :updated, :expire, :value)"; $prepared = $this->db->prepare($query); $data = [':key1' => $key1, ':key2' => $key2, ':type' => $type, ':created' => time(), ':updated' => time(), ':expire' => $expire, - ':value' => serialize($value)]; + ':value' => serialize($value) + ]; $prepared->execute($data); - $results = $prepared->fetchAll(\PDO::FETCH_ASSOC); + $results = $prepared->fetchAll(PDO::FETCH_ASSOC); return $results; } + + /** + * @param string $type + * @param mixed $key1 + * @param mixed $key2 + * @param mixed $value + * @param int|null $duration + * @return array + */ private function update($type, $key1, $key2, $value, $duration = null) { $expire = is_null($duration) ? null : (time() + $duration); - $query = "UPDATE data SET updated = :updated, value = :value, ". + $query = "UPDATE data SET updated = :updated, value = :value, " . "expire = :expire WHERE key1 = :key1 AND key2 = :key2 AND type = :type"; $prepared = $this->db->prepare($query); $data = [':key1' => $key1, ':key2' => $key2, ':type' => $type, ':updated' => time(), - ':expire' => $expire, ':value' => serialize($value)]; + ':expire' => $expire, ':value' => serialize($value) + ]; $prepared->execute($data); - $results = $prepared->fetchAll(\PDO::FETCH_ASSOC); + $results = $prepared->fetchAll(PDO::FETCH_ASSOC); return $results; } + + /** + * @param string $type + * @param mixed $key1 + * @param mixed $key2 + * @return array|null + */ public function get($type = null, $key1 = null, $key2 = null) { $conditions = $this->getCondition($type, $key1, $key2); - $query = 'SELECT * FROM data WHERE '.$conditions; + $query = 'SELECT * FROM data WHERE ' . $conditions; $prepared = $this->db->prepare($query); $prepared->execute(); - $results = $prepared->fetchAll(\PDO::FETCH_ASSOC); + $results = $prepared->fetchAll(PDO::FETCH_ASSOC); if (count($results) !== 1) { return null; } @@ -114,8 +160,13 @@ public function get($type = null, $key1 = null, $key2 = null) return $res; } - /* + /** * Return the value directly (not in a container) + * + * @param string $type + * @param mixed $key1 + * @param mixed $key2 + * @return array|null */ public function getValue($type = null, $key1 = null, $key2 = null) { @@ -126,26 +177,40 @@ public function getValue($type = null, $key1 = null, $key2 = null) return $res['value']; } + + /** + * @param string $type + * @param mixed $key1 + * @param mixed $key2 + * @return bool + */ public function exists($type, $key1, $key2) { $query = 'SELECT * FROM data WHERE type = :type AND key1 = :key1 AND key2 = :key2 LIMIT 1'; $prepared = $this->db->prepare($query); $data = [':type' => $type, ':key1' => $key1, ':key2' => $key2]; $prepared->execute($data); - $results = $prepared->fetchAll(\PDO::FETCH_ASSOC); + $results = $prepared->fetchAll(PDO::FETCH_ASSOC); return (count($results) == 1); } + + /** + * @param string $type + * @param mixed $key1 + * @param mixed $key2 + * @return array|false + */ public function getList($type = null, $key1 = null, $key2 = null) { $conditions = $this->getCondition($type, $key1, $key2); - $query = 'SELECT * FROM data WHERE '.$conditions; + $query = 'SELECT * FROM data WHERE ' . $conditions; $prepared = $this->db->prepare($query); $prepared->execute(); - $results = $prepared->fetchAll(\PDO::FETCH_ASSOC); - if (count($results) == 0) { - return null; + $results = $prepared->fetchAll(PDO::FETCH_ASSOC); + if ($results === false) { + return false; } foreach ($results as $key => $value) { @@ -154,6 +219,15 @@ public function getList($type = null, $key1 = null, $key2 = null) return $results; } + + /** + * @param string $type + * @param mixed $key1 + * @param mixed $key2 + * @param string $whichKey + * @throws \Exception + * @return array|null + */ public function getKeys($type = null, $key1 = null, $key2 = null, $whichKey = 'type') { if (!in_array($whichKey, ['key1', 'key2', 'type'], true)) { @@ -161,11 +235,11 @@ public function getKeys($type = null, $key1 = null, $key2 = null, $whichKey = 't } $conditions = $this->getCondition($type, $key1, $key2); - $query = 'SELECT DISTINCT :whichKey FROM data WHERE '.$conditions; + $query = 'SELECT DISTINCT :whichKey FROM data WHERE ' . $conditions; $prepared = $this->db->prepare($query); $data = ['whichKey' => $whichKey]; $prepared->execute($data); - $results = $prepared->fetchAll(\PDO::FETCH_ASSOC); + $results = $prepared->fetchAll(PDO::FETCH_ASSOC); if (count($results) == 0) { return null; @@ -178,16 +252,26 @@ public function getKeys($type = null, $key1 = null, $key2 = null, $whichKey = 't return $resarray; } + /** + * @param string $type + * @param mixed $key1 + * @param mixed $key2 + * @return bool + */ public function remove($type, $key1, $key2) { $query = 'DELETE FROM data WHERE type = :type AND key1 = :key1 AND key2 = :key2'; $prepared = $this->db->prepare($query); $data = [':type' => $type, ':key1' => $key1, ':key2' => $key2]; $prepared->execute($data); - $results = $prepared->fetchAll(\PDO::FETCH_ASSOC); + $results = $prepared->fetchAll(PDO::FETCH_ASSOC); return (count($results) == 1); } + + /** + * @return int + */ public function removeExpired() { $query = "DELETE FROM data WHERE expire IS NOT NULL AND expire < :expire"; @@ -199,21 +283,26 @@ public function removeExpired() /** * Create a SQL condition statement based on parameters + * + * @param string $type + * @param mixed $key1 + * @param mixed $key2 + * @return string */ private function getCondition($type = null, $key1 = null, $key2 = null) { $conditions = []; if (!is_null($type)) { - $conditions[] = "type = ".$this->db->quote($type); + $conditions[] = "type = " . $this->db->quote($type); } if (!is_null($key1)) { - $conditions[] = "key1 = ".$this->db->quote($key1); + $conditions[] = "key1 = " . $this->db->quote($key1); } if (!is_null($key2)) { - $conditions[] = "key2 = ".$this->db->quote($key2); + $conditions[] = "key2 = " . $this->db->quote($key2); } - $conditions[] = "(expire IS NULL OR expire >= ".time().")"; + $conditions[] = "(expire IS NULL OR expire >= " . time() . ")"; return join(' AND ', $conditions); } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/locales/pl/LC_MESSAGES/core.po b/vendor/simplesamlphp/simplesamlphp/modules/core/locales/pl/LC_MESSAGES/core.po index fadeeb468d7d263ef45ff81f6120c1c9c415e48c..326fa1dba5a22c200d2989dc25afaa471b9e2091 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/locales/pl/LC_MESSAGES/core.po +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/locales/pl/LC_MESSAGES/core.po @@ -94,7 +94,7 @@ msgid "{core:frontpage:loggedin_as_admin}" msgstr "Jesteś zalogowany jako administrator" msgid "{core:frontpage:auth}" -msgstr "Autentykacja" +msgstr "Uwierzytelnianie" msgid "{core:frontpage:show_metadata}" msgstr "Wyświetl metadane" @@ -278,7 +278,7 @@ msgid "Shibboleth 1.3 SP example - test logging in through your Shib IdP" msgstr "Shibboleth 1.3 SP - przykład - test logowania przez Twoje Shib IdP" msgid "Authentication" -msgstr "Autentykacja" +msgstr "Uwierzytelnianie" msgid "Show metadata" msgstr "Wyświetl metadane" diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/templates/authsource_list.twig b/vendor/simplesamlphp/simplesamlphp/modules/core/templates/authsource_list.twig new file mode 100644 index 0000000000000000000000000000000000000000..a3654e915d7d3083aa025d15f7fb29cedba5bf10 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/templates/authsource_list.twig @@ -0,0 +1,11 @@ +{% set pagetitle = 'Test Authentication Sources'|trans %} +{% extends "base.twig" %} + +{% block content %} + <h2>{{ pagetitle }} </h2> + <ul> + {% for key, name in sources %} + <li><a href="?as={{ name|escape('url') }}">{{ name }}</a></li> + {% endfor %} + </ul> +{% endblock %} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/templates/cardinality_error.twig b/vendor/simplesamlphp/simplesamlphp/modules/core/templates/cardinality_error.twig new file mode 100644 index 0000000000000000000000000000000000000000..30b864c0ff17cce812ef4f01ba4ac52220496e3e --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/templates/cardinality_error.twig @@ -0,0 +1,25 @@ +{% set pagetitle = 'Incorrect Attributes' | trans %} +{% extends "base.twig" %} +{% block content %} + +<h1>{{ pagetitle }}</h1> + +<p>{% trans 'One or more of the attributes supplied by your identity provider did not contain the expected number of values.' %}</p> + +<h3>{% trans 'The problematic attribute(s) are:' %}</h3> + +<dl class="cardinalityErrorAttributes"> +{% for attr,issues in cardinalityErrorAttributes %} + {% set got = issues[0] %} + {% set want = issues[1] %} + + <dt>{{ attr }}</dt> + <dd>{% trans %}got {{ got }} values, want {{ want }}{% endtrans %}</dd> +{% endfor %} +</dl> + +{% if LogoutURL is defined %} + <p><a href="{{ LogoutURL }}">{% trans 'Logout' %}</a></p> +{% endif %} + +{% endblock %} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/templates/frontpage_config.tpl.php b/vendor/simplesamlphp/simplesamlphp/modules/core/templates/frontpage_config.tpl.php index 10f7463cf305b6ceff462533f85f4c5140db68db..8227e8cd0ce23e0a572b21388d5544cf57fc614f 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/templates/frontpage_config.tpl.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/templates/frontpage_config.tpl.php @@ -5,7 +5,7 @@ ?> -<!-- +<!-- <div id="tabdiv"> <ul> <li><a href="#welcome"><?php echo $this->t('{core:frontpage:welcome}'); ?></a></li> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/templates/loginuserpass.php b/vendor/simplesamlphp/simplesamlphp/modules/core/templates/loginuserpass.tpl.php similarity index 98% rename from vendor/simplesamlphp/simplesamlphp/modules/core/templates/loginuserpass.php rename to vendor/simplesamlphp/simplesamlphp/modules/core/templates/loginuserpass.tpl.php index cfbb1cf7bac54683c8873a6d64770f2586fa3df2..7dbeab9ad703dc74e87f2175df9527a64561e612 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/templates/loginuserpass.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/templates/loginuserpass.tpl.php @@ -89,7 +89,7 @@ class="float-l erroricon" style="margin: 15px" alt=""/> ?> <tr> <td><label for="password"><?php echo $this->t('{login:password}'); ?></label></td> - <td><input id="password" type="password" tabindex="2" name="password" /></td> + <td><input id="password" type="password" tabindex="2" name="password" autocomplete="current-password" /></td> <?php if ($this->data['rememberMeEnabled']) { // display the remember me checkbox (keep me logged in) @@ -168,7 +168,7 @@ class="float-l erroricon" style="margin: 15px" alt=""/> <tr id="submit"> <td class="loginicon"></td><td></td> <td> - <button id="submit_button" class="btn" tabindex="6"> + <button id="submit_button" class="btn" tabindex="6" type="submit"> <?php echo $this->t('{login:login_button}'); ?> </button> </td> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/templates/loginuserpass.twig b/vendor/simplesamlphp/simplesamlphp/modules/core/templates/loginuserpass.twig index 59529528bdd73e15438da7a2e5cf4e1378284f63..43344580ec3c9e1253fb9cbe55abeda90676d316 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/templates/loginuserpass.twig +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/templates/loginuserpass.twig @@ -7,6 +7,15 @@ {% endblock %} {% block content %} + {%- if not isProduction %} + + <div class="message-box warning"> + {% trans %}You are now accessing a pre-production system. This authentication setup + {#- #} is for testing and pre-production verification only. If someone sent you + {#- #} a link that pointed you here, and you are not <i>a tester</i> you + {#- #} probably got the wrong link, and should <b>not be here</b>.{% endtrans %} + </div> + {% endif -%} {% if errorcode -%} <div class="pure-g"> <div class="pure-u-1"> @@ -53,8 +62,8 @@ <div class="pure-control-group"> <label for="password">{{ 'Password'|trans}}</label> - <input id="password" type="password" tabindex="2" name="password" class="edge" - {%- if forceUsername or username %} autofocus {% endif %} /> + <input id="password" type="password" tabindex="2" name="password" class="edge" autocomplete="current-password" + {%- if forceUsername or username %} autofocus {% endif %} > {% if rememberMeEnabled -%} </div> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/templates/logout-iframe-wrapper.php b/vendor/simplesamlphp/simplesamlphp/modules/core/templates/logout-iframe-wrapper.tpl.php similarity index 100% rename from vendor/simplesamlphp/simplesamlphp/modules/core/templates/logout-iframe-wrapper.php rename to vendor/simplesamlphp/simplesamlphp/modules/core/templates/logout-iframe-wrapper.tpl.php diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/templates/logout-iframe-wrapper.twig b/vendor/simplesamlphp/simplesamlphp/modules/core/templates/logout-iframe-wrapper.twig index 7c9e415d072d9d25553bdb7e8eee4b05c76a4810..a1baa200c0560f829872d64d6492d0cd951f701b 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/templates/logout-iframe-wrapper.twig +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/templates/logout-iframe-wrapper.twig @@ -1,16 +1,2 @@ - {% set pagetitle = '{logout:progress}'|trans %} -{% extends "base.twig" %} - -{% block content %} - {# pretty arbitrary height, but should have enough safety margins for most cases #} - {% set iframeHeight = (25 + (SPs|length * 4)) %} - - <iframe style="width:100%; height: {{ iframeHeight }}em; border:0;" src="logout-iframe.php?type=embed&id={{ auth_state|escape('url') }}"></iframe> - - {% for assocId, sp in SPs %} - {% if attribute(sp, 'core:Logout-IFrame:State') == 'inprogress' %} - <iframe style="width:0; height:0; border:0;" src="{{ attribute(sp, 'core:Logout-IFrame:URL')|escape('html') }}</iframe> - {% endif %} - {% endfor %} -{% endblock %} +{% extends "@core/logout-iframe.twig" %} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/templates/logout-iframe.php b/vendor/simplesamlphp/simplesamlphp/modules/core/templates/logout-iframe.tpl.php similarity index 100% rename from vendor/simplesamlphp/simplesamlphp/modules/core/templates/logout-iframe.php rename to vendor/simplesamlphp/simplesamlphp/modules/core/templates/logout-iframe.tpl.php diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/templates/logout-iframe.twig b/vendor/simplesamlphp/simplesamlphp/modules/core/templates/logout-iframe.twig new file mode 100644 index 0000000000000000000000000000000000000000..e3959ba6282ceb0891b5dea7bb20067921ad25bb --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/templates/logout-iframe.twig @@ -0,0 +1,123 @@ +{% set pagetitle = 'Logging out...'|trans %} +{% extends "base.twig" %} + +{% block preload %} + + <link rel="preload" href="{{ asset('js/logout.js') }}" as="script"> + {%- if type != "init" %} + {%- set content = '2' %} + {%- if remaining_services|length == 0 %} + {%- set content = '0; url=logout-iframe-done.php?id=' ~ auth_state %} + {%- endif %} + + <meta http-equiv="refresh" content="{{ content }}"> + {% endif %} +{% endblock preload %} + +{% block content %} + + <h1>{{ pagetitle }}</h1> + {%- if terminated_service %} + {%- set SP = terminated_service['name']|translateFromArray|default('the service'|trans)|e %} + + <p>{% trans %}You are now successfully logged out from {{ SP }}.{% endtrans %}</p> + {%- endif %} + {%- if remaining_services %} + {%- set failed = false %} + {%- set remaining = 0 %} + {%- if remaining_services|length > 0 %} + + <p>{% trans %}You are also logged in on these services:{% endtrans %}</p> + {%- endif %} + + <div class="custom-restricted-width"> + <ul class="fa-ul"> + {%- for key, sp in remaining_services %} + {%- set timeout = 5 %} + {%- set name = sp['metadata']['name']|translateFromArray|default(sp['entityID']) %} + {%- set icon = 'circle-o-notch' %} + {%- if sp['status'] == 'completed' %} + {%- set icon = 'check-circle' %} + {%- elseif sp['status'] == 'failed' %} + {%- set icon = 'exclamation-circle' %} + {%- set failed = true %} + {%- elseif (sp['status'] == 'onhold' or sp['status'] == 'inprogress') %} + {%- set remaining = remaining + 1 %} + {%- endif %} + {%- if type == 'nojs' and sp['status'] == 'inprogress' %} + {%- set icon = icon ~ ' fa-spin' %} + {%- endif %} + + <li id="sp-{{ key }}" data-id="{{ key }}" data-status="{{ sp['status'] }}" + {#- #} data-timeout="{{ timeout }}"> + <span class="fa-li"><i id="icon-{{ key }}" class="fa fa-{{ icon }}"></i></span> + {{ name }} + {%- if sp['status'] != 'completed' and sp['status'] != 'failed' %} + {%- if type == 'nojs' %} + + <iframe id="iframe-{{ key }}" class="hidden" src="{{ sp['logoutURL'] }}"></iframe> + {%- else %} + + <iframe id="iframe-{{ key }}" class="hidden" data-url="{{ sp['logoutURL'] }}"></iframe> + {%- endif %} + {%- else %} + {%- if sp['status'] == 'failed' %} + ({% trans %}logout is not supported{% endtrans %}) + {%- endif %} + {%- endif %} + + </li> + {%- endfor %} + + </ul> + </div> + <br> + <div id="error-message"{% if not failed or type == 'init' %} class="hidden"{% endif %}> + <div class="message-box error"> + {% trans %}Unable to log out of one or more services. To ensure that all your + {#- #} sessions are closed, you are encouraged to <i>close your webbrowser</i>.{% endtrans %} + </div> + </div> + <form id="error-form" action="logout-iframe-done.php" + {%- if (not failed or type == 'init') and remaining %} class="hidden"{% endif %}> + <input type="hidden" name="id" value="{{ auth_state }}"> + <button type="submit" id="btn-continue" name="ok" class="pure-button pure-button-red"> + {%- trans %}Continue{% endtrans -%} + </button> + </form> + <div id="original-actions"{% if type != 'init' %} class="hidden"{% endif %}> + <p>{% trans %}Do you want to logout from all the services above?{% endtrans %}</p> + <div class="pure-button-group two-elements"> + <form id="startform" action="logout-iframe.php"> + <input type="hidden" name="id" value="{{ auth_state }}"> + <noscript> + <input type="hidden" name="type" value="nojs" id="logout-type-selector"> + </noscript> + <button type="submit" id="btn-all" name="ok" class="pure-button pure-button-red"> + {%- trans %}Yes, all services{% endtrans -%} + </button> + </form> + <form action="logout-iframe-done.php"> + <input type="hidden" name="id" value="{{ auth_state }}"> + <input type="hidden" name="cancel" value=""> + <button id="btn-cancel" class="pure-button" type="submit"> + {%- if terminated_service %}{% trans %}No, only {{ SP }}{% endtrans %} + {%- else %}{% trans %}No{% endtrans %}{% endif -%} + </button> + </form> + </div> + </div> + {%- else %} + <form id="error-form" action="logout-iframe-done.php"> + <input type="hidden" name="id" value="{{ auth_state }}"> + <button type="submit" id="btn-continue" name="ok" class="pure-button pure-button-red"> + {%- trans %}Continue{% endtrans -%} + </button> + </form> + {% endif %} +{% endblock %} + +{% block postload %} + + <script src="{{ asset('js/logout.js') }}"></script> +{% endblock postload %} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/templates/short_sso_interval.php b/vendor/simplesamlphp/simplesamlphp/modules/core/templates/short_sso_interval.tpl.php similarity index 100% rename from vendor/simplesamlphp/simplesamlphp/modules/core/templates/short_sso_interval.php rename to vendor/simplesamlphp/simplesamlphp/modules/core/templates/short_sso_interval.tpl.php diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/templates/show_metadata.tpl.php b/vendor/simplesamlphp/simplesamlphp/modules/core/templates/show_metadata.tpl.php index f217540c77f469542e558dd0798b5ffe128b2aa3..2a23d6e91d898fc7c6fc880a50b70962a24d160a 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/templates/show_metadata.tpl.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/templates/show_metadata.tpl.php @@ -7,9 +7,9 @@ alt="Copy to clipboard" /> </button> <pre id="metadata"> -$metadata['<?php echo $this->data['m']['metadata-index']; unset($this->data['m']['metadata-index']) ?>'] => <?php +$metadata['<?php echo $this->data['m']['metadata-index']; unset($this->data['m']['metadata-index']) ?>'] = <?php echo htmlspecialchars(var_export($this->data['m'], true)); -?> +?>; </pre> </div> <script type="text/javascript"> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/www/authenticate.php b/vendor/simplesamlphp/simplesamlphp/modules/core/www/authenticate.php index e1484e1fed26af74e45614a8650e3c7ff56b032c..4658cb151c4291d0b1c7c7851488dc5a9373d62e 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/www/authenticate.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/www/authenticate.php @@ -14,13 +14,15 @@ $as = new \SimpleSAML\Auth\Simple($asId); if (array_key_exists('logout', $_REQUEST)) { - $as->logout($config->getBasePath().'logout.php'); + $as->logout($config->getBasePath() . 'logout.php'); } if (array_key_exists(\SimpleSAML\Auth\State::EXCEPTION_PARAM, $_REQUEST)) { // This is just a simple example of an error + /** @var array $state */ $state = \SimpleSAML\Auth\State::loadExceptionState(); + assert(array_key_exists(\SimpleSAML\Auth\State::EXCEPTION_DATA, $state)); $e = $state[\SimpleSAML\Auth\State::EXCEPTION_DATA]; @@ -45,5 +47,5 @@ $t->data['attributes'] = $attributes; $t->data['authData'] = $authData; $t->data['nameid'] = !is_null($as->getAuthData('saml:sp:NameID')) ? $as->getAuthData('saml:sp:NameID') : false; -$t->data['logouturl'] = \SimpleSAML\Utils\HTTP::getSelfURLNoQuery().'?as='.urlencode($asId).'&logout'; +$t->data['logouturl'] = \SimpleSAML\Utils\HTTP::getSelfURLNoQuery() . '?as=' . urlencode($asId) . '&logout'; $t->show(); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/www/cardinality_error.php b/vendor/simplesamlphp/simplesamlphp/modules/core/www/cardinality_error.php index b3a3e5b99c17fb4b5a446319cd719b570ac18265..cb76a072ef90ba7fb08b0fb01a3228c1b4b57e36 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/www/cardinality_error.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/www/cardinality_error.php @@ -10,11 +10,12 @@ throw new \SimpleSAML\Error\BadRequest('Missing required StateId query parameter.'); } $id = $_REQUEST['StateId']; +/** @var array $state */ $state = \SimpleSAML\Auth\State::loadState($id, 'core:cardinality'); $session = \SimpleSAML\Session::getSessionFromRequest(); -\SimpleSAML\Logger::stats('core:cardinality:error '.$state['Destination']['entityid'].' '.$state['saml:sp:IdP']. - ' '.implode(',', array_keys($state['core:cardinality:errorAttributes']))); +\SimpleSAML\Logger::stats('core:cardinality:error ' . $state['Destination']['entityid'] + . ' ' . $state['saml:sp:IdP'] . ' ' . implode(',', array_keys($state['core:cardinality:errorAttributes']))); $globalConfig = \SimpleSAML\Configuration::getInstance(); $t = new \SimpleSAML\XHTML\Template($globalConfig, 'core:cardinality_error.tpl.php'); @@ -23,7 +24,7 @@ $t->data['LogoutURL'] = \SimpleSAML\Module::getModuleURL( 'core/authenticate.php', ['as' => $state['Source']['auth']] - )."&logout"; + ) . "&logout"; } header('HTTP/1.0 403 Forbidden'); $t->show(); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/www/frontpage_config.php b/vendor/simplesamlphp/simplesamlphp/modules/core/www/frontpage_config.php index 172b75c4cb5693bd57eec370b3b2c4c1289ddc42..2ede138cdccdaa4015e786c938c008857b9d489b 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/www/frontpage_config.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/www/frontpage_config.php @@ -36,12 +36,12 @@ $links_federation = []; $links_config[] = [ - 'href' => \SimpleSAML\Utils\HTTP::getBaseURL().'admin/hostnames.php', + 'href' => \SimpleSAML\Utils\HTTP::getBaseURL() . 'admin/hostnames.php', 'text' => '{core:frontpage:link_diagnostics}' ]; $links_config[] = [ - 'href' => \SimpleSAML\Utils\HTTP::getBaseURL().'admin/phpinfo.php', + 'href' => \SimpleSAML\Utils\HTTP::getBaseURL() . 'admin/phpinfo.php', 'text' => '{core:frontpage:link_phpinfo}' ]; @@ -53,7 +53,7 @@ 'federation' => &$links_federation, ]; \SimpleSAML\Module::callHooks('frontpage', $allLinks); -\SimpleSAML\Logger::debug('The "frontpage" hook has been deprecated for the configuration page. Implement the '. +\SimpleSAML\Logger::debug('The "frontpage" hook has been deprecated for the configuration page. Implement the ' . '"configpage" hook instead.'); // Check for updates. Store the remote result in the session so we @@ -67,7 +67,7 @@ if (!$latest) { $api_url = 'https://api.github.com/repos/simplesamlphp/simplesamlphp/releases'; - $ch = curl_init($api_url.'/latest'); + $ch = curl_init($api_url . '/latest'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_USERAGENT, 'SimpleSAMLphp'); curl_setopt($ch, CURLOPT_TIMEOUT, 2); @@ -75,8 +75,9 @@ curl_setopt($ch, CURLOPT_PROXYUSERPWD, $config->getValue('proxy.auth', null)); $response = curl_exec($ch); - if (curl_getinfo($ch, CURLINFO_HTTP_CODE) === 200) { - $latest = json_decode($response, true); + if (curl_getinfo($ch, CURLINFO_RESPONSE_CODE) === 200) { + /** @psalm-suppress InvalidScalarArgument */ + $latest = json_decode(strval($response), true); $session->setData("core:latest_simplesamlphp_version", "version", $latest); } curl_close($ch); @@ -122,8 +123,8 @@ $funcmatrix = []; $funcmatrix[] = [ 'required' => 'required', - 'descr' => 'PHP Version >= 5.5. You run: '.phpversion(), - 'enabled' => version_compare(phpversion(), '5.5', '>=') + 'descr' => 'PHP Version >= 5.6. You run: ' . phpversion(), + 'enabled' => version_compare(phpversion(), '5.6', '>=') ]; foreach ($functionchecks as $func => $descr) { $funcmatrix[] = ['descr' => $descr[1], 'required' => $descr[0], 'enabled' => function_exists($func)]; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/www/frontpage_federation.php b/vendor/simplesamlphp/simplesamlphp/modules/core/www/frontpage_federation.php index 267a54a53ff1c0911924375e53cf60a6562d656f..72e98ea8cd39c3d90fce32d384bda90396470210 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/www/frontpage_federation.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/www/frontpage_federation.php @@ -27,7 +27,7 @@ $links_federation[] = [ - 'href' => \SimpleSAML\Utils\HTTP::getBaseURL().'admin/metadata-converter.php', + 'href' => \SimpleSAML\Utils\HTTP::getBaseURL() . 'admin/metadata-converter.php', 'text' => '{core:frontpage:link_xmlconvert}', ]; @@ -51,32 +51,32 @@ if ($isadmin) { - $metaentries['remote']['saml20-idp-remote'] = $metadata->getList('saml20-idp-remote'); - $metaentries['remote']['shib13-idp-remote'] = $metadata->getList('shib13-idp-remote'); + $metaentries['remote']['saml20-idp-remote'] = $metadata->getList('saml20-idp-remote', true); + $metaentries['remote']['shib13-idp-remote'] = $metadata->getList('shib13-idp-remote', true); } if ($config->getBoolean('enable.saml20-idp', false) === true) { try { $metaentries['hosted']['saml20-idp'] = $metadata->getMetaDataCurrent('saml20-idp-hosted'); $metaentries['hosted']['saml20-idp']['metadata-url'] = - $config->getBasePath().'saml2/idp/metadata.php?output=xhtml'; + $config->getBasePath() . 'saml2/idp/metadata.php?output=xhtml'; if ($isadmin) { - $metaentries['remote']['saml20-sp-remote'] = $metadata->getList('saml20-sp-remote'); + $metaentries['remote']['saml20-sp-remote'] = $metadata->getList('saml20-sp-remote', true); } } catch (Exception $e) { - \SimpleSAML\Logger::error('Federation: Error loading saml20-idp: '.$e->getMessage()); + \SimpleSAML\Logger::error('Federation: Error loading saml20-idp: ' . $e->getMessage()); } } if ($config->getBoolean('enable.shib13-idp', false) === true) { try { $metaentries['hosted']['shib13-idp'] = $metadata->getMetaDataCurrent('shib13-idp-hosted'); $metaentries['hosted']['shib13-idp']['metadata-url'] = - $config->getBasePath().'shib13/idp/metadata.php?output=xhtml'; + $config->getBasePath() . 'shib13/idp/metadata.php?output=xhtml'; if ($isadmin) { - $metaentries['remote']['shib13-sp-remote'] = $metadata->getList('shib13-sp-remote'); + $metaentries['remote']['shib13-sp-remote'] = $metadata->getList('shib13-sp-remote', true); } } catch (Exception $e) { - \SimpleSAML\Logger::error('Federation: Error loading shib13-idp: '.$e->getMessage()); + \SimpleSAML\Logger::error('Federation: Error loading shib13-idp: ' . $e->getMessage()); } } if ($config->getBoolean('enable.adfs-idp', false) === true) { @@ -87,10 +87,10 @@ ['output' => 'xhtml'] ); if ($isadmin) { - $metaentries['remote']['adfs-sp-remote'] = $metadata->getList('adfs-sp-remote'); + $metaentries['remote']['adfs-sp-remote'] = $metadata->getList('adfs-sp-remote', true); } } catch (Exception $e) { - \SimpleSAML\Logger::error('Federation: Error loading adfs-idp: '.$e->getMessage()); + \SimpleSAML\Logger::error('Federation: Error loading adfs-idp: ' . $e->getMessage()); } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/www/idp/logout-iframe-done.php b/vendor/simplesamlphp/simplesamlphp/modules/core/www/idp/logout-iframe-done.php index 7725754e48b0e10d2b3e468274b640a42ed41a93..92733d00ad5d692c7b512c674cd57b55506a36fc 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/www/idp/logout-iframe-done.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/www/idp/logout-iframe-done.php @@ -22,7 +22,7 @@ // find the status of all SPs foreach ($SPs as $assocId => &$sp) { - $spId = 'logout-iframe-'.sha1($assocId); + $spId = 'logout-iframe-' . sha1($assocId); if (isset($_REQUEST[$spId])) { $spStatus = $_REQUEST[$spId]; @@ -42,13 +42,13 @@ if ($sp['core:Logout-IFrame:State'] === 'completed') { $idp->terminateAssociation($assocId); } else { - \SimpleSAML\Logger::warning('Unable to terminate association with '.var_export($assocId, true).'.'); + \SimpleSAML\Logger::warning('Unable to terminate association with ' . var_export($assocId, true) . '.'); if (isset($sp['saml:entityID'])) { $spId = $sp['saml:entityID']; } else { $spId = $assocId; } - \SimpleSAML\Logger::stats('slo-iframe-fail '.$spId); + \SimpleSAML\Logger::stats('slo-iframe-fail ' . $spId); \SimpleSAML\Stats::log('core:idp:logout-iframe:spfail', ['sp' => $spId]); $state['core:Failed'] = true; } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/www/idp/logout-iframe-post.php b/vendor/simplesamlphp/simplesamlphp/modules/core/www/idp/logout-iframe-post.php index 2081dfe26d69fb87b55b54c814d3bd1d8fe7911d..6dc9c8d35ddf9dbff909f717d1d2d052d0b1d4ac 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/www/idp/logout-iframe-post.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/www/idp/logout-iframe-post.php @@ -51,6 +51,7 @@ $bindings = [\SAML2\Constants::BINDING_HTTP_POST]; +/** @var array $dst */ $dst = $spMetadata->getDefaultEndpoint('SingleLogoutService', $bindings); $binding = \SAML2\Binding::getBinding($dst['Binding']); $lr->setDestination($dst['Location']); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/www/idp/logout-iframe.js b/vendor/simplesamlphp/simplesamlphp/modules/core/www/idp/logout-iframe.js index 921c23cdfebd5acbd42369e5f571f509fcd0ab74..62e7666b04d34e87c3f6b1c32c60800928a7a2fa 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/www/idp/logout-iframe.js +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/www/idp/logout-iframe.js @@ -5,7 +5,7 @@ function updateStatus() { var nFailed = 0; var nProgress = 0; - for (sp in window.spStatus) { + for (var sp in window.spStatus) { switch (window.spStatus[sp]) { case 'failed': nFailed += 1; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/www/idp/logout-iframe.php b/vendor/simplesamlphp/simplesamlphp/modules/core/www/idp/logout-iframe.php index 27195af6b83b40fc2d7e6be4baee1cf8bbfa64af..8f38c891f3984e3f09fc1879a70467d2cb425358 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/www/idp/logout-iframe.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/www/idp/logout-iframe.php @@ -14,7 +14,7 @@ } if ($type !== 'embed') { - \SimpleSAML\Logger::stats('slo-iframe '.$type); + \SimpleSAML\Logger::stats('slo-iframe ' . $type); \SimpleSAML\Stats::log('core:idp:logout-iframe:page', ['type' => $type]); } @@ -99,15 +99,21 @@ $mdset = 'adfs-sp-remote'; } + if ($association['core:Logout-IFrame:State'] === 'completed') { + continue; + } + $remaining[$key] = [ 'id' => $association['id'], 'expires_on' => $association['Expires'], 'entityID' => $association['saml:entityID'], 'subject' => $association['saml:NameID'], 'status' => $association['core:Logout-IFrame:State'], - 'logoutURL' => $association['core:Logout-IFrame:URL'], 'metadata' => $mdh->getMetaDataConfig($association['saml:entityID'], $mdset)->toArray(), ]; + if (isset($association['core:Logout-IFrame:URL'])) { + $remaining[$key]['logoutURL'] = $association['core:Logout-IFrame:URL']; + } if (isset($association['core:Logout-IFrame:Timeout'])) { $remaining[$key]['timeout'] = $association['core:Logout-IFrame:Timeout']; } @@ -115,9 +121,9 @@ $globalConfig = \SimpleSAML\Configuration::getInstance(); if ($type === 'nojs') { - $t = new \SimpleSAML\XHTML\Template($globalConfig, 'core:logout-iframe-wrapper.php'); + $t = new \SimpleSAML\XHTML\Template($globalConfig, 'core:logout-iframe-wrapper.tpl.php'); } else { - $t = new \SimpleSAML\XHTML\Template($globalConfig, 'core:logout-iframe.php'); + $t = new \SimpleSAML\XHTML\Template($globalConfig, 'core:logout-iframe.tpl.php'); } /** diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/www/loginuserpass.php b/vendor/simplesamlphp/simplesamlphp/modules/core/www/loginuserpass.php index 747506f898d1e969212cd17a2c5acca85e6ffcd9..5db61c91fcb9a52cb2a4ec4764bd51e0c106973b 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/www/loginuserpass.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/www/loginuserpass.php @@ -14,20 +14,21 @@ throw new \SimpleSAML\Error\BadRequest('Missing AuthState parameter.'); } $authStateId = $_REQUEST['AuthState']; +/** @var array $state */ $state = \SimpleSAML\Auth\State::loadState($authStateId, \SimpleSAML\Module\core\Auth\UserPassBase::STAGEID); +/** @var \SimpleSAML\Module\core\Auth\UserPassBase|null $source */ $source = \SimpleSAML\Auth\Source::getById($state[\SimpleSAML\Module\core\Auth\UserPassBase::AUTHID]); if ($source === null) { throw new \Exception( - 'Could not find authentication source with id '.$state[\SimpleSAML\Module\core\Auth\UserPassBase::AUTHID] + 'Could not find authentication source with id ' . $state[\SimpleSAML\Module\core\Auth\UserPassBase::AUTHID] ); } - if (array_key_exists('username', $_REQUEST)) { $username = $_REQUEST['username']; -} elseif ($source->getRememberUsernameEnabled() && array_key_exists($source->getAuthId().'-username', $_COOKIE)) { - $username = $_COOKIE[$source->getAuthId().'-username']; +} elseif ($source->getRememberUsernameEnabled() && array_key_exists($source->getAuthId() . '-username', $_COOKIE)) { + $username = $_COOKIE[$source->getAuthId() . '-username']; } elseif (isset($state['core:username'])) { $username = (string) $state['core:username']; } else { @@ -60,13 +61,13 @@ if ($source->getRememberUsernameEnabled()) { $sessionHandler = \SimpleSAML\SessionHandler::getSessionHandler(); $params = $sessionHandler->getCookieParams(); - + if (isset($_REQUEST['remember_username']) && $_REQUEST['remember_username'] == 'Yes') { $params['expire'] = time() + 31536000; } else { $params['expire'] = time() - 300; } - \SimpleSAML\Utils\HTTP::setCookie($source->getAuthId().'-username', $username, $params, false); + \SimpleSAML\Utils\HTTP::setCookie($source->getAuthId() . '-username', $username, $params, false); } if ($source->isRememberMeEnabled()) { @@ -98,7 +99,7 @@ } $globalConfig = \SimpleSAML\Configuration::getInstance(); -$t = new \SimpleSAML\XHTML\Template($globalConfig, 'core:loginuserpass.php'); +$t = new \SimpleSAML\XHTML\Template($globalConfig, 'core:loginuserpass.tpl.php'); $t->data['stateparams'] = ['AuthState' => $authStateId]; if (array_key_exists('forcedUsername', $state)) { $t->data['username'] = $state['forcedUsername']; @@ -114,7 +115,7 @@ $t->data['rememberUsernameChecked'] = $source->getRememberUsernameChecked(); $t->data['rememberMeEnabled'] = $source->isRememberMeEnabled(); $t->data['rememberMeChecked'] = $source->isRememberMeChecked(); - if (isset($_COOKIE[$source->getAuthId().'-username'])) { + if (isset($_COOKIE[$source->getAuthId() . '-username'])) { $t->data['rememberUsernameChecked'] = true; } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/www/loginuserpassorg.php b/vendor/simplesamlphp/simplesamlphp/modules/core/www/loginuserpassorg.php index 2b9ec4dba32a09252629180f31d82f4ce349c30d..fd65a15dbe1eb1643a4de571e33b4317c6a84cad 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/www/loginuserpassorg.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/www/loginuserpassorg.php @@ -14,12 +14,15 @@ throw new \SimpleSAML\Error\BadRequest('Missing AuthState parameter.'); } $authStateId = $_REQUEST['AuthState']; + +/** @var array $state */ $state = \SimpleSAML\Auth\State::loadState($authStateId, \SimpleSAML\Module\core\Auth\UserPassOrgBase::STAGEID); +/** @var \SimpleSAML\Module\core\Auth\UserPassOrgBase $source */ $source = \SimpleSAML\Auth\Source::getById($state[\SimpleSAML\Module\core\Auth\UserPassOrgBase::AUTHID]); if ($source === null) { throw new \Exception( - 'Could not find authentication source with id '.$state[\SimpleSAML\Module\core\Auth\UserPassOrgBase::AUTHID] + 'Could not find authentication source with id ' . $state[\SimpleSAML\Module\core\Auth\UserPassOrgBase::AUTHID] ); } @@ -27,8 +30,8 @@ if (array_key_exists('username', $_REQUEST)) { $username = $_REQUEST['username']; -} elseif ($source->getRememberUsernameEnabled() && array_key_exists($source->getAuthId().'-username', $_COOKIE)) { - $username = $_COOKIE[$source->getAuthId().'-username']; +} elseif ($source->getRememberUsernameEnabled() && array_key_exists($source->getAuthId() . '-username', $_COOKIE)) { + $username = $_COOKIE[$source->getAuthId() . '-username']; } elseif (isset($state['core:username'])) { $username = (string) $state['core:username']; } else { @@ -43,10 +46,11 @@ if (array_key_exists('organization', $_REQUEST)) { $organization = $_REQUEST['organization']; -} elseif ($source->getRememberOrganizationEnabled() && - array_key_exists($source->getAuthId().'-organization', $_COOKIE) - ) { - $organization = $_COOKIE[$source->getAuthId().'-organization']; +} elseif ( + $source->getRememberOrganizationEnabled() + && array_key_exists($source->getAuthId() . '-organization', $_COOKIE) +) { + $organization = $_COOKIE[$source->getAuthId() . '-organization']; } elseif (isset($state['core:organization'])) { $organization = (string) $state['core:organization']; } else { @@ -74,7 +78,7 @@ $params['expire'] = time() - 300; } - \SimpleSAML\Utils\HTTP::setCookie($source->getAuthId().'-username', $username, $params, false); + \SimpleSAML\Utils\HTTP::setCookie($source->getAuthId() . '-username', $username, $params, false); } if ($source->getRememberOrganizationEnabled()) { @@ -86,7 +90,7 @@ $params['expire'] = time() - 300; } setcookie( - $source->getAuthId().'-organization', + $source->getAuthId() . '-organization', $organization, $params['expire'], $params['path'], @@ -124,7 +128,7 @@ } $globalConfig = \SimpleSAML\Configuration::getInstance(); -$t = new \SimpleSAML\XHTML\Template($globalConfig, 'core:loginuserpass.php'); +$t = new \SimpleSAML\XHTML\Template($globalConfig, 'core:loginuserpass.tpl.php'); $t->data['stateparams'] = ['AuthState' => $authStateId]; $t->data['username'] = $username; $t->data['forceUsername'] = false; @@ -132,12 +136,12 @@ $t->data['rememberUsernameChecked'] = $source->getRememberUsernameChecked(); $t->data['rememberMeEnabled'] = false; $t->data['rememberMeChecked'] = false; -if (isset($_COOKIE[$source->getAuthId().'-username'])) { +if (isset($_COOKIE[$source->getAuthId() . '-username'])) { $t->data['rememberUsernameChecked'] = true; } $t->data['rememberOrganizationEnabled'] = $source->getRememberOrganizationEnabled(); $t->data['rememberOrganizationChecked'] = $source->getRememberOrganizationChecked(); -if (isset($_COOKIE[$source->getAuthId().'-organization'])) { +if (isset($_COOKIE[$source->getAuthId() . '-organization'])) { $t->data['rememberOrganizationChecked'] = true; } $t->data['errorcode'] = $errorCode; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/www/no_cookie.php b/vendor/simplesamlphp/simplesamlphp/modules/core/www/no_cookie.php index 3575d85f6b4b3cc3e623baa4c457c7dff2cd7de7..7ae3889d6c613c5c7df9b2f896354529d0cdffda 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/www/no_cookie.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/www/no_cookie.php @@ -11,8 +11,15 @@ $t = new \SimpleSAML\XHTML\Template($globalConfig, 'core:no_cookie.tpl.php'); $translator = $t->getTranslator(); -$t->data['header'] = htmlspecialchars($translator->t('{core:no_cookie:header}')); -$t->data['description'] = htmlspecialchars($translator->t('{core:no_cookie:description}')); -$t->data['retry'] = htmlspecialchars($translator->t('{core:no_cookie:retry}')); +/** @var string $header */ +$header = $translator->t('{core:no_cookie:header}'); +/** @var string $desc */ +$desc = $translator->t('{core:no_cookie:description}'); +/** @var string $retry */ +$retry = $translator->t('{core:no_cookie:retry}'); + +$t->data['header'] = htmlspecialchars($header); +$t->data['description'] = htmlspecialchars($desc); +$t->data['retry'] = htmlspecialchars($retry); $t->data['retryURL'] = $retryURL; $t->show(); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/www/short_sso_interval.php b/vendor/simplesamlphp/simplesamlphp/modules/core/www/short_sso_interval.php index a9da1cae10bf25318b38849856b54d1da9a5edfb..919210f535aefdbfac9766ae22a1b1236c824f82 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/www/short_sso_interval.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/www/short_sso_interval.php @@ -11,7 +11,10 @@ throw new \SimpleSAML\Error\BadRequest('Missing required StateId query parameter.'); } $id = $_REQUEST['StateId']; + +/** @var array $state */ $state = \SimpleSAML\Auth\State::loadState($id, 'core:short_sso_interval'); + $session = \SimpleSAML\Session::getSessionFromRequest(); if (array_key_exists('continue', $_REQUEST)) { @@ -20,7 +23,7 @@ } $globalConfig = \SimpleSAML\Configuration::getInstance(); -$t = new \SimpleSAML\XHTML\Template($globalConfig, 'core:short_sso_interval.php'); +$t = new \SimpleSAML\XHTML\Template($globalConfig, 'core:short_sso_interval.tpl.php'); $translator = $t->getTranslator(); $t->data['target'] = \SimpleSAML\Module::getModuleURL('core/short_sso_interval.php'); $t->data['params'] = ['StateId' => $id]; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/core/www/show_metadata.php b/vendor/simplesamlphp/simplesamlphp/modules/core/www/show_metadata.php index e8f3bf223e91b45cad24bda780d99983a0e9ef75..ffad6572b2a3d9ed30e46d02420b276bfefc5649 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/core/www/show_metadata.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/core/www/show_metadata.php @@ -12,11 +12,13 @@ if (!array_key_exists('set', $_REQUEST)) { throw new Exception('required parameter [set] missing'); } -if (!in_array( - $_REQUEST['set'], - ['saml20-idp-remote', 'saml20-sp-remote', 'shib13-idp-remote', 'shib13-sp-remote'], - true -)) { +if ( + !in_array( + $_REQUEST['set'], + ['saml20-idp-remote', 'saml20-sp-remote', 'shib13-idp-remote', 'shib13-sp-remote'], + true + ) +) { throw new Exception('Invalid set'); } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cron/bin/cron.php b/vendor/simplesamlphp/simplesamlphp/modules/cron/bin/cron.php index 61e690e0fd05f42be515dd2f5ff4cc208e6829ed..436397fd296f60cc0265ad5c36fe6f460d83cedf 100755 --- a/vendor/simplesamlphp/simplesamlphp/modules/cron/bin/cron.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/cron/bin/cron.php @@ -11,12 +11,12 @@ $baseDir = dirname(dirname(dirname(dirname(__FILE__)))); // Add library autoloader. -require_once($baseDir.'/lib/_autoload.php'); +require_once($baseDir . '/lib/_autoload.php'); if (!SimpleSAML\Module::isModuleEnabled('cron')) { echo "You need to enable the cron module before this script can be used.\n"; echo "You can enable it by running the following command:\n"; - echo ' echo >"'.$baseDir.'/modules/cron/enable'."\"\n"; + echo ' echo >"' . $baseDir . '/modules/cron/enable' . "\"\n"; exit(1); } @@ -35,7 +35,7 @@ $tag = $options['t']; $cron = new SimpleSAML\Module\cron\Cron(); if (!$cron->isValidTag($tag)) { - echo "Invalid tag option '$tag'.\n"; + echo "Invalid tag option '$tag' . \n"; exit(2); } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cron/dictionaries/cron.translation.json b/vendor/simplesamlphp/simplesamlphp/modules/cron/dictionaries/cron.translation.json index db5bfa4a29ddb455eb8b9a7c6809f075aa8134d1..3773665e221625e0700d501b6085ae4f41d8fb18 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/cron/dictionaries/cron.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/modules/cron/dictionaries/cron.translation.json @@ -29,7 +29,8 @@ "eu": "Cronen emaitza orria", "af": "Cron resultaat bladsy", "pt-br": "P\u00e1gina de resultados do Cron", - "el": "\u03a0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 \u03c0\u03b5\u03c1\u03b9\u03bf\u03b4\u03b9\u03ba\u03ce\u03bd \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd cron" + "el": "\u03a0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 \u03c0\u03b5\u03c1\u03b9\u03bf\u03b4\u03b9\u03ba\u03ce\u03bd \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd cron", + "ca": "Pàgina del resultat del Cron" }, "cron_result_title": { "da": "Her er resultatet for opgaven udf\u00f8relse:", @@ -61,7 +62,8 @@ "eu": "Hona hemen cronen exekuzioan zereginen emaitzak: ", "af": "Hier is die resultaat vir die cron uitvoeringsproses:", "pt-br": "Aqui est\u00e3o os resultados para a execu\u00e7\u00e3o da rotina do cron:", - "el": "\u0391\u03c0\u03bf\u03c4\u03ad\u03bb\u03b5\u03c3\u03bc\u03b1 \u03b5\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1\u03c2 cron:" + "el": "\u0391\u03c0\u03bf\u03c4\u03ad\u03bb\u03b5\u03c3\u03bc\u03b1 \u03b5\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1\u03c2 cron:", + "ca": "Aquí teniu el resultat de l’execució de les tasques del Cron:" }, "cron_info": { "da": "Cron er en m\u00e5de at k\u00f8re tingene regelm\u00e6ssigt p\u00e5 UNIX-systemer.", @@ -93,7 +95,8 @@ "eu": "Cron UNIX sitemetan aldizkako zereginak exekutatzeko modu bat da. ", "af": "Cron is 'n manier om prosesse op 'n gere\u00eblde basis te hardloop op unix sisteme.", "pt-br": "Cron \u00e9 uma maneira de executar as coisas regularmente em sistemas UNIX.", - "el": "\u03a4\u03bf cron \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03b9 \u03c4\u03b7\u03bd \u03b5\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03b1\u03bd\u03ac \u03c4\u03b1\u03ba\u03c4\u03ac \u03b4\u03b9\u03b1\u03c3\u03c4\u03ae\u03bc\u03b1\u03c4\u03b1 \u03c3\u03b5 \u03c3\u03c5\u03c3\u03c4\u03ae\u03bc\u03b1\u03c4\u03b1 UNIX." + "el": "\u03a4\u03bf cron \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03b9 \u03c4\u03b7\u03bd \u03b5\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7 \u03b5\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd \u03b1\u03bd\u03ac \u03c4\u03b1\u03ba\u03c4\u03ac \u03b4\u03b9\u03b1\u03c3\u03c4\u03ae\u03bc\u03b1\u03c4\u03b1 \u03c3\u03b5 \u03c3\u03c5\u03c3\u03c4\u03ae\u03bc\u03b1\u03c4\u03b1 UNIX.", + "ca": "Cron és una manera de planificar tasques amb regularitat en els sistemes Unix." }, "cron_suggestion": { "da": "Her er et forslag til en crontab fil:", @@ -125,7 +128,8 @@ "eu": "Hona hemen crontab fitxategi baten iradokizuna: ", "af": "Hier is 'n voorbeeld vir 'n crontab l\u00eaer:", "pt-br": "Aqui est\u00e1 uma sugest\u00e3o para um arquivo crontab:", - "el": "\u03a0\u03c1\u03bf\u03c4\u03b5\u03b9\u03bd\u03cc\u03bc\u03b5\u03bd\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf crontab:" + "el": "\u03a0\u03c1\u03bf\u03c4\u03b5\u03b9\u03bd\u03cc\u03bc\u03b5\u03bd\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf crontab:", + "ca": "Aquí hi ha un suggeriment per a un fitxer crontab:" }, "cron_execution": { "da": "Klik her for at k\u00f8re cron job:", @@ -157,7 +161,8 @@ "eu": "Klikatu hemen cron zereginak exekutatzeko:", "af": "Kliek hier om 'n cron proses the begin:", "pt-br": "Clique aqui para executar as tarefas agendadas:", - "el": "\u039a\u03ac\u03bd\u03c4\u03b5 \u03ba\u03bb\u03b9\u03ba \u03b5\u03b4\u03ce \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b5\u03ba\u03c4\u03b5\u03bb\u03ad\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b9\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b5\u03c2 cron:" + "el": "\u039a\u03ac\u03bd\u03c4\u03b5 \u03ba\u03bb\u03b9\u03ba \u03b5\u03b4\u03ce \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b5\u03ba\u03c4\u03b5\u03bb\u03ad\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b9\u03c2 \u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b5\u03c2 cron:", + "ca": "Feu clic aquí per executar les tasques de Cron:" }, "run_text": { "da": "Run cron:", @@ -189,7 +194,8 @@ "eu": "Cron exekutatu:", "af": "Begin cron:", "pt-br": "Executar cron", - "el": "\u0395\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7 cron" + "el": "\u0395\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7 cron", + "ca": "Executa Cron:" }, "ran_text": { "da": "Cron l\u00f8b p\u00e5", @@ -221,7 +227,8 @@ "eu": "Cron noiz exekutatua", "af": "Cron was aktief om", "pt-br": "Cron rodou em", - "el": "\u0397\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03af\u03b1 \u03ba\u03b1\u03b9 \u03ce\u03c1\u03b1 \u03b5\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7\u03c2 cron:" + "el": "\u0397\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03af\u03b1 \u03ba\u03b1\u03b9 \u03ce\u03c1\u03b1 \u03b5\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7\u03c2 cron:", + "ca": "Cron executat el" }, "cron_report_title": { "da": "Cron rapport", @@ -253,11 +260,13 @@ "eu": "Cronen txostena", "af": "Cron verslag", "pt-br": "Relat\u00f3rio do cron", - "el": "\u0391\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac cron" + "el": "\u0391\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac cron", + "ca": "Informe de Cron" }, "link_cron": { "es": "Informe de cron", "no": "Informasjon om cron", - "nn": "Informasjon om cron" + "nn": "Informasjon om cron", + "ca": "Pàgina d'informació del mòdul de Cron" } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cron/docs/cron.md b/vendor/simplesamlphp/simplesamlphp/modules/cron/docs/cron.md index 88630a29b3584d5e3947e3a882fa2b066596ec79..cd315f8a72798b5d7e14d07539fb51214dc2f7f2 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/cron/docs/cron.md +++ b/vendor/simplesamlphp/simplesamlphp/modules/cron/docs/cron.md @@ -111,7 +111,7 @@ Below is an example of invoking the script. It will: * Run the `cron.php` script with the `hourly` tag * Use `nice` to lower the priority below that of web server processes -```bash +``` su -s "/bin/sh" \ -c "nice -n 10 \ php -d max_execution_time=120 -d memory_limit=600M \ diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cron/hooks/hook_configpage.php b/vendor/simplesamlphp/simplesamlphp/modules/cron/hooks/hook_configpage.php index dc3c8400b7169e66c4b4cd97756e1a0cbeccca4e..136888a0036582a91a086acf69179db53fa81fce 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/cron/hooks/hook_configpage.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/cron/hooks/hook_configpage.php @@ -1,10 +1,11 @@ <?php + /** * Hook to add the cron module to the config page. * * @param \SimpleSAML\XHTML\Template &$template The template that we should alter in this hook. + * @return void */ - function cron_hook_configpage(\SimpleSAML\XHTML\Template &$template) { $template->data['links']['cron'] = [ diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cron/hooks/hook_cron.php b/vendor/simplesamlphp/simplesamlphp/modules/cron/hooks/hook_cron.php index 61812906a2e8fee62ba13e042314d827ca36f39d..a135360764f5f724e545e2c9df274c3c3e9d9fb6 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/cron/hooks/hook_cron.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/cron/hooks/hook_cron.php @@ -1,10 +1,11 @@ <?php + /** * Hook to run a cron job. * * @param array &$croninfo Output + * @return void */ - function cron_hook_cron(&$croninfo) { assert(is_array($croninfo)); @@ -14,6 +15,6 @@ function cron_hook_cron(&$croninfo) $cronconfig = \SimpleSAML\Configuration::getConfig('module_cron.php'); if ($cronconfig->getValue('debug_message', true)) { - $croninfo['summary'][] = 'Cron did run tag ['.$croninfo['tag'].'] at '.date(DATE_RFC822); + $croninfo['summary'][] = 'Cron did run tag [' . $croninfo['tag'] . '] at ' . date(DATE_RFC822); } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cron/hooks/hook_frontpage.php b/vendor/simplesamlphp/simplesamlphp/modules/cron/hooks/hook_frontpage.php index 73fcd215b74521dfb827f505f5896ec49a47de39..2de5d22e2ff803d1b0c1752a6319773b6d7cdce3 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/cron/hooks/hook_frontpage.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/cron/hooks/hook_frontpage.php @@ -1,10 +1,11 @@ <?php + /** * Hook to add the modinfo module to the frontpage. * * @param array &$links The links on the frontpage, split into sections. + * @return void */ - function cron_hook_frontpage(&$links) { assert(is_array($links)); @@ -15,4 +16,3 @@ function cron_hook_frontpage(&$links) 'text' => '{cron:cron:link_cron}', ]; } - diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cron/lib/Controller/Cron.php b/vendor/simplesamlphp/simplesamlphp/modules/cron/lib/Controller/Cron.php new file mode 100644 index 0000000000000000000000000000000000000000..10eb967f9a2a8e10ee793adbd8f9dfcb40c6a3ae --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/cron/lib/Controller/Cron.php @@ -0,0 +1,150 @@ +<?php + +namespace SimpleSAML\Module\cron\Controller; + +use SimpleSAML\Auth; +use SimpleSAML\Auth\AuthenticationFactory; +use SimpleSAML\Configuration; +use SimpleSAML\Error; +use SimpleSAML\HTTP\RunnableResponse; +use SimpleSAML\Logger; +use SimpleSAML\Module; +use SimpleSAML\Session; +use SimpleSAML\Utils; +use SimpleSAML\XHTML\Template; +use Symfony\Component\HttpFoundation\RedirectResponse; +use Symfony\Component\HttpFoundation\Response; + +/** + * Controller class for the cron module. + * + * This class serves the different views available in the module. + * + * @package SimpleSAML\Module\cron + */ +class Cron +{ + /** @var \SimpleSAML\Configuration */ + protected $config; + + /** @var \SimpleSAML\Configuration */ + protected $cronconfig; + + /** @var \SimpleSAML\Session */ + protected $session; + + + /** + * Controller constructor. + * + * It initializes the global configuration and auth source configuration for the controllers implemented here. + * + * @param \SimpleSAML\Configuration $config The configuration to use by the controllers. + * @param \SimpleSAML\Configuration $moduleConfig The module-configuration to use by the controllers. + * @param \SimpleSAML\Session $session The session to use by the controllers. + * + * @throws \Exception + */ + public function __construct( + Configuration $config, + Session $session + ) { + $this->config = $config; + $this->cronconfig = Configuration::getConfig('module_cron.php'); + $this->session = $session; + } + + + /** + * Show cron info. + * + * @return \SimpleSAML\XHTML\Template + * An HTML template or a redirection if we are not authenticated. + */ + public function info() + { + Utils\Auth::requireAdmin(); + + $key = $this->cronconfig->getValue('key', 'secret'); + $tags = $this->cronconfig->getValue('allowed_tags'); + + $def = [ + 'weekly' => "22 0 * * 0", + 'daily' => "02 0 * * *", + 'hourly' => "01 * * * *", + 'default' => "XXXXXXXXXX", + ]; + + $urls = []; + foreach ($tags as $tag) { + $urls[] = [ + 'exec_href' => Module::getModuleURL('cron') . '/run/' . $tag . '/' . $key, + 'href' => Module::getModuleURL('cron') . '/run/' . $tag . '/' . $key . '/xhtml', + 'tag' => $tag, + 'int' => (array_key_exists($tag, $def) ? $def[$tag] : $def['default']), + ]; + } + + $t = new Template($this->config, 'cron:croninfo.tpl.php', 'cron:cron'); + $t->data['urls'] = $urls; + return $t; + } + + + /** + * Execute a cronjob. + * + * This controller will start a cron operation + * + * @param string $tag The tag + * @param string $key The secret key + * @param string|null $output The output format, defaulting to xhtml + * + * @return \SimpleSAML\XHTML\Template|\Symfony\Component\HttpFoundation\Response + * An HTML template, a redirect or a "runnable" response. + * + * @throws \SimpleSAML\Error\Exception + */ + public function run($tag, $key, $output) + { + $configKey = $this->cronconfig->getValue('key', 'secret'); + if ($key !== $configKey) { + Logger::error('Cron - Wrong key provided. Cron will not run.'); + exit; + } + + $cron = new \SimpleSAML\Module\cron\Cron(); + if ($tag === null || !$cron->isValidTag($tag)) { + Logger::error('Cron - Illegal tag [' . $tag . '].'); + exit; + } + + $url = Utils\HTTP::getSelfURL(); + $time = date(DATE_RFC822); + + $croninfo = $cron->runTag($tag); + $summary = $croninfo['summary']; + + if ($this->cronconfig->getValue('sendemail', true) && count($summary) > 0) { + $mail = new Utils\EMail('SimpleSAMLphp cron report'); + $mail->setData(['url' => $url, 'tag' => $croninfo['tag'], 'summary' => $croninfo['summary']]); + try { + $mail->send(); + } catch (\PHPMailer\PHPMailer\Exception $e) { + Logger::warning("Unable to send cron report"); + } + } + + if ($output === 'xhtml') { + $t = new Template($this->config, 'cron:croninfo-result.tpl.php', 'cron:cron'); + $t->data['tag'] = $croninfo['tag']; + $t->data['time'] = $time; + $t->data['url'] = $url; + $t->data['mail_required'] = isset($mail); + $t->data['mail_sent'] = !isset($e); + $t->data['summary'] = $summary; + return $t; + } + return new Response(); + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cron/lib/Cron.php b/vendor/simplesamlphp/simplesamlphp/modules/cron/lib/Cron.php index f8bda653b8b23b4dc6061668160c453e8044ba13..7a673ba10f753c5230fcbc02be3793854705f09f 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/cron/lib/Cron.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/cron/lib/Cron.php @@ -1,6 +1,10 @@ <?php -namespace SimpleSAML\Module\cron; +namespace SimpleSAML\Module\cron; + +use SimpleSAML\Configuration; +use SimpleSAML\Logger; +use SimpleSAML\Module; /** * Handles interactions with SSP's cron system/hooks. @@ -13,27 +17,27 @@ class Cron */ private $cronconfig; + /* * @param \SimpleSAML\Configuration $cronconfig The cron configuration to use. If not specified defaults * to `config/module_cron.php` */ - public function __construct(\SimpleSAML\Configuration $cronconfig = null) + public function __construct(Configuration $cronconfig = null) { if ($cronconfig == null) { - $cronconfig = \SimpleSAML\Configuration::getConfig('module_cron.php'); + $cronconfig = Configuration::getConfig('module_cron.php'); } $this->cronconfig = $cronconfig; } /** * Invoke the cron hook for the given tag - * @param $tag string The tag to use. Must be valid in the cronConfig + * @param string $tag The tag to use. Must be valid in the cronConfig * @return array the tag, and summary information from the run. - * @throws Exception If an invalid tag specified + * @throws \Exception If an invalid tag specified */ public function runTag($tag) { - if (!$this->isValidTag($tag)) { throw new \Exception("Invalid cron tag '$tag''"); } @@ -44,15 +48,19 @@ public function runTag($tag) 'tag' => $tag, ]; - \SimpleSAML\Module::callHooks('cron', $croninfo); + Module::callHooks('cron', $croninfo); foreach ($summary as $s) { - \SimpleSAML\Logger::debug('Cron - Summary: '.$s); + Logger::debug('Cron - Summary: ' . $s); } return $croninfo; } + /** + * @param string $tag + * @return bool + */ public function isValidTag($tag) { if (!is_null($this->cronconfig->getValue('allowed_tags'))) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cron/locales/nl/LC_MESSAGES/cron.po b/vendor/simplesamlphp/simplesamlphp/modules/cron/locales/nl/LC_MESSAGES/cron.po index c06aaa7c041c780d5a3d6893f5b7918d6ff0170e..ed89db0eac75e07627f8d26a92d1b605b8fba28b 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/cron/locales/nl/LC_MESSAGES/cron.po +++ b/vendor/simplesamlphp/simplesamlphp/modules/cron/locales/nl/LC_MESSAGES/cron.po @@ -1,11 +1,10 @@ -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: SimpleSAMLphp 1.15\n" +"Project-Id-Version: SimpleSAMLphp 1.19\n" "Report-Msgid-Bugs-To: simplesamlphp-translation@googlegroups.com\n" "POT-Creation-Date: 2016-10-12 09:23+0200\n" -"PO-Revision-Date: 2016-10-14 12:14+0200\n" +"PO-Revision-Date: 2020-02-14 19:53+0200\n" "Last-Translator: \n" "Language: nl\n" "Language-Team: \n" @@ -16,50 +15,50 @@ msgstr "" "Generated-By: Babel 2.3.4\n" msgid "{cron:cron:cron_report_title}" -msgstr "Cron melding" +msgstr "Cronmelding" msgid "{cron:cron:ran_text}" msgstr "Cron gestart op" msgid "{cron:cron:cron_suggestion}" -msgstr "Hier is een suggestie voor een contrab bestand:" +msgstr "Dit is een suggestie voor een contrab-bestand:" msgid "{cron:cron:run_text}" msgstr "Start cron" msgid "{cron:cron:cron_execution}" -msgstr "Klik hier om de cron taken te starten:" +msgstr "Klik hier om de crontaken te starten:" msgid "{cron:cron:cron_info}" -msgstr "Cron is een manier om dingen normaal te laten draaien op unix systemen." +msgstr "Cron is een manier om periodiek taken uit te voeren op unix-systemen." msgid "{cron:cron:cron_result_title}" -msgstr "Hier is het resultaat van de cron taak uitvoering:" +msgstr "Hier is het resultaat van de crontaak-uitvoering:" msgid "{cron:cron:cron_header}" -msgstr "Cron resultaat pagina" +msgstr "Cron resultaatpagina" msgid "Cron is a way to run things regularly on unix systems." -msgstr "Cron is een manier om dingen normaal te laten draaien op unix systemen." +msgstr "Cron is een manier om periodiek taken uit te voeren op unix-systemen." msgid "Run cron:" -msgstr "Start cron" +msgstr "Start cron:" msgid "Cron ran at" msgstr "Cron gestart op" msgid "Cron report" -msgstr "Cron melding" +msgstr "Cronmelding" msgid "Here is a suggestion for a crontab file:" -msgstr "Hier is een suggestie voor een contrab bestand:" +msgstr "Dit is een suggestie voor een contrab bestand:" msgid "Click here to run the cron jobs:" -msgstr "Klik hier om de cron taken te starten:" +msgstr "Klik hier om de crontaken te starten:" msgid "Here are the result for the cron job execution:" -msgstr "Hier is het resultaat van de cron taak uitvoering:" +msgstr "Hier is het resultaat van de crontaak-uitvoering:" msgid "Cron result page" -msgstr "Cron resultaat pagina" +msgstr "Cron resultaatpagina" diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cron/routes.yaml b/vendor/simplesamlphp/simplesamlphp/modules/cron/routes.yaml new file mode 100644 index 0000000000000000000000000000000000000000..d25718ad1571cdfd3a44821af605c898fd79af8a --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/cron/routes.yaml @@ -0,0 +1,6 @@ +cron-croninfo: + path: /info + defaults: { _controller: 'SimpleSAML\Module\cron\Controller\Cron::info' } +cron-run: + path: /run/{tag}/{key}/{output} + defaults: { _controller: 'SimpleSAML\Module\cron\Controller\Cron::run', output: null } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cron/templates/croninfo-result.php b/vendor/simplesamlphp/simplesamlphp/modules/cron/templates/croninfo-result.tpl.php similarity index 100% rename from vendor/simplesamlphp/simplesamlphp/modules/cron/templates/croninfo-result.php rename to vendor/simplesamlphp/simplesamlphp/modules/cron/templates/croninfo-result.tpl.php diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cron/templates/croninfo-result.twig b/vendor/simplesamlphp/simplesamlphp/modules/cron/templates/croninfo-result.twig index f226ffe07e9c24c14680f98223b10bb0b5ce7ef2..eb755dd2e464b5cee924a501821643b4960e2255 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/cron/templates/croninfo-result.twig +++ b/vendor/simplesamlphp/simplesamlphp/modules/cron/templates/croninfo-result.twig @@ -22,9 +22,14 @@ Tag: {{ tag }} {% for sum in summary %} <li> {{ sum }}</li> {% endfor %} -</ul><br /> -</p> +</ul> +</p><br /> </code> +</div> +{% if mail_required == true and mail_sent == false %} +<div class="message-box error"> +Cron-report was not emailed due to an error. </div> +{% endif %} {% endblock %} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cron/templates/croninfo.tpl.php b/vendor/simplesamlphp/simplesamlphp/modules/cron/templates/croninfo.tpl.php index 50efe15a1ec53e6ef527448cc4b3e72cb5aa13b8..dc1bf0583098993a14127e1214e9385f8e05afdc 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/cron/templates/croninfo.tpl.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/cron/templates/croninfo.tpl.php @@ -13,7 +13,7 @@ <?php foreach ($this->data['urls'] as $url) { echo "# ".$run_text. ' ['.$url['tag'].']'."\n"; - echo $url['int']." curl --silent \"".$url['href']."\" > /dev/null 2>&1\n"; + echo $url['int']." curl --silent \"".$url['exec_href']."\" > /dev/null 2>&1\n"; } ?> </code></pre> @@ -23,7 +23,7 @@ <ul> <?php foreach ($this->data['urls'] as $url) { - echo ' <li><a href="'.$url['href'].'&output=xhtml">'.$run_text.' ['.$url['tag'].']'.'</a></li>'; + echo ' <li><a href="'.$url['href'].'">'.$run_text.' ['.$url['tag'].']'.'</a></li>'; } ?> </ul> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cron/templates/croninfo.twig b/vendor/simplesamlphp/simplesamlphp/modules/cron/templates/croninfo.twig index b00b8905b8ab2107cb0c9d1980dc0a7fea539ea4..12d9813ffcf9e2137f66ca3412739f067ea0f8ae 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/cron/templates/croninfo.twig +++ b/vendor/simplesamlphp/simplesamlphp/modules/cron/templates/croninfo.twig @@ -2,7 +2,7 @@ {% extends "base.twig" %} {% block preload %} -<link rel="stylesheet" type="text/css" href="{{ baseurlpath }}assets/css/cron.css"> +<link rel="stylesheet" href="/{{ baseurlpath }}module.php/cron/assets/css/cron.css"> {% endblock %} {% block content %} @@ -14,16 +14,17 @@ <code id="cronlist"> {% for url in urls %} # {{ 'Run cron:'|trans }} [{{ url.tag }}]<br /> - {{ url.int }} curl --silent "{{ url.href }}" > /dev/null 2>&1<br /> + {{ url.int }} curl --silent "{{ url.exec_href }}" > /dev/null 2>&1<br /> {% endfor %} - </code></div><br /> + <br /> + </code> + </div> - <p>{{ 'Click here to run the cron jobs:'|trans }}</p> - <ul> + <p>{{ 'Click here to run the cron jobs:'|trans }} + <ul> {% for url in urls %} - <li><a href="{{ url.href }}&output=xhtml">{{ 'Run cron:'|trans }} {{ url.tag }}</a></li> + <li><a href="{{ url.href }}">{{ 'Run cron:'|trans }} {{ url.tag }}</a></li> {% endfor %} - </ul> - </p> + </ul> {% endblock %} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cron/www/assets/css/cron.css b/vendor/simplesamlphp/simplesamlphp/modules/cron/www/assets/css/cron.css index 459178ed6c2c31566f70bc580c763c100a3e3462..1f26a78d05023baa187fc0368d1f375de7de2807 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/cron/www/assets/css/cron.css +++ b/vendor/simplesamlphp/simplesamlphp/modules/cron/www/assets/css/cron.css @@ -1,3 +1,4 @@ code#cronlist { - font-size: 0.8vw; + font-size: 0.7vw; + white-space: nowrap; } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cron/www/cron.php b/vendor/simplesamlphp/simplesamlphp/modules/cron/www/cron.php index fb930592812ce20bf6370618cdb708677d63cb81..d77b307bed35618aa4cf9f365befa619ac9c0ad3 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/cron/www/cron.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/cron/www/cron.php @@ -1,49 +1,19 @@ <?php -$config = \SimpleSAML\Configuration::getInstance(); -$cronconfig = \SimpleSAML\Configuration::getConfig('module_cron.php'); +namespace SimpleSAML\Module\cron; -if (!is_null($cronconfig->getValue('key'))) { - if ($_REQUEST['key'] !== $cronconfig->getValue('key')) { - \SimpleSAML\Logger::error('Cron - Wrong key provided. Cron will not run.'); - exit; - } -} +use SimpleSAML\Configuration; +use SimpleSAML\Session; +use Symfony\Component\HttpFoundation\Request; -$cron = new \SimpleSAML\Module\cron\Cron(); -if (!$cron->isValidTag($_REQUEST['tag'])) { - SimpleSAML\Logger::error('Cron - Illegal tag ['.$_REQUEST['tag'].'].'); - exit; -} +$config = Configuration::getInstance(); +$session = Session::getSessionFromRequest(); +$request = Request::createFromGlobals(); -$url = \SimpleSAML\Utils\HTTP::getSelfURL(); -$time = date(DATE_RFC822); +$tag = $request->get('tag'); +$key = $request->get('key'); +$output = $request->get('output'); -$croninfo = $cron->runTag($_REQUEST['tag']); -$summary = $croninfo['summary']; - -if ($cronconfig->getValue('sendemail', true) && count($summary) > 0) { - $message = '<h1>Cron report</h1><p>Cron ran at '.$time.'</p>'. - '<p>URL: <code>'.$url.'</code></p>'. - '<p>Tag: '.$croninfo['tag']."</p>\n\n". - '<ul><li>'.join('</li><li>', $summary).'</li></ul>'; - - $toaddress = $config->getString('technicalcontact_email', 'na@example.org'); - if ($toaddress == 'na@example.org') { - \SimpleSAML\Logger::error('Cron - Could not send email. [technicalcontact_email] not set in config.'); - } else { - // Use $toaddress for both TO and FROM - $email = new \SimpleSAML\XHTML\EMail($toaddress, 'SimpleSAMLphp cron report', $toaddress); - $email->setBody($message); - $email->send(); - } -} - -if (isset($_REQUEST['output']) && $_REQUEST['output'] == "xhtml") { - $t = new \SimpleSAML\XHTML\Template($config, 'cron:croninfo-result.php', 'cron:cron'); - $t->data['tag'] = $croninfo['tag']; - $t->data['time'] = $time; - $t->data['url'] = $url; - $t->data['summary'] = $summary; - $t->show(); -} +$controller = new Controller\Cron($config, $session); +$response = $controller->run($tag, $key, $output); +$response->send(); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/cron/www/croninfo.php b/vendor/simplesamlphp/simplesamlphp/modules/cron/www/croninfo.php index 8a0aac4d52a90de827a0344822163813ce15cfc4..3f55ac313872eba36ccc0e1741436b05bd9e6450 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/cron/www/croninfo.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/cron/www/croninfo.php @@ -5,35 +5,15 @@ * initializes the SimpleSAMLphp config class with the correct path. */ -require_once('_include.php'); +namespace SimpleSAML\Module\cron; -// Load SimpleSAMLphp configuration and metadata -$config = \SimpleSAML\Configuration::getInstance(); -$session = \SimpleSAML\Session::getSessionFromRequest(); +use SimpleSAML\Configuration; +use SimpleSAML\Session; +use Symfony\Component\HttpFoundation\Request; -\SimpleSAML\Utils\Auth::requireAdmin(); +$config = Configuration::getInstance(); +$session = Session::getSessionFromRequest(); -$cronconfig = \SimpleSAML\Configuration::getConfig('module_cron.php'); - -$key = $cronconfig->getValue('key', ''); -$tags = $cronconfig->getValue('allowed_tags'); - -$def = [ - 'weekly' => "22 0 * * 0", - 'daily' => "02 0 * * *", - 'hourly' => "01 * * * *", - 'default' => "XXXXXXXXXX", -]; - -$urls = []; -foreach ($tags as $tag) { - $urls[] = [ - 'href' => \SimpleSAML\Module::getModuleURL('cron/cron.php', ['key' => $key, 'tag' => $tag]), - 'tag' => $tag, - 'int' => (array_key_exists($tag, $def) ? $def[$tag] : $def['default']), - ]; -} - -$t = new \SimpleSAML\XHTML\Template($config, 'cron:croninfo.tpl.php', 'cron:cron'); -$t->data['urls'] = $urls; -$t->show(); +$controller = new Controller\Cron($config, $session); +$response = $controller->info(); +$response->show(); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/.codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/discopower/.codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/.codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/discopower/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..213731afe8e5857ea9ea61708dcafd0944dd3f7f --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/.php_cs.dist @@ -0,0 +1,17 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/config-templates', + __DIR__ . '/lib', + __DIR__ . '/tests', + __DIR__ . '/www', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/discopower/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..3c250287a743959883e40e541e22f26fb1dd8635 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/.travis.yml @@ -0,0 +1,35 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +matrix: + allow_failures: + - php: 7.3 + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then composer require --dev vimeo/psalm:1.1.9; fi + +script: + - bin/check-syntax.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi +# - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/LICENSE b/vendor/simplesamlphp/simplesamlphp/modules/discopower/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..0a041280bd00a9d068f503b8ee7ce35214bd24a1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/bin/check-syntax.sh b/vendor/simplesamlphp/simplesamlphp/modules/discopower/bin/check-syntax.sh new file mode 100755 index 0000000000000000000000000000000000000000..6bbc93b2882d35724a9fdfeab72b8dc6a30fadef --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/bin/check-syntax.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +PHP='/usr/bin/env php' +RETURN=0 + +# check PHP files +for FILE in `find config-templates lib templates tests www -name "*.php"`; do + $PHP -l $FILE > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Syntax check failed for ${FILE}" + RETURN=`expr ${RETURN} + 1` + fi +done + +exit $RETURN diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/discopower/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..ef307b9e397092223253863aa024f0a2c1385914 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/composer.json @@ -0,0 +1,42 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-discopower", + "description": "Fancy tabbed discovery service with filtering capabilities where SPs can have different sets of metadata listed", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "discopower", "discovery"], + "license": "LGPL-3.0-or-later", + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload": { + "psr-4": { + "SimpleSAML\\modules\\discopower\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "phpunit/phpunit": "~5.7" + }, + "support": { + "issues": "https://github.com/tvdijen/simplesamlphp-module-discopower/issues", + "source": "https://github.com/tvdijen/simplesamlphp-module-discopower" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/config-templates/module_discopower.php b/vendor/simplesamlphp/simplesamlphp/modules/discopower/config-templates/module_discopower.php index 498cadad83962445faa726abed4e8da675561189..a6354abb37b9084628c93bd84c1bdd90f7ee36e0 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/discopower/config-templates/module_discopower.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/config-templates/module_discopower.php @@ -16,7 +16,7 @@ /* * the 'tab' parameter allows you to limit the tabs to a specific list. (excluding unlisted tags) * - * 'tabs' => array('norway', 'finland'), + * 'tabs' => ['norway', 'finland'], */ /* diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/default-disable b/vendor/simplesamlphp/simplesamlphp/modules/discopower/default-enable similarity index 59% rename from vendor/simplesamlphp/simplesamlphp/modules/discopower/default-disable rename to vendor/simplesamlphp/simplesamlphp/modules/discopower/default-enable index fa0bd82e2df7bd79d57593d35bc53c1f9d3ef71f..25615cb47c350d23033eb9801627ed8330bcc3e9 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/discopower/default-disable +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/default-enable @@ -1,3 +1,3 @@ This file indicates that the default state of this module -is disabled. To enable, create a file named enable in the +is enabled. To disable, create a file named disable in the same directory as this file. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/dictionaries/tabs.translation.json b/vendor/simplesamlphp/simplesamlphp/modules/discopower/dictionaries/tabs.translation.json index cfa48b63ed215f0f4a70ea17b4b030b58f81cd4d..cabbb63f431655ec9977f06ef15b197534fe55d2 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/discopower/dictionaries/tabs.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/dictionaries/tabs.translation.json @@ -9,7 +9,8 @@ "af": "Noorwe\u00eb", "el": "\u039d\u03bf\u03c1\u03b2\u03b7\u03b3\u03af\u03b1", "xh": "Norowe", - "zu": "ENorway" + "zu": "ENorway", + "ca": "Noruega" }, "kalmar": { "es": "Kalmar", @@ -18,7 +19,8 @@ "nl": "Kalmar", "da": "Kalmar", "af": "Kalmar", - "el": "Kalmar" + "el": "Kalmar", + "ca": "Kalmar" }, "finland": { "es": "Finlandia", @@ -29,7 +31,8 @@ "da": "Finland", "af": "Finland", "el": "\u03a6\u03b9\u03bd\u03bb\u03b1\u03bd\u03b4\u03af\u03b1", - "xh": "Finlend" + "xh": "Finlend", + "ca": "Finlàndia" }, "sweden": { "es": "Suecia", @@ -41,7 +44,8 @@ "af": "Swede", "el": "\u03a3\u03bf\u03c5\u03b7\u03b4\u03af\u03b1", "xh": "Swiden", - "zu": "Sweden" + "zu": "Sweden", + "ca": "Suècia" }, "iceland": { "es": "Islandia", @@ -53,7 +57,8 @@ "af": "Ysland", "el": "\u0399\u03c3\u03bb\u03b1\u03bd\u03b4\u03af\u03b1", "xh": "Ayisilend", - "zu": "I-Iceland" + "zu": "I-Iceland", + "ca": "Islàndia" }, "denmark": { "es": "Dinamarca", @@ -64,7 +69,8 @@ "da": "Danmark", "af": "Denmark", "el": "\u0394\u03b1\u03bd\u03af\u03b1", - "xh": "Dominikha" + "xh": "Dominikha", + "ca": "Dinamarca" }, "switzerland": { "es": "Suiza", @@ -76,7 +82,8 @@ "af": "Switserland", "el": "\u0395\u03bb\u03b2\u03b5\u03c4\u03af\u03b1", "xh": "Swizalend", - "zu": "ESwitzerland" + "zu": "ESwitzerland", + "ca": "Suïssa" }, "greece": { "es": "Grecia", @@ -86,8 +93,15 @@ "da": "Gr\u00e6kenland", "af": "Griekeland", "el": "\u0395\u03bb\u03bb\u03ac\u03b4\u03b1", - "xh": "Grisi" + "xh": "Grisi", + "ca": "Grècia" }, + "netherlands": { + "en": "The Netherlands", + "nl": "Nederland", + "de": "Niederlande", + "fr": "Les Pays-Bas" + }, "southafrica": { "es": "Sud\u00e1frica", "ru": "\u042e\u0436\u043d\u0430\u044f \u0410\u0444\u0440\u0438\u043a\u0430", @@ -98,7 +112,8 @@ "af": "Suid-Afrika", "el": "\u039d\u03cc\u03c4\u03b9\u03b1 \u0391\u03c6\u03c1\u03b9\u03ba\u03ae", "xh": "uMzantsi Afrika", - "zu": "iNingizimu Afrika" + "zu": "iNingizimu Afrika", + "ca": "Sud-Àfrica" }, "edugain": { "es": "Europa (eduGAIN)", @@ -110,7 +125,8 @@ "af": "Europa (eduGAIN)", "el": "\u0395\u03c5\u03c1\u03ce\u03c0\u03b7 (eduGAIN)", "xh": "Yurophu (eduGAIN)", - "zu": "IYurophu (eduGAIN)" + "zu": "IYurophu (eduGAIN)", + "ca": "Europa (eduGAIN)" }, "misc": { "es": "Otros", @@ -122,7 +138,8 @@ "af": "Verskeie", "el": "\u0386\u03bb\u03bb\u03bf\u03b9 \u03c6\u03bf\u03c1\u03b5\u03af\u03c2", "xh": "Ezahlukahlukeneyo", - "zu": "Ezihlukahlukene" + "zu": "Ezihlukahlukene", + "ca": "Altres" }, "incommon": { "es": "InCommon", @@ -130,7 +147,8 @@ "nl": "InCommon", "da": "InCommon", "af": "InCommon", - "el": "InCommon" + "el": "InCommon", + "ca": "InCommon" }, "ukacessfederation": { "es": "Federación de Acceso de Reino Unido", @@ -138,11 +156,14 @@ "nl": "UK Access Federation", "da": "Storbritanniens adgangsf\u00f8deration", "af": "UK Toegangs Federasie", - "el": "\u039f\u03bc\u03bf\u03c3\u03c0\u03bf\u03bd\u03b4\u03af\u03b1 UK Access" + "el": "\u039f\u03bc\u03bf\u03c3\u03c0\u03bf\u03bd\u03b4\u03af\u03b1 UK Access", + "ca": "Federeació d'accès del Regne Unit" }, "incremental_search": { "af": "Inkrementele soektog...", + "nl": "Zoeken...", "zu": "Ukucinga okukhulayo...", - "xh": "Ukhangelo oluqhubekayo..." + "xh": "Ukhangelo oluqhubekayo...", + "ca": "Cerca incremental..." } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/lib/PowerIdPDisco.php b/vendor/simplesamlphp/simplesamlphp/modules/discopower/lib/PowerIdPDisco.php index a0955cb32d320448ab03a89f55a7dd0252d8dfee..713feec1fecdfd0c17e0b000a8d268ffd2182568 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/discopower/lib/PowerIdPDisco.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/lib/PowerIdPDisco.php @@ -2,6 +2,14 @@ namespace SimpleSAML\Module\discopower; +use SimpleSAML\Configuration; +use SimpleSAML\Locale\Translate; +use SimpleSAML\Logger; +use SimpleSAML\Session; +use SimpleSAML\Utils\HTTP; +use SimpleSAML\XHTML\Template; +use Webmozart\Assert\Assert; + /** * This class implements a generic IdP discovery service, for use in various IdP discovery service pages. This should * reduce code duplication. @@ -11,7 +19,6 @@ * @author Andreas Åkre Solberg <andreas@uninett.no>, UNINETT AS. * @package SimpleSAMLphp */ - class PowerIdPDisco extends \SimpleSAML\XHTML\IdPDisco { /** @@ -51,12 +58,12 @@ public function __construct(array $metadataSets, $instance) { parent::__construct($metadataSets, $instance); - $this->discoconfig = \SimpleSAML\Configuration::getConfig('module_discopower.php'); + $this->discoconfig = Configuration::getConfig('module_discopower.php'); $this->cdcDomain = $this->discoconfig->getString('cdc.domain', null); if ($this->cdcDomain !== null && $this->cdcDomain[0] !== '.') { // ensure that the CDC domain starts with a dot ('.') as required by the spec - $this->cdcDomain = '.'.$this->cdcDomain; + $this->cdcDomain = '.' . $this->cdcDomain; } $this->cdcLifetime = $this->discoconfig->getInteger('cdc.lifetime', null); @@ -69,10 +76,11 @@ public function __construct(array $metadataSets, $instance) * This is an helper function for logging messages. It will prefix the messages with our discovery service type. * * @param string $message The message which should be logged. + * @return void */ protected function log($message) { - \SimpleSAML\Logger::info('PowerIdPDisco.'.$this->instance.': '.$message); + Logger::info('PowerIdPDisco.' . $this->instance . ': '.$message); } @@ -135,7 +143,7 @@ protected function idplistStructured($list) } foreach ($slist as $tab => $tbslist) { - uasort($slist[$tab], ['\SimpleSAML\Module\discopower\PowerIdPDisco', 'mcmp']); + uasort($slist[$tab], [self::class, 'mcmp']); } return $slist; @@ -216,8 +224,9 @@ protected function filterList($list) } $defaultrule = true; - if (array_key_exists('entities.include', $spmd['discopower.filter']) || - array_key_exists('tags.include', $spmd['discopower.filter']) + if ( + array_key_exists('entities.include', $spmd['discopower.filter']) + || array_key_exists('tags.include', $spmd['discopower.filter']) ) { $defaultrule = false; } @@ -236,6 +245,7 @@ protected function filterList($list) * Handles a request to this discovery service. * * The IdP disco parameters should be set before calling this function. + * @return void */ public function handleRequest() { @@ -246,22 +256,8 @@ public function handleRequest() $idpList = $this->idplistStructured($this->filterList($idpList)); $preferredIdP = $this->getRecommendedIdP(); - $t = new \SimpleSAML\XHTML\Template($this->config, 'discopower:disco.tpl.php', 'disco'); - $discoPowerTabs = [ - 'denmark' => \SimpleSAML\Locale\Translate::noop('{discopower:tabs:denmark}'), - 'edugain' => \SimpleSAML\Locale\Translate::noop('{discopower:tabs:edugain}'), - 'finland' => \SimpleSAML\Locale\Translate::noop('{discopower:tabs:finland}'), - 'greece' => \SimpleSAML\Locale\Translate::noop('{discopower:tabs:greece}'), - 'southafrica' => \SimpleSAML\Locale\Translate::noop('{discopower:tabs:southafrica}'), - 'iceland' => \SimpleSAML\Locale\Translate::noop('{discopower:tabs:iceland}'), - 'incommon' => \SimpleSAML\Locale\Translate::noop('{discopower:tabs:incommon}'), - 'kalmar' => \SimpleSAML\Locale\Translate::noop('{discopower:tabs:kalmar}'), - 'misc' => \SimpleSAML\Locale\Translate::noop('{discopower:tabs:misc}'), - 'norway' => \SimpleSAML\Locale\Translate::noop('{discopower:tabs:norway}'), - 'sweden' => \SimpleSAML\Locale\Translate::noop('{discopower:tabs:sweden}'), - 'switzerland' => \SimpleSAML\Locale\Translate::noop('{discopower:tabs:switzerland}'), - 'ukacessfederation' => \SimpleSAML\Locale\Translate::noop('{discopower:tabs:ukacessfederation}'), - ]; + $t = new Template($this->config, 'discopower:disco.tpl.php', 'disco'); + $translator = $t->getTranslator(); $t->data['return'] = $this->returnURL; $t->data['returnIDParam'] = $this->returnIdParam; @@ -271,6 +267,7 @@ public function handleRequest() $idpList = $this->processMetadata($t, $idpList, $preferredIdP); $t->data['idplist'] = $idpList; + $t->data['faventry'] = null; foreach ($idpList as $tab => $slist) { if (!empty($preferredIdP) && array_key_exists($preferredIdP, $slist)) { $t->data['faventry'] = $slist[$preferredIdP]; @@ -278,37 +275,43 @@ public function handleRequest() } } - if (!empty($t->data['faventry'])) { + if (!is_null($t->data['faventry'])) { $t->data['autofocus'] = 'favouritesubmit'; } - $search = '<script type="text/javascript"> - $(document).ready(function() { - $("#tabdiv").tabs({ selected: '.$t->data['defaulttab'].' });'; - $i = 0; - foreach ($idpList as $tab => $slist) { - $search .= "\n".'$("#query_'.$tab.'").liveUpdate("#list_'.$tab.'")'. - (($i++ == 0) && (empty($this->data['faventry'])) ? '.focus()' : '').';'; - } - $search .= "});\n</script>"; + /* store the tab list in the session */ + $session = Session::getSessionFromRequest(); + $session->setData('discopower:tabList', 'faventry', $t->data['faventry']); + $session->setData('discopower:tabList', 'tabs', array_keys($idpList)); + $session->setData('discopower:tabList', 'defaulttab', $t->data['defaulttab']); - $t->data['search'] = $search; $t->data['score'] = $this->discoconfig->getValue('score', 'quicksilver'); - $t->data['tabNames'] = $discoPowerTabs; $t->data['preferredidp'] = $preferredIdP; - $t->data['urlpattern'] = htmlspecialchars(\SimpleSAML\Utils\HTTP::getSelfURLNoQuery()); + $t->data['urlpattern'] = htmlspecialchars(HTTP::getSelfURLNoQuery()); $t->data['rememberenabled'] = $this->config->getBoolean('idpdisco.enableremember', false); $t->data['rememberchecked'] = $this->config->getBoolean('idpdisco.rememberchecked', false); - $t->data['jquery'] = ['core' => true, 'ui' => true]; + foreach (array_keys($idpList) as $tab) { + if ($translator->getTag('{discopower:tabs:' . $tab . '}') === null) { + $translator->includeInlineTranslation('{discopower:tabs:' . $tab . '}', $tab); + } + $t->data['tabNames'][$tab] = $translator::noop('{discopower:tabs:' . $tab . '}'); + } $t->show(); } + + /** + * @param \SimpleSAML\XHTML\Template $t + * @param array $metadata + * @param string $favourite + * @return array + */ private function processMetadata($t, $metadata, $favourite) { $basequerystring = '?'. - 'entityID='.urlencode($t->data['entityID']).'&'. - 'return='.urlencode($t->data['return']).'&'. - 'returnIDParam='.urlencode($t->data['returnIDParam']).'&idpentityid='; + 'entityID=' . urlencode($t->data['entityID']) . '&' . + 'return=' . urlencode($t->data['return']) . '&' . + 'returnIDParam=' . urlencode($t->data['returnIDParam']) . '&idpentityid='; foreach ($metadata as $tab => $idps) { foreach ($idps as $entityid => $entity) { @@ -341,17 +344,17 @@ private function processMetadata($t, $metadata, $favourite) // HTML output if ($entity['entityid'] === $favourite) { - $html = '<a class="metaentry favourite" href="'. - $basequerystring.urlencode($entity['entityid']).'">'; + $html = '<a class="metaentry favourite" href="' . + $basequerystring.urlencode($entity['entityid']) . '">'; } else { - $html = '<a class="metaentry" href="'. - $basequerystring.urlencode($entity['entityid']).'">'; + $html = '<a class="metaentry" href="' . + $basequerystring.urlencode($entity['entityid']) . '">'; } $html .= $entity['translated']; if (array_key_exists('icon', $entity) && $entity['icon'] !== null) { - $iconUrl = \SimpleSAML\Utils\HTTP::resolveURL($entity['icon']); - $html .= '<img alt="Icon for identity provider" class="entryicon" src="'. - htmlspecialchars($iconUrl).'" />'; + $iconUrl = HTTP::resolveURL($entity['icon']); + $html .= '<img alt="Icon for identity provider" class="entryicon" src="' . + htmlspecialchars($iconUrl) . '" />'; } $html .= '</a>'; $entity['html'] = $html; @@ -394,6 +397,7 @@ private function getCDC() * This function overrides the corresponding function in the parent class, to add support for common domain cookie. * * @param string $idp The entityID of the IdP. + * @return void */ protected function setPreviousIdP($idp) { @@ -433,7 +437,7 @@ protected function setPreviousIdP($idp) 'secure' => true, 'httponly' => false, ]; - \SimpleSAML\Utils\HTTP::setCookie('_saml_idp', $newCookie, $params, false); + HTTP::setCookie('_saml_idp', $newCookie, $params, false); } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/locales/en/LC_MESSAGES/discopower.po b/vendor/simplesamlphp/simplesamlphp/modules/discopower/locales/en/LC_MESSAGES/discopower.po index 30c54b1887fd6539719fb58a15b808b8276d9f63..f628f7ea543137ee176d9845a3573252f157fbc9 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/discopower/locales/en/LC_MESSAGES/discopower.po +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/locales/en/LC_MESSAGES/discopower.po @@ -5,7 +5,7 @@ msgstr "" "Project-Id-Version: SimpleSAMLphp 1.15\n" "Report-Msgid-Bugs-To: simplesamlphp-translation@googlegroups.com\n" "POT-Creation-Date: 2016-10-12 09:23+0200\n" -"PO-Revision-Date: 2016-10-14 12:14+0200\n" +"PO-Revision-Date: 2019-03-20 15:27+0200\n" "Last-Translator: \n" "Language: en\n" "Language-Team: \n" @@ -30,6 +30,9 @@ msgstr "South Africa" msgid "{discopower:tabs:kalmar}" msgstr "Kalmar" +msgid "{discopower:tabs:netherlands}" +msgstr "The Netherlands" + msgid "{discopower:tabs:denmark}" msgstr "Denmark" @@ -93,3 +96,6 @@ msgstr "Europe (eduGAIN)" msgid "InCommon" msgstr "InCommon" +msgid "{discopower:tabs:incremental_search}" +msgstr "Incremental search..." + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/locales/nl/LC_MESSAGES/discopower.po b/vendor/simplesamlphp/simplesamlphp/modules/discopower/locales/nl/LC_MESSAGES/discopower.po index a1922cf526d41e487f628e3f309c2e23d33d837e..d38653d098938d2c428469f63b2aaca164fde796 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/discopower/locales/nl/LC_MESSAGES/discopower.po +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/locales/nl/LC_MESSAGES/discopower.po @@ -30,6 +30,9 @@ msgstr "Zuid-Afrika" msgid "{discopower:tabs:kalmar}" msgstr "Kalmar" +msgid "{discopower:tabs:netherlands}" +msgstr "Nederland" + msgid "{discopower:tabs:denmark}" msgstr "Denemarken" @@ -54,6 +57,9 @@ msgstr "Noorwegen" msgid "{discopower:tabs:misc}" msgstr "Overige" +msgid "{discopower:tabs:incremental_search}" +msgstr "Zoeken" + msgid "Sweden" msgstr "Zweden" diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/discopower/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0985fdd804b18d8d9179ecd956d63582c189e95 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/phpunit.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/discopower/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..dc0adee39f1cdb069c3938a589587628d1ad3af9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/psalm.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp DiscoPower Module" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="config-templates" /> + <directory name="lib" /> + <directory name="www" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/templates/disco.tpl.php b/vendor/simplesamlphp/simplesamlphp/modules/discopower/templates/disco.tpl.php index 3472a6e30387e0e8539e2db65f1bb906a736bb1d..15ca23c9eab5de360c4e15e7226bcd4f20420d08 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/discopower/templates/disco.tpl.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/templates/disco.tpl.php @@ -1,23 +1,30 @@ <?php $this->data['header'] = $this->t('selectidp'); -$this->data['jquery'] = ['core' => true, 'ui' => true, 'css' => true]; $this->data['head'] = '<link rel="stylesheet" media="screen" type="text/css" href="'. + SimpleSAML\Module::getModuleURL('discopower/assets/css/uitheme1.12.1/jquery-ui.min.css').'" />'; +$this->data['head'] .= '<link rel="stylesheet" media="screen" type="text/css" href="'. SimpleSAML\Module::getModuleURL('discopower/assets/css/disco.css').'" />'; -$this->data['head'] .= '<script type="text/javascript" src="'. - SimpleSAML\Module::getModuleURL('discopower/assets/js/jquery.livesearch.js').'"></script>'."\n"; -$this->data['head'] .= '<script type="text/javascript" src="'. - SimpleSAML\Module::getModuleURL('discopower/assets/js/'.$this->data['score'].'.js').'"></script>'."\n"; -$this->data['head'] .= $this->data['search']; - if (!empty($this->data['faventry'])) { $this->data['autofocus'] = 'favouritesubmit'; } $this->includeAtTemplateBase('includes/header.php'); +$this->data['htmlinject']['htmlContentPost'][] = '<script type="text/javascript" src="'. + SimpleSAML\Module::getModuleURL('discopower/assets/js/jquery-1.12.4.min.js').'"></script>'."\n"; +$this->data['htmlinject']['htmlContentPost'][] = '<script type="text/javascript" src="'. + SimpleSAML\Module::getModuleURL('discopower/assets/js/jquery-ui-1.12.1.min.js').'"></script>'."\n"; +$this->data['htmlinject']['htmlContentPost'][] = '<script type="text/javascript" src="'. + SimpleSAML\Module::getModuleURL('discopower/assets/js/jquery.livesearch.js').'"></script>'."\n"; +$this->data['htmlinject']['htmlContentPost'][] = '<script type="text/javascript" src="'. + SimpleSAML\Module::getModuleURL('discopower/assets/js/'.$this->data['score'].'.js').'"></script>'."\n"; +$this->data['htmlinject']['htmlContentPost'][] = '<script type="text/javascript" src="'. + SimpleSAML\Module::getModuleURL('discopower/assets/js/tablist.js').'"></script>'."\n"; + + function showEntry($t, $metadata, $favourite = false) { $basequerystring = '?'. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/templates/disco.twig b/vendor/simplesamlphp/simplesamlphp/modules/discopower/templates/disco.twig index 5fd06df1b6e1a54799165b39bccfb6ce77dd2462..a21908ae236332203958775f004a894bdd4ff136 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/discopower/templates/disco.twig +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/templates/disco.twig @@ -2,15 +2,14 @@ {% extends "base.twig" %} {% block preload %} - <link href="{{ baseurlpath }}style.css" rel="stylesheet" type="text/css" media="screen" /> - <link rel="stylesheet" media="screen" type="text/css" href="/resources/uitheme1.8/jquery-ui.css" /> + <link rel="stylesheet" media="screen" href="/{{ baseurlpath }}module.php/discopower/assets/css/uitheme1.12.1/jquery-ui.min.css"> + <link rel="stylesheet" media="screen" href="/{{ baseurlpath }}module.php/discopower/assets/css/disco.css"> {% endblock %} {% block postload %} - <script type="text/javascript" src="/resources/jquery-1.8.js"></script> - <script type="text/javascript" src="/resources/jquery-ui-1.8.js"></script> - <script type="text/javascript" src="{{ baseurlpath }}js/jquery.livesearch.js"></script> - <script type="text/javascript" src="{{ baseurlpath }}js/{{ score }}.js"></script> - {{ search|raw }} + <script src="/{{ baseurlpath }}module.php/discopower/assets/js/jquery-ui-1.12.1.min.js"></script> + <script src="/{{ baseurlpath }}module.php/discopower/assets/js/jquery.livesearch.js"></script> + <script src="/{{ baseurlpath }}module.php/discopower/assets/js/{{ score }}.js"></script> + <script src="/{{ baseurlpath }}module.php/discopower/assets/js/tablist.js"></script> {% endblock %} {% block content %} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/discopower/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..35f80ea420a8f442d2b563ef594726cd83336d5e --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot . '/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot . '/vendor/simplesamlphp/simplesamlphp/modules/discopower'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-bg_glass_55_fbf9ee_1x400.png b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-bg_glass_55_fbf9ee_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..1f851db2c9babc701aa0df1cc4e675943ab7812b --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-bg_glass_55_fbf9ee_1x400.png @@ -0,0 +1,5 @@ +�PNG + +��� IHDR�����������A����bKGD������ X����� pHYs���H���H�F�k>����IDATH���! +A���bl����A1{�V�Y0i��x��x�v����D�K_��O��9��a�Ք��}��^�JaȌ�0b�vBA�$,�Q���"_44���=�Sqc�yE��I�W +<kA����i�0��<a$S��y.���%tEXtdate:create�2019-05-26T16:42:24+00:00R������%tEXtdate:modify�2019-05-26T16:42:24+00:00#�oP����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-bg_glass_65_ffffff_1x400.png b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-bg_glass_65_ffffff_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..a82e07c128d7a152c2ddd7d5eed531ac7f1b5ec7 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-bg_glass_65_ffffff_1x400.png @@ -0,0 +1,3 @@ +�PNG + +��� IHDR����������G#7v���bKGD�݊���� pHYs���H���H�F�k>���IDAT(�ch`��p���h��4�i���%tEXtdate:create�2019-05-26T16:42:24+00:00R������%tEXtdate:modify�2019-05-26T16:42:24+00:00#�oP����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-bg_glass_75_dadada_1x400.png b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-bg_glass_75_dadada_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..f323d2943e827649ecb51caf4e1a53c4d4435ab9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-bg_glass_75_dadada_1x400.png @@ -0,0 +1,3 @@ +�PNG + +��� IHDR������������D���bKGD���1���� pHYs���H���H�F�k>���HIDAT8�cx��a�"��[�n{1�qc��po"��?3}`xR���1�s?��^^bxu��u)�뉣h���W�%R�|���%tEXtdate:create�2019-05-26T16:42:24+00:00R������%tEXtdate:modify�2019-05-26T16:42:24+00:00#�oP����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-bg_glass_75_e6e6e6_1x400.png b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-bg_glass_75_e6e6e6_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..8adf417e90dd6fad53bc76564f9d497c58184a6e --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-bg_glass_75_e6e6e6_1x400.png @@ -0,0 +1,3 @@ +�PNG + +��� IHDR������������D���bKGD���1���� pHYs���H���H�F�k>���HIDAT8�cx��0�F�ѳgύ��ax1��e&ë8��!obަ2��fx�����#3�ǵ��>��QD��@�$�.5o���%tEXtdate:create�2019-05-26T16:42:24+00:00R������%tEXtdate:modify�2019-05-26T16:42:24+00:00#�oP����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-bg_glass_95_fef1ec_1x400.png b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-bg_glass_95_fef1ec_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..3f88c6b520cd6d07bbeb3a7f7aa748ebcbe3aabf --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-bg_glass_95_fef1ec_1x400.png @@ -0,0 +1,3 @@ +�PNG + +��� IHDR�����������A����bKGD������ X����� pHYs���H���H�F�k>����IDATH��ϱ a�����\!V��J#X����ЋD}� .f�>���>��P�կx���x����q��жuɚq���f+��6���[��\�����כW�T4r���6:]V:�, (�Ŵ�8�yG-(d�� H���%tEXtdate:create�2019-05-26T16:42:24+00:00R������%tEXtdate:modify�2019-05-26T16:42:24+00:00#�oP����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-bg_highlight-soft_75_cccccc_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..d022fb79b5b59df131762103ed3cfdf66eadfc8f --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-bg_highlight-soft_75_cccccc_1x100.png @@ -0,0 +1,3 @@ +�PNG + +��� IHDR������d����2������bKGD���1���� pHYs���H���H�F�k>���ZIDAT�cx|��Nhã����2<hc�_�p/��n,� �[_n�g���p=��Õ��w2\je�X�pa��&�s��b8��p���"�����Y{���%tEXtdate:create�2019-05-26T16:42:24+00:00R������%tEXtdate:modify�2019-05-26T16:42:24+00:00#�oP����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-icons_222222_256x240.png b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-icons_222222_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..e723e17cb5428094de75a0d3c6f4f3c07dbd3bbe --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-icons_222222_256x240.png @@ -0,0 +1,32 @@ +�PNG + +��� IHDR����������E�r@���bKGD�"�b���� pHYs���H���H�F�k>��'IDATx��{he�}�?g����{��1)�����]K&qq�U�4kbiK�R(H��B��P(I�vJ�_��ӮIV�@nB�5i�N��iG�jq�& ~A#Q����rX'����9�:�ܫ{�3�E{�=�y�o~3g~��Mp�&����1Xxh8<�#dlЅ�Mx1�&��$�5~��V�� ��c�$��ױ���,���� ��ƹ�i���N:�Z ��ߊY���>�"�B���H!�������-C�u�8t�}����8�!�B�� *�OF�.[�aͲ��l��B&���1h�>��M]hN���4MAb���̐!(�hE�1�5jձcO�<6�e7��,e���S(��f�o�16+3�y +JR|{�^3�^����{�88������~'����pxh8<4��� �g����������2��n6e̘�����{�����Q�����pӀ��P�A��iۺߖ�f�S����(�D��'�L�6=����T:s���f�q��羀l��.c�I +���ǧ�=�i���M�>��ڠLN{U��&������&��{u��o�����.�.��4~#����pxh8<4��� �g��Û��p���^i����/�0���TW�c����Q��� �@)��y��u}`L��Uc���%T��������ȥ +�A��R��@�?��P�-`����BKl� b����Z}�������Ш��͢uJ��%U�]�K2��e ts�Y���@,e�e���豅r��jcܭs��M�n�0 A���mP��y �D�K(5�,�lN�&b�D�m�rwYDV����t�e$��謷� �L���[��C��0O�� P��&��0����+��;� �g���3@������pxh8<4����Y��`��O����F�Z<��h�\J!c��`����j �;TK�Vr�0��ʹqc�cGz�䟾c�[ ̕P5�t�h�)���ti���З߭ty�������&��M/Е����S���u����@��݅���n���b�9��`y�9��Ya�SX�0e���q�J`nB���g����b�����3���4P�- k�**�@HC�z(}��U����cj2��=��Ob�����3� ����R��05���1U�\8SMi�U��}����l�Hl�N� ���J��q+%e��7s���"�<։�ּ�z����M�L�T��ƾP��1f�1i��Ѹ��Vp������pxh8<4�z�A��+ o`�I_�R�����~�~��f��սh`�Ic�K�h����Q�p��xx`=�j�`]|S�B�(������(��v���F3�4v�6��T��4 ���5����:���*��-D#�n6��a��J<U���~�y(�1��(,�|t�z�}��d��j��0u]PT��-D}@����� +�n�+[�Ύ� A�B�T���(V� K������BT<[F{�m��=��-�ڤ����$��.��JR�U j��:X��e�n�e���bՅ��"C ��e2�@�Ј�݂� �Ѱ���xxh8<4��� ��1@kX6I��<��M*�Љ�Ѣ�+�b���04(�.�M3Z�<]&i�UuY�a��^2�w�ͻ�ɨn�U�@�n����E�4 ���O�Us�.J���}��dw�Ed�p��� ��me^f���mF gg������T��G4�Ѱ����m��������N��է��N�c�����������5�L�xi���D��9�|��%ܔ�h�P=�áb����o�p�VBG�X ,�#E��+�\�^��o�ʼdM��ɳ]�d����.�@ 䮚���D���e��FU6'g6��)��52p|��f��X�_a�"z��x���� �w�.c�t� +�� �g���3@ñ�`"�i��K�9���s D07� +ӕS��E�oC�Y�Z�l'N��~_Sƞ��y���a��xK�������z�-&|(�ϜC�K������Xg�d����5Ig��8k8YTL=�,/ +]s��w-~��t�����e�� ^�~�&6vh�}�Զ�:g���?m�bG!����1�:O8����]�%��2�����v +�E�@�5"�6 Y�rXcRb��ݎ���E%���`�#�D��r¤��Z�:�ϛ!�x�R���h�!��}v�۴��ϳ����x�y}FrA1#�*�u�T�?>��!�x#�~��G���k���@3K@�:>P�R�����M�A|��e]K�g�F.B�����t�l��OY d��!(v�V�X��%m�#���I[RR�`2�T�� ��H��w�Y�u=���b�YPEc�U%�&@��Ĺ�]��}�q���o7*�G�L� ��e�QX�5�U����-����³��8| ���_�ݟ��5\�5�p�VH^��\ �Fآ��a��a��5�l1�4[��#�b�o�P�1�E��is��wMJ'5�T���06�B|I�,b�����`�ՈP���X�k��B�$�[��-E�OHt�|�3�D�(i��d9�N6@x/ؠm�(�#�wj�P�t��/Z���ob�q%[:���3^�~a��5���5�����|E닃�^�E��$�L�-���_s, +߫��㕔Ņ�&�� +�_�,�������#F�}����&���.��<4��� �g���O��rdh9�����M7L(5꓂.���?M(�����stզ��-?�:��[ڧC�r�]�'��YB�2�l�C| l�eXS��pG��0KcI��~�u�L0/��y�Lt�r�I�?�R�%�����-�w�Ƿ�h���$L��J��V���Ϳ�Ӣ,�����g� x�_7��l��4�*��u�M+�@�x�<}��ã��q>��<�#��`�i� +:=��*��ۿ�{��)��_��8hs���������p�CWғ�K�`B]H��"}���_P�N���t�Q�l��1Y�Q�h+����&?��x�5:� ֘aY�ҭ���=\��En��������.�Yʸ��J���E%uTj5�����F�'������b;[��v�ט4�u��6]�lkw�3�÷���,: ��%&�� �[|��|��|Yi�q`:�����qXc�2+u|~/�wrz�[j-�I>#���,�9�Q:�#,2�����5@�@%��S@@6ÅJ�{��6��{��)h���W�~q]����t��<�+|�'�0O�a����6���3�U��HW������l;�����'�Z9�Z\�o��O�嵁���e�e�Ƣ[o��da�����rEm&�ʧ�������3m���6��=�g�^S��x +Hj���mi�(v��ۈ�{.�h�_���%�8��nF�7y{�����O���FS5�:�����/��ա���W�P�H+b�����Gx��/9��I�Yy�.����M�t��T�eە,�ѿ�-�R����e�d�� +��;�Ә:�9k��T�5��m����������E�G��|\Wu����ǣ��@^L���E��� ��4��� �g���y��; +J'U��䐎N�<�p2m���ӫ��.Z������Z5<� V +,��p�3��w�=~�3j��ǿě�#����ʭ�|�S��f�yk��=C�n1]�C�'I_O��*,�J՞�D\\I���}�E�\�$�M�(�E��\�߮�?ƫw +�����NJ��E�b�6��t�z�:<��u��d��k��vs!��PfM��7dT����3 ��*S,�AZl+N����l�R�&{�I��T�G�O�*�M~�;������XFS��j����^�Q���N�n3�Z���0Ne�R�]�3�8��<�$@�˜c.�t�=�.{e��'�TI�s��u����>-?B��p���?���X�J $�x�QJ�}�!#��Ո2�Ht!VɽV�\'���Y�3�6����6Yu��JOAa�[5e���]p9=7����t���_�y��?�OS���<V��q.��Ի���;�8�~��YE����KSȀ��Xjq@M�� ���/�p�X��۴�[�S��c7�'S6 �E� ������_Ձ'�_��)^3�b�h���+Z ��"rLz�ZA��#��[��'�?�Z7{mZl�Ӭ�Q�De+^��o�*D��g��r؈;/�."��HF�Ƴ5��)F ���2�c.�W�~�`����VEl����6�R����8ظ�ky�k�.����`��Fp7pps"�"��KR{(us�[�%6 u�s�ͻ���,BD�����/�ȷ�_Pt?�Y�Vy�.s���Y�3����3������\�V*#��y�f2j��g����A��Ѣ� +�g�-�5����Fh�-1�9�v��<�s �����m�� =/�_f�WX�M�&�לi�RvٗQt��_���"������Q<�(�1[��_~��b"T z3��sxh8��������p�`Z�/�NΧ���F��{�"p�i`�� +�gsO��s�.�G}��t<��9�ug����g�R`���&��X�t�岇�}� ������7����2J�X�e\�� 08j=�XJ�Ql�l����x�6z(\5Q��I��=�l +8�7Ɏ���E�a4�O�;�-��M�1Iy�vV�y^�b�EN��sQ���Cw[ �2 ��V�Ǽ� o�yw�7J����K'�Tu�l�>_�i���T��<͛<�iM +�p������7�YMW���=�ӡl(����u�+���^j��>3��2N�묳}��j�H��Q RT�Ȣ�� ���n�fݮ�~�+��c�iQ��< ����Ma=��|�*���� +�$@'��Ԍ��ǕqUO;�5~@��eI�2��9�w��"��O�~��s��s��k{��$�m��>����v�z��^2���v�ow�`a������4c��M C�����b�>����q:��o�=�-�p`_2�ng:6K��XV,����2�Ǿ��6��� �g���3@�� ��ś�s�a����R��WWB +g-N�;F[��Ւa�A��V�L�F�<-m +VbMC����7���K)�X����P�y� �s�~��=�����<�ܒ�{�x!�=����Ãq�R��l�]���/���� 0�l)'�}�#�^tX��孋�t�8FC�Y�$)�PUBE�(~��Ҟ��V�2^��*SL�H�l��S��'IA[�������Z���x-V�"ȥ�J�+���\�|�5u�W��nLJ�k��ܟ���(0�0����JyꞄ���a���f��g����6��� �g���3@Ñg���[�}��Z����Q�k?ҳ=��z�I$Т�:�9FW��m�x��:\(�W���+��e���F�9��,��*�!Gh�D��L��8�[v��o�����)�A�a�K�5�S/�)^c����(��W�H�N�W8T�r=op��p]MC�O?���*�� +DO��b/�hs�0�ڜb�9�1C�9-����o�ۿ���ԗ��u���Q��Fc���|W�%@�HB�2�9�������/Dx�D`�U:�Ƈ�gi����"`�%��ᄽ +������t �E`t���6�2k�)P�E�ѿO,��?�k��_�yh(/����=@��u �g���3@������v@]��<����]���~��WD�`��.��f���~�o��ʈ�N�VA��߈�ե�M����� �^��y��M�Q|��ߛ^-{o�~��>��w���Ѓ +��(��g��X���ץ�i��&�X +u��D�U���͕l� ��ғޥ�ߞ���k�������PH�H�C��J�~��S�@O�� ��ѓy7��� �k {��25���of����ϫ�o���{���'!�'���Z%��q�*)�g���C\���#��\���'��0���P_���WL��7��&AlJ���\��� Z��p��,���Y�x��j�c�����O�(6z��I�V�� u�:ג���T��D��O��9�ׄ�Q<��*y =���2��~����/?J,����WJ�Q�W�>����W��u�?��#G��/����4�"�K���{㧏�',I��ҟ综E;���|R�ݠ��~��W�7i8�6����pxh8<4��� ��r�<}8� kG�o;��u�C��P��v�)��A�<$��ց;��{l��� ����� ��#`��F���C�!f� Ӆ/`7��(��0R!9�9�z���@%!/m�]���Ad��hv�G�����3@������pxh8<4{����P/ 3@�}�� B&�^�16�{. �����ߠa�Q�o ���2l���mt���!\%@�X���?5��ճa��~ ��ʠM65wk��a�)T���F��_� +2�$�x�5�_9!�VxRd�1!}����'�`�$����Uԇ��r�?� �Q +�`7`�.���k����_V����zԄ��p�]]�GO���LXCk�3����%tEXtdate:create�2016-07-13T10:21:59+00:00�����%tEXtdate:modify�2016-07-13T09:26:54+00:00�͠���tEXtSoftware�Adobe ImageReadyq�e<����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-icons_2e83ff_256x240.png b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..1f5f49756ca64bd20a1048bd7a3a584457d4bf00 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-icons_2e83ff_256x240.png @@ -0,0 +1,18 @@ +�PNG + +��� IHDR�����������IJ���PLTE.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.����o���YtRNS�3P���/"Uq@f`2� !<BHK Z#'1S,�4���j���8E���|��������)��Q$� +��b�J��mߜGc?o�h�@^����bKGD��H��� pHYs���H���H�F�k>��dIDATx��]c۶�H�阒]�K���d��%٫뺮��lm���w]����|�p��X�m�-��}<�w�(1$�� ;�F�@��%��?����B,Lh{�t���#���T@�/?j�9 m��N� #���+`��`����I� +��_�-s�ʹU0�M��[�� +s�4`x���#�� �D<�~�K��.4�]`��PDDDDDDĈq������Ek@����A�~�*��� !Y���X�`hv3\LX��Ot�J2b���ؓl�QI<��� �6�-X�lֈ�6�H��|=j�`E�iq����Cv:�q���C?�?���x�,��r*t�ݻ}|;�kP�4���d�Y����f����K��~[ >�X:+�i����ĆQV9\����e�'���A�tOS�:7��2����YsxM�ہ��B���&���z�>n�C��@��r@��*�a�ӝ���%��MFDDDDDD�T�ߖ���H,���E����RU��n ب<��V- @�/Nm�թ���������Hw����*�+��#��$o�e�{�% �7\X��ǀ���2��~0��&n��sbA,�D�� �A�V�I��|� �Og���鴋� �7�y 7Jf�����:_�w^��H v{/O�9���<����Y�`+�� HRٰ����[��?�� +������=���c""""""F�˽�sG�<*k9c��E�8薽�������zfm��r�1�N�������nq�w��&=O�\}K` +#���2��~��L�|?�m>�\�f���:}�4ᦋ���{�)�n[�� +�̰E +KY��D�ۇ-�� �+�Kl=�Ӄ��L`љ�|�%��n� a� ���N�#��5� (4���?�����EDDDD\o�W�Ffq;��\E��_������,���W!%�zE!F�¶.�(USHQ0d�w)T���8#p,�x�B��K���� �*�x��X��E�e������ +K솎%mK��X~s�FE���~������tdc��a��I���1��Af4��dH��c�G�S�B`��0�wev`����"�{�� �.�GDDDD�,d�O�6�k"qk��Me�fS_����U��KŌ&g~>n� �H�})��L���F%8(�)r���!�[4统qQk�0�m[Le���_�7���0�@>1 X0A��Z����Vc�E�V ���Lt�k�3�EJ��44�Zﮊ�N`rt�>`�˥� � � A��HBLH�@��c���Uq=�j������cM����2�s����J���CL�iR �NQ���������0=���Yi�-�|4�V��]��]��B^�ޞ���_H������$�<�$� +a����=��d@� (Z�Ap_�}�~s���:�N�{DC>����m�^������S�&�, ;�N����&�B} ��<_A��B]H�u���N(B�0��{h���1�IK����Ds��j����'��M���8�.�ӫ1�h3�df}mq��� ��n�U{��L�o��z\=?@ ((���e�|=ơ麄�C�i����1r<|�OO�;� `��H��p�Qy�zԈu�����Z���V���Ʋ�!�)��5m�C���2��Ly�g�;���֑�R���jW�a@��@V�L�&W���ru=Z +�̥��=U���5}���������7�;b(�����nP&�s��k�4�����8�ͥ��0���1�U�W�v�k�18dq���T��ՌE]qH8�������G�F�����K�����'��r����Or���r�̧��6"fp��T�^3c��"�����n��Mم-�/��W=�tJ,��X�)���{�P Rm|K����>mX�8v�5h��<������_{ꘀ�Y�F�|&_G;&�>^�����W⁃�&�K���(��81�EB@F&��;"L���'wfw��E-6��o&/̫'X�e,>~�ee��|���A����=) d��Q�`}P[���K��N��˂����/�~)����O[d�O=�3E�l5'Y�$?��7�m���Tzզ.�\��.��` WE�����"""""v�)��V���<���K�ZX.Ex�~Ч)���ߚ�����W_}�5|��s��/!?����'poդ���tC3����@�Q�)��t��`���b!,dY9�6A2����������/튮���n�t�TK>����#]�L;zq�J���r���²[��\-t�ҽ�5 @�ͷϟ��n�T@��+;��c���Qh�C*���T�ڙ��A<Sku�µb�E� /��$�Z���.e�j������_ʤrWaB6d���(��S�s[�|���竕 +/5R���(�4X������76����`3|���P��p�'�H~<R?M�2�)� ��g��Vp��B�n�=�|W�ͬ\��V0_�81Oׄ�Kz||lP_��ω���lxX;ǀ�Ju�<��Ng[��]=�(�#]������p�P�a���i�������s�f�� +V�z��]ౚ������z>�Vr�?�f��?������ �Q�1�T`��} H�k���,{�VZˋT��ϛ�?I̯u�QK�LM�e͆��~��q������y�m0�9�S�;���j�����5 ���i��Q��]7k0�U�ޭ���G�kX����3#���lY��_Цx����j9��`�# +M [z��KuO_z˿Dܭ��*��kOJ�(7��n��\�e� I�T�ƨ�l�/�U������߶uw�.�~���;#�r���.�����8 �o# 5L��h>1�i�����p��V�M�?�/u7��0� X@��L��+M�+�����{��Fkt�{�ŧ89�0`���. ĀC�R+\��/��t�R����; �TӲ���]�aL���|�efđ�� �>�ۣ��G�|�P`P��8C1K՛�A�̍<�2��ۂ��K�r�l@L +L��������8�@�E>`n�����PNԍ,��p�����E��Ɔ����Z�FlÎ;�����F���7��Ȯ;�� +��s�wSz)g7�{r�s��S��gȋ��(߄~�AWytX��$�NV����R�_��<6�p.�O�8�O[�OdDk>_��O�O�}����JS���d��mV�?�W(_��m� ��j���~=H IԁF>T/��{*]IGJ@i����qam�NF|Q�5���0+���E�S8�:�v�`p~v���j:B�����p96�o��ys%�������� �|@H�����]��+�@��t]W�k}}�����7��Fʮr����A�����B���\m�-�_�2PY8�������x�ՎN�.h�~���@+7��z5������t�_/������/�?���0�S>��)���z�i0n�/�B����`{D��W���#`����B��o���[,�g��FVЁ�pP߾���C]Bz�� ��,X�����X�fԃ����A�:H��� k�7��d�Z9��oc}o�]�0�vd�:R]�0�ve���]刈����j����у����| �?�+(��OǍ�+ �#��ys���ߍ�n�p���Fru<��.HȺotM��3h���}��߆P}�������˗��v�����P�}mǀ���?���W��Z@���������}���������@��@���FD�������l����%tEXtdate:create�2016-07-13T10:21:59+00:00�����%tEXtdate:modify�2016-07-13T09:26:54+00:00�͠���tEXtSoftware�Adobe ImageReadyq�e<����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-icons_454545_256x240.png b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-icons_454545_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..618f5b0ca756789f81bc276426805df6f61b91d7 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-icons_454545_256x240.png @@ -0,0 +1,30 @@ +�PNG + +��� IHDR����������E�r@���bKGD�E�;�-��� pHYs���H���H�F�k>��mIDATx��{leG}�?g�K��$����U�!�>T��؈�J��i6A"�V��R%;��"���*UP)� +�/���z�RJ�F��QP��z��BQH�VU������5sμ�9��^�3ߕ��{~����7s�7��<���.��`���� c���Ab/�@�[�V�D��0��3AX9�0�N��_�B���&���>~�>� c�;ab�D�ߎE����Q�z��'k���M�ayԉ��6�!�:u:�:@RŤ�B�yDD���'�L��-�f�]S��q!��f� +S�Q�&�S��7MC��r==3dJ��{��f�Z���S0�Ms��:0K٦g�ʿ��&H�U�=�mc�4�i?UĔG��U4�hc��Qb�]�!��hL���W/� ����@������pxh8�~�|�A��Qf?�ێ��1f¸����=u����Q�GJH��p����PϠI�w״m췥���ԧ>2���"�WÓP&{��n����T:s���f�q���H@���.c�I������~�S�s+�^|B�n�29�dH�������]��v�-ˌ-m�e�h�>�����q&ت��g�9x�#c�n��~!����pxh8��4^�/� ����o�#�Z@��S���^��4� KZKP�d�9���C@F[�����,��a+�����]8��v��K�qHl�w9ק�84�KB��ץ|��&��#��[�\C�����`��R��!�����:�F +z��C���6��)A���T1wU.I�җ!4��ig�3w��������E:��q7����n�0uA���mP��y �T�K(5ͬ�lNæb�T���rw�DV�]��t�e4���7� �L���[��C��0��P��&��0����+��+� ����@������pxh8��4����Y��`��O����E�Z<��h�\J!��䞋��j �;TK�Vr�0��ͬq�cˇ��u���a����p����E{B�w"�K��5���n-��c"w�v�T�6 T�hzီ|6�ŝ���Ι��N{ t��]��K��^m1(�6��m�3��'�R�f���`Ô�� �_�>��j�,�*�-E)�e��{�U�,�� \u���oV��: `o��m�Ke�t��_W��O��dW3���Z Քrv|�~^�g��`j�yc���p�*���f���b�]�M5��9��.��L��N��q+%����ۯ�0�vc�c�J��E�M5���kk�#I�<���x_�� �I#0D�w��4xh8��4^�/� ��^c��� +����d�r��DM{w�Q�t�e�{��^�`��b�r./��M:0գ��*����z���`]|S�B�(�e)�h͎/V����ܮ�"aO!�o� ,�u�^���Љ�^�=�z��t`�WeCC�MQϱo���0q��%���U�o?�<��@6��HG/����������uAQ-_�u||����ִ*2l��ٍ�uG�@� j !�B���r����� q�L!*)�h������.�V�{3����-��!�w�$dP�*�����/P[�t1���l3�hl�y�p������0b��g�L�} �3���$�%\/��.)TwQ�"uK7d�+�2�!��@������pxh8��4�'��aY$m��f�6�lB'�.D�� ��Р��x7S�x��tI��eW�e}���d0�R�W��^ݢ��0](U�T�x����|��T�|����@v�^DfLb��(�2��H��0n8;���_�Q�O��}D���&3{��Y��W�w��5*��e˗?�̖�G� +�:H iZӖ)/MP���(:�!�/�|B��[i����:�Gf �L�`�~��:z$aa���^����ʭ|P�- kbݞ<ەL&�xJ�AABȼ�Hvᑢ�[�yS��ə�w�NJuy��%pw�0�_a"z��x���� �3i�1|���=����@����%�JW����A���m�\���� ��l��X�m9+�(��)������S��� or��ro*E`�Z��1��&=�ޗ�g�!�Rt<<�A.-V���+�l�|����suK��,&�ȇ��%����y�q�s��(A�K�*�q^�~����anb�1`�6��G�P�a�&.� �)b���muL��I���fnE! k̠Ò��c��m���c�ȱD�-B֥֙�D`:G��e�tQ ��7�0���0��������YQ�Ӕ،?�mb�/�eL{8�<� q�{��X4��$s���D@����s�9�����e8��\c(���Y���"�r���7��q6�u- |��B����R���i�x!��9^P�HD�����g�t7K���|��2��"�.�t���V����w�E�u>�b�������f����a?q�h'y'r�y����#\��&�� +o+��Ԫ������|�Y��%��_Hp���"����k��1��*ɫ���U[��&x�9�xA��s�mf�e��<�_����7�;y�6m���i � +:�[��)�EB���7�̰����8f��CH��`⾿�h�)�����}�(�%m���'��&��� ;��(�ݚ!�{:^����R��@���N���Kү"�*�<�V�敡�=��o�h~q���+`6I��i�I<#�����Z=^IE\`�0]1����%�D��A��^�a0f��,���c %[�Gxh8��4^�/������rdh9�����M7L)-�ӂ-���?K(����stբ�h-?�:��[ڧC�r�]�G�(�YB�3�|�C| l�eXW��_�x�V8Ɗ�b����bQ����7�����V�4J�]������l!��=� D?��'a`^����a�q��8���:-��O��YP��x�ۀ���֝��X�5Q�"�Gִ����W}��� +���I>ȓ<�c��b�YV +6=��*��ۿ�-\��įi|��BH���J_F�Wx�CWғ�_��K�`B]J��"}�`�_R��β��&nDsp����t%G-�^���V�����yIc�b�9.hM�u����K��ĭ��6T���6��5Ko(� +%Hz߲�:.��n�z�ōO�>���c��lpVZM_gڰ�C�v��eG{�����<_d�����0e���N�%N�y�ƍ����Ȅp��~�Ú�/���k�������n��������|��(G������#.�s��9�J�ۇ��l���[��6�ɻ�&�.X���{�����SDf��<����y?O�~��ƅDP���*~b���gco��s{;�����'�Z9�Z��.��O�孁���e��U�~?�Ӆ1N�3��ڶD�(��1Gx�x�k�S�H�I~ی?O��������k���,��i�(���ׁۈ�{.�h�_���5�؋�nF�7��0Q���O����S5�:�'����/��ա���J�r���� �.���KN�wu�e��r>n��-�U�$U`I�v%�����.A�U����e�d�� +��;�Ә:�+�a&�XĎ �y������������������G�с��� ��"��4��pxh8��4^��� @d6�((�Ԕ{�C::[�>�H, +�ɴNVN����hr.�~N������Z��`�3����K��Q�|$�%�t��!�Vn%�=�*�7����f��g(�m!fy���"�k�I6Y�/�eZ�ٳ���+���z�g�6W8ɦbQ%�y�{9����Ï�*ŕ�#��7��b-t��X�͕8y��nO�{]�!ټ�*���\� �(��p�2.�H�ٙ�d�.�^Z�(N���&�l�2�&k� �U&ף���#~�.���7������6���58A7����}P:��BlkU�[�8�)�j�w0�$��W� ��!s\�������QF�n(qRK��:'�X���@����=$��x����|�5:��@��]���2�S�i�.�&�� +��$` +8�t�����S =�&[#�߫��U3���Wҳq��^H{���➇�Z���4������"��A��H��#����U��0�+̱�1�Ɏ�;����O9���"�D�E �C+n�U:�|a��ɔ�M|�?H������W1�$~=�k��U�џ���V������V�����l{���7� �����^�;<�,�t[������T"��3SU9l��˾�H���x^�&�a�@���)�E��&�<<B4�(b����p������Ƶ\˫\�u��f�����7r����������^��Ci�[��.��h���_�^��mD�"DD�_3��e�������e��X� �,�B@�fU���/�?���g���B�R���C�&��2���P�8��@3ZtS��<����v7�^#�另�;c'�Nȹ����6�g[�J!Az^ ?�<̯�oɛ�_s[Kg{(e�}�E�~J��,�m<<�����U���g +"&B%��7�~�{��/� G�l��4^�����j�����Ԓt���cA��0\(�����ܓ�Ԡ�Q�8��YN�Bݝ�?[���R��$�k���\�{�u���~�Q���q�)�8���z:G�G��UK�:� 07��6�-�� +WMY<����� ��2�Ѱ��$5�&v�}%��8�)#9&)/��K^2�+��B̳�i���\Ҥ����V�}�LD���1/i��n�]2č��>��I?U�7x���G�4�c�*�i�� +�5)�ñ>�wH�����f5[q���O�.���d&J_�~W\`G{� |-���e/���Чk��d� E�����(���N�i�v=����C`�̲�Z���+���%m +)s�!ī�6Fei�N��%���O*㪞v,s��@��%����4���tS/<E�%��0wr��k{ʉ2b�6ɻ��*���;�����zs�]�,�B��!,ų�uM�zȐ"��={����O���E����۴��w80���ۙ��%�\PL���� +��H�[/� ����@������G����9��A�Pi�G +ѫ+!��'��^��u'þ��:�Z�@�LxZ�:�Ɩ����oQA_�RR�`��E��,���~�]M�y_��xD�$��&J�B�k�Q�@����3����=�A_��هA`��RN�#�"��tX��孋�0Z죡�Ԭa�t����R��Mi�C-�k��r�a�fH4@�C��ܓ���-��`$�~����Ul�$^�Ufr)�0�*-C�n9W-��@M�1��a���@7�g!�7 +?̣|�l�R��/ᭁytX5��L݇��p�����@������pxh8�`:{�1����J��5��#;���ǾD"�-��s�ct�Ln3�<D��B���d1w]���=4H�α�'�!���r�+t��d����eG���{h @�.���k�q���v�e�5V�h.0�©|U������ +��C��u����k��G���O��C��Y� �"@�E�"mNzP�S,��1����rzk�M}������y�.�{+j{���xL��wE^DPk�$�3�cA�Y�~Y��� +�/�C�H�F�����<m�47Ṟ�Q�3��Wa�o�~o�)�C�d݇��E�ƀl7�(̢b��s��ڸ���<<�Fx�~?@��m ����@������v@]��<����=���~��WD�`��.��f���~�o��ʈ�n�VA{_��ե�M����� �^��y��M�Q|��ߟ^-{�~��>������Ѓ +��(��g��X���7��i��&�X +5WJ"�*V���J6s{��I��w�oO_��5~���YX�w(�R��!��m���)^�'��D������ɸ�����5�=�@��+���~���j��yQ`O�`�$�D��<B�F0C<�^%�@��?t�k3�}�@����{�^��y��U��|���pS�nĦ�t���e��=���$�v��>`����H_�B���T#%].Xx��D�ѫ�OR��2�E���\K"��R\T|��:m�O��� +�x��*y =���2��~����/?J,����+%q� �W�ޛ���3������?ܕ�?������� �^���e������ +R����oҎ�5س�~�o����Bo l8��4^�/� ����@�!��/ON�G�����ۮ2t]��С8�cݮ5�z=7���������ˮ���g���@�/�aE[��y#�3�#z��7L�.|�� +��(cR�c�S��m�Q�$�6�ץ{D���a�{T�_j8��4^�/� ����@ñ`�/����_g�"d���`�ɾ����0� ���{����� �����C�j����_9��jD�Ջa�~?� dc�[�����0�*a���������,�& 0��&�+���O�B4!��1��~��Ix����>�8�c��&�G)�j���I������=@�5@�v�&J?��Q��l�Ç@��Q�����?��^�������%tEXtdate:create�2016-07-13T10:21:59+00:00�����%tEXtdate:modify�2016-07-13T09:26:54+00:00�͠���tEXtSoftware�Adobe ImageReadyq�e<����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-icons_888888_256x240.png b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-icons_888888_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..ee5e33f27235d1b5cf0259f63f3894a6be33c679 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-icons_888888_256x240.png @@ -0,0 +1,35 @@ +�PNG + +��� IHDR����������E�r@���bKGD��I�( ��� pHYs���H���H�F�k>��tIDATx��{le�}�?g� k�u��J�>D�C�^�Q���M��H��*MU�� h�(*$H���R�*j� �D�]����)Ż(M6��F�6!6�- �xI���i�-�� HN�8��s�uι���g������f����7��3����ƣ��7�x^�/�2&�v&v^�DL� l6I�-��o?��cn��D Iy�e�#d0+�0�3��~������0�g'L�V���[��R�C:B�~(��)$q�vXu�B@��E@`H�NG���`TA�%=]�qAw��J)��u)�9�:e9d`V��0�A{�=��BS*�ڦ�S��gFA��-(D���R˷@�"����g'�U�,eSwʿ���j���*�)l[����.HLyϰ��9�����j�a�I6��MR~��~�nG�ٕ�3� ����@������pxh8��4~=@>���(��mE��3a\`~��=u����Q�����[�f3W��A���i��oK}3wէ�gV�����,j���n2��*ߕ���m��M��] y=��xn"�co�.�L"��7]��EC�:dHz�E@W�.�f+^�eƦ6vռE4��O���`��̴�.�)l�:��7����){�_Я��~"����pxh8��4^�/� ����/�#�\@��S��^�T�0sZs1�J�1�Pr��h�w�V��E�g���S��T��Q5�[ \B���O +`+�˾>}����\�6��/0��k�g���1[ �Kh��l�Xʿ��_�Z�^IA���^�N�4v���OW=%i^�<��9��t�f �2����С��B�Hg�6����!u�\ҭZ�&蒶� +�2����s ���U�]��i�T����� ��]�Uaq;]�A �:�rG-3�<F�n��*�ݴ�T�ݯ 4<;���������@������pxh8��4^�ysh�,ux��$\j��"Z-�mo��SJ��9���{� +���e˹[ �\�fָ�ұ��y�2LT��0�K@�9Լ��Ţ=���?Х��B���=c"��v�T�6 Tokza���9T����s&�6��ո���v�� }3�':��[�5�)�,�xU!��҃@}�����U� �kc�� +ꈡ����Y,]��`&߬('�u*�^�v ��O�wu�?}2�&�C����Ȗr�}ݾ^g�[`��y�c*�9s�"���f_��b�� +uuT?�M���f� + +e���ۏ�0e�vb�c�J��E�M%�6���Po��l�M`n�~Esչd�j|���z��)miOq/{�ک��Jq���A�G������pxh8��4^���a��+ ����ʥ�5�݃F�����+��Y�&{�˾����I� �z��\e�X�����oJ}Hȯ�iW��)~�n��m߮ɞh�����l*7TP3k���XJ7R"�����"NX�U�}ٔއA���/(qW�\���v6�$2� ��-���˶Ezd��j��0u]PT{�[�:>>�L�DkZ�Y���ֺ�14�ZC�WU���b�d�12zB���Y�$i".�~A�i=�������۪>���E��AI�b�\Ϋ������� +c6��O�SB\��ɅJ#"�RE�Ȱ_'��I.��aluI�������� ��YX^�/� ����@����=h��$i3��7[��d:Qu!Ztw�Ul�~F��Ż�b�k�K"$-c��.�3���@��,�y�;i�-�JӉR�H���!���ɷjN��;��L�dw�Ed�p��� fO�,�j�T�q��������+ +�h[@Vef��6KV����x��\�b���|���l}_��$U+�W!��?o[�����y�B(�p3 ��r_�5P�2ݚ�la�˱*�x��GXG$�`�W~9?�r+���y�-k��d����.�@ <]�����#<R�y0/��99����T�����^w� ����.�?0�ꠁ{�]0j"<�v�g��Qxh8��4^���$�S�L��@�����oԆ�5 �l\q+�VN�!��߆���j��L�b-����=UK<��׳�6��R���?S�j����b�s�'�\ +>U��\Z,��W�����4Ig��9��L�1�sa��R���O�^�.�P����(�>�K��\�c�6m^�um ��Ql��g�"�y[ө�D�/����[V�*3谨��X�m�@[�q�X#r,a��5� kLK"0���(����q��A�O�VP��U j�(�iJ��l�Wq����l�i�����x�S�� T!s��XD@����s�9�k����y8��\a���Y���"�r������v֗u- ��v!���H�� ��� �4�<��@��(B$"Pd�V�Z��5Ɯ�� �ߦ�����s0k��B�5h$��=�dpϪ�_�@0+�������4@"h�O�t���c�ky5�v��z�K����\��1@ޒZ��]��B�_.܋ؿ�!���I��Xd��WpW0�Z%y9�s9�jaK���0��h�sN��,�lU�����X!����h�f!�2.)��0����� 6�B|Iq/�Ӽ��0�jD��F[,�5� !m`�-�������$�J~1w�WQ�J�D#"YO�� �6hV�Q��5C��t��/���7 �8�-*�"����_E�U�y0�x�+Cxg�h|����+`6H��i�A|]�����Z=^JE\`20 +�~]���f 5X��`?S�0��Q^��?J�1�%[�Gxh8��4^�/�{��S�"��rؘ���ɛn�RZԧ[v�-�P����O��I'�Z~t�t����O�N�z����q����g����آ�4��X�����ԃ,s�e���q�9 ,2�)�^���Ķ/�����(��rS?�=<��B|W{|�&~�OO������� +�t�q���uZt�E��A��)n��7 �;O&-��+��D쏬iEcG����F� ?�c|�Ǹ��54�:�,lz��O�l �7s��'~C���%B�f�2:`��ě�T��T��bjn� +F�E���,�,p�n��F4'өkLWr�"�P[oa��o��s��k�qNkҭ����\��n��������.�Y�xS�V(A�����q��t+/ԫ-�u�p0w�-z��4��ƴaY�=zt���n��g~��2�7Y,,耄��L d�=|�|�|Y�p�z��?2�\���f�˼���\~'f�{�[j,� >#���(�9�a:��,��وK� �x�R��. ��B%�f6����n�ϻV����/Σ������� %O��+|���!��I��6���3�e��HW����O�� vXIK�O�rZ�8���g�g8=C��2�9Ǫ[�P��B'���rAmK"zʻ�!���� +���m���6�뱾�3����y5����ܓ��"�[�< �J��sϏ��U9Z^��8_�fD!Zq��_\���- ��-`<uQS,�y�����b�]z@h`�*�*GZ������>���)����D�g��鲔��i�qIb.JXT���bj�k�$��M��1^�K6�<��˿�9��C_��fr��E���M~���8]�T�xX��u5�_<���t_0PA����@������p4O�"�qGA餦������v�GbQ���p�rz���E��3��3�U �6����+��$�q?�W +1���X�K<�8� ���[����sC!��}E~5C~=C�n1[x�LO +��g�U�X���=�����̪�y�hs��l(&U�'/qg��v�|�^�8Sx(��o(�B�x�e�\�ӑ�����ľ�U��s���:�҅ͅ2k +W�!�B�Ԝ�i� V���EO�f�X6�g�A5�kOد2���jS���6ۼ�[J���S��j����Q��:(����Z���0Ne +�Z�]L2�$����4@��8�B,���,�Nj(�t'�8.��JC�L�K�U���i��5�#�Xx�#|�U:��@��m��??d,^q5�L!��]�Mr��I4�pZ��;��>�g@��M�F�K�)(�}�f��U�.�{���]��~5��5������>�"����$c�����+�ן�?��Q���c�# +�mK-6�)࿁���_�Y�n��G+��:�|a������"�~ϯ��ٯb�q�~=�+���,j�?�M��y +9"�y��D���ʍn��g����6-z<�,+tK�����xW"�����'l��˾�H��[yJ�&�a�@�~/�9�"�a�%�$iѣ���6.S����8ظ�+y�+�*�o�jo�mp-���k��1 �u����%�=�����-�"� +���4wq�-��Ր�E���K +�|�Uf�G�� +-���Ua]X�r���x.�\���˅h�:"����LF�dF���5p���f�覊�)n�Yͣ�n��Fh� 1{�'��\���<ϫlik)$H�䇙�5��%y��kni�b ��/���O����E���OjZ�<�,�b�������P ���p�+�@��<[��/� ���#/��Z�wp6�$�5�D��E����� +���|6w�^>7��{ԇ�Nĭ��Pw���f�>��k�7�/��c͗=��cM��ﴯ߁A�E`�q��:N*��N��Q����b�UG�`��ʟ�Ƴ���Cᨉ"��5�w5�.��&�v;����.ܱ��7e$�$��y�K�YE<[�y�8����M +n�m%�U�4@��[��&����EC�(�.�/���b���C��>Z�1�_P�O�^�;�Ф������!�N��wc��l�^���]`C1�L�����8GO{� <��fpY�8���:�X�! ��W�Z���Vc��ʺ��b���+����_ݖ�fp9U�4��u +*��QD�I�3cv�1e\�ݎe�(ֲ$��ؿ��.�]��z�)�/�>�>.|mO9Q��HN �P��{����;�=�YJ���7'�[��ɂ-����b< +Xӌ���2��@}�Pw�������aŨ�M� lqG{R�\p��Dx�s��T3�X�ؓ�����@������pxh8���ѱx��e l TZ�B��H�a�e�c��t*ZHF��b52�iiS�[:�DH�S +�))%��_rp�S���eUӮ@��*I�3�*�C� +3��=���&�&5�CB���`����Ê�,o]���~����]3�t�������ح�jXe�x����0CTA3y �5�{�t����!k@Q�V+Vr�� +3�e!�̰Bː�ۓ��O�A���� # ���U4V��D�ч�D����*Oݕ���<:�Xl��Bxh8�L`������pxh8��4y0������J��k5��#;��ǮD"�-�鞺#t�Ln3ã|��Áysɩ�q�v��A2t�>�}�<���Jw�Z,ӱ:�-�*���%��A$�-�lp�I�d���5�S/���BGs�iN�z,v�~�79P�r5�q��p]MM�O?�m���~"g�ǀ�����9VhAmn`��0G�)�����ԧ_ԇ��U������W�1}�3�y A�����p��;d��U���>X����J��x��<mV5'Ṟ�a�0�Wa��s��w��A2�����<w�F}b@�`fQ���=�{Ɂ�h�����s<���5P�ŏ�.�_�px[@������pxh82��P�~���G�Mt��M���-�v@]���ܠ�.߰� �����~��K�9�4}��6��. ��/n�:��&"O�'�"�'G�SH��;U�k�A��'��U峕_������4]|]̅�+%�w~�tUFD�w_���/}�����e��7��%~�B*E�����K�����e�U�پ^̀����Y��`]�����2���Y���O�ޯF��g��E���OB�O���Z5��v�*)���*�C��63ه ��(��/�w0��zP_���WL�� +7��AlJ���(�� ��p�� ,���Y����j�c�����w�(6z��I�V�?+�_�Ԓ�༔���D��O+��9�7��Q���*y =���2��|���/?J,����+%q�{�^�?�@�r_O�ץ������^��c�A�o����.�J��㻏�,K��ҟ��E;��7|B`�N�]�a�+�/i8�5����pxh8��4^�/� �hr?<}4� [��o���u�#�bP�u���\���������l�{l��V��{h��102p�1#=�СG�y�����/��(�b0V!9�9�z��&@%!m�]���A��ju�G�����@������pxh8��4�W�&��P? @�y��)B��� 6��S�Y�&�ϰak�����ͽ�Y�6��pakݞ�}���(|�!,���W/� ���/��A�lj�֮�x�)T��I#}ˏ�Y�L`2eM�)��� +w�B4!��1����FIx���>�8�c��&�G)�j���I������}@�5��V�&J?�� Y�����!�\=jb��<�����h�jo���%tEXtdate:create�2016-07-13T10:21:59+00:00�����%tEXtdate:modify�2016-07-13T09:26:54+00:00�͠���tEXtSoftware�Adobe ImageReadyq�e<����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-icons_cd0a0a_256x240.png b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..7e8ebc180a2d2a74739059799407b8b7b57a9092 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/images/ui-icons_cd0a0a_256x240.png @@ -0,0 +1,198 @@ +�PNG + +��� IHDR�����������IJ���PLTE� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +4�v����YtRNS�3P���/"Uq@f`2� !<BHK Z#'1S,�4���j���8E���|��������)��Q$� +��b�J��mߜGc?o�h�@^����bKGD��H��� pHYs���H���H�F�k>��dIDATx��]c۶�H�阒]�K���d��%٫뺮��lm���w]����|�p��X�m�-��}<�w�(1$�� ;�F�@��%��?����B,Lh{�t���#���T@�/?j�9 m��N� #���+`��`����I� +��_�-s�ʹU0�M��[�� +s�4`x���#�� �D<�~�K��.4�]`��PDDDDDDĈq������Ek@����A�~�*��� !Y���X�`hv3\LX��Ot�J2b���ؓl�QI<��� �6�-X�lֈ�6�H��|=j�`E�iq����Cv:�q���C?�?���x�,��r*t�ݻ}|;�kP�4���d�Y����f����K��~[ >�X:+�i����ĆQV9\����e�'���A�tOS�:7��2����YsxM�ہ��B���&���z�>n�C��@��r@��*�a�ӝ���%��MFDDDDDD�T�ߖ���H,���E����RU��n ب<��V- @�/Nm�թ���������Hw����*�+��#��$o�e�{�% �7\X��ǀ���2��~0��&n��sbA,�D�� �A�V�I��|� �Og���鴋� �7�y 7Jf�����:_�w^��H v{/O�9���<����Y�`+�� HRٰ����[��?�� +������=���c""""""F�˽�sG�<*k9c��E�8薽�������zfm��r�1�N�������nq�w��&=O�\}K` +#���2��~��L�|?�m>�\�f���:}�4ᦋ���{�)�n[�� +�̰E +KY��D�ۇ-�� �+�Kl=�Ӄ��L`љ�|�%��n� a� ���N�#��5� (4���?�����EDDDD\o�W�Ffq;��\E��_������,���W!%�zE!F�¶.�(USHQ0d�w)T���8#p,�x�B��K���� �*�x��X��E�e������ +K솎%mK��X~s�FE���~������tdc��a��I���1��Af4��dH��c�G�S�B`��0�wev`����"�{�� �.�GDDDD�,d�O�6�k"qk��Me�fS_����U��KŌ&g~>n� �H�})��L���F%8(�)r���!�[4统qQk�0�m[Le���_�7���0�@>1 X0A��Z����Vc�E�V ���Lt�k�3�EJ��44�Zﮊ�N`rt�>`�˥� � � A��HBLH�@��c���Uq=�j������cM����2�s����J���CL�iR �NQ���������0=���Yi�-�|4�V��]��]��B^�ޞ���_H������$�<�$� +a����=��d@� (Z�Ap_�}�~s���:�N�{DC>����m�^������S�&�, ;�N����&�B} ��<_A��B]H�u���N(B�0��{h���1�IK����Ds��j����'��M���8�.�ӫ1�h3�df}mq��� ��n�U{��L�o��z\=?@ ((���e�|=ơ麄�C�i����1r<|�OO�;� `��H��p�Qy�zԈu�����Z���V���Ʋ�!�)��5m�C���2��Ly�g�;���֑�R���jW�a@��@V�L�&W���ru=Z +�̥��=U���5}���������7�;b(�����nP&�s��k�4�����8�ͥ��0���1�U�W�v�k�18dq���T��ՌE]qH8�������G�F�����K�����'��r����Or���r�̧��6"fp��T�^3c��"�����n��Mم-�/��W=�tJ,��X�)���{�P Rm|K����>mX�8v�5h��<������_{ꘀ�Y�F�|&_G;&�>^�����W⁃�&�K���(��81�EB@F&��;"L���'wfw��E-6��o&/̫'X�e,>~�ee��|���A����=) d��Q�`}P[���K��N��˂����/�~)����O[d�O=�3E�l5'Y�$?��7�m���Tzզ.�\��.��` WE�����"""""v�)��V���<���K�ZX.Ex�~Ч)���ߚ�����W_}�5|��s��/!?����'poդ���tC3����@�Q�)��t��`���b!,dY9�6A2����������/튮���n�t�TK>����#]�L;zq�J���r���²[��\-t�ҽ�5 @�ͷϟ��n�T@��+;��c���Qh�C*���T�ڙ��A<Sku�µb�E� /��$�Z���.e�j������_ʤrWaB6d���(��S�s[�|���竕 +/5R���(�4X������76����`3|���P��p�'�H~<R?M�2�)� ��g��Vp��B�n�=�|W�ͬ\��V0_�81Oׄ�Kz||lP_��ω���lxX;ǀ�Ju�<��Ng[��]=�(�#]������p�P�a���i�������s�f�� +V�z��]ౚ������z>�Vr�?�f��?������ �Q�1�T`��} H�k���,{�VZˋT��ϛ�?I̯u�QK�LM�e͆��~��q������y�m0�9�S�;���j�����5 ���i��Q��]7k0�U�ޭ���G�kX����3#���lY��_Цx����j9��`�# +M [z��KuO_z˿Dܭ��*��kOJ�(7��n��\�e� I�T�ƨ�l�/�U������߶uw�.�~���;#�r���.�����8 �o# 5L��h>1�i�����p��V�M�?�/u7��0� X@��L��+M�+�����{��Fkt�{�ŧ89�0`���. ĀC�R+\��/��t�R����; �TӲ���]�aL���|�efđ�� �>�ۣ��G�|�P`P��8C1K՛�A�̍<�2��ۂ��K�r�l@L +L��������8�@�E>`n�����PNԍ,��p�����E��Ɔ����Z�FlÎ;�����F���7��Ȯ;�� +��s�wSz)g7�{r�s��S��gȋ��(߄~�AWytX��$�NV����R�_��<6�p.�O�8�O[�OdDk>_��O�O�}����JS���d��mV�?�W(_��m� ��j���~=H IԁF>T/��{*]IGJ@i����qam�NF|Q�5���0+���E�S8�:�v�`p~v���j:B�����p96�o��ys%�������� �|@H�����]��+�@��t]W�k}}�����7��Fʮr����A�����B���\m�-�_�2PY8�������x�ՎN�.h�~���@+7��z5������t�_/������/�?���0�S>��)���z�i0n�/�B����`{D��W���#`����B��o���[,�g��FVЁ�pP߾���C]Bz�� ��,X�����X�fԃ����A�:H��� k�7��d�Z9��oc}o�]�0�vd�:R]�0�ve���]刈����j����у����| �?�+(��OǍ�+ �#��ys���ߍ�n�p���Fru<��.HȺotM��3h���}��߆P}�������˗��v�����P�}mǀ���?���W��Z@���������}���������@��@���FD�������l����%tEXtdate:create�2016-07-13T10:21:59+00:00�����%tEXtdate:modify�2016-07-13T09:26:54+00:00�͠���tEXtSoftware�Adobe ImageReadyq�e<����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/jquery-ui.min.css b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/jquery-ui.min.css new file mode 100644 index 0000000000000000000000000000000000000000..b3fe46344d7b1b0e8452e071be22972c2dd7e18b --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/css/uitheme1.12.1/jquery-ui.min.css @@ -0,0 +1,7 @@ +/*! jQuery UI - v1.12.1 - 2019-05-26 +* http://jqueryui.com +* Includes: core.css, tabs.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=smoothness&cornerRadiusShadow=8px&offsetLeftShadow=-8px&offsetTopShadow=-8px&thicknessShadow=8px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=aaaaaa&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cd0a0a&fcError=cd0a0a&borderColorError=cd0a0a&bgImgOpacityError=95&bgTextureError=glass&bgColorError=fef1ec&iconColorHighlight=2e83ff&fcHighlight=363636&borderColorHighlight=fcefa1&bgImgOpacityHighlight=55&bgTextureHighlight=glass&bgColorHighlight=fbf9ee&iconColorActive=454545&fcActive=212121&borderColorActive=aaaaaa&bgImgOpacityActive=65&bgTextureActive=glass&bgColorActive=ffffff&iconColorHover=454545&fcHover=212121&borderColorHover=999999&bgImgOpacityHover=75&bgTextureHover=glass&bgColorHover=dadada&iconColorDefault=888888&fcDefault=555555&borderColorDefault=d3d3d3&bgImgOpacityDefault=75&bgTextureDefault=glass&bgColorDefault=e6e6e6&iconColorContent=222222&fcContent=222222&borderColorContent=aaaaaa&bgImgOpacityContent=75&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=222222&fcHeader=222222&borderColorHeader=aaaaaa&bgImgOpacityHeader=75&bgTextureHeader=highlight_soft&bgColorHeader=cccccc&cornerRadius=4px&fsDefault=1.1em&fwDefault=normal&ffDefault=Verdana%2CArial%2Csans-serif +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #d3d3d3}.ui-widget-content{border:1px solid #aaa;background:#fff;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#212121;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-icon-background,.ui-state-active .ui-icon-background{border:#aaa;background-color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-checked{border:1px solid #fcefa1;background:#fbf9ee}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:-8px -8px 8px #aaa;box-shadow:-8px -8px 8px #aaa} \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/js/jquery-1.12.4.min.js b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/js/jquery-1.12.4.min.js new file mode 100644 index 0000000000000000000000000000000000000000..e836475870da67f3c72f64777c6e0f37d9f4c87b --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/js/jquery-1.12.4.min.js @@ -0,0 +1,5 @@ +/*! jQuery v1.12.4 | (c) jQuery Foundation | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="1.12.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(!l.ownFirst)for(b in a)return k.call(a,b);for(b in a);return void 0===b||k.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(h)return h.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=e.call(arguments,2),d=function(){return a.apply(b||this,c.concat(e.call(arguments)))},d.guid=a.guid=a.guid||n.guid++,d):void 0},now:function(){return+new Date},support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=la(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=ma(b);function pa(){}pa.prototype=d.filters=d.pseudos,d.setFilters=new pa,g=fa.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=R.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=S.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(Q," ")}),h=h.slice(c.length));for(g in d.filter)!(e=W[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fa.error(a):z(a,i).slice(0)};function qa(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}if(f=d.getElementById(e[2]),f&&f.parentNode){if(f.id!==e[2])return A.find(a);this.length=1,this[0]=f}return this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||(e=n.uniqueSort(e)),D.test(a)&&(e=e.reverse())),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){n.each(b,function(b,c){n.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==n.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return n.each(arguments,function(a,b){var c;while((c=n.inArray(b,f,c))>-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=!0,c||j.disable(),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.addEventListener?(d.removeEventListener("DOMContentLoaded",K),a.removeEventListener("load",K)):(d.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(d.addEventListener||"load"===a.event.type||"complete"===d.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll)a.setTimeout(n.ready);else if(d.addEventListener)d.addEventListener("DOMContentLoaded",K),a.addEventListener("load",K);else{d.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&d.documentElement}catch(e){}c&&c.doScroll&&!function f(){if(!n.isReady){try{c.doScroll("left")}catch(b){return a.setTimeout(f,50)}J(),n.ready()}}()}return I.promise(b)},n.ready.promise();var L;for(L in n(l))break;l.ownFirst="0"===L,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c,e;c=d.getElementsByTagName("body")[0],c&&c.style&&(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",l.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(e))}),function(){var a=d.createElement("div");l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}a=null}();var M=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b},N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0; +}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(M(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),"object"!=typeof b&&"function"!=typeof b||(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f}}function S(a,b,c){if(M(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=void 0)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=n._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}}),function(){var a;l.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,e;return c=d.getElementsByTagName("body")[0],c&&c.style?(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(d.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(e),a):void 0}}();var T=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,U=new RegExp("^(?:([+-])=|)("+T+")([a-z%]*)$","i"),V=["Top","Right","Bottom","Left"],W=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)};function X(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return n.css(a,b,"")},i=h(),j=c&&c[3]||(n.cssNumber[b]?"":"px"),k=(n.cssNumber[b]||"px"!==j&&+i)&&U.exec(n.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,n.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var Y=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)Y(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},Z=/^(?:checkbox|radio)$/i,$=/<([\w:-]+)/,_=/^$|\/(?:java|ecma)script/i,aa=/^\s+/,ba="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";function ca(a){var b=ba.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}!function(){var a=d.createElement("div"),b=d.createDocumentFragment(),c=d.createElement("input");a.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",l.leadingWhitespace=3===a.firstChild.nodeType,l.tbody=!a.getElementsByTagName("tbody").length,l.htmlSerialize=!!a.getElementsByTagName("link").length,l.html5Clone="<:nav></:nav>"!==d.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,b.appendChild(c),l.appendChecked=c.checked,a.innerHTML="<textarea>x</textarea>",l.noCloneChecked=!!a.cloneNode(!0).lastChild.defaultValue,b.appendChild(a),c=d.createElement("input"),c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),a.appendChild(c),l.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!!a.addEventListener,a[n.expando]=1,l.attributes=!a.getAttribute(n.expando)}();var da={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:l.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]};da.optgroup=da.option,da.tbody=da.tfoot=da.colgroup=da.caption=da.thead,da.th=da.td;function ea(a,b){var c,d,e=0,f="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,ea(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function fa(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}var ga=/<|&#?\w+;/,ha=/<tbody/i;function ia(a){Z.test(a.type)&&(a.defaultChecked=a.checked)}function ja(a,b,c,d,e){for(var f,g,h,i,j,k,m,o=a.length,p=ca(b),q=[],r=0;o>r;r++)if(g=a[r],g||0===g)if("object"===n.type(g))n.merge(q,g.nodeType?[g]:g);else if(ga.test(g)){i=i||p.appendChild(b.createElement("div")),j=($.exec(g)||["",""])[1].toLowerCase(),m=da[j]||da._default,i.innerHTML=m[1]+n.htmlPrefilter(g)+m[2],f=m[0];while(f--)i=i.lastChild;if(!l.leadingWhitespace&&aa.test(g)&&q.push(b.createTextNode(aa.exec(g)[0])),!l.tbody){g="table"!==j||ha.test(g)?"<table>"!==m[1]||ha.test(g)?0:i:i.firstChild,f=g&&g.childNodes.length;while(f--)n.nodeName(k=g.childNodes[f],"tbody")&&!k.childNodes.length&&g.removeChild(k)}n.merge(q,i.childNodes),i.textContent="";while(i.firstChild)i.removeChild(i.firstChild);i=p.lastChild}else q.push(b.createTextNode(g));i&&p.removeChild(i),l.appendChecked||n.grep(ea(q,"input"),ia),r=0;while(g=q[r++])if(d&&n.inArray(g,d)>-1)e&&e.push(g);else if(h=n.contains(g.ownerDocument,g),i=ea(p.appendChild(g),"script"),h&&fa(i),c){f=0;while(g=i[f++])_.test(g.type||"")&&c.push(g)}return i=null,p}!function(){var b,c,e=d.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b]=c in a)||(e.setAttribute(c,"t"),l[b]=e.attributes[c].expando===!1);e=null}();var ka=/^(?:input|select|textarea)$/i,la=/^key/,ma=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,na=/^(?:focusinfocus|focusoutblur)$/,oa=/^([^.]*)(?:\.(.+)|)/;function pa(){return!0}function qa(){return!1}function ra(){try{return d.activeElement}catch(a){}}function sa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)sa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=qa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return"undefined"==typeof n||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(G)||[""],h=b.length;while(h--)f=oa.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=oa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,e,f){var g,h,i,j,l,m,o,p=[e||d],q=k.call(b,"type")?b.type:b,r=k.call(b,"namespace")?b.namespace.split("."):[];if(i=m=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!na.test(q+n.event.triggered)&&(q.indexOf(".")>-1&&(r=q.split("."),q=r.shift(),r.sort()),h=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=r.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:n.makeArray(c,[b]),l=n.event.special[q]||{},f||!l.trigger||l.trigger.apply(e,c)!==!1)){if(!f&&!l.noBubble&&!n.isWindow(e)){for(j=l.delegateType||q,na.test(j+q)||(i=i.parentNode);i;i=i.parentNode)p.push(i),m=i;m===(e.ownerDocument||d)&&p.push(m.defaultView||m.parentWindow||a)}o=0;while((i=p[o++])&&!b.isPropagationStopped())b.type=o>1?j:l.bindType||q,g=(n._data(i,"events")||{})[b.type]&&n._data(i,"handle"),g&&g.apply(i,c),g=h&&i[h],g&&g.apply&&M(i)&&(b.result=g.apply(i,c),b.result===!1&&b.preventDefault());if(b.type=q,!f&&!b.isDefaultPrevented()&&(!l._default||l._default.apply(p.pop(),c)===!1)&&M(e)&&h&&e[q]&&!n.isWindow(e)){m=e[h],m&&(e[h]=null),n.event.triggered=q;try{e[q]()}catch(s){}n.event.triggered=void 0,m&&(e[h]=m)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[n.expando])return a;var b,c,e,f=a.type,g=a,h=this.fixHooks[f];h||(this.fixHooks[f]=h=ma.test(f)?this.mouseHooks:la.test(f)?this.keyHooks:{}),e=h.props?this.props.concat(h.props):this.props,a=new n.Event(g),b=e.length;while(b--)c=e[b],a[c]=g[c];return a.target||(a.target=g.srcElement||d),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,h.filter?h.filter(a,g):a},props:"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,e,f,g=b.button,h=b.fromElement;return null==a.pageX&&null!=b.clientX&&(e=a.target.ownerDocument||d,f=e.documentElement,c=e.body,a.pageX=b.clientX+(f&&f.scrollLeft||c&&c.scrollLeft||0)-(f&&f.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(f&&f.scrollTop||c&&c.scrollTop||0)-(f&&f.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&h&&(a.relatedTarget=h===a.target?b.toElement:h),a.which||void 0===g||(a.which=1&g?1:2&g?3:4&g?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==ra()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===ra()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return n.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c){var d=n.extend(new n.Event,c,{type:a,isSimulated:!0});n.event.trigger(d,null,b),d.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=d.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)}:function(a,b,c){var d="on"+b;a.detachEvent&&("undefined"==typeof a[d]&&(a[d]=null),a.detachEvent(d,c))},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?pa:qa):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={constructor:n.Event,isDefaultPrevented:qa,isPropagationStopped:qa,isImmediatePropagationStopped:qa,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=pa,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=pa,a&&!this.isSimulated&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=pa,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||n.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),l.submit||(n.event.special.submit={setup:function(){return n.nodeName(this,"form")?!1:void n.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=n.nodeName(b,"input")||n.nodeName(b,"button")?n.prop(b,"form"):void 0;c&&!n._data(c,"submit")&&(n.event.add(c,"submit._submit",function(a){a._submitBubble=!0}),n._data(c,"submit",!0))})},postDispatch:function(a){a._submitBubble&&(delete a._submitBubble,this.parentNode&&!a.isTrigger&&n.event.simulate("submit",this.parentNode,a))},teardown:function(){return n.nodeName(this,"form")?!1:void n.event.remove(this,"._submit")}}),l.change||(n.event.special.change={setup:function(){return ka.test(this.nodeName)?("checkbox"!==this.type&&"radio"!==this.type||(n.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._justChanged=!0)}),n.event.add(this,"click._change",function(a){this._justChanged&&!a.isTrigger&&(this._justChanged=!1),n.event.simulate("change",this,a)})),!1):void n.event.add(this,"beforeactivate._change",function(a){var b=a.target;ka.test(b.nodeName)&&!n._data(b,"change")&&(n.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||n.event.simulate("change",this.parentNode,a)}),n._data(b,"change",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return n.event.remove(this,"._change"),!ka.test(this.nodeName)}}),l.focusin||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a))};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=n._data(d,b);e||d.addEventListener(a,c,!0),n._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=n._data(d,b)-1;e?n._data(d,b,e):(d.removeEventListener(a,c,!0),n._removeData(d,b))}}}),n.fn.extend({on:function(a,b,c,d){return sa(this,a,b,c,d)},one:function(a,b,c,d){return sa(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=qa),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var ta=/ jQuery\d+="(?:null|\d+)"/g,ua=new RegExp("<(?:"+ba+")[\\s/>]","i"),va=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,wa=/<script|<style|<link/i,xa=/checked\s*(?:[^=]|=\s*.checked.)/i,ya=/^true\/(.*)/,za=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Aa=ca(d),Ba=Aa.appendChild(d.createElement("div"));function Ca(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Da(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function Ea(a){var b=ya.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Ga(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(Da(b).text=a.text,Ea(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&Z.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}}function Ha(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&xa.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(o&&(k=ja(b,a[0].ownerDocument,!1,a,d),e=k.firstChild,1===k.childNodes.length&&(k=e),e||d)){for(i=n.map(ea(k,"script"),Da),h=i.length;o>m;m++)g=k,m!==p&&(g=n.clone(g,!0,!0),h&&n.merge(i,ea(g,"script"))),c.call(a[m],g,m);if(h)for(j=i[i.length-1].ownerDocument,n.map(i,Ea),m=0;h>m;m++)g=i[m],_.test(g.type||"")&&!n._data(g,"globalEval")&&n.contains(j,g)&&(g.src?n._evalUrl&&n._evalUrl(g.src):n.globalEval((g.text||g.textContent||g.innerHTML||"").replace(za,"")));k=e=null}return a}function Ia(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(ea(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&fa(ea(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(va,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!ua.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(Ba.innerHTML=a.outerHTML,Ba.removeChild(f=Ba.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=ea(f),h=ea(a),g=0;null!=(e=h[g]);++g)d[g]&&Ga(e,d[g]);if(b)if(c)for(h=h||ea(a),d=d||ea(f),g=0;null!=(e=h[g]);g++)Fa(e,d[g]);else Fa(a,f);return d=ea(f,"script"),d.length>0&&fa(d,!i&&ea(a,"script")),d=h=e=null,f},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.attributes,m=n.event.special;null!=(d=a[h]);h++)if((b||M(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k||"undefined"==typeof d.removeAttribute?d[i]=void 0:d.removeAttribute(i),c.push(f))}}}),n.fn.extend({domManip:Ha,detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return Y(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||d).createTextNode(a))},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(ea(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return Y(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(ta,""):void 0;if("string"==typeof a&&!wa.test(a)&&(l.htmlSerialize||!ua.test(a))&&(l.leadingWhitespace||!aa.test(a))&&!da[($.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ea(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(ea(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],f=n(a),h=f.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(f[d])[b](c),g.apply(e,c.get());return this.pushStack(e)}});var Ja,Ka={HTML:"block",BODY:"block"};function La(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function Ma(a){var b=d,c=Ka[a];return c||(c=La(a,b),"none"!==c&&c||(Ja=(Ja||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Ja[0].contentWindow||Ja[0].contentDocument).document,b.write(),b.close(),c=La(a,b),Ja.detach()),Ka[a]=c),c}var Na=/^margin/,Oa=new RegExp("^("+T+")(?!px)[a-z%]+$","i"),Pa=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e},Qa=d.documentElement;!function(){var b,c,e,f,g,h,i=d.createElement("div"),j=d.createElement("div");if(j.style){j.style.cssText="float:left;opacity:.5",l.opacity="0.5"===j.style.opacity,l.cssFloat=!!j.style.cssFloat,j.style.backgroundClip="content-box",j.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===j.style.backgroundClip,i=d.createElement("div"),i.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",j.innerHTML="",i.appendChild(j),l.boxSizing=""===j.style.boxSizing||""===j.style.MozBoxSizing||""===j.style.WebkitBoxSizing,n.extend(l,{reliableHiddenOffsets:function(){return null==b&&k(),f},boxSizingReliable:function(){return null==b&&k(),e},pixelMarginRight:function(){return null==b&&k(),c},pixelPosition:function(){return null==b&&k(),b},reliableMarginRight:function(){return null==b&&k(),g},reliableMarginLeft:function(){return null==b&&k(),h}});function k(){var k,l,m=d.documentElement;m.appendChild(i),j.style.cssText="-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",b=e=h=!1,c=g=!0,a.getComputedStyle&&(l=a.getComputedStyle(j),b="1%"!==(l||{}).top,h="2px"===(l||{}).marginLeft,e="4px"===(l||{width:"4px"}).width,j.style.marginRight="50%",c="4px"===(l||{marginRight:"4px"}).marginRight,k=j.appendChild(d.createElement("div")),k.style.cssText=j.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",k.style.marginRight=k.style.width="0",j.style.width="1px",g=!parseFloat((a.getComputedStyle(k)||{}).marginRight),j.removeChild(k)),j.style.display="none",f=0===j.getClientRects().length,f&&(j.style.display="",j.innerHTML="<table><tr><td></td><td>t</td></tr></table>",j.childNodes[0].style.borderCollapse="separate",k=j.getElementsByTagName("td"),k[0].style.cssText="margin:0;border:0;padding:0;display:none",f=0===k[0].offsetHeight,f&&(k[0].style.display="",k[1].style.display="none",f=0===k[0].offsetHeight)),m.removeChild(i)}}}();var Ra,Sa,Ta=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ra=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)},Sa=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ra(a),g=c?c.getPropertyValue(b)||c[b]:void 0,""!==g&&void 0!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),c&&!l.pixelMarginRight()&&Oa.test(g)&&Na.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f),void 0===g?g:g+""}):Qa.currentStyle&&(Ra=function(a){return a.currentStyle},Sa=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ra(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Oa.test(g)&&!Ta.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Ua(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Va=/alpha\([^)]*\)/i,Wa=/opacity\s*=\s*([^)]*)/i,Xa=/^(none|table(?!-c[ea]).+)/,Ya=new RegExp("^("+T+")(.*)$","i"),Za={position:"absolute",visibility:"hidden",display:"block"},$a={letterSpacing:"0",fontWeight:"400"},_a=["Webkit","O","Moz","ms"],ab=d.createElement("div").style;function bb(a){if(a in ab)return a;var b=a.charAt(0).toUpperCase()+a.slice(1),c=_a.length;while(c--)if(a=_a[c]+b,a in ab)return a}function cb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=n._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&W(d)&&(f[g]=n._data(d,"olddisplay",Ma(d.nodeName)))):(e=W(d),(c&&"none"!==c||!e)&&n._data(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function db(a,b,c){var d=Ya.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function eb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+V[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+V[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+V[f]+"Width",!0,e))):(g+=n.css(a,"padding"+V[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+V[f]+"Width",!0,e)));return g}function fb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ra(a),g=l.boxSizing&&"border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Sa(a,b,f),(0>e||null==e)&&(e=a.style[b]),Oa.test(e))return e;d=g&&(l.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+eb(a,b,c||(g?"border":"content"),d,f)+"px"}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Sa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":l.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;if(b=n.cssProps[h]||(n.cssProps[h]=bb(h)||h),g=n.cssHooks[b]||n.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=U.exec(c))&&e[1]&&(c=X(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(n.cssNumber[h]?"":"px")),l.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=bb(h)||h),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Sa(a,b,d)),"normal"===f&&b in $a&&(f=$a[b]),""===c||c?(e=parseFloat(f),c===!0||isFinite(e)?e||0:f):f}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?Xa.test(n.css(a,"display"))&&0===a.offsetWidth?Pa(a,Za,function(){return fb(a,b,d)}):fb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ra(a);return db(a,c,d?eb(a,b,d,l.boxSizing&&"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),l.opacity||(n.cssHooks.opacity={get:function(a,b){return Wa.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=n.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===n.trim(f.replace(Va,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Va.test(f)?f.replace(Va,e):f+" "+e)}}),n.cssHooks.marginRight=Ua(l.reliableMarginRight,function(a,b){return b?Pa(a,{display:"inline-block"},Sa,[a,"marginRight"]):void 0}),n.cssHooks.marginLeft=Ua(l.reliableMarginLeft,function(a,b){return b?(parseFloat(Sa(a,"marginLeft"))||(n.contains(a.ownerDocument,a)?a.getBoundingClientRect().left-Pa(a,{ +marginLeft:0},function(){return a.getBoundingClientRect().left}):0))+"px":void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+V[d]+b]=f[d]||f[d-2]||f[0];return e}},Na.test(a)||(n.cssHooks[a+b].set=db)}),n.fn.extend({css:function(a,b){return Y(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=Ra(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return cb(this,!0)},hide:function(){return cb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){W(this)?n(this).show():n(this).hide()})}});function gb(a,b,c,d,e){return new gb.prototype.init(a,b,c,d,e)}n.Tween=gb,gb.prototype={constructor:gb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||n.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=gb.propHooks[this.prop];return a&&a.get?a.get(this):gb.propHooks._default.get(this)},run:function(a){var b,c=gb.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):gb.propHooks._default.set(this),this}},gb.prototype.init.prototype=gb.prototype,gb.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[n.cssProps[a.prop]]&&!n.cssHooks[a.prop]?a.elem[a.prop]=a.now:n.style(a.elem,a.prop,a.now+a.unit)}}},gb.propHooks.scrollTop=gb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},n.fx=gb.prototype.init,n.fx.step={};var hb,ib,jb=/^(?:toggle|show|hide)$/,kb=/queueHooks$/;function lb(){return a.setTimeout(function(){hb=void 0}),hb=n.now()}function mb(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=V[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function nb(a,b,c){for(var d,e=(qb.tweeners[b]||[]).concat(qb.tweeners["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ob(a,b,c){var d,e,f,g,h,i,j,k,m=this,o={},p=a.style,q=a.nodeType&&W(a),r=n._data(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,m.always(function(){m.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=n.css(a,"display"),k="none"===j?n._data(a,"olddisplay")||Ma(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(l.inlineBlockNeedsLayout&&"inline"!==Ma(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",l.shrinkWrapBlocks()||m.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],jb.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(o))"inline"===("none"===j?Ma(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=n._data(a,"fxshow",{}),f&&(r.hidden=!q),q?n(a).show():m.done(function(){n(a).hide()}),m.done(function(){var b;n._removeData(a,"fxshow");for(b in o)n.style(a,b,o[b])});for(d in o)g=nb(q?r[d]:0,d,m),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function pb(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function qb(a,b,c){var d,e,f=0,g=qb.prefilters.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=hb||lb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{},easing:n.easing._default},c),originalProperties:b,originalOptions:c,startTime:hb||lb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(pb(k,j.opts.specialEasing);g>f;f++)if(d=qb.prefilters[f].call(j,a,k,j.opts))return n.isFunction(d.stop)&&(n._queueHooks(j.elem,j.opts.queue).stop=n.proxy(d.stop,d)),d;return n.map(k,nb,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(qb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return X(c.elem,a,U.exec(b),c),c}]},tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.match(G);for(var c,d=0,e=a.length;e>d;d++)c=a[d],qb.tweeners[c]=qb.tweeners[c]||[],qb.tweeners[c].unshift(b)},prefilters:[ob],prefilter:function(a,b){b?qb.prefilters.unshift(a):qb.prefilters.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(W).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=qb(this,n.extend({},a),f);(e||n._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=n._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&kb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=n._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(mb(b,!0),a,d,e)}}),n.each({slideDown:mb("show"),slideUp:mb("hide"),slideToggle:mb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=n.timers,c=0;for(hb=n.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||n.fx.stop(),hb=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){ib||(ib=a.setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){a.clearInterval(ib),ib=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(b,c){return b=n.fx?n.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a,b=d.createElement("input"),c=d.createElement("div"),e=d.createElement("select"),f=e.appendChild(d.createElement("option"));c=d.createElement("div"),c.setAttribute("className","t"),c.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=c.getElementsByTagName("a")[0],b.setAttribute("type","checkbox"),c.appendChild(b),a=c.getElementsByTagName("a")[0],a.style.cssText="top:1px",l.getSetAttribute="t"!==c.className,l.style=/top/.test(a.getAttribute("style")),l.hrefNormalized="/a"===a.getAttribute("href"),l.checkOn=!!b.value,l.optSelected=f.selected,l.enctype=!!d.createElement("form").enctype,e.disabled=!0,l.optDisabled=!f.disabled,b=d.createElement("input"),b.setAttribute("value",""),l.input=""===b.getAttribute("value"),b.value="t",b.setAttribute("type","radio"),l.radioValue="t"===b.value}();var rb=/\r/g,sb=/[\x20\t\r\n\f]+/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a)).replace(sb," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],(c.selected||i===e)&&(l.optDisabled?!c.disabled:null===c.getAttribute("disabled"))&&(!c.parentNode.disabled||!n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)if(d=e[g],n.inArray(n.valHooks.option.get(d),f)>-1)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>-1:void 0}},l.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var tb,ub,vb=n.expr.attrHandle,wb=/^(?:checked|selected)$/i,xb=l.getSetAttribute,yb=l.input;n.fn.extend({attr:function(a,b){return Y(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),e=n.attrHooks[b]||(n.expr.match.bool.test(b)?ub:tb)),void 0!==c?null===c?void n.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=n.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!l.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(G);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)?yb&&xb||!wb.test(c)?a[d]=!1:a[n.camelCase("default-"+c)]=a[d]=!1:n.attr(a,c,""),a.removeAttribute(xb?c:d)}}),ub={set:function(a,b,c){return b===!1?n.removeAttr(a,c):yb&&xb||!wb.test(c)?a.setAttribute(!xb&&n.propFix[c]||c,c):a[n.camelCase("default-"+c)]=a[c]=!0,c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=vb[b]||n.find.attr;yb&&xb||!wb.test(b)?vb[b]=function(a,b,d){var e,f;return d||(f=vb[b],vb[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,vb[b]=f),e}:vb[b]=function(a,b,c){return c?void 0:a[n.camelCase("default-"+b)]?b.toLowerCase():null}}),yb&&xb||(n.attrHooks.value={set:function(a,b,c){return n.nodeName(a,"input")?void(a.defaultValue=b):tb&&tb.set(a,b,c)}}),xb||(tb={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},vb.id=vb.name=vb.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},n.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:tb.set},n.attrHooks.contenteditable={set:function(a,b,c){tb.set(a,""===b?!1:b,c)}},n.each(["width","height"],function(a,b){n.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),l.style||(n.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var zb=/^(?:input|select|textarea|button|object)$/i,Ab=/^(?:a|area)$/i;n.fn.extend({prop:function(a,b){return Y(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return a=n.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),n.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&n.isXMLDoc(a)||(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=n.find.attr(a,"tabindex");return b?parseInt(b,10):zb.test(a.nodeName)||Ab.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),l.hrefNormalized||n.each(["href","src"],function(a,b){n.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),l.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this}),l.enctype||(n.propFix.enctype="encoding");var Bb=/[\t\r\n\f]/g;function Cb(a){return n.attr(a,"class")||""}n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,Cb(this)))});if("string"==typeof a&&a){b=a.match(G)||[];while(c=this[i++])if(e=Cb(c),d=1===c.nodeType&&(" "+e+" ").replace(Bb," ")){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=n.trim(d),e!==h&&n.attr(c,"class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,Cb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(G)||[];while(c=this[i++])if(e=Cb(c),d=1===c.nodeType&&(" "+e+" ").replace(Bb," ")){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=n.trim(d),e!==h&&n.attr(c,"class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):n.isFunction(a)?this.each(function(c){n(this).toggleClass(a.call(this,c,Cb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=n(this),f=a.match(G)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=Cb(this),b&&n._data(this,"__className__",b),n.attr(this,"class",b||a===!1?"":n._data(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+Cb(c)+" ").replace(Bb," ").indexOf(b)>-1)return!0;return!1}}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Db=a.location,Eb=n.now(),Fb=/\?/,Gb=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;n.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=n.trim(b+"");return e&&!n.trim(e.replace(Gb,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():n.error("Invalid JSON: "+b)},n.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new a.DOMParser,c=d.parseFromString(b,"text/xml")):(c=new a.ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||n.error("Invalid XML: "+b),c};var Hb=/#.*$/,Ib=/([?&])_=[^&]*/,Jb=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Kb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Lb=/^(?:GET|HEAD)$/,Mb=/^\/\//,Nb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Ob={},Pb={},Qb="*/".concat("*"),Rb=Db.href,Sb=Nb.exec(Rb.toLowerCase())||[];function Tb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(G)||[];if(n.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Ub(a,b,c,d){var e={},f=a===Pb;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Vb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&n.extend(!0,a,c),a}function Wb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Xb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Rb,type:"GET",isLocal:Kb.test(Sb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Qb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Vb(Vb(a,n.ajaxSettings),b):Vb(n.ajaxSettings,a)},ajaxPrefilter:Tb(Ob),ajaxTransport:Tb(Pb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var d,e,f,g,h,i,j,k,l=n.ajaxSetup({},c),m=l.context||l,o=l.context&&(m.nodeType||m.jquery)?n(m):n.event,p=n.Deferred(),q=n.Callbacks("once memory"),r=l.statusCode||{},s={},t={},u=0,v="canceled",w={readyState:0,getResponseHeader:function(a){var b;if(2===u){if(!k){k={};while(b=Jb.exec(g))k[b[1].toLowerCase()]=b[2]}b=k[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===u?g:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return u||(a=t[c]=t[c]||a,s[a]=b),this},overrideMimeType:function(a){return u||(l.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>u)for(b in a)r[b]=[r[b],a[b]];else w.always(a[w.status]);return this},abort:function(a){var b=a||v;return j&&j.abort(b),y(0,b),this}};if(p.promise(w).complete=q.add,w.success=w.done,w.error=w.fail,l.url=((b||l.url||Rb)+"").replace(Hb,"").replace(Mb,Sb[1]+"//"),l.type=c.method||c.type||l.method||l.type,l.dataTypes=n.trim(l.dataType||"*").toLowerCase().match(G)||[""],null==l.crossDomain&&(d=Nb.exec(l.url.toLowerCase()),l.crossDomain=!(!d||d[1]===Sb[1]&&d[2]===Sb[2]&&(d[3]||("http:"===d[1]?"80":"443"))===(Sb[3]||("http:"===Sb[1]?"80":"443")))),l.data&&l.processData&&"string"!=typeof l.data&&(l.data=n.param(l.data,l.traditional)),Ub(Ob,l,c,w),2===u)return w;i=n.event&&l.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),l.type=l.type.toUpperCase(),l.hasContent=!Lb.test(l.type),f=l.url,l.hasContent||(l.data&&(f=l.url+=(Fb.test(f)?"&":"?")+l.data,delete l.data),l.cache===!1&&(l.url=Ib.test(f)?f.replace(Ib,"$1_="+Eb++):f+(Fb.test(f)?"&":"?")+"_="+Eb++)),l.ifModified&&(n.lastModified[f]&&w.setRequestHeader("If-Modified-Since",n.lastModified[f]),n.etag[f]&&w.setRequestHeader("If-None-Match",n.etag[f])),(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&w.setRequestHeader("Content-Type",l.contentType),w.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+("*"!==l.dataTypes[0]?", "+Qb+"; q=0.01":""):l.accepts["*"]);for(e in l.headers)w.setRequestHeader(e,l.headers[e]);if(l.beforeSend&&(l.beforeSend.call(m,w,l)===!1||2===u))return w.abort();v="abort";for(e in{success:1,error:1,complete:1})w[e](l[e]);if(j=Ub(Pb,l,c,w)){if(w.readyState=1,i&&o.trigger("ajaxSend",[w,l]),2===u)return w;l.async&&l.timeout>0&&(h=a.setTimeout(function(){w.abort("timeout")},l.timeout));try{u=1,j.send(s,y)}catch(x){if(!(2>u))throw x;y(-1,x)}}else y(-1,"No Transport");function y(b,c,d,e){var k,s,t,v,x,y=c;2!==u&&(u=2,h&&a.clearTimeout(h),j=void 0,g=e||"",w.readyState=b>0?4:0,k=b>=200&&300>b||304===b,d&&(v=Wb(l,w,d)),v=Xb(l,v,w,k),k?(l.ifModified&&(x=w.getResponseHeader("Last-Modified"),x&&(n.lastModified[f]=x),x=w.getResponseHeader("etag"),x&&(n.etag[f]=x)),204===b||"HEAD"===l.type?y="nocontent":304===b?y="notmodified":(y=v.state,s=v.data,t=v.error,k=!t)):(t=y,!b&&y||(y="error",0>b&&(b=0))),w.status=b,w.statusText=(c||y)+"",k?p.resolveWith(m,[s,y,w]):p.rejectWith(m,[w,y,t]),w.statusCode(r),r=void 0,i&&o.trigger(k?"ajaxSuccess":"ajaxError",[w,l,k?s:t]),q.fireWith(m,[w,y]),i&&(o.trigger("ajaxComplete",[w,l]),--n.active||n.event.trigger("ajaxStop")))}return w},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax(n.extend({url:a,type:b,dataType:e,data:c,success:d},n.isPlainObject(a)&&a))}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){if(n.isFunction(a))return this.each(function(b){n(this).wrapAll(a.call(this,b))});if(this[0]){var b=n(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return n.isFunction(a)?this.each(function(b){n(this).wrapInner(a.call(this,b))}):this.each(function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}});function Yb(a){return a.style&&a.style.display||n.css(a,"display")}function Zb(a){if(!n.contains(a.ownerDocument||d,a))return!0;while(a&&1===a.nodeType){if("none"===Yb(a)||"hidden"===a.type)return!0;a=a.parentNode}return!1}n.expr.filters.hidden=function(a){return l.reliableHiddenOffsets()?a.offsetWidth<=0&&a.offsetHeight<=0&&!a.getClientRects().length:Zb(a)},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var $b=/%20/g,_b=/\[\]$/,ac=/\r?\n/g,bc=/^(?:submit|button|image|reset|file)$/i,cc=/^(?:input|select|textarea|keygen)/i;function dc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||_b.test(a)?d(a,e):dc(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)dc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)dc(c,a[c],b,e);return d.join("&").replace($b,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&cc.test(this.nodeName)&&!bc.test(a)&&(this.checked||!Z.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(ac,"\r\n")}}):{name:b.name,value:c.replace(ac,"\r\n")}}).get()}}),n.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return this.isLocal?ic():d.documentMode>8?hc():/^(get|post|head|put|delete|options)$/i.test(this.type)&&hc()||ic()}:hc;var ec=0,fc={},gc=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in fc)fc[a](void 0,!0)}),l.cors=!!gc&&"withCredentials"in gc,gc=l.ajax=!!gc,gc&&n.ajaxTransport(function(b){if(!b.crossDomain||l.cors){var c;return{send:function(d,e){var f,g=b.xhr(),h=++ec;if(g.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(f in b.xhrFields)g[f]=b.xhrFields[f];b.mimeType&&g.overrideMimeType&&g.overrideMimeType(b.mimeType),b.crossDomain||d["X-Requested-With"]||(d["X-Requested-With"]="XMLHttpRequest");for(f in d)void 0!==d[f]&&g.setRequestHeader(f,d[f]+"");g.send(b.hasContent&&b.data||null),c=function(a,d){var f,i,j;if(c&&(d||4===g.readyState))if(delete fc[h],c=void 0,g.onreadystatechange=n.noop,d)4!==g.readyState&&g.abort();else{j={},f=g.status,"string"==typeof g.responseText&&(j.text=g.responseText);try{i=g.statusText}catch(k){i=""}f||!b.isLocal||b.crossDomain?1223===f&&(f=204):f=j.text?200:404}j&&e(f,i,j,g.getAllResponseHeaders())},b.async?4===g.readyState?a.setTimeout(c):g.onreadystatechange=fc[h]=c:c()},abort:function(){c&&c(void 0,!0)}}}});function hc(){try{return new a.XMLHttpRequest}catch(b){}}function ic(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=d.head||n("head")[0]||d.documentElement;return{send:function(e,f){b=d.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||f(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var jc=[],kc=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=jc.pop()||n.expando+"_"+Eb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(kc.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&kc.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(kc,"$1"+e):b.jsonp!==!1&&(b.url+=(Fb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?n(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,jc.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||d;var e=x.exec(a),f=!c&&[];return e?[b.createElement(e[1])]:(e=ja([a],b,f),f&&f.length&&n(f).remove(),n.merge([],e.childNodes))};var lc=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&lc)return lc.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=n.trim(a.slice(h,a.length)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};function mc(a){return n.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&n.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,n.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,n.contains(b,e)?("undefined"!=typeof e.getBoundingClientRect&&(d=e.getBoundingClientRect()),c=mc(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===n.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(c=a.offset()),c.top+=n.css(a[0],"borderTopWidth",!0),c.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-n.css(d,"marginTop",!0),left:b.left-c.left-n.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Qa})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);n.fn[a]=function(d){return Y(this,function(a,d,e){var f=mc(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?n(f).scrollLeft():e,c?e:n(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=Ua(l.pixelPosition,function(a,c){return c?(c=Sa(a,b),Oa.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({ +padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return Y(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var nc=a.jQuery,oc=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=oc),b&&a.jQuery===n&&(a.jQuery=nc),n},b||(a.jQuery=a.$=n),n}); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/js/jquery-ui-1.12.1.min.js b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/js/jquery-ui-1.12.1.min.js new file mode 100644 index 0000000000000000000000000000000000000000..25398a167415050ae8bfb0bfebac6aa3ab790909 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/js/jquery-ui-1.12.1.min.js @@ -0,0 +1,13 @@ +/*! jQuery UI - v1.12.1 - 2016-09-14 +* http://jqueryui.com +* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e=t.css("visibility");"inherit"===e;)t=t.parent(),e=t.css("visibility");return"hidden"!==e}function i(t){for(var e,i;t.length&&t[0]!==document;){if(e=t.css("position"),("absolute"===e||"relative"===e||"fixed"===e)&&(i=parseInt(t.css("zIndex"),10),!isNaN(i)&&0!==i))return i;t=t.parent()}return 0}function s(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},t.extend(this._defaults,this.regional[""]),this.regional.en=t.extend(!0,{},this.regional[""]),this.regional["en-US"]=t.extend(!0,{},this.regional.en),this.dpDiv=n(t("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function n(e){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return e.on("mouseout",i,function(){t(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).removeClass("ui-datepicker-next-hover")}).on("mouseover",i,o)}function o(){t.datepicker._isDisabledDatepicker(m.inline?m.dpDiv.parent()[0]:m.input[0])||(t(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),t(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).addClass("ui-datepicker-next-hover"))}function a(e,i){t.extend(e,i);for(var s in i)null==i[s]&&(e[s]=i[s]);return e}function r(t){return function(){var e=this.element.val();t.apply(this,arguments),this._refresh(),e!==this.element.val()&&this._trigger("change")}}t.ui=t.ui||{},t.ui.version="1.12.1";var h=0,l=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},h=e.split(".")[0];e=e.split(".")[1];var l=h+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][l.toLowerCase()]=function(e){return!!t.data(e,l)},t[h]=t[h]||{},n=t[h][e],o=t[h][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:h,widgetName:e,widgetFullName:l}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,s,n=l.call(arguments,1),o=0,a=n.length;a>o;o++)for(i in n[o])s=n[o][i],n[o].hasOwnProperty(i)&&void 0!==s&&(e[i]=t.isPlainObject(s)?t.isPlainObject(e[i])?t.widget.extend({},e[i],s):t.widget.extend({},s):s);return e},t.widget.bridge=function(e,i){var s=i.prototype.widgetFullName||e;t.fn[e]=function(n){var o="string"==typeof n,a=l.call(arguments,1),r=this;return o?this.length||"instance"!==n?this.each(function(){var i,o=t.data(this,s);return"instance"===n?(r=o,!1):o?t.isFunction(o[n])&&"_"!==n.charAt(0)?(i=o[n].apply(o,a),i!==o&&void 0!==i?(r=i&&i.jquery?r.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+n+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+n+"'")}):r=void 0:(a.length&&(n=t.widget.extend.apply(null,[n].concat(a))),this.each(function(){var e=t.data(this,s);e?(e.option(n||{}),e._init&&e._init()):t.data(this,s,new i(n,this))})),r}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,i){i=t(i||this.defaultElement||this)[0],this.element=t(i),this.uuid=h++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},i!==this&&(t.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===i&&this.destroy()}}),this.document=t(i.style?i.ownerDocument:i.document||i),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType,o=!s&&!n;return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){if(!n||!n.of)return d.apply(this,arguments);n=t.extend({},n);var u,p,f,g,m,_,v=t(n.of),b=t.position.getWithinInfo(n.within),y=t.position.getScrollInfo(b),w=(n.collision||"flip").split(" "),k={};return _=s(v),v[0].preventDefault&&(n.at="left top"),p=_.width,f=_.height,g=_.offset,m=t.extend({},g),t.each(["my","at"],function(){var t,e,i=(n[this]||"").split(" ");1===i.length&&(i=r.test(i[0])?i.concat(["center"]):h.test(i[0])?["center"].concat(i):["center","center"]),i[0]=r.test(i[0])?i[0]:"center",i[1]=h.test(i[1])?i[1]:"center",t=l.exec(i[0]),e=l.exec(i[1]),k[this]=[t?t[0]:0,e?e[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===n.at[0]?m.left+=p:"center"===n.at[0]&&(m.left+=p/2),"bottom"===n.at[1]?m.top+=f:"center"===n.at[1]&&(m.top+=f/2),u=e(k.at,p,f),m.left+=u[0],m.top+=u[1],this.each(function(){var s,r,h=t(this),l=h.outerWidth(),c=h.outerHeight(),d=i(this,"marginLeft"),_=i(this,"marginTop"),x=l+d+i(this,"marginRight")+y.width,C=c+_+i(this,"marginBottom")+y.height,D=t.extend({},m),I=e(k.my,h.outerWidth(),h.outerHeight());"right"===n.my[0]?D.left-=l:"center"===n.my[0]&&(D.left-=l/2),"bottom"===n.my[1]?D.top-=c:"center"===n.my[1]&&(D.top-=c/2),D.left+=I[0],D.top+=I[1],s={marginLeft:d,marginTop:_},t.each(["left","top"],function(e,i){t.ui.position[w[e]]&&t.ui.position[w[e]][i](D,{targetWidth:p,targetHeight:f,elemWidth:l,elemHeight:c,collisionPosition:s,collisionWidth:x,collisionHeight:C,offset:[u[0]+I[0],u[1]+I[1]],my:n.my,at:n.at,within:b,elem:h})}),n.using&&(r=function(t){var e=g.left-D.left,i=e+p-l,s=g.top-D.top,r=s+f-c,u={target:{element:v,left:g.left,top:g.top,width:p,height:f},element:{element:h,left:D.left,top:D.top,width:l,height:c},horizontal:0>i?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-h,(i>0||u>a(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}});var c="ui-effects-",u="ui-effects-style",d="ui-effects-animated",p=t;t.effects={effect:{}},function(t,e){function i(t,e,i){var s=u[e.type]||{};return null==t?i||!e.def?null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod:0>t?0:t>s.max?s.max:t)}function s(i){var s=l(),n=s._rgba=[];return i=i.toLowerCase(),f(h,function(t,o){var a,r=o.re.exec(i),h=r&&o.parse(r),l=o.space||"rgba";return h?(a=s[l](h),s[c[l].cache]=a[c[l].cache],n=s._rgba=a._rgba,!1):e}),n.length?("0,0,0,0"===n.join()&&t.extend(n,o.transparent),s):o[i]}function n(t,e,i){return i=(i+1)%1,1>6*i?t+6*(e-t)*i:1>2*i?e:2>3*i?t+6*(e-t)*(2/3-i):t}var o,a="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,h=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[t[1],t[2],t[3],t[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],t[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(t){return[t[1],t[2]/100,t[3]/100,t[4]]}}],l=t.Color=function(e,i,s,n){return new t.Color.fn.parse(e,i,s,n)},c={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},u={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},d=l.support={},p=t("<p>")[0],f=t.each;p.style.cssText="background-color:rgba(1,1,1,.5)",d.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(c,function(t,e){e.cache="_"+t,e.props.alpha={idx:3,type:"percent",def:1}}),l.fn=t.extend(l.prototype,{parse:function(n,a,r,h){if(n===e)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=t(n).css(a),a=e);var u=this,d=t.type(n),p=this._rgba=[];return a!==e&&(n=[n,a,r,h],d="array"),"string"===d?this.parse(s(n)||o._default):"array"===d?(f(c.rgba.props,function(t,e){p[e.idx]=i(n[e.idx],e)}),this):"object"===d?(n instanceof l?f(c,function(t,e){n[e.cache]&&(u[e.cache]=n[e.cache].slice())}):f(c,function(e,s){var o=s.cache;f(s.props,function(t,e){if(!u[o]&&s.to){if("alpha"===t||null==n[t])return;u[o]=s.to(u._rgba)}u[o][e.idx]=i(n[t],e,!0)}),u[o]&&0>t.inArray(null,u[o].slice(0,3))&&(u[o][3]=1,s.from&&(u._rgba=s.from(u[o])))}),this):e},is:function(t){var i=l(t),s=!0,n=this;return f(c,function(t,o){var a,r=i[o.cache];return r&&(a=n[o.cache]||o.to&&o.to(n._rgba)||[],f(o.props,function(t,i){return null!=r[i.idx]?s=r[i.idx]===a[i.idx]:e})),s}),s},_space:function(){var t=[],e=this;return f(c,function(i,s){e[s.cache]&&t.push(i)}),t.pop()},transition:function(t,e){var s=l(t),n=s._space(),o=c[n],a=0===this.alpha()?l("transparent"):this,r=a[o.cache]||o.to(a._rgba),h=r.slice();return s=s[o.cache],f(o.props,function(t,n){var o=n.idx,a=r[o],l=s[o],c=u[n.type]||{};null!==l&&(null===a?h[o]=l:(c.mod&&(l-a>c.mod/2?a+=c.mod:a-l>c.mod/2&&(a-=c.mod)),h[o]=i((l-a)*e+a,n)))}),this[n](h)},blend:function(e){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=l(e)._rgba;return l(t.map(i,function(t,e){return(1-s)*n[e]+s*t}))},toRgbaString:function(){var e="rgba(",i=t.map(this._rgba,function(t,e){return null==t?e>2?1:0:t});return 1===i[3]&&(i.pop(),e="rgb("),e+i.join()+")"},toHslaString:function(){var e="hsla(",i=t.map(this.hsla(),function(t,e){return null==t&&(t=e>2?1:0),e&&3>e&&(t=Math.round(100*t)+"%"),t});return 1===i[3]&&(i.pop(),e="hsl("),e+i.join()+")"},toHexString:function(e){var i=this._rgba.slice(),s=i.pop();return e&&i.push(~~(255*s)),"#"+t.map(i,function(t){return t=(t||0).toString(16),1===t.length?"0"+t:t}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,c.hsla.to=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e,i,s=t[0]/255,n=t[1]/255,o=t[2]/255,a=t[3],r=Math.max(s,n,o),h=Math.min(s,n,o),l=r-h,c=r+h,u=.5*c;return e=h===r?0:s===r?60*(n-o)/l+360:n===r?60*(o-s)/l+120:60*(s-n)/l+240,i=0===l?0:.5>=u?l/c:l/(2-c),[Math.round(e)%360,i,u,null==a?1:a]},c.hsla.from=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e=t[0]/360,i=t[1],s=t[2],o=t[3],a=.5>=s?s*(1+i):s+i-s*i,r=2*s-a;return[Math.round(255*n(r,a,e+1/3)),Math.round(255*n(r,a,e)),Math.round(255*n(r,a,e-1/3)),o]},f(c,function(s,n){var o=n.props,a=n.cache,h=n.to,c=n.from;l.fn[s]=function(s){if(h&&!this[a]&&(this[a]=h(this._rgba)),s===e)return this[a].slice();var n,r=t.type(s),u="array"===r||"object"===r?s:arguments,d=this[a].slice();return f(o,function(t,e){var s=u["object"===r?t:e.idx];null==s&&(s=d[e.idx]),d[e.idx]=i(s,e)}),c?(n=l(c(d)),n[a]=d,n):l(d)},f(o,function(e,i){l.fn[e]||(l.fn[e]=function(n){var o,a=t.type(n),h="alpha"===e?this._hsla?"hsla":"rgba":s,l=this[h](),c=l[i.idx];return"undefined"===a?c:("function"===a&&(n=n.call(this,c),a=t.type(n)),null==n&&i.empty?this:("string"===a&&(o=r.exec(n),o&&(n=c+parseFloat(o[2])*("+"===o[1]?1:-1))),l[i.idx]=n,this[h](l)))})})}),l.hook=function(e){var i=e.split(" ");f(i,function(e,i){t.cssHooks[i]={set:function(e,n){var o,a,r="";if("transparent"!==n&&("string"!==t.type(n)||(o=s(n)))){if(n=l(o||n),!d.rgba&&1!==n._rgba[3]){for(a="backgroundColor"===i?e.parentNode:e;(""===r||"transparent"===r)&&a&&a.style;)try{r=t.css(a,"backgroundColor"),a=a.parentNode}catch(h){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{e.style[i]=n}catch(h){}}},t.fx.step[i]=function(e){e.colorInit||(e.start=l(e.elem,i),e.end=l(e.end),e.colorInit=!0),t.cssHooks[i].set(e.elem,e.start.transition(e.end,e.pos))}})},l.hook(a),t.cssHooks.borderColor={expand:function(t){var e={};return f(["Top","Right","Bottom","Left"],function(i,s){e["border"+s+"Color"]=t}),e}},o=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(p),function(){function e(e){var i,s,n=e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,null):e.currentStyle,o={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(o[t.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(o[i]=n[i]);return o}function i(e,i){var s,o,a={};for(s in i)o=i[s],e[s]!==o&&(n[s]||(t.fx.step[s]||!isNaN(parseFloat(o)))&&(a[s]=o));return a}var s=["add","remove","toggle"],n={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};t.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(e,i){t.fx.step[i]=function(t){("none"!==t.end&&!t.setAttr||1===t.pos&&!t.setAttr)&&(p.style(t.elem,i,t.end),t.setAttr=!0)}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.effects.animateClass=function(n,o,a,r){var h=t.speed(o,a,r);return this.queue(function(){var o,a=t(this),r=a.attr("class")||"",l=h.children?a.find("*").addBack():a;l=l.map(function(){var i=t(this);return{el:i,start:e(this)}}),o=function(){t.each(s,function(t,e){n[e]&&a[e+"Class"](n[e])})},o(),l=l.map(function(){return this.end=e(this.el[0]),this.diff=i(this.start,this.end),this}),a.attr("class",r),l=l.map(function(){var e=this,i=t.Deferred(),s=t.extend({},h,{queue:!1,complete:function(){i.resolve(e)}});return this.el.animate(this.diff,s),i.promise()}),t.when.apply(t,l.get()).done(function(){o(),t.each(arguments,function(){var e=this.el;t.each(this.diff,function(t){e.css(t,"")})}),h.complete.call(a[0])})})},t.fn.extend({addClass:function(e){return function(i,s,n,o){return s?t.effects.animateClass.call(this,{add:i},s,n,o):e.apply(this,arguments)}}(t.fn.addClass),removeClass:function(e){return function(i,s,n,o){return arguments.length>1?t.effects.animateClass.call(this,{remove:i},s,n,o):e.apply(this,arguments)}}(t.fn.removeClass),toggleClass:function(e){return function(i,s,n,o,a){return"boolean"==typeof s||void 0===s?n?t.effects.animateClass.call(this,s?{add:i}:{remove:i},n,o,a):e.apply(this,arguments):t.effects.animateClass.call(this,{toggle:i},s,n,o)}}(t.fn.toggleClass),switchClass:function(e,i,s,n,o){return t.effects.animateClass.call(this,{add:i,remove:e},s,n,o)}})}(),function(){function e(e,i,s,n){return t.isPlainObject(e)&&(i=e,e=e.effect),e={effect:e},null==i&&(i={}),t.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||t.fx.speeds[i])&&(n=s,s=i,i={}),t.isFunction(s)&&(n=s,s=null),i&&t.extend(e,i),s=s||i.duration,e.duration=t.fx.off?0:"number"==typeof s?s:s in t.fx.speeds?t.fx.speeds[s]:t.fx.speeds._default,e.complete=n||i.complete,e}function i(e){return!e||"number"==typeof e||t.fx.speeds[e]?!0:"string"!=typeof e||t.effects.effect[e]?t.isFunction(e)?!0:"object"!=typeof e||e.effect?!1:!0:!0}function s(t,e){var i=e.outerWidth(),s=e.outerHeight(),n=/^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/,o=n.exec(t)||["",0,i,s,0];return{top:parseFloat(o[1])||0,right:"auto"===o[2]?i:parseFloat(o[2]),bottom:"auto"===o[3]?s:parseFloat(o[3]),left:parseFloat(o[4])||0}}t.expr&&t.expr.filters&&t.expr.filters.animated&&(t.expr.filters.animated=function(e){return function(i){return!!t(i).data(d)||e(i)}}(t.expr.filters.animated)),t.uiBackCompat!==!1&&t.extend(t.effects,{save:function(t,e){for(var i=0,s=e.length;s>i;i++)null!==e[i]&&t.data(c+e[i],t[0].style[e[i]])},restore:function(t,e){for(var i,s=0,n=e.length;n>s;s++)null!==e[s]&&(i=t.data(c+e[s]),t.css(e[s],i))},setMode:function(t,e){return"toggle"===e&&(e=t.is(":hidden")?"show":"hide"),e},createWrapper:function(e){if(e.parent().is(".ui-effects-wrapper"))return e.parent();var i={width:e.outerWidth(!0),height:e.outerHeight(!0),"float":e.css("float")},s=t("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:e.width(),height:e.height()},o=document.activeElement;try{o.id}catch(a){o=document.body}return e.wrap(s),(e[0]===o||t.contains(e[0],o))&&t(o).trigger("focus"),s=e.parent(),"static"===e.css("position")?(s.css({position:"relative"}),e.css({position:"relative"})):(t.extend(i,{position:e.css("position"),zIndex:e.css("z-index")}),t.each(["top","left","bottom","right"],function(t,s){i[s]=e.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),e.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),e.css(n),s.css(i).show()},removeWrapper:function(e){var i=document.activeElement;return e.parent().is(".ui-effects-wrapper")&&(e.parent().replaceWith(e),(e[0]===i||t.contains(e[0],i))&&t(i).trigger("focus")),e}}),t.extend(t.effects,{version:"1.12.1",define:function(e,i,s){return s||(s=i,i="effect"),t.effects.effect[e]=s,t.effects.effect[e].mode=i,s},scaledDimensions:function(t,e,i){if(0===e)return{height:0,width:0,outerHeight:0,outerWidth:0};var s="horizontal"!==i?(e||100)/100:1,n="vertical"!==i?(e||100)/100:1;return{height:t.height()*n,width:t.width()*s,outerHeight:t.outerHeight()*n,outerWidth:t.outerWidth()*s}},clipToBox:function(t){return{width:t.clip.right-t.clip.left,height:t.clip.bottom-t.clip.top,left:t.clip.left,top:t.clip.top}},unshift:function(t,e,i){var s=t.queue();e>1&&s.splice.apply(s,[1,0].concat(s.splice(e,i))),t.dequeue()},saveStyle:function(t){t.data(u,t[0].style.cssText)},restoreStyle:function(t){t[0].style.cssText=t.data(u)||"",t.removeData(u)},mode:function(t,e){var i=t.is(":hidden");return"toggle"===e&&(e=i?"show":"hide"),(i?"hide"===e:"show"===e)&&(e="none"),e},getBaseline:function(t,e){var i,s;switch(t[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=t[0]/e.height}switch(t[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=t[1]/e.width}return{x:s,y:i}},createPlaceholder:function(e){var i,s=e.css("position"),n=e.position();return e.css({marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()),/^(static|relative)/.test(s)&&(s="absolute",i=t("<"+e[0].nodeName+">").insertAfter(e).css({display:/^(inline|ruby)/.test(e.css("display"))?"inline-block":"block",visibility:"hidden",marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight"),"float":e.css("float")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).addClass("ui-effects-placeholder"),e.data(c+"placeholder",i)),e.css({position:s,left:n.left,top:n.top}),i},removePlaceholder:function(t){var e=c+"placeholder",i=t.data(e);i&&(i.remove(),t.removeData(e))},cleanUp:function(e){t.effects.restoreStyle(e),t.effects.removePlaceholder(e)},setTransition:function(e,i,s,n){return n=n||{},t.each(i,function(t,i){var o=e.cssUnit(i);o[0]>0&&(n[i]=o[0]*s+o[1])}),n}}),t.fn.extend({effect:function(){function i(e){function i(){r.removeData(d),t.effects.cleanUp(r),"hide"===s.mode&&r.hide(),a()}function a(){t.isFunction(h)&&h.call(r[0]),t.isFunction(e)&&e()}var r=t(this);s.mode=c.shift(),t.uiBackCompat===!1||o?"none"===s.mode?(r[l](),a()):n.call(r[0],s,i):(r.is(":hidden")?"hide"===l:"show"===l)?(r[l](),a()):n.call(r[0],s,a)}var s=e.apply(this,arguments),n=t.effects.effect[s.effect],o=n.mode,a=s.queue,r=a||"fx",h=s.complete,l=s.mode,c=[],u=function(e){var i=t(this),s=t.effects.mode(i,l)||o;i.data(d,!0),c.push(s),o&&("show"===s||s===o&&"hide"===s)&&i.show(),o&&"none"===s||t.effects.saveStyle(i),t.isFunction(e)&&e()};return t.fx.off||!n?l?this[l](s.duration,h):this.each(function(){h&&h.call(this)}):a===!1?this.each(u).each(i):this.queue(r,u).queue(r,i)},show:function(t){return function(s){if(i(s))return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="show",this.effect.call(this,n) +}}(t.fn.show),hide:function(t){return function(s){if(i(s))return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="hide",this.effect.call(this,n)}}(t.fn.hide),toggle:function(t){return function(s){if(i(s)||"boolean"==typeof s)return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)}}(t.fn.toggle),cssUnit:function(e){var i=this.css(e),s=[];return t.each(["em","px","%","pt"],function(t,e){i.indexOf(e)>0&&(s=[parseFloat(i),e])}),s},cssClip:function(t){return t?this.css("clip","rect("+t.top+"px "+t.right+"px "+t.bottom+"px "+t.left+"px)"):s(this.css("clip"),this)},transfer:function(e,i){var s=t(this),n=t(e.to),o="fixed"===n.css("position"),a=t("body"),r=o?a.scrollTop():0,h=o?a.scrollLeft():0,l=n.offset(),c={top:l.top-r,left:l.left-h,height:n.innerHeight(),width:n.innerWidth()},u=s.offset(),d=t("<div class='ui-effects-transfer'></div>").appendTo("body").addClass(e.className).css({top:u.top-r,left:u.left-h,height:s.innerHeight(),width:s.innerWidth(),position:o?"fixed":"absolute"}).animate(c,e.duration,e.easing,function(){d.remove(),t.isFunction(i)&&i()})}}),t.fx.step.clip=function(e){e.clipInit||(e.start=t(e.elem).cssClip(),"string"==typeof e.end&&(e.end=s(e.end,e.elem)),e.clipInit=!0),t(e.elem).cssClip({top:e.pos*(e.end.top-e.start.top)+e.start.top,right:e.pos*(e.end.right-e.start.right)+e.start.right,bottom:e.pos*(e.end.bottom-e.start.bottom)+e.start.bottom,left:e.pos*(e.end.left-e.start.left)+e.start.left})}}(),function(){var e={};t.each(["Quad","Cubic","Quart","Quint","Expo"],function(t,i){e[i]=function(e){return Math.pow(e,t+2)}}),t.extend(e,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;((e=Math.pow(2,--i))-1)/11>t;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),t.each(e,function(e,i){t.easing["easeIn"+e]=i,t.easing["easeOut"+e]=function(t){return 1-i(1-t)},t.easing["easeInOut"+e]=function(t){return.5>t?i(2*t)/2:1-i(-2*t+2)/2}})}();var f=t.effects;t.effects.define("blind","hide",function(e,i){var s={up:["bottom","top"],vertical:["bottom","top"],down:["top","bottom"],left:["right","left"],horizontal:["right","left"],right:["left","right"]},n=t(this),o=e.direction||"up",a=n.cssClip(),r={clip:t.extend({},a)},h=t.effects.createPlaceholder(n);r.clip[s[o][0]]=r.clip[s[o][1]],"show"===e.mode&&(n.cssClip(r.clip),h&&h.css(t.effects.clipToBox(r)),r.clip=a),h&&h.animate(t.effects.clipToBox(r),e.duration,e.easing),n.animate(r,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("bounce",function(e,i){var s,n,o,a=t(this),r=e.mode,h="hide"===r,l="show"===r,c=e.direction||"up",u=e.distance,d=e.times||5,p=2*d+(l||h?1:0),f=e.duration/p,g=e.easing,m="up"===c||"down"===c?"top":"left",_="up"===c||"left"===c,v=0,b=a.queue().length;for(t.effects.createPlaceholder(a),o=a.css(m),u||(u=a["top"===m?"outerHeight":"outerWidth"]()/3),l&&(n={opacity:1},n[m]=o,a.css("opacity",0).css(m,_?2*-u:2*u).animate(n,f,g)),h&&(u/=Math.pow(2,d-1)),n={},n[m]=o;d>v;v++)s={},s[m]=(_?"-=":"+=")+u,a.animate(s,f,g).animate(n,f,g),u=h?2*u:u/2;h&&(s={opacity:0},s[m]=(_?"-=":"+=")+u,a.animate(s,f,g)),a.queue(i),t.effects.unshift(a,b,p+1)}),t.effects.define("clip","hide",function(e,i){var s,n={},o=t(this),a=e.direction||"vertical",r="both"===a,h=r||"horizontal"===a,l=r||"vertical"===a;s=o.cssClip(),n.clip={top:l?(s.bottom-s.top)/2:s.top,right:h?(s.right-s.left)/2:s.right,bottom:l?(s.bottom-s.top)/2:s.bottom,left:h?(s.right-s.left)/2:s.left},t.effects.createPlaceholder(o),"show"===e.mode&&(o.cssClip(n.clip),n.clip=s),o.animate(n,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("drop","hide",function(e,i){var s,n=t(this),o=e.mode,a="show"===o,r=e.direction||"left",h="up"===r||"down"===r?"top":"left",l="up"===r||"left"===r?"-=":"+=",c="+="===l?"-=":"+=",u={opacity:0};t.effects.createPlaceholder(n),s=e.distance||n["top"===h?"outerHeight":"outerWidth"](!0)/2,u[h]=l+s,a&&(n.css(u),u[h]=c+s,u.opacity=1),n.animate(u,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("explode","hide",function(e,i){function s(){b.push(this),b.length===u*d&&n()}function n(){p.css({visibility:"visible"}),t(b).remove(),i()}var o,a,r,h,l,c,u=e.pieces?Math.round(Math.sqrt(e.pieces)):3,d=u,p=t(this),f=e.mode,g="show"===f,m=p.show().css("visibility","hidden").offset(),_=Math.ceil(p.outerWidth()/d),v=Math.ceil(p.outerHeight()/u),b=[];for(o=0;u>o;o++)for(h=m.top+o*v,c=o-(u-1)/2,a=0;d>a;a++)r=m.left+a*_,l=a-(d-1)/2,p.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-a*_,top:-o*v}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:_,height:v,left:r+(g?l*_:0),top:h+(g?c*v:0),opacity:g?0:1}).animate({left:r+(g?0:l*_),top:h+(g?0:c*v),opacity:g?1:0},e.duration||500,e.easing,s)}),t.effects.define("fade","toggle",function(e,i){var s="show"===e.mode;t(this).css("opacity",s?0:1).animate({opacity:s?1:0},{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("fold","hide",function(e,i){var s=t(this),n=e.mode,o="show"===n,a="hide"===n,r=e.size||15,h=/([0-9]+)%/.exec(r),l=!!e.horizFirst,c=l?["right","bottom"]:["bottom","right"],u=e.duration/2,d=t.effects.createPlaceholder(s),p=s.cssClip(),f={clip:t.extend({},p)},g={clip:t.extend({},p)},m=[p[c[0]],p[c[1]]],_=s.queue().length;h&&(r=parseInt(h[1],10)/100*m[a?0:1]),f.clip[c[0]]=r,g.clip[c[0]]=r,g.clip[c[1]]=0,o&&(s.cssClip(g.clip),d&&d.css(t.effects.clipToBox(g)),g.clip=p),s.queue(function(i){d&&d.animate(t.effects.clipToBox(f),u,e.easing).animate(t.effects.clipToBox(g),u,e.easing),i()}).animate(f,u,e.easing).animate(g,u,e.easing).queue(i),t.effects.unshift(s,_,4)}),t.effects.define("highlight","show",function(e,i){var s=t(this),n={backgroundColor:s.css("backgroundColor")};"hide"===e.mode&&(n.opacity=0),t.effects.saveStyle(s),s.css({backgroundImage:"none",backgroundColor:e.color||"#ffff99"}).animate(n,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("size",function(e,i){var s,n,o,a=t(this),r=["fontSize"],h=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],l=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],c=e.mode,u="effect"!==c,d=e.scale||"both",p=e.origin||["middle","center"],f=a.css("position"),g=a.position(),m=t.effects.scaledDimensions(a),_=e.from||m,v=e.to||t.effects.scaledDimensions(a,0);t.effects.createPlaceholder(a),"show"===c&&(o=_,_=v,v=o),n={from:{y:_.height/m.height,x:_.width/m.width},to:{y:v.height/m.height,x:v.width/m.width}},("box"===d||"both"===d)&&(n.from.y!==n.to.y&&(_=t.effects.setTransition(a,h,n.from.y,_),v=t.effects.setTransition(a,h,n.to.y,v)),n.from.x!==n.to.x&&(_=t.effects.setTransition(a,l,n.from.x,_),v=t.effects.setTransition(a,l,n.to.x,v))),("content"===d||"both"===d)&&n.from.y!==n.to.y&&(_=t.effects.setTransition(a,r,n.from.y,_),v=t.effects.setTransition(a,r,n.to.y,v)),p&&(s=t.effects.getBaseline(p,m),_.top=(m.outerHeight-_.outerHeight)*s.y+g.top,_.left=(m.outerWidth-_.outerWidth)*s.x+g.left,v.top=(m.outerHeight-v.outerHeight)*s.y+g.top,v.left=(m.outerWidth-v.outerWidth)*s.x+g.left),a.css(_),("content"===d||"both"===d)&&(h=h.concat(["marginTop","marginBottom"]).concat(r),l=l.concat(["marginLeft","marginRight"]),a.find("*[width]").each(function(){var i=t(this),s=t.effects.scaledDimensions(i),o={height:s.height*n.from.y,width:s.width*n.from.x,outerHeight:s.outerHeight*n.from.y,outerWidth:s.outerWidth*n.from.x},a={height:s.height*n.to.y,width:s.width*n.to.x,outerHeight:s.height*n.to.y,outerWidth:s.width*n.to.x};n.from.y!==n.to.y&&(o=t.effects.setTransition(i,h,n.from.y,o),a=t.effects.setTransition(i,h,n.to.y,a)),n.from.x!==n.to.x&&(o=t.effects.setTransition(i,l,n.from.x,o),a=t.effects.setTransition(i,l,n.to.x,a)),u&&t.effects.saveStyle(i),i.css(o),i.animate(a,e.duration,e.easing,function(){u&&t.effects.restoreStyle(i)})})),a.animate(v,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){var e=a.offset();0===v.opacity&&a.css("opacity",_.opacity),u||(a.css("position","static"===f?"relative":f).offset(e),t.effects.saveStyle(a)),i()}})}),t.effects.define("scale",function(e,i){var s=t(this),n=e.mode,o=parseInt(e.percent,10)||(0===parseInt(e.percent,10)?0:"effect"!==n?0:100),a=t.extend(!0,{from:t.effects.scaledDimensions(s),to:t.effects.scaledDimensions(s,o,e.direction||"both"),origin:e.origin||["middle","center"]},e);e.fade&&(a.from.opacity=1,a.to.opacity=0),t.effects.effect.size.call(this,a,i)}),t.effects.define("puff","hide",function(e,i){var s=t.extend(!0,{},e,{fade:!0,percent:parseInt(e.percent,10)||150});t.effects.effect.scale.call(this,s,i)}),t.effects.define("pulsate","show",function(e,i){var s=t(this),n=e.mode,o="show"===n,a="hide"===n,r=o||a,h=2*(e.times||5)+(r?1:0),l=e.duration/h,c=0,u=1,d=s.queue().length;for((o||!s.is(":visible"))&&(s.css("opacity",0).show(),c=1);h>u;u++)s.animate({opacity:c},l,e.easing),c=1-c;s.animate({opacity:c},l,e.easing),s.queue(i),t.effects.unshift(s,d,h+1)}),t.effects.define("shake",function(e,i){var s=1,n=t(this),o=e.direction||"left",a=e.distance||20,r=e.times||3,h=2*r+1,l=Math.round(e.duration/h),c="up"===o||"down"===o?"top":"left",u="up"===o||"left"===o,d={},p={},f={},g=n.queue().length;for(t.effects.createPlaceholder(n),d[c]=(u?"-=":"+=")+a,p[c]=(u?"+=":"-=")+2*a,f[c]=(u?"-=":"+=")+2*a,n.animate(d,l,e.easing);r>s;s++)n.animate(p,l,e.easing).animate(f,l,e.easing);n.animate(p,l,e.easing).animate(d,l/2,e.easing).queue(i),t.effects.unshift(n,g,h+1)}),t.effects.define("slide","show",function(e,i){var s,n,o=t(this),a={up:["bottom","top"],down:["top","bottom"],left:["right","left"],right:["left","right"]},r=e.mode,h=e.direction||"left",l="up"===h||"down"===h?"top":"left",c="up"===h||"left"===h,u=e.distance||o["top"===l?"outerHeight":"outerWidth"](!0),d={};t.effects.createPlaceholder(o),s=o.cssClip(),n=o.position()[l],d[l]=(c?-1:1)*u+n,d.clip=o.cssClip(),d.clip[a[h][1]]=d.clip[a[h][0]],"show"===r&&(o.cssClip(d.clip),o.css(l,d[l]),d.clip=s,d[l]=n),o.animate(d,{queue:!1,duration:e.duration,easing:e.easing,complete:i})});var f;t.uiBackCompat!==!1&&(f=t.effects.define("transfer",function(e,i){t(this).transfer(e,i)})),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,.\/:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.widget("ui.accordion",{version:"1.12.1",options:{active:0,animate:{},classes:{"ui-accordion-header":"ui-corner-top","ui-accordion-header-collapsed":"ui-corner-all","ui-accordion-content":"ui-corner-bottom"},collapsible:!1,event:"click",header:"> li > :first-child, > :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var e=this.options;this.prevShow=this.prevHide=t(),this._addClass("ui-accordion","ui-widget ui-helper-reset"),this.element.attr("role","tablist"),e.collapsible||e.active!==!1&&null!=e.active||(e.active=0),this._processPanels(),0>e.active&&(e.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():t()}},_createIcons:function(){var e,i,s=this.options.icons;s&&(e=t("<span>"),this._addClass(e,"ui-accordion-header-icon","ui-icon "+s.header),e.prependTo(this.headers),i=this.active.children(".ui-accordion-header-icon"),this._removeClass(i,s.header)._addClass(i,null,s.activeHeader)._addClass(this.headers,"ui-accordion-icons"))},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons"),this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeAttr("role"),this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),this._destroyIcons(),t=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){return"active"===t?(this._activate(e),void 0):("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||this.options.active!==!1||this._activate(0),"icons"===t&&(this._destroyIcons(),e&&this._createIcons()),void 0)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t),this._toggleClass(this.headers.add(this.headers.next()),null,"ui-state-disabled",!!t)},_keydown:function(e){if(!e.altKey&&!e.ctrlKey){var i=t.ui.keyCode,s=this.headers.length,n=this.headers.index(e.target),o=!1;switch(e.keyCode){case i.RIGHT:case i.DOWN:o=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:o=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(e);break;case i.HOME:o=this.headers[0];break;case i.END:o=this.headers[s-1]}o&&(t(e.target).attr("tabIndex",-1),t(o).attr("tabIndex",0),t(o).trigger("focus"),e.preventDefault())}},_panelKeyDown:function(e){e.keyCode===t.ui.keyCode.UP&&e.ctrlKey&&t(e.currentTarget).prev().trigger("focus")},refresh:function(){var e=this.options;this._processPanels(),e.active===!1&&e.collapsible===!0||!this.headers.length?(e.active=!1,this.active=t()):e.active===!1?this._activate(0):this.active.length&&!t.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(e.active=!1,this.active=t()):this._activate(Math.max(0,e.active-1)):e.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;this.headers=this.element.find(this.options.header),this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default"),this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content"),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var e,i=this.options,s=i.heightStyle,n=this.element.parent();this.active=this._findActive(i.active),this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed"),this._addClass(this.active.next(),"ui-accordion-content-active"),this.active.next().show(),this.headers.attr("role","tab").each(function(){var e=t(this),i=e.uniqueId().attr("id"),s=e.next(),n=s.uniqueId().attr("id");e.attr("aria-controls",n),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(i.event),"fill"===s?(e=n.height(),this.element.siblings(":visible").each(function(){var i=t(this),s=i.css("position");"absolute"!==s&&"fixed"!==s&&(e-=i.outerHeight(!0))}),this.headers.each(function(){e-=t(this).outerHeight(!0)}),this.headers.next().each(function(){t(this).height(Math.max(0,e-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===s&&(e=0,this.headers.next().each(function(){var i=t(this).is(":visible");i||t(this).show(),e=Math.max(e,t(this).css("height","").height()),i||t(this).hide()}).height(e))},_activate:function(e){var i=this._findActive(e)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return"number"==typeof e?this.headers.eq(e):t()},_setupEvents:function(e){var i={keydown:"_keydown"};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(e){var i,s,n=this.options,o=this.active,a=t(e.currentTarget),r=a[0]===o[0],h=r&&n.collapsible,l=h?t():a.next(),c=o.next(),u={oldHeader:o,oldPanel:c,newHeader:h?t():a,newPanel:l};e.preventDefault(),r&&!n.collapsible||this._trigger("beforeActivate",e,u)===!1||(n.active=h?!1:this.headers.index(a),this.active=r?t():a,this._toggle(u),this._removeClass(o,"ui-accordion-header-active","ui-state-active"),n.icons&&(i=o.children(".ui-accordion-header-icon"),this._removeClass(i,null,n.icons.activeHeader)._addClass(i,null,n.icons.header)),r||(this._removeClass(a,"ui-accordion-header-collapsed")._addClass(a,"ui-accordion-header-active","ui-state-active"),n.icons&&(s=a.children(".ui-accordion-header-icon"),this._removeClass(s,null,n.icons.header)._addClass(s,null,n.icons.activeHeader)),this._addClass(a.next(),"ui-accordion-content-active")))},_toggle:function(e){var i=e.newPanel,s=this.prevShow.length?this.prevShow:e.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,e):(s.hide(),i.show(),this._toggleComplete(e)),s.attr({"aria-hidden":"true"}),s.prev().attr({"aria-selected":"false","aria-expanded":"false"}),i.length&&s.length?s.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return 0===parseInt(t(this).attr("tabIndex"),10)}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(t,e,i){var s,n,o,a=this,r=0,h=t.css("box-sizing"),l=t.length&&(!e.length||t.index()<e.index()),c=this.options.animate||{},u=l&&c.down||c,d=function(){a._toggleComplete(i)};return"number"==typeof u&&(o=u),"string"==typeof u&&(n=u),n=n||u.easing||c.easing,o=o||u.duration||c.duration,e.length?t.length?(s=t.show().outerHeight(),e.animate(this.hideProps,{duration:o,easing:n,step:function(t,e){e.now=Math.round(t)}}),t.hide().animate(this.showProps,{duration:o,easing:n,complete:d,step:function(t,i){i.now=Math.round(t),"height"!==i.prop?"content-box"===h&&(r+=i.now):"content"!==a.options.heightStyle&&(i.now=Math.round(s-e.outerHeight()-r),r=0)}}),void 0):e.animate(this.hideProps,o,n,d):t.animate(this.showProps,o,n,d)},_toggleComplete:function(t){var e=t.oldPanel,i=e.prev();this._removeClass(e,"ui-accordion-content-active"),this._removeClass(i,"ui-accordion-header-active")._addClass(i,"ui-accordion-header-collapsed"),e.length&&(e.parent()[0].className=e.parent()[0].className),this._trigger("activate",null,t)}}),t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.widget("ui.menu",{version:"1.12.1",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var i=t(e.target),s=t(t.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&s.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var i=t(e.target).closest(".ui-menu-item"),s=t(e.currentTarget);i[0]===s[0]&&(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,s))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){var i=!t.contains(this.element[0],t.ui.safeActiveElement(this.document[0]));i&&this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),i=e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){var e=t(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var i,s,n,o,a=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:a=!1,s=this.previousFilter||"",o=!1,n=e.keyCode>=96&&105>=e.keyCode?""+(e.keyCode-96):String.fromCharCode(e.keyCode),clearTimeout(this.filterTimer),n===s?o=!0:n=s+n,i=this._filterMenuItems(n),i=o&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(e,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}a&&e.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i,s,n,o,a=this,r=this.options.icons.submenu,h=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),s=h.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),i=e.prev(),s=t("<span>").data("ui-menu-submenu-caret",!0);a._addClass(s,"ui-menu-icon","ui-icon "+r),i.attr("aria-haspopup","true").prepend(s),e.attr("aria-labelledby",i.attr("id"))}),this._addClass(s,"ui-menu","ui-widget ui-widget-content ui-front"),e=h.add(this.element),i=e.find(this.options.items),i.not(".ui-menu-item").each(function(){var e=t(this);a._isDivider(e)&&a._addClass(e,"ui-menu-divider","ui-widget-content")}),n=i.not(".ui-menu-item, .ui-menu-divider"),o=n.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(n,"ui-menu-item")._addClass(o,"ui-menu-item-wrapper"),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){if("icons"===t){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)}this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t+""),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i,s,n;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,a,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),r=e.outerHeight(),0>n?this.activeMenu.scrollTop(o+n):n+r>a&&this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(e),void 0)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items).first())),void 0):(this.next(e),void 0)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(e){this.active=this.active||t(e.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(e,!0),this._trigger("select",e,i)},_filterMenuItems:function(e){var i=e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),s=RegExp("^"+i,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return s.test(t.trim(t(this).children(".ui-menu-item-wrapper").text()))})}}),t.widget("ui.autocomplete",{version:"1.12.1",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,a="input"===n; +this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,void 0;e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),void 0):(this._searchTimeout(t),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(t),this._change(t),void 0)}}),this._initSource(),this.menu=t("<ul>").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==t.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(e,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:n})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&t.trim(s).length&&(this.liveRegion.children().hide(),t("<div>").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,i){var s=i.item.data("ui-autocomplete-item"),n=this.previous;this.element[0]!==t.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=n,this._delay(function(){this.previous=n,this.selectedItem=s})),!1!==this._trigger("select",e,{item:s})&&this._value(s.value),this.term=this._value(),this.close(e),this.selectedItem=s}}),this.liveRegion=t("<div>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(e){var i=this.menu.element[0];return e.target===this.element[0]||e.target===i||t.contains(i,e.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,i,s=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,data:e,dataType:"json",success:function(t){n(t)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),i=this.menu.element.is(":visible"),s=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!i&&!s)&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length<this.options.minLength?this.close(e):this._trigger("search",e)!==!1?this._search(t):void 0},_search:function(t){this.pending++,this._addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:t},this._response())},_response:function(){var e=++this.requestIndex;return t.proxy(function(t){e===this.requestIndex&&this.__response(t),this.pending--,this.pending||this._removeClass("ui-autocomplete-loading")},this)},__response:function(t){t&&(t=this._normalize(t)),this._trigger("response",null,{content:t}),!this.options.disabled&&t&&t.length&&!this.cancelSearch?(this._suggest(t),this._trigger("open")):this._close()},close:function(t){this.cancelSearch=!0,this._close(t)},_close:function(t){this._off(this.document,"mousedown"),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",t))},_change:function(t){this.previous!==this._value()&&this._trigger("change",t,{item:this.selectedItem})},_normalize:function(e){return e.length&&e[0].label&&e[0].value?e:t.map(e,function(e){return"string"==typeof e?{label:e,value:e}:t.extend({},e,{label:e.label||e.value,value:e.value||e.label})})},_suggest:function(e){var i=this.menu.element.empty();this._renderMenu(i,e),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(t.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next(),this._on(this.document,{mousedown:"_closeOnClickOutside"})},_resizeMenu:function(){var t=this.menu.element;t.outerWidth(Math.max(t.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(e,i){var s=this;t.each(i,function(t,i){s._renderItemData(e,i)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-autocomplete-item",e)},_renderItem:function(e,i){return t("<li>").append(t("<div>").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[t](e),void 0):(this.search(null,e),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("<div>").text(i).appendTo(this.liveRegion))}}),t.ui.autocomplete;var g=/ui-corner-([a-z]){2,6}/g;t.widget("ui.controlgroup",{version:"1.12.1",defaultElement:"<div>",options:{direction:"horizontal",disabled:null,onlyVisible:!0,items:{button:"input[type=button], input[type=submit], input[type=reset], button, a",controlgroupLabel:".ui-controlgroup-label",checkboxradio:"input[type='checkbox'], input[type='radio']",selectmenu:"select",spinner:".ui-spinner-input"}},_create:function(){this._enhance()},_enhance:function(){this.element.attr("role","toolbar"),this.refresh()},_destroy:function(){this._callChildMethod("destroy"),this.childWidgets.removeData("ui-controlgroup-data"),this.element.removeAttr("role"),this.options.items.controlgroupLabel&&this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap()},_initWidgets:function(){var e=this,i=[];t.each(this.options.items,function(s,n){var o,a={};return n?"controlgroupLabel"===s?(o=e.element.find(n),o.each(function(){var e=t(this);e.children(".ui-controlgroup-label-contents").length||e.contents().wrapAll("<span class='ui-controlgroup-label-contents'></span>")}),e._addClass(o,null,"ui-widget ui-widget-content ui-state-default"),i=i.concat(o.get()),void 0):(t.fn[s]&&(a=e["_"+s+"Options"]?e["_"+s+"Options"]("middle"):{classes:{}},e.element.find(n).each(function(){var n=t(this),o=n[s]("instance"),r=t.widget.extend({},a);if("button"!==s||!n.parent(".ui-spinner").length){o||(o=n[s]()[s]("instance")),o&&(r.classes=e._resolveClassesValues(r.classes,o)),n[s](r);var h=n[s]("widget");t.data(h[0],"ui-controlgroup-data",o?o:n[s]("instance")),i.push(h[0])}})),void 0):void 0}),this.childWidgets=t(t.unique(i)),this._addClass(this.childWidgets,"ui-controlgroup-item")},_callChildMethod:function(e){this.childWidgets.each(function(){var i=t(this),s=i.data("ui-controlgroup-data");s&&s[e]&&s[e]()})},_updateCornerClass:function(t,e){var i="ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all",s=this._buildSimpleOptions(e,"label").classes.label;this._removeClass(t,null,i),this._addClass(t,null,s)},_buildSimpleOptions:function(t,e){var i="vertical"===this.options.direction,s={classes:{}};return s.classes[e]={middle:"",first:"ui-corner-"+(i?"top":"left"),last:"ui-corner-"+(i?"bottom":"right"),only:"ui-corner-all"}[t],s},_spinnerOptions:function(t){var e=this._buildSimpleOptions(t,"ui-spinner");return e.classes["ui-spinner-up"]="",e.classes["ui-spinner-down"]="",e},_buttonOptions:function(t){return this._buildSimpleOptions(t,"ui-button")},_checkboxradioOptions:function(t){return this._buildSimpleOptions(t,"ui-checkboxradio-label")},_selectmenuOptions:function(t){var e="vertical"===this.options.direction;return{width:e?"auto":!1,classes:{middle:{"ui-selectmenu-button-open":"","ui-selectmenu-button-closed":""},first:{"ui-selectmenu-button-open":"ui-corner-"+(e?"top":"tl"),"ui-selectmenu-button-closed":"ui-corner-"+(e?"top":"left")},last:{"ui-selectmenu-button-open":e?"":"ui-corner-tr","ui-selectmenu-button-closed":"ui-corner-"+(e?"bottom":"right")},only:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"}}[t]}},_resolveClassesValues:function(e,i){var s={};return t.each(e,function(n){var o=i.options.classes[n]||"";o=t.trim(o.replace(g,"")),s[n]=(o+" "+e[n]).replace(/\s+/g," ")}),s},_setOption:function(t,e){return"direction"===t&&this._removeClass("ui-controlgroup-"+this.options.direction),this._super(t,e),"disabled"===t?(this._callChildMethod(e?"disable":"enable"),void 0):(this.refresh(),void 0)},refresh:function(){var e,i=this;this._addClass("ui-controlgroup ui-controlgroup-"+this.options.direction),"horizontal"===this.options.direction&&this._addClass(null,"ui-helper-clearfix"),this._initWidgets(),e=this.childWidgets,this.options.onlyVisible&&(e=e.filter(":visible")),e.length&&(t.each(["first","last"],function(t,s){var n=e[s]().data("ui-controlgroup-data");if(n&&i["_"+n.widgetName+"Options"]){var o=i["_"+n.widgetName+"Options"](1===e.length?"only":s);o.classes=i._resolveClassesValues(o.classes,n),n.element[n.widgetName](o)}else i._updateCornerClass(e[s](),s)}),this._callChildMethod("refresh"))}}),t.widget("ui.checkboxradio",[t.ui.formResetMixin,{version:"1.12.1",options:{disabled:null,label:null,icon:!0,classes:{"ui-checkboxradio-label":"ui-corner-all","ui-checkboxradio-icon":"ui-corner-all"}},_getCreateOptions:function(){var e,i,s=this,n=this._super()||{};return this._readType(),i=this.element.labels(),this.label=t(i[i.length-1]),this.label.length||t.error("No label found for checkboxradio widget"),this.originalLabel="",this.label.contents().not(this.element[0]).each(function(){s.originalLabel+=3===this.nodeType?t(this).text():this.outerHTML}),this.originalLabel&&(n.label=this.originalLabel),e=this.element[0].disabled,null!=e&&(n.disabled=e),n},_create:function(){var t=this.element[0].checked;this._bindFormResetHandler(),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled),this._setOption("disabled",this.options.disabled),this._addClass("ui-checkboxradio","ui-helper-hidden-accessible"),this._addClass(this.label,"ui-checkboxradio-label","ui-button ui-widget"),"radio"===this.type&&this._addClass(this.label,"ui-checkboxradio-radio-label"),this.options.label&&this.options.label!==this.originalLabel?this._updateLabel():this.originalLabel&&(this.options.label=this.originalLabel),this._enhance(),t&&(this._addClass(this.label,"ui-checkboxradio-checked","ui-state-active"),this.icon&&this._addClass(this.icon,null,"ui-state-hover")),this._on({change:"_toggleClasses",focus:function(){this._addClass(this.label,null,"ui-state-focus ui-visual-focus")},blur:function(){this._removeClass(this.label,null,"ui-state-focus ui-visual-focus")}})},_readType:function(){var e=this.element[0].nodeName.toLowerCase();this.type=this.element[0].type,"input"===e&&/radio|checkbox/.test(this.type)||t.error("Can't create checkboxradio on element.nodeName="+e+" and element.type="+this.type)},_enhance:function(){this._updateIcon(this.element[0].checked)},widget:function(){return this.label},_getRadioGroup:function(){var e,i=this.element[0].name,s="input[name='"+t.ui.escapeSelector(i)+"']";return i?(e=this.form.length?t(this.form[0].elements).filter(s):t(s).filter(function(){return 0===t(this).form().length}),e.not(this.element)):t([])},_toggleClasses:function(){var e=this.element[0].checked;this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",e),this.options.icon&&"checkbox"===this.type&&this._toggleClass(this.icon,null,"ui-icon-check ui-state-checked",e)._toggleClass(this.icon,null,"ui-icon-blank",!e),"radio"===this.type&&this._getRadioGroup().each(function(){var e=t(this).checkboxradio("instance");e&&e._removeClass(e.label,"ui-checkboxradio-checked","ui-state-active")})},_destroy:function(){this._unbindFormResetHandler(),this.icon&&(this.icon.remove(),this.iconSpace.remove())},_setOption:function(t,e){return"label"!==t||e?(this._super(t,e),"disabled"===t?(this._toggleClass(this.label,null,"ui-state-disabled",e),this.element[0].disabled=e,void 0):(this.refresh(),void 0)):void 0},_updateIcon:function(e){var i="ui-icon ui-icon-background ";this.options.icon?(this.icon||(this.icon=t("<span>"),this.iconSpace=t("<span> </span>"),this._addClass(this.iconSpace,"ui-checkboxradio-icon-space")),"checkbox"===this.type?(i+=e?"ui-icon-check ui-state-checked":"ui-icon-blank",this._removeClass(this.icon,null,e?"ui-icon-blank":"ui-icon-check")):i+="ui-icon-blank",this._addClass(this.icon,"ui-checkboxradio-icon",i),e||this._removeClass(this.icon,null,"ui-icon-check ui-state-checked"),this.icon.prependTo(this.label).after(this.iconSpace)):void 0!==this.icon&&(this.icon.remove(),this.iconSpace.remove(),delete this.icon)},_updateLabel:function(){var t=this.label.contents().not(this.element[0]);this.icon&&(t=t.not(this.icon[0])),this.iconSpace&&(t=t.not(this.iconSpace[0])),t.remove(),this.label.append(this.options.label)},refresh:function(){var t=this.element[0].checked,e=this.element[0].disabled;this._updateIcon(t),this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",t),null!==this.options.label&&this._updateLabel(),e!==this.options.disabled&&this._setOptions({disabled:e})}}]),t.ui.checkboxradio,t.widget("ui.button",{version:"1.12.1",defaultElement:"<button>",options:{classes:{"ui-button":"ui-corner-all"},disabled:null,icon:null,iconPosition:"beginning",label:null,showLabel:!0},_getCreateOptions:function(){var t,e=this._super()||{};return this.isInput=this.element.is("input"),t=this.element[0].disabled,null!=t&&(e.disabled=t),this.originalLabel=this.isInput?this.element.val():this.element.html(),this.originalLabel&&(e.label=this.originalLabel),e},_create:function(){!this.option.showLabel&!this.options.icon&&(this.options.showLabel=!0),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled||!1),this.hasTitle=!!this.element.attr("title"),this.options.label&&this.options.label!==this.originalLabel&&(this.isInput?this.element.val(this.options.label):this.element.html(this.options.label)),this._addClass("ui-button","ui-widget"),this._setOption("disabled",this.options.disabled),this._enhance(),this.element.is("a")&&this._on({keyup:function(e){e.keyCode===t.ui.keyCode.SPACE&&(e.preventDefault(),this.element[0].click?this.element[0].click():this.element.trigger("click"))}})},_enhance:function(){this.element.is("button")||this.element.attr("role","button"),this.options.icon&&(this._updateIcon("icon",this.options.icon),this._updateTooltip())},_updateTooltip:function(){this.title=this.element.attr("title"),this.options.showLabel||this.title||this.element.attr("title",this.options.label)},_updateIcon:function(e,i){var s="iconPosition"!==e,n=s?this.options.iconPosition:i,o="top"===n||"bottom"===n;this.icon?s&&this._removeClass(this.icon,null,this.options.icon):(this.icon=t("<span>"),this._addClass(this.icon,"ui-button-icon","ui-icon"),this.options.showLabel||this._addClass("ui-button-icon-only")),s&&this._addClass(this.icon,null,i),this._attachIcon(n),o?(this._addClass(this.icon,null,"ui-widget-icon-block"),this.iconSpace&&this.iconSpace.remove()):(this.iconSpace||(this.iconSpace=t("<span> </span>"),this._addClass(this.iconSpace,"ui-button-icon-space")),this._removeClass(this.icon,null,"ui-wiget-icon-block"),this._attachIconSpace(n))},_destroy:function(){this.element.removeAttr("role"),this.icon&&this.icon.remove(),this.iconSpace&&this.iconSpace.remove(),this.hasTitle||this.element.removeAttr("title")},_attachIconSpace:function(t){this.icon[/^(?:end|bottom)/.test(t)?"before":"after"](this.iconSpace)},_attachIcon:function(t){this.element[/^(?:end|bottom)/.test(t)?"append":"prepend"](this.icon)},_setOptions:function(t){var e=void 0===t.showLabel?this.options.showLabel:t.showLabel,i=void 0===t.icon?this.options.icon:t.icon;e||i||(t.showLabel=!0),this._super(t)},_setOption:function(t,e){"icon"===t&&(e?this._updateIcon(t,e):this.icon&&(this.icon.remove(),this.iconSpace&&this.iconSpace.remove())),"iconPosition"===t&&this._updateIcon(t,e),"showLabel"===t&&(this._toggleClass("ui-button-icon-only",null,!e),this._updateTooltip()),"label"===t&&(this.isInput?this.element.val(e):(this.element.html(e),this.icon&&(this._attachIcon(this.options.iconPosition),this._attachIconSpace(this.options.iconPosition)))),this._super(t,e),"disabled"===t&&(this._toggleClass(null,"ui-state-disabled",e),this.element[0].disabled=e,e&&this.element.blur())},refresh:function(){var t=this.element.is("input, button")?this.element[0].disabled:this.element.hasClass("ui-button-disabled");t!==this.options.disabled&&this._setOptions({disabled:t}),this._updateTooltip()}}),t.uiBackCompat!==!1&&(t.widget("ui.button",t.ui.button,{options:{text:!0,icons:{primary:null,secondary:null}},_create:function(){this.options.showLabel&&!this.options.text&&(this.options.showLabel=this.options.text),!this.options.showLabel&&this.options.text&&(this.options.text=this.options.showLabel),this.options.icon||!this.options.icons.primary&&!this.options.icons.secondary?this.options.icon&&(this.options.icons.primary=this.options.icon):this.options.icons.primary?this.options.icon=this.options.icons.primary:(this.options.icon=this.options.icons.secondary,this.options.iconPosition="end"),this._super()},_setOption:function(t,e){return"text"===t?(this._super("showLabel",e),void 0):("showLabel"===t&&(this.options.text=e),"icon"===t&&(this.options.icons.primary=e),"icons"===t&&(e.primary?(this._super("icon",e.primary),this._super("iconPosition","beginning")):e.secondary&&(this._super("icon",e.secondary),this._super("iconPosition","end"))),this._superApply(arguments),void 0)}}),t.fn.button=function(e){return function(){return!this.length||this.length&&"INPUT"!==this[0].tagName||this.length&&"INPUT"===this[0].tagName&&"checkbox"!==this.attr("type")&&"radio"!==this.attr("type")?e.apply(this,arguments):(t.ui.checkboxradio||t.error("Checkboxradio widget missing"),0===arguments.length?this.checkboxradio({icon:!1}):this.checkboxradio.apply(this,arguments))}}(t.fn.button),t.fn.buttonset=function(){return t.ui.controlgroup||t.error("Controlgroup widget missing"),"option"===arguments[0]&&"items"===arguments[1]&&arguments[2]?this.controlgroup.apply(this,[arguments[0],"items.button",arguments[2]]):"option"===arguments[0]&&"items"===arguments[1]?this.controlgroup.apply(this,[arguments[0],"items.button"]):("object"==typeof arguments[0]&&arguments[0].items&&(arguments[0].items={button:arguments[0].items}),this.controlgroup.apply(this,arguments))}),t.ui.button,t.extend(t.ui,{datepicker:{version:"1.12.1"}});var m;t.extend(s.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(t){return a(this._defaults,t||{}),this},_attachDatepicker:function(e,i){var s,n,o;s=e.nodeName.toLowerCase(),n="div"===s||"span"===s,e.id||(this.uuid+=1,e.id="dp"+this.uuid),o=this._newInst(t(e),n),o.settings=t.extend({},i||{}),"input"===s?this._connectDatepicker(e,o):n&&this._inlineDatepicker(e,o)},_newInst:function(e,i){var s=e[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:s,input:e,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:i,dpDiv:i?n(t("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(e,i){var s=t(e);i.append=t([]),i.trigger=t([]),s.hasClass(this.markerClassName)||(this._attachments(s,i),s.addClass(this.markerClassName).on("keydown",this._doKeyDown).on("keypress",this._doKeyPress).on("keyup",this._doKeyUp),this._autoSize(i),t.data(e,"datepicker",i),i.settings.disabled&&this._disableDatepicker(e))},_attachments:function(e,i){var s,n,o,a=this._get(i,"appendText"),r=this._get(i,"isRTL");i.append&&i.append.remove(),a&&(i.append=t("<span class='"+this._appendClass+"'>"+a+"</span>"),e[r?"before":"after"](i.append)),e.off("focus",this._showDatepicker),i.trigger&&i.trigger.remove(),s=this._get(i,"showOn"),("focus"===s||"both"===s)&&e.on("focus",this._showDatepicker),("button"===s||"both"===s)&&(n=this._get(i,"buttonText"),o=this._get(i,"buttonImage"),i.trigger=t(this._get(i,"buttonImageOnly")?t("<img/>").addClass(this._triggerClass).attr({src:o,alt:n,title:n}):t("<button type='button'></button>").addClass(this._triggerClass).html(o?t("<img/>").attr({src:o,alt:n,title:n}):n)),e[r?"before":"after"](i.trigger),i.trigger.on("click",function(){return t.datepicker._datepickerShowing&&t.datepicker._lastInput===e[0]?t.datepicker._hideDatepicker():t.datepicker._datepickerShowing&&t.datepicker._lastInput!==e[0]?(t.datepicker._hideDatepicker(),t.datepicker._showDatepicker(e[0])):t.datepicker._showDatepicker(e[0]),!1}))},_autoSize:function(t){if(this._get(t,"autoSize")&&!t.inline){var e,i,s,n,o=new Date(2009,11,20),a=this._get(t,"dateFormat");a.match(/[DM]/)&&(e=function(t){for(i=0,s=0,n=0;t.length>n;n++)t[n].length>i&&(i=t[n].length,s=n);return s},o.setMonth(e(this._get(t,a.match(/MM/)?"monthNames":"monthNamesShort"))),o.setDate(e(this._get(t,a.match(/DD/)?"dayNames":"dayNamesShort"))+20-o.getDay())),t.input.attr("size",this._formatDate(t,o).length)}},_inlineDatepicker:function(e,i){var s=t(e);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),t.data(e,"datepicker",i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(e),i.dpDiv.css("display","block"))},_dialogDatepicker:function(e,i,s,n,o){var r,h,l,c,u,d=this._dialogInst;return d||(this.uuid+=1,r="dp"+this.uuid,this._dialogInput=t("<input type='text' id='"+r+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.on("keydown",this._doKeyDown),t("body").append(this._dialogInput),d=this._dialogInst=this._newInst(this._dialogInput,!1),d.settings={},t.data(this._dialogInput[0],"datepicker",d)),a(d.settings,n||{}),i=i&&i.constructor===Date?this._formatDate(d,i):i,this._dialogInput.val(i),this._pos=o?o.length?o:[o.pageX,o.pageY]:null,this._pos||(h=document.documentElement.clientWidth,l=document.documentElement.clientHeight,c=document.documentElement.scrollLeft||document.body.scrollLeft,u=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[h/2-100+c,l/2-150+u]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),d.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),t.blockUI&&t.blockUI(this.dpDiv),t.data(this._dialogInput[0],"datepicker",d),this},_destroyDatepicker:function(e){var i,s=t(e),n=t.data(e,"datepicker");s.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),t.removeData(e,"datepicker"),"input"===i?(n.append.remove(),n.trigger.remove(),s.removeClass(this.markerClassName).off("focus",this._showDatepicker).off("keydown",this._doKeyDown).off("keypress",this._doKeyPress).off("keyup",this._doKeyUp)):("div"===i||"span"===i)&&s.removeClass(this.markerClassName).empty(),m===n&&(m=null))},_enableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!1,o.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}))},_disableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!0,o.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}),this._disabledInputs[this._disabledInputs.length]=e)},_isDisabledDatepicker:function(t){if(!t)return!1;for(var e=0;this._disabledInputs.length>e;e++)if(this._disabledInputs[e]===t)return!0;return!1},_getInst:function(e){try{return t.data(e,"datepicker")}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(e,i,s){var n,o,r,h,l=this._getInst(e);return 2===arguments.length&&"string"==typeof i?"defaults"===i?t.extend({},t.datepicker._defaults):l?"all"===i?t.extend({},l.settings):this._get(l,i):null:(n=i||{},"string"==typeof i&&(n={},n[i]=s),l&&(this._curInst===l&&this._hideDatepicker(),o=this._getDateDatepicker(e,!0),r=this._getMinMaxDate(l,"min"),h=this._getMinMaxDate(l,"max"),a(l.settings,n),null!==r&&void 0!==n.dateFormat&&void 0===n.minDate&&(l.settings.minDate=this._formatDate(l,r)),null!==h&&void 0!==n.dateFormat&&void 0===n.maxDate&&(l.settings.maxDate=this._formatDate(l,h)),"disabled"in n&&(n.disabled?this._disableDatepicker(e):this._enableDatepicker(e)),this._attachments(t(e),l),this._autoSize(l),this._setDate(l,o),this._updateAlternate(l),this._updateDatepicker(l)),void 0)},_changeDatepicker:function(t,e,i){this._optionDatepicker(t,e,i)},_refreshDatepicker:function(t){var e=this._getInst(t);e&&this._updateDatepicker(e)},_setDateDatepicker:function(t,e){var i=this._getInst(t);i&&(this._setDate(i,e),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(t,e){var i=this._getInst(t);return i&&!i.inline&&this._setDateFromField(i,e),i?this._getDate(i):null},_doKeyDown:function(e){var i,s,n,o=t.datepicker._getInst(e.target),a=!0,r=o.dpDiv.is(".ui-datepicker-rtl");if(o._keyEvent=!0,t.datepicker._datepickerShowing)switch(e.keyCode){case 9:t.datepicker._hideDatepicker(),a=!1;break;case 13:return n=t("td."+t.datepicker._dayOverClass+":not(."+t.datepicker._currentClass+")",o.dpDiv),n[0]&&t.datepicker._selectDay(e.target,o.selectedMonth,o.selectedYear,n[0]),i=t.datepicker._get(o,"onSelect"),i?(s=t.datepicker._formatDate(o),i.apply(o.input?o.input[0]:null,[s,o])):t.datepicker._hideDatepicker(),!1;case 27:t.datepicker._hideDatepicker();break;case 33:t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 34:t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 35:(e.ctrlKey||e.metaKey)&&t.datepicker._clearDate(e.target),a=e.ctrlKey||e.metaKey;break;case 36:(e.ctrlKey||e.metaKey)&&t.datepicker._gotoToday(e.target),a=e.ctrlKey||e.metaKey;break;case 37:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?1:-1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 38:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,-7,"D"),a=e.ctrlKey||e.metaKey;break;case 39:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?-1:1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 40:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,7,"D"),a=e.ctrlKey||e.metaKey;break;default:a=!1}else 36===e.keyCode&&e.ctrlKey?t.datepicker._showDatepicker(this):a=!1;a&&(e.preventDefault(),e.stopPropagation())},_doKeyPress:function(e){var i,s,n=t.datepicker._getInst(e.target);return t.datepicker._get(n,"constrainInput")?(i=t.datepicker._possibleChars(t.datepicker._get(n,"dateFormat")),s=String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),e.ctrlKey||e.metaKey||" ">s||!i||i.indexOf(s)>-1):void 0},_doKeyUp:function(e){var i,s=t.datepicker._getInst(e.target);if(s.input.val()!==s.lastVal)try{i=t.datepicker.parseDate(t.datepicker._get(s,"dateFormat"),s.input?s.input.val():null,t.datepicker._getFormatConfig(s)),i&&(t.datepicker._setDateFromField(s),t.datepicker._updateAlternate(s),t.datepicker._updateDatepicker(s))}catch(n){}return!0},_showDatepicker:function(e){if(e=e.target||e,"input"!==e.nodeName.toLowerCase()&&(e=t("input",e.parentNode)[0]),!t.datepicker._isDisabledDatepicker(e)&&t.datepicker._lastInput!==e){var s,n,o,r,h,l,c;s=t.datepicker._getInst(e),t.datepicker._curInst&&t.datepicker._curInst!==s&&(t.datepicker._curInst.dpDiv.stop(!0,!0),s&&t.datepicker._datepickerShowing&&t.datepicker._hideDatepicker(t.datepicker._curInst.input[0])),n=t.datepicker._get(s,"beforeShow"),o=n?n.apply(e,[e,s]):{},o!==!1&&(a(s.settings,o),s.lastVal=null,t.datepicker._lastInput=e,t.datepicker._setDateFromField(s),t.datepicker._inDialog&&(e.value=""),t.datepicker._pos||(t.datepicker._pos=t.datepicker._findPos(e),t.datepicker._pos[1]+=e.offsetHeight),r=!1,t(e).parents().each(function(){return r|="fixed"===t(this).css("position"),!r}),h={left:t.datepicker._pos[0],top:t.datepicker._pos[1]},t.datepicker._pos=null,s.dpDiv.empty(),s.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),t.datepicker._updateDatepicker(s),h=t.datepicker._checkOffset(s,h,r),s.dpDiv.css({position:t.datepicker._inDialog&&t.blockUI?"static":r?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"}),s.inline||(l=t.datepicker._get(s,"showAnim"),c=t.datepicker._get(s,"duration"),s.dpDiv.css("z-index",i(t(e))+1),t.datepicker._datepickerShowing=!0,t.effects&&t.effects.effect[l]?s.dpDiv.show(l,t.datepicker._get(s,"showOptions"),c):s.dpDiv[l||"show"](l?c:null),t.datepicker._shouldFocusInput(s)&&s.input.trigger("focus"),t.datepicker._curInst=s)) +}},_updateDatepicker:function(e){this.maxRows=4,m=e,e.dpDiv.empty().append(this._generateHTML(e)),this._attachHandlers(e);var i,s=this._getNumberOfMonths(e),n=s[1],a=17,r=e.dpDiv.find("."+this._dayOverClass+" a");r.length>0&&o.apply(r.get(0)),e.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),n>1&&e.dpDiv.addClass("ui-datepicker-multi-"+n).css("width",a*n+"em"),e.dpDiv[(1!==s[0]||1!==s[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),e.dpDiv[(this._get(e,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),e===t.datepicker._curInst&&t.datepicker._datepickerShowing&&t.datepicker._shouldFocusInput(e)&&e.input.trigger("focus"),e.yearshtml&&(i=e.yearshtml,setTimeout(function(){i===e.yearshtml&&e.yearshtml&&e.dpDiv.find("select.ui-datepicker-year:first").replaceWith(e.yearshtml),i=e.yearshtml=null},0))},_shouldFocusInput:function(t){return t.input&&t.input.is(":visible")&&!t.input.is(":disabled")&&!t.input.is(":focus")},_checkOffset:function(e,i,s){var n=e.dpDiv.outerWidth(),o=e.dpDiv.outerHeight(),a=e.input?e.input.outerWidth():0,r=e.input?e.input.outerHeight():0,h=document.documentElement.clientWidth+(s?0:t(document).scrollLeft()),l=document.documentElement.clientHeight+(s?0:t(document).scrollTop());return i.left-=this._get(e,"isRTL")?n-a:0,i.left-=s&&i.left===e.input.offset().left?t(document).scrollLeft():0,i.top-=s&&i.top===e.input.offset().top+r?t(document).scrollTop():0,i.left-=Math.min(i.left,i.left+n>h&&h>n?Math.abs(i.left+n-h):0),i.top-=Math.min(i.top,i.top+o>l&&l>o?Math.abs(o+r):0),i},_findPos:function(e){for(var i,s=this._getInst(e),n=this._get(s,"isRTL");e&&("hidden"===e.type||1!==e.nodeType||t.expr.filters.hidden(e));)e=e[n?"previousSibling":"nextSibling"];return i=t(e).offset(),[i.left,i.top]},_hideDatepicker:function(e){var i,s,n,o,a=this._curInst;!a||e&&a!==t.data(e,"datepicker")||this._datepickerShowing&&(i=this._get(a,"showAnim"),s=this._get(a,"duration"),n=function(){t.datepicker._tidyDialog(a)},t.effects&&(t.effects.effect[i]||t.effects[i])?a.dpDiv.hide(i,t.datepicker._get(a,"showOptions"),s,n):a.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,n),i||n(),this._datepickerShowing=!1,o=this._get(a,"onClose"),o&&o.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),t.blockUI&&(t.unblockUI(),t("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(t){t.dpDiv.removeClass(this._dialogClass).off(".ui-datepicker-calendar")},_checkExternalClick:function(e){if(t.datepicker._curInst){var i=t(e.target),s=t.datepicker._getInst(i[0]);(i[0].id!==t.datepicker._mainDivId&&0===i.parents("#"+t.datepicker._mainDivId).length&&!i.hasClass(t.datepicker.markerClassName)&&!i.closest("."+t.datepicker._triggerClass).length&&t.datepicker._datepickerShowing&&(!t.datepicker._inDialog||!t.blockUI)||i.hasClass(t.datepicker.markerClassName)&&t.datepicker._curInst!==s)&&t.datepicker._hideDatepicker()}},_adjustDate:function(e,i,s){var n=t(e),o=this._getInst(n[0]);this._isDisabledDatepicker(n[0])||(this._adjustInstDate(o,i+("M"===s?this._get(o,"showCurrentAtPos"):0),s),this._updateDatepicker(o))},_gotoToday:function(e){var i,s=t(e),n=this._getInst(s[0]);this._get(n,"gotoCurrent")&&n.currentDay?(n.selectedDay=n.currentDay,n.drawMonth=n.selectedMonth=n.currentMonth,n.drawYear=n.selectedYear=n.currentYear):(i=new Date,n.selectedDay=i.getDate(),n.drawMonth=n.selectedMonth=i.getMonth(),n.drawYear=n.selectedYear=i.getFullYear()),this._notifyChange(n),this._adjustDate(s)},_selectMonthYear:function(e,i,s){var n=t(e),o=this._getInst(n[0]);o["selected"+("M"===s?"Month":"Year")]=o["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(o),this._adjustDate(n)},_selectDay:function(e,i,s,n){var o,a=t(e);t(n).hasClass(this._unselectableClass)||this._isDisabledDatepicker(a[0])||(o=this._getInst(a[0]),o.selectedDay=o.currentDay=t("a",n).html(),o.selectedMonth=o.currentMonth=i,o.selectedYear=o.currentYear=s,this._selectDate(e,this._formatDate(o,o.currentDay,o.currentMonth,o.currentYear)))},_clearDate:function(e){var i=t(e);this._selectDate(i,"")},_selectDate:function(e,i){var s,n=t(e),o=this._getInst(n[0]);i=null!=i?i:this._formatDate(o),o.input&&o.input.val(i),this._updateAlternate(o),s=this._get(o,"onSelect"),s?s.apply(o.input?o.input[0]:null,[i,o]):o.input&&o.input.trigger("change"),o.inline?this._updateDatepicker(o):(this._hideDatepicker(),this._lastInput=o.input[0],"object"!=typeof o.input[0]&&o.input.trigger("focus"),this._lastInput=null)},_updateAlternate:function(e){var i,s,n,o=this._get(e,"altField");o&&(i=this._get(e,"altFormat")||this._get(e,"dateFormat"),s=this._getDate(e),n=this.formatDate(i,s,this._getFormatConfig(e)),t(o).val(n))},noWeekends:function(t){var e=t.getDay();return[e>0&&6>e,""]},iso8601Week:function(t){var e,i=new Date(t.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),e=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((e-i)/864e5)/7)+1},parseDate:function(e,i,s){if(null==e||null==i)throw"Invalid arguments";if(i="object"==typeof i?""+i:i+"",""===i)return null;var n,o,a,r,h=0,l=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,c="string"!=typeof l?l:(new Date).getFullYear()%100+parseInt(l,10),u=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,d=(s?s.dayNames:null)||this._defaults.dayNames,p=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,f=(s?s.monthNames:null)||this._defaults.monthNames,g=-1,m=-1,_=-1,v=-1,b=!1,y=function(t){var i=e.length>n+1&&e.charAt(n+1)===t;return i&&n++,i},w=function(t){var e=y(t),s="@"===t?14:"!"===t?20:"y"===t&&e?4:"o"===t?3:2,n="y"===t?s:1,o=RegExp("^\\d{"+n+","+s+"}"),a=i.substring(h).match(o);if(!a)throw"Missing number at position "+h;return h+=a[0].length,parseInt(a[0],10)},k=function(e,s,n){var o=-1,a=t.map(y(e)?n:s,function(t,e){return[[e,t]]}).sort(function(t,e){return-(t[1].length-e[1].length)});if(t.each(a,function(t,e){var s=e[1];return i.substr(h,s.length).toLowerCase()===s.toLowerCase()?(o=e[0],h+=s.length,!1):void 0}),-1!==o)return o+1;throw"Unknown name at position "+h},x=function(){if(i.charAt(h)!==e.charAt(n))throw"Unexpected literal at position "+h;h++};for(n=0;e.length>n;n++)if(b)"'"!==e.charAt(n)||y("'")?x():b=!1;else switch(e.charAt(n)){case"d":_=w("d");break;case"D":k("D",u,d);break;case"o":v=w("o");break;case"m":m=w("m");break;case"M":m=k("M",p,f);break;case"y":g=w("y");break;case"@":r=new Date(w("@")),g=r.getFullYear(),m=r.getMonth()+1,_=r.getDate();break;case"!":r=new Date((w("!")-this._ticksTo1970)/1e4),g=r.getFullYear(),m=r.getMonth()+1,_=r.getDate();break;case"'":y("'")?x():b=!0;break;default:x()}if(i.length>h&&(a=i.substr(h),!/^\s+/.test(a)))throw"Extra/unparsed characters found in date: "+a;if(-1===g?g=(new Date).getFullYear():100>g&&(g+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c>=g?0:-100)),v>-1)for(m=1,_=v;;){if(o=this._getDaysInMonth(g,m-1),o>=_)break;m++,_-=o}if(r=this._daylightSavingAdjust(new Date(g,m-1,_)),r.getFullYear()!==g||r.getMonth()+1!==m||r.getDate()!==_)throw"Invalid date";return r},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(t,e,i){if(!e)return"";var s,n=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,o=(i?i.dayNames:null)||this._defaults.dayNames,a=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,r=(i?i.monthNames:null)||this._defaults.monthNames,h=function(e){var i=t.length>s+1&&t.charAt(s+1)===e;return i&&s++,i},l=function(t,e,i){var s=""+e;if(h(t))for(;i>s.length;)s="0"+s;return s},c=function(t,e,i,s){return h(t)?s[e]:i[e]},u="",d=!1;if(e)for(s=0;t.length>s;s++)if(d)"'"!==t.charAt(s)||h("'")?u+=t.charAt(s):d=!1;else switch(t.charAt(s)){case"d":u+=l("d",e.getDate(),2);break;case"D":u+=c("D",e.getDay(),n,o);break;case"o":u+=l("o",Math.round((new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5),3);break;case"m":u+=l("m",e.getMonth()+1,2);break;case"M":u+=c("M",e.getMonth(),a,r);break;case"y":u+=h("y")?e.getFullYear():(10>e.getFullYear()%100?"0":"")+e.getFullYear()%100;break;case"@":u+=e.getTime();break;case"!":u+=1e4*e.getTime()+this._ticksTo1970;break;case"'":h("'")?u+="'":d=!0;break;default:u+=t.charAt(s)}return u},_possibleChars:function(t){var e,i="",s=!1,n=function(i){var s=t.length>e+1&&t.charAt(e+1)===i;return s&&e++,s};for(e=0;t.length>e;e++)if(s)"'"!==t.charAt(e)||n("'")?i+=t.charAt(e):s=!1;else switch(t.charAt(e)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":n("'")?i+="'":s=!0;break;default:i+=t.charAt(e)}return i},_get:function(t,e){return void 0!==t.settings[e]?t.settings[e]:this._defaults[e]},_setDateFromField:function(t,e){if(t.input.val()!==t.lastVal){var i=this._get(t,"dateFormat"),s=t.lastVal=t.input?t.input.val():null,n=this._getDefaultDate(t),o=n,a=this._getFormatConfig(t);try{o=this.parseDate(i,s,a)||n}catch(r){s=e?"":s}t.selectedDay=o.getDate(),t.drawMonth=t.selectedMonth=o.getMonth(),t.drawYear=t.selectedYear=o.getFullYear(),t.currentDay=s?o.getDate():0,t.currentMonth=s?o.getMonth():0,t.currentYear=s?o.getFullYear():0,this._adjustInstDate(t)}},_getDefaultDate:function(t){return this._restrictMinMax(t,this._determineDate(t,this._get(t,"defaultDate"),new Date))},_determineDate:function(e,i,s){var n=function(t){var e=new Date;return e.setDate(e.getDate()+t),e},o=function(i){try{return t.datepicker.parseDate(t.datepicker._get(e,"dateFormat"),i,t.datepicker._getFormatConfig(e))}catch(s){}for(var n=(i.toLowerCase().match(/^c/)?t.datepicker._getDate(e):null)||new Date,o=n.getFullYear(),a=n.getMonth(),r=n.getDate(),h=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,l=h.exec(i);l;){switch(l[2]||"d"){case"d":case"D":r+=parseInt(l[1],10);break;case"w":case"W":r+=7*parseInt(l[1],10);break;case"m":case"M":a+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a));break;case"y":case"Y":o+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a))}l=h.exec(i)}return new Date(o,a,r)},a=null==i||""===i?s:"string"==typeof i?o(i):"number"==typeof i?isNaN(i)?s:n(i):new Date(i.getTime());return a=a&&"Invalid Date"==""+a?s:a,a&&(a.setHours(0),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0)),this._daylightSavingAdjust(a)},_daylightSavingAdjust:function(t){return t?(t.setHours(t.getHours()>12?t.getHours()+2:0),t):null},_setDate:function(t,e,i){var s=!e,n=t.selectedMonth,o=t.selectedYear,a=this._restrictMinMax(t,this._determineDate(t,e,new Date));t.selectedDay=t.currentDay=a.getDate(),t.drawMonth=t.selectedMonth=t.currentMonth=a.getMonth(),t.drawYear=t.selectedYear=t.currentYear=a.getFullYear(),n===t.selectedMonth&&o===t.selectedYear||i||this._notifyChange(t),this._adjustInstDate(t),t.input&&t.input.val(s?"":this._formatDate(t))},_getDate:function(t){var e=!t.currentYear||t.input&&""===t.input.val()?null:this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return e},_attachHandlers:function(e){var i=this._get(e,"stepMonths"),s="#"+e.id.replace(/\\\\/g,"\\");e.dpDiv.find("[data-handler]").map(function(){var e={prev:function(){t.datepicker._adjustDate(s,-i,"M")},next:function(){t.datepicker._adjustDate(s,+i,"M")},hide:function(){t.datepicker._hideDatepicker()},today:function(){t.datepicker._gotoToday(s)},selectDay:function(){return t.datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return t.datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return t.datepicker._selectMonthYear(s,this,"Y"),!1}};t(this).on(this.getAttribute("data-event"),e[this.getAttribute("data-handler")])})},_generateHTML:function(t){var e,i,s,n,o,a,r,h,l,c,u,d,p,f,g,m,_,v,b,y,w,k,x,C,D,I,T,P,M,S,H,z,O,A,N,W,E,F,L,R=new Date,B=this._daylightSavingAdjust(new Date(R.getFullYear(),R.getMonth(),R.getDate())),Y=this._get(t,"isRTL"),j=this._get(t,"showButtonPanel"),q=this._get(t,"hideIfNoPrevNext"),K=this._get(t,"navigationAsDateFormat"),U=this._getNumberOfMonths(t),V=this._get(t,"showCurrentAtPos"),$=this._get(t,"stepMonths"),X=1!==U[0]||1!==U[1],G=this._daylightSavingAdjust(t.currentDay?new Date(t.currentYear,t.currentMonth,t.currentDay):new Date(9999,9,9)),Q=this._getMinMaxDate(t,"min"),J=this._getMinMaxDate(t,"max"),Z=t.drawMonth-V,te=t.drawYear;if(0>Z&&(Z+=12,te--),J)for(e=this._daylightSavingAdjust(new Date(J.getFullYear(),J.getMonth()-U[0]*U[1]+1,J.getDate())),e=Q&&Q>e?Q:e;this._daylightSavingAdjust(new Date(te,Z,1))>e;)Z--,0>Z&&(Z=11,te--);for(t.drawMonth=Z,t.drawYear=te,i=this._get(t,"prevText"),i=K?this.formatDate(i,this._daylightSavingAdjust(new Date(te,Z-$,1)),this._getFormatConfig(t)):i,s=this._canAdjustMonth(t,-1,te,Z)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>":q?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>",n=this._get(t,"nextText"),n=K?this.formatDate(n,this._daylightSavingAdjust(new Date(te,Z+$,1)),this._getFormatConfig(t)):n,o=this._canAdjustMonth(t,1,te,Z)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>":q?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>",a=this._get(t,"currentText"),r=this._get(t,"gotoCurrent")&&t.currentDay?G:B,a=K?this.formatDate(a,r,this._getFormatConfig(t)):a,h=t.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(t,"closeText")+"</button>",l=j?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(Y?h:"")+(this._isInRange(t,r)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+a+"</button>":"")+(Y?"":h)+"</div>":"",c=parseInt(this._get(t,"firstDay"),10),c=isNaN(c)?0:c,u=this._get(t,"showWeek"),d=this._get(t,"dayNames"),p=this._get(t,"dayNamesMin"),f=this._get(t,"monthNames"),g=this._get(t,"monthNamesShort"),m=this._get(t,"beforeShowDay"),_=this._get(t,"showOtherMonths"),v=this._get(t,"selectOtherMonths"),b=this._getDefaultDate(t),y="",k=0;U[0]>k;k++){for(x="",this.maxRows=4,C=0;U[1]>C;C++){if(D=this._daylightSavingAdjust(new Date(te,Z,t.selectedDay)),I=" ui-corner-all",T="",X){if(T+="<div class='ui-datepicker-group",U[1]>1)switch(C){case 0:T+=" ui-datepicker-group-first",I=" ui-corner-"+(Y?"right":"left");break;case U[1]-1:T+=" ui-datepicker-group-last",I=" ui-corner-"+(Y?"left":"right");break;default:T+=" ui-datepicker-group-middle",I=""}T+="'>"}for(T+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+I+"'>"+(/all|left/.test(I)&&0===k?Y?o:s:"")+(/all|right/.test(I)&&0===k?Y?s:o:"")+this._generateMonthYearHeader(t,Z,te,Q,J,k>0||C>0,f,g)+"</div><table class='ui-datepicker-calendar'><thead>"+"<tr>",P=u?"<th class='ui-datepicker-week-col'>"+this._get(t,"weekHeader")+"</th>":"",w=0;7>w;w++)M=(w+c)%7,P+="<th scope='col'"+((w+c+6)%7>=5?" class='ui-datepicker-week-end'":"")+">"+"<span title='"+d[M]+"'>"+p[M]+"</span></th>";for(T+=P+"</tr></thead><tbody>",S=this._getDaysInMonth(te,Z),te===t.selectedYear&&Z===t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,S)),H=(this._getFirstDayOfMonth(te,Z)-c+7)%7,z=Math.ceil((H+S)/7),O=X?this.maxRows>z?this.maxRows:z:z,this.maxRows=O,A=this._daylightSavingAdjust(new Date(te,Z,1-H)),N=0;O>N;N++){for(T+="<tr>",W=u?"<td class='ui-datepicker-week-col'>"+this._get(t,"calculateWeek")(A)+"</td>":"",w=0;7>w;w++)E=m?m.apply(t.input?t.input[0]:null,[A]):[!0,""],F=A.getMonth()!==Z,L=F&&!v||!E[0]||Q&&Q>A||J&&A>J,W+="<td class='"+((w+c+6)%7>=5?" ui-datepicker-week-end":"")+(F?" ui-datepicker-other-month":"")+(A.getTime()===D.getTime()&&Z===t.selectedMonth&&t._keyEvent||b.getTime()===A.getTime()&&b.getTime()===D.getTime()?" "+this._dayOverClass:"")+(L?" "+this._unselectableClass+" ui-state-disabled":"")+(F&&!_?"":" "+E[1]+(A.getTime()===G.getTime()?" "+this._currentClass:"")+(A.getTime()===B.getTime()?" ui-datepicker-today":""))+"'"+(F&&!_||!E[2]?"":" title='"+E[2].replace(/'/g,"'")+"'")+(L?"":" data-handler='selectDay' data-event='click' data-month='"+A.getMonth()+"' data-year='"+A.getFullYear()+"'")+">"+(F&&!_?" ":L?"<span class='ui-state-default'>"+A.getDate()+"</span>":"<a class='ui-state-default"+(A.getTime()===B.getTime()?" ui-state-highlight":"")+(A.getTime()===G.getTime()?" ui-state-active":"")+(F?" ui-priority-secondary":"")+"' href='#'>"+A.getDate()+"</a>")+"</td>",A.setDate(A.getDate()+1),A=this._daylightSavingAdjust(A);T+=W+"</tr>"}Z++,Z>11&&(Z=0,te++),T+="</tbody></table>"+(X?"</div>"+(U[0]>0&&C===U[1]-1?"<div class='ui-datepicker-row-break'></div>":""):""),x+=T}y+=x}return y+=l,t._keyEvent=!1,y},_generateMonthYearHeader:function(t,e,i,s,n,o,a,r){var h,l,c,u,d,p,f,g,m=this._get(t,"changeMonth"),_=this._get(t,"changeYear"),v=this._get(t,"showMonthAfterYear"),b="<div class='ui-datepicker-title'>",y="";if(o||!m)y+="<span class='ui-datepicker-month'>"+a[e]+"</span>";else{for(h=s&&s.getFullYear()===i,l=n&&n.getFullYear()===i,y+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",c=0;12>c;c++)(!h||c>=s.getMonth())&&(!l||n.getMonth()>=c)&&(y+="<option value='"+c+"'"+(c===e?" selected='selected'":"")+">"+r[c]+"</option>");y+="</select>"}if(v||(b+=y+(!o&&m&&_?"":" ")),!t.yearshtml)if(t.yearshtml="",o||!_)b+="<span class='ui-datepicker-year'>"+i+"</span>";else{for(u=this._get(t,"yearRange").split(":"),d=(new Date).getFullYear(),p=function(t){var e=t.match(/c[+\-].*/)?i+parseInt(t.substring(1),10):t.match(/[+\-].*/)?d+parseInt(t,10):parseInt(t,10);return isNaN(e)?d:e},f=p(u[0]),g=Math.max(f,p(u[1]||"")),f=s?Math.max(f,s.getFullYear()):f,g=n?Math.min(g,n.getFullYear()):g,t.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";g>=f;f++)t.yearshtml+="<option value='"+f+"'"+(f===i?" selected='selected'":"")+">"+f+"</option>";t.yearshtml+="</select>",b+=t.yearshtml,t.yearshtml=null}return b+=this._get(t,"yearSuffix"),v&&(b+=(!o&&m&&_?"":" ")+y),b+="</div>"},_adjustInstDate:function(t,e,i){var s=t.selectedYear+("Y"===i?e:0),n=t.selectedMonth+("M"===i?e:0),o=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+("D"===i?e:0),a=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,o)));t.selectedDay=a.getDate(),t.drawMonth=t.selectedMonth=a.getMonth(),t.drawYear=t.selectedYear=a.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),s=this._getMinMaxDate(t,"max"),n=i&&i>e?i:e;return s&&n>s?s:n},_notifyChange:function(t){var e=this._get(t,"onChangeMonthYear");e&&e.apply(t.input?t.input[0]:null,[t.selectedYear,t.selectedMonth+1,t])},_getNumberOfMonths:function(t){var e=this._get(t,"numberOfMonths");return null==e?[1,1]:"number"==typeof e?[1,e]:e},_getMinMaxDate:function(t,e){return this._determineDate(t,this._get(t,e+"Date"),null)},_getDaysInMonth:function(t,e){return 32-this._daylightSavingAdjust(new Date(t,e,32)).getDate()},_getFirstDayOfMonth:function(t,e){return new Date(t,e,1).getDay()},_canAdjustMonth:function(t,e,i,s){var n=this._getNumberOfMonths(t),o=this._daylightSavingAdjust(new Date(i,s+(0>e?e:n[0]*n[1]),1));return 0>e&&o.setDate(this._getDaysInMonth(o.getFullYear(),o.getMonth())),this._isInRange(t,o)},_isInRange:function(t,e){var i,s,n=this._getMinMaxDate(t,"min"),o=this._getMinMaxDate(t,"max"),a=null,r=null,h=this._get(t,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),a=parseInt(i[0],10),r=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(a+=s),i[1].match(/[+\-].*/)&&(r+=s)),(!n||e.getTime()>=n.getTime())&&(!o||e.getTime()<=o.getTime())&&(!a||e.getFullYear()>=a)&&(!r||r>=e.getFullYear())},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),{shortYearCutoff:e,dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);var n=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),n,this._getFormatConfig(t))}}),t.fn.datepicker=function(e){if(!this.length)return this;t.datepicker.initialized||(t(document).on("mousedown",t.datepicker._checkExternalClick),t.datepicker.initialized=!0),0===t("#"+t.datepicker._mainDivId).length&&t("body").append(t.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof e||"isDisabled"!==e&&"getDate"!==e&&"widget"!==e?"option"===e&&2===arguments.length&&"string"==typeof arguments[1]?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof e?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this].concat(i)):t.datepicker._attachDatepicker(this,e)}):t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i))},t.datepicker=new s,t.datepicker.initialized=!1,t.datepicker.uuid=(new Date).getTime(),t.datepicker.version="1.12.1",t.datepicker,t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var _=!1;t(document).on("mouseup",function(){_=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!_){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,n="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),_=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,_=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.ui.safeBlur=function(e){e&&"body"!==e.nodeName.toLowerCase()&&t(e).trigger("blur")},t.widget("ui.draggable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass("ui-draggable"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(e){var i=this.options;return this.helper||i.disabled||t(e.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(e),this.handle?(this._blurActiveElement(e),this._blockFrames(i.iframeFix===!0?"iframe":i.iframeFix),!0):!1)},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map(function(){var e=t(this);return t("<div>").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var i=t.ui.safeActiveElement(this.document[0]),s=t(e.target);s.closest(i).length||t.ui.safeBlur(i)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===t(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",e)===!1?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",e,s)===!1)return this._mouseUp(new t.Event("mouseup",e)),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,s=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(s=t.ui.ddmanager.drop(this,e)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",e)!==!1&&i._clear()}):this._trigger("stop",e)!==!1&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.trigger("focus"),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new t.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(e){return this.options.handle?!!t(e.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper),n=s?t(i.helper.apply(this.element[0],[e])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return n.parents("body").length||n.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css("position"))||n.css("position","absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())} +},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options,o=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?(this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,t(o).width()-this.helperProportions.width-this.margins.left,(t(o).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=t(n.containment),s=i[0],s&&(e=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(e?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i),void 0):(this.containment=null,void 0)},_convertPositionTo:function(t,e){e||(e=this.position);var i="absolute"===t?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,s,n,o,a=this.options,r=this._isRootNode(this.scrollParent[0]),h=t.pageX,l=t.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,t.pageX-this.offset.click.left<i[0]&&(h=i[0]+this.offset.click.left),t.pageY-this.offset.click.top<i[1]&&(l=i[1]+this.offset.click.top),t.pageX-this.offset.click.left>i[2]&&(h=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),a.grid&&(n=a.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/a.grid[1])*a.grid[1]:this.originalPageY,l=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-a.grid[1]:n+a.grid[1]:n,o=a.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/a.grid[0])*a.grid[0]:this.originalPageX,h=i?o-this.offset.click.left>=i[0]||o-this.offset.click.left>i[2]?o:o-this.offset.click.left>=i[0]?o-a.grid[0]:o+a.grid[0]:o),"y"===a.axis&&(h=this.originalPageX),"x"===a.axis&&(l=this.originalPageY)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:h-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(e,i,s){return s=s||this._uiHash(),t.ui.plugin.call(this,e,[i,s,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i,s){var n=t.extend({},i,{item:s.element});s.sortables=[],t(s.options.connectToSortable).each(function(){var i=t(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",e,n))})},stop:function(e,i,s){var n=t.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,t.each(s.sortables,function(){var t=this;t.isOver?(t.isOver=0,s.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,n))})},drag:function(e,i,s){t.each(s.sortables,function(){var n=!1,o=this;o.positionAbs=s.positionAbs,o.helperProportions=s.helperProportions,o.offset.click=s.offset.click,o._intersectsWith(o.containerCache)&&(n=!0,t.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&t.contains(o.element[0],this.element[0])&&(n=!1),n})),n?(o.isOver||(o.isOver=1,s._parent=i.helper.parent(),o.currentItem=i.helper.appendTo(o.element).data("ui-sortable-item",!0),o.options._helper=o.options.helper,o.options.helper=function(){return i.helper[0]},e.target=o.currentItem[0],o._mouseCapture(e,!0),o._mouseStart(e,!0,!0),o.offset.click.top=s.offset.click.top,o.offset.click.left=s.offset.click.left,o.offset.parent.left-=s.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=s.offset.parent.top-o.offset.parent.top,s._trigger("toSortable",e),s.dropped=o.element,t.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,o.fromOutside=s),o.currentItem&&(o._mouseDrag(e),i.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger("out",e,o._uiHash(o)),o._mouseStop(e,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(e),i.position=s._generatePosition(e,!0),s._trigger("fromSortable",e),s.dropped=!1,t.each(s.sortables,function(){this.refreshPositions()}))})}}),t.ui.plugin.add("draggable","cursor",{start:function(e,i,s){var n=t("body"),o=s.options;n.css("cursor")&&(o._cursor=n.css("cursor")),n.css("cursor",o.cursor)},stop:function(e,i,s){var n=s.options;n._cursor&&t("body").css("cursor",n._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("opacity")&&(o._opacity=n.css("opacity")),n.css("opacity",o.opacity)},stop:function(e,i,s){var n=s.options;n._opacity&&t(i.helper).css("opacity",n._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,s){var n=s.options,o=!1,a=s.scrollParentNotHidden[0],r=s.document[0];a!==r&&"HTML"!==a.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+a.offsetHeight-e.pageY<n.scrollSensitivity?a.scrollTop=o=a.scrollTop+n.scrollSpeed:e.pageY-s.overflowOffset.top<n.scrollSensitivity&&(a.scrollTop=o=a.scrollTop-n.scrollSpeed)),n.axis&&"y"===n.axis||(s.overflowOffset.left+a.offsetWidth-e.pageX<n.scrollSensitivity?a.scrollLeft=o=a.scrollLeft+n.scrollSpeed:e.pageX-s.overflowOffset.left<n.scrollSensitivity&&(a.scrollLeft=o=a.scrollLeft-n.scrollSpeed))):(n.axis&&"x"===n.axis||(e.pageY-t(r).scrollTop()<n.scrollSensitivity?o=t(r).scrollTop(t(r).scrollTop()-n.scrollSpeed):t(window).height()-(e.pageY-t(r).scrollTop())<n.scrollSensitivity&&(o=t(r).scrollTop(t(r).scrollTop()+n.scrollSpeed))),n.axis&&"y"===n.axis||(e.pageX-t(r).scrollLeft()<n.scrollSensitivity?o=t(r).scrollLeft(t(r).scrollLeft()-n.scrollSpeed):t(window).width()-(e.pageX-t(r).scrollLeft())<n.scrollSensitivity&&(o=t(r).scrollLeft(t(r).scrollLeft()+n.scrollSpeed)))),o!==!1&&t.ui.ddmanager&&!n.dropBehaviour&&t.ui.ddmanager.prepareOffsets(s,e)}}),t.ui.plugin.add("draggable","snap",{start:function(e,i,s){var n=s.options;s.snapElements=[],t(n.snap.constructor!==String?n.snap.items||":data(ui-draggable)":n.snap).each(function(){var e=t(this),i=e.offset();this!==s.element[0]&&s.snapElements.push({item:this,width:e.outerWidth(),height:e.outerHeight(),top:i.top,left:i.left})})},drag:function(e,i,s){var n,o,a,r,h,l,c,u,d,p,f=s.options,g=f.snapTolerance,m=i.offset.left,_=m+s.helperProportions.width,v=i.offset.top,b=v+s.helperProportions.height;for(d=s.snapElements.length-1;d>=0;d--)h=s.snapElements[d].left-s.margins.left,l=h+s.snapElements[d].width,c=s.snapElements[d].top-s.margins.top,u=c+s.snapElements[d].height,h-g>_||m>l+g||c-g>b||v>u+g||!t.contains(s.snapElements[d].item.ownerDocument,s.snapElements[d].item)?(s.snapElements[d].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(n=g>=Math.abs(c-b),o=g>=Math.abs(u-v),a=g>=Math.abs(h-_),r=g>=Math.abs(l-m),n&&(i.position.top=s._convertPositionTo("relative",{top:c-s.helperProportions.height,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left)),p=n||o||a||r,"outer"!==f.snapMode&&(n=g>=Math.abs(c-v),o=g>=Math.abs(u-b),a=g>=Math.abs(h-m),r=g>=Math.abs(l-_),n&&(i.position.top=s._convertPositionTo("relative",{top:c,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left)),!s.snapElements[d].snapping&&(n||o||a||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=n||o||a||r||p)}}),t.ui.plugin.add("draggable","stack",{start:function(e,i,s){var n,o=s.options,a=t.makeArray(t(o.stack)).sort(function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)});a.length&&(n=parseInt(t(a[0]).css("zIndex"),10)||0,t(a).each(function(e){t(this).css("zIndex",n+e)}),this.css("zIndex",n+a.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("zIndex")&&(o._zIndex=n.css("zIndex")),n.css("zIndex",o.zIndex)},stop:function(e,i,s){var n=s.options;n._zIndex&&t(i.helper).css("zIndex",n._zIndex)}}),t.ui.draggable,t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("<div>"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,g=s.maxWidth&&p>s.maxWidth,m=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),g&&(p-=l),m&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable,t.widget("ui.dialog",{version:"1.12.1",options:{appendTo:"body",autoOpen:!0,buttons:[],classes:{"ui-dialog":"ui-corner-all","ui-dialog-titlebar":"ui-corner-all"},closeOnEscape:!0,closeText:"Close",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(e){var i=t(this).css(e).offset().top;0>i&&t(this).css("top",e.top-i)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),null==this.options.title&&null!=this.originalTitle&&(this.options.title=this.originalTitle),this.options.disabled&&(this.options.disabled=!1),this._createWrapper(),this.element.show().removeAttr("title").appendTo(this.uiDialog),this._addClass("ui-dialog-content","ui-widget-content"),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&t.fn.draggable&&this._makeDraggable(),this.options.resizable&&t.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var e=this.options.appendTo;return e&&(e.jquery||e.nodeType)?t(e):this.document.find(e||"body").eq(0)},_destroy:function(){var t,e=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().css(this.originalCss).detach(),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),t=e.parent.children().eq(e.index),t.length&&t[0]!==this.element[0]?t.before(this.element):e.parent.append(this.element)},widget:function(){return this.uiDialog +},disable:t.noop,enable:t.noop,close:function(e){var i=this;this._isOpen&&this._trigger("beforeClose",e)!==!1&&(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),this.opener.filter(":focusable").trigger("focus").length||t.ui.safeBlur(t.ui.safeActiveElement(this.document[0])),this._hide(this.uiDialog,this.options.hide,function(){i._trigger("close",e)}))},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(e,i){var s=!1,n=this.uiDialog.siblings(".ui-front:visible").map(function(){return+t(this).css("z-index")}).get(),o=Math.max.apply(null,n);return o>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",o+1),s=!0),s&&!i&&this._trigger("focus",e),s},open:function(){var e=this;return this._isOpen?(this._moveToTop()&&this._focusTabbable(),void 0):(this._isOpen=!0,this.opener=t(t.ui.safeActiveElement(this.document[0])),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){e._focusTabbable(),e._trigger("focus")}),this._makeFocusTarget(),this._trigger("open"),void 0)},_focusTabbable:function(){var t=this._focusedElement;t||(t=this.element.find("[autofocus]")),t.length||(t=this.element.find(":tabbable")),t.length||(t=this.uiDialogButtonPane.find(":tabbable")),t.length||(t=this.uiDialogTitlebarClose.filter(":tabbable")),t.length||(t=this.uiDialog),t.eq(0).trigger("focus")},_keepFocus:function(e){function i(){var e=t.ui.safeActiveElement(this.document[0]),i=this.uiDialog[0]===e||t.contains(this.uiDialog[0],e);i||this._focusTabbable()}e.preventDefault(),i.call(this),this._delay(i)},_createWrapper:function(){this.uiDialog=t("<div>").hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._addClass(this.uiDialog,"ui-dialog","ui-widget ui-widget-content ui-front"),this._on(this.uiDialog,{keydown:function(e){if(this.options.closeOnEscape&&!e.isDefaultPrevented()&&e.keyCode&&e.keyCode===t.ui.keyCode.ESCAPE)return e.preventDefault(),this.close(e),void 0;if(e.keyCode===t.ui.keyCode.TAB&&!e.isDefaultPrevented()){var i=this.uiDialog.find(":tabbable"),s=i.filter(":first"),n=i.filter(":last");e.target!==n[0]&&e.target!==this.uiDialog[0]||e.shiftKey?e.target!==s[0]&&e.target!==this.uiDialog[0]||!e.shiftKey||(this._delay(function(){n.trigger("focus")}),e.preventDefault()):(this._delay(function(){s.trigger("focus")}),e.preventDefault())}},mousedown:function(t){this._moveToTop(t)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var e;this.uiDialogTitlebar=t("<div>"),this._addClass(this.uiDialogTitlebar,"ui-dialog-titlebar","ui-widget-header ui-helper-clearfix"),this._on(this.uiDialogTitlebar,{mousedown:function(e){t(e.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.trigger("focus")}}),this.uiDialogTitlebarClose=t("<button type='button'></button>").button({label:t("<a>").text(this.options.closeText).html(),icon:"ui-icon-closethick",showLabel:!1}).appendTo(this.uiDialogTitlebar),this._addClass(this.uiDialogTitlebarClose,"ui-dialog-titlebar-close"),this._on(this.uiDialogTitlebarClose,{click:function(t){t.preventDefault(),this.close(t)}}),e=t("<span>").uniqueId().prependTo(this.uiDialogTitlebar),this._addClass(e,"ui-dialog-title"),this._title(e),this.uiDialogTitlebar.prependTo(this.uiDialog),this.uiDialog.attr({"aria-labelledby":e.attr("id")})},_title:function(t){this.options.title?t.text(this.options.title):t.html(" ")},_createButtonPane:function(){this.uiDialogButtonPane=t("<div>"),this._addClass(this.uiDialogButtonPane,"ui-dialog-buttonpane","ui-widget-content ui-helper-clearfix"),this.uiButtonSet=t("<div>").appendTo(this.uiDialogButtonPane),this._addClass(this.uiButtonSet,"ui-dialog-buttonset"),this._createButtons()},_createButtons:function(){var e=this,i=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),t.isEmptyObject(i)||t.isArray(i)&&!i.length?(this._removeClass(this.uiDialog,"ui-dialog-buttons"),void 0):(t.each(i,function(i,s){var n,o;s=t.isFunction(s)?{click:s,text:i}:s,s=t.extend({type:"button"},s),n=s.click,o={icon:s.icon,iconPosition:s.iconPosition,showLabel:s.showLabel,icons:s.icons,text:s.text},delete s.click,delete s.icon,delete s.iconPosition,delete s.showLabel,delete s.icons,"boolean"==typeof s.text&&delete s.text,t("<button></button>",s).button(o).appendTo(e.uiButtonSet).on("click",function(){n.apply(e.element[0],arguments)})}),this._addClass(this.uiDialog,"ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog),void 0)},_makeDraggable:function(){function e(t){return{position:t.position,offset:t.offset}}var i=this,s=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(s,n){i._addClass(t(this),"ui-dialog-dragging"),i._blockFrames(),i._trigger("dragStart",s,e(n))},drag:function(t,s){i._trigger("drag",t,e(s))},stop:function(n,o){var a=o.offset.left-i.document.scrollLeft(),r=o.offset.top-i.document.scrollTop();s.position={my:"left top",at:"left"+(a>=0?"+":"")+a+" "+"top"+(r>=0?"+":"")+r,of:i.window},i._removeClass(t(this),"ui-dialog-dragging"),i._unblockFrames(),i._trigger("dragStop",n,e(o))}})},_makeResizable:function(){function e(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}var i=this,s=this.options,n=s.resizable,o=this.uiDialog.css("position"),a="string"==typeof n?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:s.maxWidth,maxHeight:s.maxHeight,minWidth:s.minWidth,minHeight:this._minHeight(),handles:a,start:function(s,n){i._addClass(t(this),"ui-dialog-resizing"),i._blockFrames(),i._trigger("resizeStart",s,e(n))},resize:function(t,s){i._trigger("resize",t,e(s))},stop:function(n,o){var a=i.uiDialog.offset(),r=a.left-i.document.scrollLeft(),h=a.top-i.document.scrollTop();s.height=i.uiDialog.height(),s.width=i.uiDialog.width(),s.position={my:"left top",at:"left"+(r>=0?"+":"")+r+" "+"top"+(h>=0?"+":"")+h,of:i.window},i._removeClass(t(this),"ui-dialog-resizing"),i._unblockFrames(),i._trigger("resizeStop",n,e(o))}}).css("position",o)},_trackFocus:function(){this._on(this.widget(),{focusin:function(e){this._makeFocusTarget(),this._focusedElement=t(e.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var e=this._trackingInstances(),i=t.inArray(this,e);-1!==i&&e.splice(i,1)},_trackingInstances:function(){var t=this.document.data("ui-dialog-instances");return t||(t=[],this.document.data("ui-dialog-instances",t)),t},_minHeight:function(){var t=this.options;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(){var t=this.uiDialog.is(":visible");t||this.uiDialog.show(),this.uiDialog.position(this.options.position),t||this.uiDialog.hide()},_setOptions:function(e){var i=this,s=!1,n={};t.each(e,function(t,e){i._setOption(t,e),t in i.sizeRelatedOptions&&(s=!0),t in i.resizableRelatedOptions&&(n[t]=e)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",n)},_setOption:function(e,i){var s,n,o=this.uiDialog;"disabled"!==e&&(this._super(e,i),"appendTo"===e&&this.uiDialog.appendTo(this._appendTo()),"buttons"===e&&this._createButtons(),"closeText"===e&&this.uiDialogTitlebarClose.button({label:t("<a>").text(""+this.options.closeText).html()}),"draggable"===e&&(s=o.is(":data(ui-draggable)"),s&&!i&&o.draggable("destroy"),!s&&i&&this._makeDraggable()),"position"===e&&this._position(),"resizable"===e&&(n=o.is(":data(ui-resizable)"),n&&!i&&o.resizable("destroy"),n&&"string"==typeof i&&o.resizable("option","handles",i),n||i===!1||this._makeResizable()),"title"===e&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var t,e,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),t=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),e=Math.max(0,s.minHeight-t),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-t):"none","auto"===s.height?this.element.css({minHeight:e,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-t)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var e=t(this);return t("<div>").css({position:"absolute",width:e.outerWidth(),height:e.outerHeight()}).appendTo(e.parent()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(e){return t(e.target).closest(".ui-dialog").length?!0:!!t(e.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var e=!0;this._delay(function(){e=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(t){e||this._allowInteraction(t)||(t.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=t("<div>").appendTo(this._appendTo()),this._addClass(this.overlay,null,"ui-widget-overlay ui-front"),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var t=this.document.data("ui-dialog-overlays")-1;t?this.document.data("ui-dialog-overlays",t):(this._off(this.document,"focusin"),this.document.removeData("ui-dialog-overlays")),this.overlay.remove(),this.overlay=null}}}),t.uiBackCompat!==!1&&t.widget("ui.dialog",t.ui.dialog,{options:{dialogClass:""},_createWrapper:function(){this._super(),this.uiDialog.addClass(this.options.dialogClass)},_setOption:function(t,e){"dialogClass"===t&&this.uiDialog.removeClass(this.options.dialogClass).addClass(e),this._superApply(arguments)}}),t.ui.dialog,t.widget("ui.droppable",{version:"1.12.1",widgetEventPrefix:"drop",options:{accept:"*",addClasses:!0,greedy:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var e,i=this.options,s=i.accept;this.isover=!1,this.isout=!0,this.accept=t.isFunction(s)?s:function(t){return t.is(s)},this.proportions=function(){return arguments.length?(e=arguments[0],void 0):e?e:e={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(i.scope),i.addClasses&&this._addClass("ui-droppable")},_addToManager:function(e){t.ui.ddmanager.droppables[e]=t.ui.ddmanager.droppables[e]||[],t.ui.ddmanager.droppables[e].push(this)},_splice:function(t){for(var e=0;t.length>e;e++)t[e]===this&&t.splice(e,1)},_destroy:function(){var e=t.ui.ddmanager.droppables[this.options.scope];this._splice(e)},_setOption:function(e,i){if("accept"===e)this.accept=t.isFunction(i)?i:function(t){return t.is(i)};else if("scope"===e){var s=t.ui.ddmanager.droppables[this.options.scope];this._splice(s),this._addToManager(i)}this._super(e,i)},_activate:function(e){var i=t.ui.ddmanager.current;this._addActiveClass(),i&&this._trigger("activate",e,this.ui(i))},_deactivate:function(e){var i=t.ui.ddmanager.current;this._removeActiveClass(),i&&this._trigger("deactivate",e,this.ui(i))},_over:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._addHoverClass(),this._trigger("over",e,this.ui(i)))},_out:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._removeHoverClass(),this._trigger("out",e,this.ui(i)))},_drop:function(e,i){var s=i||t.ui.ddmanager.current,n=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var i=t(this).droppable("instance");return i.options.greedy&&!i.options.disabled&&i.options.scope===s.options.scope&&i.accept.call(i.element[0],s.currentItem||s.element)&&v(s,t.extend(i,{offset:i.element.offset()}),i.options.tolerance,e)?(n=!0,!1):void 0}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this._removeActiveClass(),this._removeHoverClass(),this._trigger("drop",e,this.ui(s)),this.element):!1):!1},ui:function(t){return{draggable:t.currentItem||t.element,helper:t.helper,position:t.position,offset:t.positionAbs}},_addHoverClass:function(){this._addClass("ui-droppable-hover")},_removeHoverClass:function(){this._removeClass("ui-droppable-hover")},_addActiveClass:function(){this._addClass("ui-droppable-active")},_removeActiveClass:function(){this._removeClass("ui-droppable-active")}});var v=t.ui.intersect=function(){function t(t,e,i){return t>=e&&e+i>t}return function(e,i,s,n){if(!i.offset)return!1;var o=(e.positionAbs||e.position.absolute).left+e.margins.left,a=(e.positionAbs||e.position.absolute).top+e.margins.top,r=o+e.helperProportions.width,h=a+e.helperProportions.height,l=i.offset.left,c=i.offset.top,u=l+i.proportions().width,d=c+i.proportions().height;switch(s){case"fit":return o>=l&&u>=r&&a>=c&&d>=h;case"intersect":return o+e.helperProportions.width/2>l&&u>r-e.helperProportions.width/2&&a+e.helperProportions.height/2>c&&d>h-e.helperProportions.height/2;case"pointer":return t(n.pageY,c,i.proportions().height)&&t(n.pageX,l,i.proportions().width);case"touch":return(a>=c&&d>=a||h>=c&&d>=h||c>a&&h>d)&&(o>=l&&u>=o||r>=l&&u>=r||l>o&&r>u);default:return!1}}}();t.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,i){var s,n,o=t.ui.ddmanager.droppables[e.options.scope]||[],a=i?i.type:null,r=(e.currentItem||e.element).find(":data(ui-droppable)").addBack();t:for(s=0;o.length>s;s++)if(!(o[s].options.disabled||e&&!o[s].accept.call(o[s].element[0],e.currentItem||e.element))){for(n=0;r.length>n;n++)if(r[n]===o[s].element[0]){o[s].proportions().height=0;continue t}o[s].visible="none"!==o[s].element.css("display"),o[s].visible&&("mousedown"===a&&o[s]._activate.call(o[s],i),o[s].offset=o[s].element.offset(),o[s].proportions({width:o[s].element[0].offsetWidth,height:o[s].element[0].offsetHeight}))}},drop:function(e,i){var s=!1;return t.each((t.ui.ddmanager.droppables[e.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&v(e,this,this.options.tolerance,i)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(e,i){e.element.parentsUntil("body").on("scroll.droppable",function(){e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)})},drag:function(e,i){e.options.refreshPositions&&t.ui.ddmanager.prepareOffsets(e,i),t.each(t.ui.ddmanager.droppables[e.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,o,a=v(e,this,this.options.tolerance,i),r=!a&&this.isover?"isout":a&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,o=this.element.parents(":data(ui-droppable)").filter(function(){return t(this).droppable("instance").options.scope===n}),o.length&&(s=t(o[0]).droppable("instance"),s.greedyChild="isover"===r)),s&&"isover"===r&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[r]=!0,this["isout"===r?"isover":"isout"]=!1,this["isover"===r?"_over":"_out"].call(this,i),s&&"isout"===r&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(e,i){e.element.parentsUntil("body").off("scroll.droppable"),e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)}},t.uiBackCompat!==!1&&t.widget("ui.droppable",t.ui.droppable,{options:{hoverClass:!1,activeClass:!1},_addActiveClass:function(){this._super(),this.options.activeClass&&this.element.addClass(this.options.activeClass)},_removeActiveClass:function(){this._super(),this.options.activeClass&&this.element.removeClass(this.options.activeClass)},_addHoverClass:function(){this._super(),this.options.hoverClass&&this.element.addClass(this.options.hoverClass)},_removeHoverClass:function(){this._super(),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass)}}),t.ui.droppable,t.widget("ui.progressbar",{version:"1.12.1",options:{classes:{"ui-progressbar":"ui-corner-all","ui-progressbar-value":"ui-corner-left","ui-progressbar-complete":"ui-corner-right"},max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.attr({role:"progressbar","aria-valuemin":this.min}),this._addClass("ui-progressbar","ui-widget ui-widget-content"),this.valueDiv=t("<div>").appendTo(this.element),this._addClass(this.valueDiv,"ui-progressbar-value","ui-widget-header"),this._refreshValue()},_destroy:function(){this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"),this.valueDiv.remove()},value:function(t){return void 0===t?this.options.value:(this.options.value=this._constrainedValue(t),this._refreshValue(),void 0)},_constrainedValue:function(t){return void 0===t&&(t=this.options.value),this.indeterminate=t===!1,"number"!=typeof t&&(t=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){"max"===t&&(e=Math.max(this.min,e)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var e=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||e>this.min).width(i.toFixed(0)+"%"),this._toggleClass(this.valueDiv,"ui-progressbar-complete",null,e===this.options.max)._toggleClass("ui-progressbar-indeterminate",null,this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=t("<div>").appendTo(this.valueDiv),this._addClass(this.overlayDiv,"ui-progressbar-overlay"))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":e}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),e===this.options.max&&this._trigger("complete")}}),t.widget("ui.selectable",t.ui.mouse,{version:"1.12.1",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var e=this;this._addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){e.elementPos=t(e.element[0]).offset(),e.selectees=t(e.options.filter,e.element[0]),e._addClass(e.selectees,"ui-selectee"),e.selectees.each(function(){var i=t(this),s=i.offset(),n={left:s.left-e.elementPos.left,top:s.top-e.elementPos.top};t.data(this,"selectable-item",{element:this,$element:i,left:n.left,top:n.top,right:n.left+i.outerWidth(),bottom:n.top+i.outerHeight(),startselected:!1,selected:i.hasClass("ui-selected"),selecting:i.hasClass("ui-selecting"),unselecting:i.hasClass("ui-unselecting")})})},this.refresh(),this._mouseInit(),this.helper=t("<div>"),this._addClass(this.helper,"ui-selectable-helper")},_destroy:function(){this.selectees.removeData("selectable-item"),this._mouseDestroy()},_mouseStart:function(e){var i=this,s=this.options;this.opos=[e.pageX,e.pageY],this.elementPos=t(this.element[0]).offset(),this.options.disabled||(this.selectees=t(s.filter,this.element[0]),this._trigger("start",e),t(s.appendTo).append(this.helper),this.helper.css({left:e.pageX,top:e.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=t.data(this,"selectable-item");s.startselected=!0,e.metaKey||e.ctrlKey||(i._removeClass(s.$element,"ui-selected"),s.selected=!1,i._addClass(s.$element,"ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",e,{unselecting:s.element}))}),t(e.target).parents().addBack().each(function(){var s,n=t.data(this,"selectable-item");return n?(s=!e.metaKey&&!e.ctrlKey||!n.$element.hasClass("ui-selected"),i._removeClass(n.$element,s?"ui-unselecting":"ui-selected")._addClass(n.$element,s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",e,{selecting:n.element}):i._trigger("unselecting",e,{unselecting:n.element}),!1):void 0}))},_mouseDrag:function(e){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,o=this.opos[0],a=this.opos[1],r=e.pageX,h=e.pageY;return o>r&&(i=r,r=o,o=i),a>h&&(i=h,h=a,a=i),this.helper.css({left:o,top:a,width:r-o,height:h-a}),this.selectees.each(function(){var i=t.data(this,"selectable-item"),l=!1,c={};i&&i.element!==s.element[0]&&(c.left=i.left+s.elementPos.left,c.right=i.right+s.elementPos.left,c.top=i.top+s.elementPos.top,c.bottom=i.bottom+s.elementPos.top,"touch"===n.tolerance?l=!(c.left>r||o>c.right||c.top>h||a>c.bottom):"fit"===n.tolerance&&(l=c.left>o&&r>c.right&&c.top>a&&h>c.bottom),l?(i.selected&&(s._removeClass(i.$element,"ui-selected"),i.selected=!1),i.unselecting&&(s._removeClass(i.$element,"ui-unselecting"),i.unselecting=!1),i.selecting||(s._addClass(i.$element,"ui-selecting"),i.selecting=!0,s._trigger("selecting",e,{selecting:i.element}))):(i.selecting&&((e.metaKey||e.ctrlKey)&&i.startselected?(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,s._addClass(i.$element,"ui-selected"),i.selected=!0):(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,i.startselected&&(s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",e,{unselecting:i.element}))),i.selected&&(e.metaKey||e.ctrlKey||i.startselected||(s._removeClass(i.$element,"ui-selected"),i.selected=!1,s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",e,{unselecting:i.element})))))}),!1}},_mouseStop:function(e){var i=this;return this.dragged=!1,t(".ui-unselecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",e,{unselected:s.element})}),t(".ui-selecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-selecting")._addClass(s.$element,"ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",e,{selected:s.element})}),this._trigger("stop",e),this.helper.remove(),!1}}),t.widget("ui.selectmenu",[t.ui.formResetMixin,{version:"1.12.1",defaultElement:"<select>",options:{appendTo:null,classes:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"},disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:!1,change:null,close:null,focus:null,open:null,select:null},_create:function(){var e=this.element.uniqueId().attr("id");this.ids={element:e,button:e+"-button",menu:e+"-menu"},this._drawButton(),this._drawMenu(),this._bindFormResetHandler(),this._rendered=!1,this.menuItems=t()},_drawButton:function(){var e,i=this,s=this._parseOption(this.element.find("option:selected"),this.element[0].selectedIndex);this.labels=this.element.labels().attr("for",this.ids.button),this._on(this.labels,{click:function(t){this.button.focus(),t.preventDefault()}}),this.element.hide(),this.button=t("<span>",{tabindex:this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true",title:this.element.attr("title")}).insertAfter(this.element),this._addClass(this.button,"ui-selectmenu-button ui-selectmenu-button-closed","ui-button ui-widget"),e=t("<span>").appendTo(this.button),this._addClass(e,"ui-selectmenu-icon","ui-icon "+this.options.icons.button),this.buttonItem=this._renderButtonItem(s).appendTo(this.button),this.options.width!==!1&&this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){i._rendered||i._refreshMenu()})},_drawMenu:function(){var e=this;this.menu=t("<ul>",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=t("<div>").append(this.menu),this._addClass(this.menuWrap,"ui-selectmenu-menu","ui-front"),this.menuWrap.appendTo(this._appendTo()),this.menuInstance=this.menu.menu({classes:{"ui-menu":"ui-corner-bottom"},role:"listbox",select:function(t,i){t.preventDefault(),e._setSelection(),e._select(i.item.data("ui-selectmenu-item"),t)},focus:function(t,i){var s=i.item.data("ui-selectmenu-item");null!=e.focusIndex&&s.index!==e.focusIndex&&(e._trigger("focus",t,{item:s}),e.isOpen||e._select(s,t)),e.focusIndex=s.index,e.button.attr("aria-activedescendant",e.menuItems.eq(s.index).attr("id"))}}).menu("instance"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(this._getSelectedItem().data("ui-selectmenu-item")||{})),null===this.options.width&&this._resizeButton()},_refreshMenu:function(){var t,e=this.element.find("option");this.menu.empty(),this._parseOptions(e),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup").find(".ui-menu-item-wrapper"),this._rendered=!0,e.length&&(t=this._getSelectedItem(),this.menuInstance.focus(null,t),this._setAria(t.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(t){this.options.disabled||(this._rendered?(this._removeClass(this.menu.find(".ui-state-active"),null,"ui-state-active"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.menuItems.length&&(this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",t)))},_position:function(){this.menuWrap.position(t.extend({of:this.button},this.options.position))},close:function(t){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger("close",t))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderButtonItem:function(e){var i=t("<span>");return this._setText(i,e.label),this._addClass(i,"ui-selectmenu-text"),i},_renderMenu:function(e,i){var s=this,n="";t.each(i,function(i,o){var a;o.optgroup!==n&&(a=t("<li>",{text:o.optgroup}),s._addClass(a,"ui-selectmenu-optgroup","ui-menu-divider"+(o.element.parent("optgroup").prop("disabled")?" ui-state-disabled":"")),a.appendTo(e),n=o.optgroup),s._renderItemData(e,o)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-selectmenu-item",e)},_renderItem:function(e,i){var s=t("<li>"),n=t("<div>",{title:i.element.attr("title")});return i.disabled&&this._addClass(s,null,"ui-state-disabled"),this._setText(n,i.label),s.append(n).appendTo(e)},_setText:function(t,e){e?t.text(e):t.html(" ")},_move:function(t,e){var i,s,n=".ui-menu-item";this.isOpen?i=this.menuItems.eq(this.focusIndex).parent("li"):(i=this.menuItems.eq(this.element[0].selectedIndex).parent("li"),n+=":not(.ui-state-disabled)"),s="first"===t||"last"===t?i["first"===t?"prevAll":"nextAll"](n).eq(-1):i[t+"All"](n).eq(0),s.length&&this.menuInstance.focus(e,s)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex).parent("li")},_toggle:function(t){this[this.isOpen?"close":"open"](t)},_setSelection:function(){var t;this.range&&(window.getSelection?(t=window.getSelection(),t.removeAllRanges(),t.addRange(this.range)):this.range.select(),this.button.focus())},_documentClick:{mousedown:function(e){this.isOpen&&(t(e.target).closest(".ui-selectmenu-menu, #"+t.ui.escapeSelector(this.ids.button)).length||this.close(e))}},_buttonEvents:{mousedown:function(){var t;window.getSelection?(t=window.getSelection(),t.rangeCount&&(this.range=t.getRangeAt(0))):this.range=document.selection.createRange()},click:function(t){this._setSelection(),this._toggle(t)},keydown:function(e){var i=!0;switch(e.keyCode){case t.ui.keyCode.TAB:case t.ui.keyCode.ESCAPE:this.close(e),i=!1;break;case t.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(e);break;case t.ui.keyCode.UP:e.altKey?this._toggle(e):this._move("prev",e);break;case t.ui.keyCode.DOWN:e.altKey?this._toggle(e):this._move("next",e);break;case t.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(e):this._toggle(e);break;case t.ui.keyCode.LEFT:this._move("prev",e);break;case t.ui.keyCode.RIGHT:this._move("next",e);break;case t.ui.keyCode.HOME:case t.ui.keyCode.PAGE_UP:this._move("first",e);break;case t.ui.keyCode.END:case t.ui.keyCode.PAGE_DOWN:this._move("last",e);break;default:this.menu.trigger(e),i=!1}i&&e.preventDefault()}},_selectFocusedItem:function(t){var e=this.menuItems.eq(this.focusIndex).parent("li");e.hasClass("ui-state-disabled")||this._select(e.data("ui-selectmenu-item"),t)},_select:function(t,e){var i=this.element[0].selectedIndex;this.element[0].selectedIndex=t.index,this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(t)),this._setAria(t),this._trigger("select",e,{item:t}),t.index!==i&&this._trigger("change",e,{item:t}),this.close(e)},_setAria:function(t){var e=this.menuItems.eq(t.index).attr("id");this.button.attr({"aria-labelledby":e,"aria-activedescendant":e}),this.menu.attr("aria-activedescendant",e)},_setOption:function(t,e){if("icons"===t){var i=this.button.find("span.ui-icon");this._removeClass(i,null,this.options.icons.button)._addClass(i,null,e.button)}this._super(t,e),"appendTo"===t&&this.menuWrap.appendTo(this._appendTo()),"width"===t&&this._resizeButton()},_setOptionDisabled:function(t){this._super(t),this.menuInstance.option("disabled",t),this.button.attr("aria-disabled",t),this._toggleClass(this.button,null,"ui-state-disabled",t),this.element.prop("disabled",t),t?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_toggleAttr:function(){this.button.attr("aria-expanded",this.isOpen),this._removeClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"closed":"open"))._addClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"open":"closed"))._toggleClass(this.menuWrap,"ui-selectmenu-open",null,this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var t=this.options.width;return t===!1?(this.button.css("width",""),void 0):(null===t&&(t=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(t),void 0)},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){var t=this._super();return t.disabled=this.element.prop("disabled"),t},_parseOptions:function(e){var i=this,s=[];e.each(function(e,n){s.push(i._parseOption(t(n),e))}),this.items=s},_parseOption:function(t,e){var i=t.parent("optgroup");return{element:t,index:e,value:t.val(),label:t.text(),optgroup:i.attr("label")||"",disabled:i.prop("disabled")||t.prop("disabled")}},_destroy:function(){this._unbindFormResetHandler(),this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.labels.attr("for",this.ids.element)}}]),t.widget("ui.slider",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"slide",options:{animate:!1,classes:{"ui-slider":"ui-corner-all","ui-slider-handle":"ui-corner-all","ui-slider-range":"ui-corner-all ui-widget-header"},distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this._addClass("ui-slider ui-slider-"+this.orientation,"ui-widget ui-widget-content"),this._refresh(),this._animateOff=!1 +},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var e,i,s=this.options,n=this.element.find(".ui-slider-handle"),o="<span tabindex='0'></span>",a=[];for(i=s.values&&s.values.length||1,n.length>i&&(n.slice(i).remove(),n=n.slice(0,i)),e=n.length;i>e;e++)a.push(o);this.handles=n.add(t(a.join("")).appendTo(this.element)),this._addClass(this.handles,"ui-slider-handle","ui-state-default"),this.handle=this.handles.eq(0),this.handles.each(function(e){t(this).data("ui-slider-handle-index",e).attr("tabIndex",0)})},_createRange:function(){var e=this.options;e.range?(e.range===!0&&(e.values?e.values.length&&2!==e.values.length?e.values=[e.values[0],e.values[0]]:t.isArray(e.values)&&(e.values=e.values.slice(0)):e.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?(this._removeClass(this.range,"ui-slider-range-min ui-slider-range-max"),this.range.css({left:"",bottom:""})):(this.range=t("<div>").appendTo(this.element),this._addClass(this.range,"ui-slider-range")),("min"===e.range||"max"===e.range)&&this._addClass(this.range,"ui-slider-range-"+e.range)):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this._mouseDestroy()},_mouseCapture:function(e){var i,s,n,o,a,r,h,l,c=this,u=this.options;return u.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),i={x:e.pageX,y:e.pageY},s=this._normValueFromMouse(i),n=this._valueMax()-this._valueMin()+1,this.handles.each(function(e){var i=Math.abs(s-c.values(e));(n>i||n===i&&(e===c._lastChangedValue||c.values(e)===u.min))&&(n=i,o=t(this),a=e)}),r=this._start(e,a),r===!1?!1:(this._mouseSliding=!0,this._handleIndex=a,this._addClass(o,null,"ui-state-active"),o.trigger("focus"),h=o.offset(),l=!t(e.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:e.pageX-h.left-o.width()/2,top:e.pageY-h.top-o.height()/2-(parseInt(o.css("borderTopWidth"),10)||0)-(parseInt(o.css("borderBottomWidth"),10)||0)+(parseInt(o.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(e,a,s),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(t){var e={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(e);return this._slide(t,this._handleIndex,i),!1},_mouseStop:function(t){return this._removeClass(this.handles,null,"ui-state-active"),this._mouseSliding=!1,this._stop(t,this._handleIndex),this._change(t,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(t){var e,i,s,n,o;return"horizontal"===this.orientation?(e=this.elementSize.width,i=t.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(e=this.elementSize.height,i=t.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),s=i/e,s>1&&(s=1),0>s&&(s=0),"vertical"===this.orientation&&(s=1-s),n=this._valueMax()-this._valueMin(),o=this._valueMin()+s*n,this._trimAlignValue(o)},_uiHash:function(t,e,i){var s={handle:this.handles[t],handleIndex:t,value:void 0!==e?e:this.value()};return this._hasMultipleValues()&&(s.value=void 0!==e?e:this.values(t),s.values=i||this.values()),s},_hasMultipleValues:function(){return this.options.values&&this.options.values.length},_start:function(t,e){return this._trigger("start",t,this._uiHash(e))},_slide:function(t,e,i){var s,n,o=this.value(),a=this.values();this._hasMultipleValues()&&(n=this.values(e?0:1),o=this.values(e),2===this.options.values.length&&this.options.range===!0&&(i=0===e?Math.min(n,i):Math.max(n,i)),a[e]=i),i!==o&&(s=this._trigger("slide",t,this._uiHash(e,i,a)),s!==!1&&(this._hasMultipleValues()?this.values(e,i):this.value(i)))},_stop:function(t,e){this._trigger("stop",t,this._uiHash(e))},_change:function(t,e){this._keySliding||this._mouseSliding||(this._lastChangedValue=e,this._trigger("change",t,this._uiHash(e)))},value:function(t){return arguments.length?(this.options.value=this._trimAlignValue(t),this._refreshValue(),this._change(null,0),void 0):this._value()},values:function(e,i){var s,n,o;if(arguments.length>1)return this.options.values[e]=this._trimAlignValue(i),this._refreshValue(),this._change(null,e),void 0;if(!arguments.length)return this._values();if(!t.isArray(arguments[0]))return this._hasMultipleValues()?this._values(e):this.value();for(s=this.options.values,n=arguments[0],o=0;s.length>o;o+=1)s[o]=this._trimAlignValue(n[o]),this._change(null,o);this._refreshValue()},_setOption:function(e,i){var s,n=0;switch("range"===e&&this.options.range===!0&&("min"===i?(this.options.value=this._values(0),this.options.values=null):"max"===i&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),t.isArray(this.options.values)&&(n=this.options.values.length),this._super(e,i),e){case"orientation":this._detectOrientation(),this._removeClass("ui-slider-horizontal ui-slider-vertical")._addClass("ui-slider-"+this.orientation),this._refreshValue(),this.options.range&&this._refreshRange(i),this.handles.css("horizontal"===i?"bottom":"left","");break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),s=n-1;s>=0;s--)this._change(null,s);this._animateOff=!1;break;case"step":case"min":case"max":this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_setOptionDisabled:function(t){this._super(t),this._toggleClass(null,"ui-state-disabled",!!t)},_value:function(){var t=this.options.value;return t=this._trimAlignValue(t)},_values:function(t){var e,i,s;if(arguments.length)return e=this.options.values[t],e=this._trimAlignValue(e);if(this._hasMultipleValues()){for(i=this.options.values.slice(),s=0;i.length>s;s+=1)i[s]=this._trimAlignValue(i[s]);return i}return[]},_trimAlignValue:function(t){if(this._valueMin()>=t)return this._valueMin();if(t>=this._valueMax())return this._valueMax();var e=this.options.step>0?this.options.step:1,i=(t-this._valueMin())%e,s=t-i;return 2*Math.abs(i)>=e&&(s+=i>0?e:-e),parseFloat(s.toFixed(5))},_calculateNewMax:function(){var t=this.options.max,e=this._valueMin(),i=this.options.step,s=Math.round((t-e)/i)*i;t=s+e,t>this.options.max&&(t-=i),this.max=parseFloat(t.toFixed(this._precision()))},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshRange:function(t){"vertical"===t&&this.range.css({width:"",left:""}),"horizontal"===t&&this.range.css({height:"",bottom:""})},_refreshValue:function(){var e,i,s,n,o,a=this.options.range,r=this.options,h=this,l=this._animateOff?!1:r.animate,c={};this._hasMultipleValues()?this.handles.each(function(s){i=100*((h.values(s)-h._valueMin())/(h._valueMax()-h._valueMin())),c["horizontal"===h.orientation?"left":"bottom"]=i+"%",t(this).stop(1,1)[l?"animate":"css"](c,r.animate),h.options.range===!0&&("horizontal"===h.orientation?(0===s&&h.range.stop(1,1)[l?"animate":"css"]({left:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({width:i-e+"%"},{queue:!1,duration:r.animate})):(0===s&&h.range.stop(1,1)[l?"animate":"css"]({bottom:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({height:i-e+"%"},{queue:!1,duration:r.animate}))),e=i}):(s=this.value(),n=this._valueMin(),o=this._valueMax(),i=o!==n?100*((s-n)/(o-n)):0,c["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[l?"animate":"css"](c,r.animate),"min"===a&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:i+"%"},r.animate),"max"===a&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:100-i+"%"},r.animate),"min"===a&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:i+"%"},r.animate),"max"===a&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:100-i+"%"},r.animate))},_handleEvents:{keydown:function(e){var i,s,n,o,a=t(e.target).data("ui-slider-handle-index");switch(e.keyCode){case t.ui.keyCode.HOME:case t.ui.keyCode.END:case t.ui.keyCode.PAGE_UP:case t.ui.keyCode.PAGE_DOWN:case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(e.preventDefault(),!this._keySliding&&(this._keySliding=!0,this._addClass(t(e.target),null,"ui-state-active"),i=this._start(e,a),i===!1))return}switch(o=this.options.step,s=n=this._hasMultipleValues()?this.values(a):this.value(),e.keyCode){case t.ui.keyCode.HOME:n=this._valueMin();break;case t.ui.keyCode.END:n=this._valueMax();break;case t.ui.keyCode.PAGE_UP:n=this._trimAlignValue(s+(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.PAGE_DOWN:n=this._trimAlignValue(s-(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:if(s===this._valueMax())return;n=this._trimAlignValue(s+o);break;case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(s===this._valueMin())return;n=this._trimAlignValue(s-o)}this._slide(e,a,n)},keyup:function(e){var i=t(e.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(e,i),this._change(e,i),this._removeClass(t(e.target),null,"ui-state-active"))}}}),t.widget("ui.sortable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,i){return t>=e&&e+i>t},_isFloating:function(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))},_create:function(){this.containerCache={},this._addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(t,e){this._super(t,e),"handle"===t&&this._setHandleClassName()},_setHandleClassName:function(){var e=this;this._removeClass(this.element.find(".ui-sortable-handle"),"ui-sortable-handle"),t.each(this.items,function(){e._addClass(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item,"ui-sortable-handle")})},_destroy:function(){this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(e,i){var s=null,n=!1,o=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(e),t(e.target).parents().each(function(){return t.data(this,o.widgetName+"-item")===o?(s=t(this),!1):void 0}),t.data(e.target,o.widgetName+"-item")===o&&(s=t(e.target)),s?!this.options.handle||i||(t(this.options.handle,s).find("*").addBack().each(function(){this===e.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(e,i,s){var n,o,a=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,a.cursorAt&&this._adjustOffsetFromHelper(a.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),a.containment&&this._setContainment(),a.cursor&&"auto"!==a.cursor&&(o=this.document.find("body"),this.storedCursor=o.css("cursor"),o.css("cursor",a.cursor),this.storedStylesheet=t("<style>*{ cursor: "+a.cursor+" !important; }</style>").appendTo(o)),a.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",a.opacity)),a.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",a.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",e,this._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this._addClass(this.helper,"ui-sortable-helper"),this._mouseDrag(e),!0},_mouseDrag:function(e){var i,s,n,o,a=this.options,r=!1;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY<a.scrollSensitivity?this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop+a.scrollSpeed:e.pageY-this.overflowOffset.top<a.scrollSensitivity&&(this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop-a.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-e.pageX<a.scrollSensitivity?this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft+a.scrollSpeed:e.pageX-this.overflowOffset.left<a.scrollSensitivity&&(this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft-a.scrollSpeed)):(e.pageY-this.document.scrollTop()<a.scrollSensitivity?r=this.document.scrollTop(this.document.scrollTop()-a.scrollSpeed):this.window.height()-(e.pageY-this.document.scrollTop())<a.scrollSensitivity&&(r=this.document.scrollTop(this.document.scrollTop()+a.scrollSpeed)),e.pageX-this.document.scrollLeft()<a.scrollSensitivity?r=this.document.scrollLeft(this.document.scrollLeft()-a.scrollSpeed):this.window.width()-(e.pageX-this.document.scrollLeft())<a.scrollSensitivity&&(r=this.document.scrollLeft(this.document.scrollLeft()+a.scrollSpeed))),r!==!1&&t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),i=this.items.length-1;i>=0;i--)if(s=this.items[i],n=s.item[0],o=this._intersectsWithPointer(s),o&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===o?"next":"prev"]()[0]!==n&&!t.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!t.contains(this.element[0],n):!0)){if(this.direction=1===o?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(e,s),this._trigger("change",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger("sort",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,i){if(e){if(t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert){var s=this,n=this.placeholder.offset(),o=this.options.axis,a={};o&&"x"!==o||(a.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),o&&"y"!==o||(a.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,t(this.helper).animate(a,parseInt(this.options.revert,10)||500,function(){s._clear(e)})}else this._clear(e,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp(new t.Event("mouseup",{target:null})),"original"===this.options.helper?(this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")):this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("deactivate",null,this._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",null,this._uiHash(this)),this.containers[e].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},t(i).each(function(){var i=(t(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);i&&s.push((e.key||i[1]+"[]")+"="+(e.key&&e.expression?i[1]:i[2]))}),!s.length&&e.key&&s.push(e.key+"="),s.join("&")},toArray:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},i.each(function(){s.push(t(e.item||this).attr(e.attribute||"id")||"")}),s},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,o=t.left,a=o+t.width,r=t.top,h=r+t.height,l=this.offset.click.top,c=this.offset.click.left,u="x"===this.options.axis||s+l>r&&h>s+l,d="y"===this.options.axis||e+c>o&&a>e+c,p=u&&d;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?p:e+this.helperProportions.width/2>o&&a>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(t){var e,i,s="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top,t.height),n="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left,t.width),o=s&&n;return o?(e=this._getDragVerticalDirection(),i=this._getDragHorizontalDirection(),this.floating?"right"===i||"down"===e?2:1:e&&("down"===e?2:1)):!1},_intersectsWithSides:function(t){var e=this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&i||"left"===n&&!i:s&&("down"===s&&e||"up"===s&&!e)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(t>0?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(t>0?"right":"left")},refresh:function(t){return this._refreshItems(t),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(e){function i(){r.push(this)}var s,n,o,a,r=[],h=[],l=this._connectWith();if(l&&e)for(s=l.length-1;s>=0;s--)for(o=t(l[s],this.document[0]),n=o.length-1;n>=0;n--)a=t.data(o[n],this.widgetFullName),a&&a!==this&&!a.options.disabled&&h.push([t.isFunction(a.options.items)?a.options.items.call(a.element):t(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a]);for(h.push([t.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),s=h.length-1;s>=0;s--)h[s][0].each(i);return t(r)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=t.grep(this.items,function(t){for(var i=0;e.length>i;i++)if(e[i]===t.item[0])return!1;return!0})},_refreshItems:function(e){this.items=[],this.containers=[this];var i,s,n,o,a,r,h,l,c=this.items,u=[[t.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(i=d.length-1;i>=0;i--)for(n=t(d[i],this.document[0]),s=n.length-1;s>=0;s--)o=t.data(n[s],this.widgetFullName),o&&o!==this&&!o.options.disabled&&(u.push([t.isFunction(o.options.items)?o.options.items.call(o.element[0],e,{item:this.currentItem}):t(o.options.items,o.element),o]),this.containers.push(o));for(i=u.length-1;i>=0;i--)for(a=u[i][1],r=u[i][0],s=0,l=r.length;l>s;s++)h=t(r[s]),h.data(this.widgetName+"-item",a),c.push({item:h,instance:a,width:0,height:0,left:0,top:0})},refreshPositions:function(e){this.floating=this.items.length?"x"===this.options.axis||this._isFloating(this.items[0].item):!1,this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,o;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?t(this.options.toleranceElement,s.item):s.item,e||(s.width=n.outerWidth(),s.height=n.outerHeight()),o=n.offset(),s.left=o.left,s.top=o.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)o=this.containers[i].element.offset(),this.containers[i].containerCache.left=o.left,this.containers[i].containerCache.top=o.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(e){e=e||this;var i,s=e.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=e.currentItem[0].nodeName.toLowerCase(),n=t("<"+s+">",e.document[0]);return e._addClass(n,"ui-sortable-placeholder",i||e.currentItem[0].className)._removeClass(n,"ui-sortable-helper"),"tbody"===s?e._createTrPlaceholder(e.currentItem.find("tr").eq(0),t("<tr>",e.document[0]).appendTo(n)):"tr"===s?e._createTrPlaceholder(e.currentItem,n):"img"===s&&n.attr("src",e.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(t,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10)))}}),e.placeholder=t(s.placeholder.element.call(e.element,e.currentItem)),e.currentItem.after(e.placeholder),s.placeholder.update(e,e.placeholder)},_createTrPlaceholder:function(e,i){var s=this;e.children().each(function(){t("<td> </td>",s.document[0]).attr("colspan",t(this).attr("colspan")||1).appendTo(i)})},_contactContainers:function(e){var i,s,n,o,a,r,h,l,c,u,d=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!t.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(d&&t.contains(this.containers[i].element[0],d.element[0]))continue;d=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",e,this._uiHash(this)),this.containers[i].containerCache.over=0);if(d)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(n=1e4,o=null,c=d.floating||this._isFloating(this.currentItem),a=c?"left":"top",r=c?"width":"height",u=c?"pageX":"pageY",s=this.items.length-1;s>=0;s--)t.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(h=this.items[s].item.offset()[a],l=!1,e[u]-h>this.items[s][r]/2&&(l=!0),n>Math.abs(e[u]-h)&&(n=Math.abs(e[u]-h),o=this.items[s],this.direction=l?"up":"down"));if(!o&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash()),this.currentContainer.containerCache.over=1),void 0;o?this._rearrange(e,o,null,!0):this._rearrange(e,null,this.containers[p].element,!0),this._trigger("change",e,this._uiHash()),this.containers[p]._trigger("change",e,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||t("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===n.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===n.containment?this.document.height()||document.body.parentNode.scrollHeight:this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(e=t(n.containment)[0],i=t(n.containment).offset(),s="hidden"!==t(e).css("overflow"),this.containment=[i.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,i){i||(i=this.position);var s="absolute"===e?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())*s}},_generatePosition:function(e){var i,s,n=this.options,o=e.pageX,a=e.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.left<this.containment[0]&&(o=this.containment[0]+this.offset.click.left),e.pageY-this.offset.click.top<this.containment[1]&&(a=this.containment[1]+this.offset.click.top),e.pageX-this.offset.click.left>this.containment[2]&&(o=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(a=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((a-this.originalPageY)/n.grid[1])*n.grid[1],a=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((o-this.originalPageX)/n.grid[0])*n.grid[0],o=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter; +this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(t,e){function i(t,e,i){return function(s){i._trigger(t,s,e._uiHash(e))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!e&&n.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||n.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(n.push(function(t){this._trigger("remove",t,this._uiHash())}),n.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)e||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(s=0;n.length>s;s++)n[s].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){t.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(e){var i=e||this;return{helper:i.helper,placeholder:i.placeholder||t([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:e?e.element:null}}}),t.widget("ui.spinner",{version:"1.12.1",defaultElement:"<input>",widgetEventPrefix:"spin",options:{classes:{"ui-spinner":"ui-corner-all","ui-spinner-down":"ui-corner-br","ui-spinner-up":"ui-corner-tr"},culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var e=this._super(),i=this.element;return t.each(["min","max","step"],function(t,s){var n=i.attr(s);null!=n&&n.length&&(e[s]=n)}),e},_events:{keydown:function(t){this._start(t)&&this._keydown(t)&&t.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",t),void 0)},mousewheel:function(t,e){if(e){if(!this.spinning&&!this._start(t))return!1;this._spin((e>0?1:-1)*this.options.step,t),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(t)},100),t.preventDefault()}},"mousedown .ui-spinner-button":function(e){function i(){var e=this.element[0]===t.ui.safeActiveElement(this.document[0]);e||(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s}))}var s;s=this.element[0]===t.ui.safeActiveElement(this.document[0])?this.previous:this.element.val(),e.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),this._start(e)!==!1&&this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(e){return t(e.currentTarget).hasClass("ui-state-active")?this._start(e)===!1?!1:(this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e),void 0):void 0},"mouseleave .ui-spinner-button":"_stop"},_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap("<span>").parent().append("<a></a><a></a>")},_draw:function(){this._enhance(),this._addClass(this.uiSpinner,"ui-spinner","ui-widget ui-widget-content"),this._addClass("ui-spinner-input"),this.element.attr("role","spinbutton"),this.buttons=this.uiSpinner.children("a").attr("tabIndex",-1).attr("aria-hidden",!0).button({classes:{"ui-button":""}}),this._removeClass(this.buttons,"ui-corner-all"),this._addClass(this.buttons.first(),"ui-spinner-button ui-spinner-up"),this._addClass(this.buttons.last(),"ui-spinner-button ui-spinner-down"),this.buttons.first().button({icon:this.options.icons.up,showLabel:!1}),this.buttons.last().button({icon:this.options.icons.down,showLabel:!1}),this.buttons.height()>Math.ceil(.5*this.uiSpinner.height())&&this.uiSpinner.height()>0&&this.uiSpinner.height(this.uiSpinner.height())},_keydown:function(e){var i=this.options,s=t.ui.keyCode;switch(e.keyCode){case s.UP:return this._repeat(null,1,e),!0;case s.DOWN:return this._repeat(null,-1,e),!0;case s.PAGE_UP:return this._repeat(null,i.page,e),!0;case s.PAGE_DOWN:return this._repeat(null,-i.page,e),!0}return!1},_start:function(t){return this.spinning||this._trigger("start",t)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(t,e,i){t=t||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,e,i)},t),this._spin(e*this.options.step,i)},_spin:function(t,e){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+t*this._increment(this.counter)),this.spinning&&this._trigger("spin",e,{value:i})===!1||(this._value(i),this.counter++)},_increment:function(e){var i=this.options.incremental;return i?t.isFunction(i)?i(e):Math.floor(e*e*e/5e4-e*e/500+17*e/200+1):1},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_adjustValue:function(t){var e,i,s=this.options;return e=null!==s.min?s.min:0,i=t-e,i=Math.round(i/s.step)*s.step,t=e+i,t=parseFloat(t.toFixed(this._precision())),null!==s.max&&t>s.max?s.max:null!==s.min&&s.min>t?s.min:t},_stop:function(t){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",t))},_setOption:function(t,e){var i,s,n;return"culture"===t||"numberFormat"===t?(i=this._parse(this.element.val()),this.options[t]=e,this.element.val(this._format(i)),void 0):(("max"===t||"min"===t||"step"===t)&&"string"==typeof e&&(e=this._parse(e)),"icons"===t&&(s=this.buttons.first().find(".ui-icon"),this._removeClass(s,null,this.options.icons.up),this._addClass(s,null,e.up),n=this.buttons.last().find(".ui-icon"),this._removeClass(n,null,this.options.icons.down),this._addClass(n,null,e.down)),this._super(t,e),void 0)},_setOptionDisabled:function(t){this._super(t),this._toggleClass(this.uiSpinner,null,"ui-state-disabled",!!t),this.element.prop("disabled",!!t),this.buttons.button(t?"disable":"enable")},_setOptions:r(function(t){this._super(t)}),_parse:function(t){return"string"==typeof t&&""!==t&&(t=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(t,10,this.options.culture):+t),""===t||isNaN(t)?null:t},_format:function(t){return""===t?"":window.Globalize&&this.options.numberFormat?Globalize.format(t,this.options.numberFormat,this.options.culture):t},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var t=this.value();return null===t?!1:t===this._adjustValue(t)},_value:function(t,e){var i;""!==t&&(i=this._parse(t),null!==i&&(e||(i=this._adjustValue(i)),t=this._format(i))),this.element.val(t),this._refresh()},_destroy:function(){this.element.prop("disabled",!1).removeAttr("autocomplete role aria-valuemin aria-valuemax aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:r(function(t){this._stepUp(t)}),_stepUp:function(t){this._start()&&(this._spin((t||1)*this.options.step),this._stop())},stepDown:r(function(t){this._stepDown(t)}),_stepDown:function(t){this._start()&&(this._spin((t||1)*-this.options.step),this._stop())},pageUp:r(function(t){this._stepUp((t||1)*this.options.page)}),pageDown:r(function(t){this._stepDown((t||1)*this.options.page)}),value:function(t){return arguments.length?(r(this._value).call(this,t),void 0):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),t.uiBackCompat!==!1&&t.widget("ui.spinner",t.ui.spinner,{_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml())},_uiSpinnerHtml:function(){return"<span>"},_buttonHtml:function(){return"<a></a><a></a>"}}),t.ui.spinner,t.widget("ui.tabs",{version:"1.12.1",delay:300,options:{active:null,classes:{"ui-tabs":"ui-corner-all","ui-tabs-nav":"ui-corner-all","ui-tabs-panel":"ui-corner-bottom","ui-tabs-tab":"ui-corner-top"},collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var t=/#.*$/;return function(e){var i,s;i=e.href.replace(t,""),s=location.href.replace(t,"");try{i=decodeURIComponent(i)}catch(n){}try{s=decodeURIComponent(s)}catch(n){}return e.hash.length>1&&i===s}}(),_create:function(){var e=this,i=this.options;this.running=!1,this._addClass("ui-tabs","ui-widget ui-widget-content"),this._toggleClass("ui-tabs-collapsible",null,i.collapsible),this._processTabs(),i.active=this._initialActive(),t.isArray(i.disabled)&&(i.disabled=t.unique(i.disabled.concat(t.map(this.tabs.filter(".ui-state-disabled"),function(t){return e.tabs.index(t)}))).sort()),this.active=this.options.active!==!1&&this.anchors.length?this._findActive(i.active):t(),this._refresh(),this.active.length&&this.load(i.active)},_initialActive:function(){var e=this.options.active,i=this.options.collapsible,s=location.hash.substring(1);return null===e&&(s&&this.tabs.each(function(i,n){return t(n).attr("aria-controls")===s?(e=i,!1):void 0}),null===e&&(e=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===e||-1===e)&&(e=this.tabs.length?0:!1)),e!==!1&&(e=this.tabs.index(this.tabs.eq(e)),-1===e&&(e=i?!1:0)),!i&&e===!1&&this.anchors.length&&(e=0),e},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):t()}},_tabKeydown:function(e){var i=t(t.ui.safeActiveElement(this.document[0])).closest("li"),s=this.tabs.index(i),n=!0;if(!this._handlePageNav(e)){switch(e.keyCode){case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:s++;break;case t.ui.keyCode.UP:case t.ui.keyCode.LEFT:n=!1,s--;break;case t.ui.keyCode.END:s=this.anchors.length-1;break;case t.ui.keyCode.HOME:s=0;break;case t.ui.keyCode.SPACE:return e.preventDefault(),clearTimeout(this.activating),this._activate(s),void 0;case t.ui.keyCode.ENTER:return e.preventDefault(),clearTimeout(this.activating),this._activate(s===this.options.active?!1:s),void 0;default:return}e.preventDefault(),clearTimeout(this.activating),s=this._focusNextTab(s,n),e.ctrlKey||e.metaKey||(i.attr("aria-selected","false"),this.tabs.eq(s).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",s)},this.delay))}},_panelKeydown:function(e){this._handlePageNav(e)||e.ctrlKey&&e.keyCode===t.ui.keyCode.UP&&(e.preventDefault(),this.active.trigger("focus"))},_handlePageNav:function(e){return e.altKey&&e.keyCode===t.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):e.altKey&&e.keyCode===t.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(e,i){function s(){return e>n&&(e=0),0>e&&(e=n),e}for(var n=this.tabs.length-1;-1!==t.inArray(s(),this.options.disabled);)e=i?e+1:e-1;return e},_focusNextTab:function(t,e){return t=this._findNextTab(t,e),this.tabs.eq(t).trigger("focus"),t},_setOption:function(t,e){return"active"===t?(this._activate(e),void 0):(this._super(t,e),"collapsible"===t&&(this._toggleClass("ui-tabs-collapsible",null,e),e||this.options.active!==!1||this._activate(0)),"event"===t&&this._setupEvents(e),"heightStyle"===t&&this._setupHeightStyle(e),void 0)},_sanitizeSelector:function(t){return t?t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var e=this.options,i=this.tablist.children(":has(a[href])");e.disabled=t.map(i.filter(".ui-state-disabled"),function(t){return i.index(t)}),this._processTabs(),e.active!==!1&&this.anchors.length?this.active.length&&!t.contains(this.tablist[0],this.active[0])?this.tabs.length===e.disabled.length?(e.active=!1,this.active=t()):this._activate(this._findNextTab(Math.max(0,e.active-1),!1)):e.active=this.tabs.index(this.active):(e.active=!1,this.active=t()),this._refresh()},_refresh:function(){this._setOptionDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._addClass(this.active,"ui-tabs-active","ui-state-active"),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var e=this,i=this.tabs,s=this.anchors,n=this.panels;this.tablist=this._getList().attr("role","tablist"),this._addClass(this.tablist,"ui-tabs-nav","ui-helper-reset ui-helper-clearfix ui-widget-header"),this.tablist.on("mousedown"+this.eventNamespace,"> li",function(e){t(this).is(".ui-state-disabled")&&e.preventDefault()}).on("focus"+this.eventNamespace,".ui-tabs-anchor",function(){t(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").attr({role:"tab",tabIndex:-1}),this._addClass(this.tabs,"ui-tabs-tab","ui-state-default"),this.anchors=this.tabs.map(function(){return t("a",this)[0]}).attr({role:"presentation",tabIndex:-1}),this._addClass(this.anchors,"ui-tabs-anchor"),this.panels=t(),this.anchors.each(function(i,s){var n,o,a,r=t(s).uniqueId().attr("id"),h=t(s).closest("li"),l=h.attr("aria-controls");e._isLocal(s)?(n=s.hash,a=n.substring(1),o=e.element.find(e._sanitizeSelector(n))):(a=h.attr("aria-controls")||t({}).uniqueId()[0].id,n="#"+a,o=e.element.find(n),o.length||(o=e._createPanel(a),o.insertAfter(e.panels[i-1]||e.tablist)),o.attr("aria-live","polite")),o.length&&(e.panels=e.panels.add(o)),l&&h.data("ui-tabs-aria-controls",l),h.attr({"aria-controls":a,"aria-labelledby":r}),o.attr("aria-labelledby",r)}),this.panels.attr("role","tabpanel"),this._addClass(this.panels,"ui-tabs-panel","ui-widget-content"),i&&(this._off(i.not(this.tabs)),this._off(s.not(this.anchors)),this._off(n.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol, ul").eq(0)},_createPanel:function(e){return t("<div>").attr("id",e).data("ui-tabs-destroy",!0)},_setOptionDisabled:function(e){var i,s,n;for(t.isArray(e)&&(e.length?e.length===this.anchors.length&&(e=!0):e=!1),n=0;s=this.tabs[n];n++)i=t(s),e===!0||-1!==t.inArray(n,e)?(i.attr("aria-disabled","true"),this._addClass(i,null,"ui-state-disabled")):(i.removeAttr("aria-disabled"),this._removeClass(i,null,"ui-state-disabled"));this.options.disabled=e,this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,e===!0)},_setupEvents:function(e){var i={};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(t){t.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(e){var i,s=this.element.parent();"fill"===e?(i=s.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var e=t(this),s=e.css("position");"absolute"!==s&&"fixed"!==s&&(i-=e.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=t(this).outerHeight(!0)}),this.panels.each(function(){t(this).height(Math.max(0,i-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.panels.each(function(){i=Math.max(i,t(this).height("").height())}).height(i))},_eventHandler:function(e){var i=this.options,s=this.active,n=t(e.currentTarget),o=n.closest("li"),a=o[0]===s[0],r=a&&i.collapsible,h=r?t():this._getPanelForTab(o),l=s.length?this._getPanelForTab(s):t(),c={oldTab:s,oldPanel:l,newTab:r?t():o,newPanel:h};e.preventDefault(),o.hasClass("ui-state-disabled")||o.hasClass("ui-tabs-loading")||this.running||a&&!i.collapsible||this._trigger("beforeActivate",e,c)===!1||(i.active=r?!1:this.tabs.index(o),this.active=a?t():o,this.xhr&&this.xhr.abort(),l.length||h.length||t.error("jQuery UI Tabs: Mismatching fragment identifier."),h.length&&this.load(this.tabs.index(o),e),this._toggle(e,c))},_toggle:function(e,i){function s(){o.running=!1,o._trigger("activate",e,i)}function n(){o._addClass(i.newTab.closest("li"),"ui-tabs-active","ui-state-active"),a.length&&o.options.show?o._show(a,o.options.show,s):(a.show(),s())}var o=this,a=i.newPanel,r=i.oldPanel;this.running=!0,r.length&&this.options.hide?this._hide(r,this.options.hide,function(){o._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),n()}):(this._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),r.hide(),n()),r.attr("aria-hidden","true"),i.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),a.length&&r.length?i.oldTab.attr("tabIndex",-1):a.length&&this.tabs.filter(function(){return 0===t(this).attr("tabIndex")}).attr("tabIndex",-1),a.attr("aria-hidden","false"),i.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(e){var i,s=this._findActive(e);s[0]!==this.active[0]&&(s.length||(s=this.active),i=s.find(".ui-tabs-anchor")[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return e===!1?t():this.tabs.eq(e)},_getIndex:function(e){return"string"==typeof e&&(e=this.anchors.index(this.anchors.filter("[href$='"+t.ui.escapeSelector(e)+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.tablist.removeAttr("role").off(this.eventNamespace),this.anchors.removeAttr("role tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){t.data(this,"ui-tabs-destroy")?t(this).remove():t(this).removeAttr("role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded")}),this.tabs.each(function(){var e=t(this),i=e.data("ui-tabs-aria-controls");i?e.attr("aria-controls",i).removeData("ui-tabs-aria-controls"):e.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(e){var i=this.options.disabled;i!==!1&&(void 0===e?i=!1:(e=this._getIndex(e),i=t.isArray(i)?t.map(i,function(t){return t!==e?t:null}):t.map(this.tabs,function(t,i){return i!==e?i:null})),this._setOptionDisabled(i))},disable:function(e){var i=this.options.disabled;if(i!==!0){if(void 0===e)i=!0;else{if(e=this._getIndex(e),-1!==t.inArray(e,i))return;i=t.isArray(i)?t.merge([e],i).sort():[e]}this._setOptionDisabled(i)}},load:function(e,i){e=this._getIndex(e);var s=this,n=this.tabs.eq(e),o=n.find(".ui-tabs-anchor"),a=this._getPanelForTab(n),r={tab:n,panel:a},h=function(t,e){"abort"===e&&s.panels.stop(!1,!0),s._removeClass(n,"ui-tabs-loading"),a.removeAttr("aria-busy"),t===s.xhr&&delete s.xhr};this._isLocal(o[0])||(this.xhr=t.ajax(this._ajaxSettings(o,i,r)),this.xhr&&"canceled"!==this.xhr.statusText&&(this._addClass(n,"ui-tabs-loading"),a.attr("aria-busy","true"),this.xhr.done(function(t,e,n){setTimeout(function(){a.html(t),s._trigger("load",i,r),h(n,e)},1)}).fail(function(t,e){setTimeout(function(){h(t,e)},1)})))},_ajaxSettings:function(e,i,s){var n=this;return{url:e.attr("href").replace(/#.*$/,""),beforeSend:function(e,o){return n._trigger("beforeLoad",i,t.extend({jqXHR:e,ajaxSettings:o},s))}}},_getPanelForTab:function(e){var i=t(e).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+i))}}),t.uiBackCompat!==!1&&t.widget("ui.tabs",t.ui.tabs,{_processTabs:function(){this._superApply(arguments),this._addClass(this.tabs,"ui-tab")}}),t.ui.tabs,t.widget("ui.tooltip",{version:"1.12.1",options:{classes:{"ui-tooltip":"ui-corner-all ui-widget-shadow"},content:function(){var e=t(this).attr("title")||"";return t("<a>").text(e).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,track:!1,close:null,open:null},_addDescribedBy:function(e,i){var s=(e.attr("aria-describedby")||"").split(/\s+/);s.push(i),e.data("ui-tooltip-id",i).attr("aria-describedby",t.trim(s.join(" ")))},_removeDescribedBy:function(e){var i=e.data("ui-tooltip-id"),s=(e.attr("aria-describedby")||"").split(/\s+/),n=t.inArray(i,s);-1!==n&&s.splice(n,1),e.removeData("ui-tooltip-id"),s=t.trim(s.join(" ")),s?e.attr("aria-describedby",s):e.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.liveRegion=t("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this.disabledTitles=t([])},_setOption:function(e,i){var s=this;this._super(e,i),"content"===e&&t.each(this.tooltips,function(t,e){s._updateContent(e.element)})},_setOptionDisabled:function(t){this[t?"_disable":"_enable"]()},_disable:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur");n.target=n.currentTarget=s.element[0],e.close(n,!0)}),this.disabledTitles=this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function(){var e=t(this);return e.is("[title]")?e.data("ui-tooltip-title",e.attr("title")).removeAttr("title"):void 0}))},_enable:function(){this.disabledTitles.each(function(){var e=t(this);e.data("ui-tooltip-title")&&e.attr("title",e.data("ui-tooltip-title"))}),this.disabledTitles=t([])},open:function(e){var i=this,s=t(e?e.target:this.element).closest(this.options.items);s.length&&!s.data("ui-tooltip-id")&&(s.attr("title")&&s.data("ui-tooltip-title",s.attr("title")),s.data("ui-tooltip-open",!0),e&&"mouseover"===e.type&&s.parents().each(function(){var e,s=t(this);s.data("ui-tooltip-open")&&(e=t.Event("blur"),e.target=e.currentTarget=this,i.close(e,!0)),s.attr("title")&&(s.uniqueId(),i.parents[this.id]={element:this,title:s.attr("title")},s.attr("title",""))}),this._registerCloseHandlers(e,s),this._updateContent(s,e))},_updateContent:function(t,e){var i,s=this.options.content,n=this,o=e?e.type:null;return"string"==typeof s||s.nodeType||s.jquery?this._open(e,t,s):(i=s.call(t[0],function(i){n._delay(function(){t.data("ui-tooltip-open")&&(e&&(e.type=o),this._open(e,t,i))})}),i&&this._open(e,t,i),void 0)},_open:function(e,i,s){function n(t){l.of=t,a.is(":hidden")||a.position(l)}var o,a,r,h,l=t.extend({},this.options.position);if(s){if(o=this._find(i))return o.tooltip.find(".ui-tooltip-content").html(s),void 0;i.is("[title]")&&(e&&"mouseover"===e.type?i.attr("title",""):i.removeAttr("title")),o=this._tooltip(i),a=o.tooltip,this._addDescribedBy(i,a.attr("id")),a.find(".ui-tooltip-content").html(s),this.liveRegion.children().hide(),h=t("<div>").html(a.find(".ui-tooltip-content").html()),h.removeAttr("name").find("[name]").removeAttr("name"),h.removeAttr("id").find("[id]").removeAttr("id"),h.appendTo(this.liveRegion),this.options.track&&e&&/^mouse/.test(e.type)?(this._on(this.document,{mousemove:n}),n(e)):a.position(t.extend({of:i},this.options.position)),a.hide(),this._show(a,this.options.show),this.options.track&&this.options.show&&this.options.show.delay&&(r=this.delayedShow=setInterval(function(){a.is(":visible")&&(n(l.of),clearInterval(r))},t.fx.interval)),this._trigger("open",e,{tooltip:a})}},_registerCloseHandlers:function(e,i){var s={keyup:function(e){if(e.keyCode===t.ui.keyCode.ESCAPE){var s=t.Event(e);s.currentTarget=i[0],this.close(s,!0)}}};i[0]!==this.element[0]&&(s.remove=function(){this._removeTooltip(this._find(i).tooltip)}),e&&"mouseover"!==e.type||(s.mouseleave="close"),e&&"focusin"!==e.type||(s.focusout="close"),this._on(!0,i,s)},close:function(e){var i,s=this,n=t(e?e.currentTarget:this.element),o=this._find(n);return o?(i=o.tooltip,o.closing||(clearInterval(this.delayedShow),n.data("ui-tooltip-title")&&!n.attr("title")&&n.attr("title",n.data("ui-tooltip-title")),this._removeDescribedBy(n),o.hiding=!0,i.stop(!0),this._hide(i,this.options.hide,function(){s._removeTooltip(t(this))}),n.removeData("ui-tooltip-open"),this._off(n,"mouseleave focusout keyup"),n[0]!==this.element[0]&&this._off(n,"remove"),this._off(this.document,"mousemove"),e&&"mouseleave"===e.type&&t.each(this.parents,function(e,i){t(i.element).attr("title",i.title),delete s.parents[e]}),o.closing=!0,this._trigger("close",e,{tooltip:i}),o.hiding||(o.closing=!1)),void 0):(n.removeData("ui-tooltip-open"),void 0)},_tooltip:function(e){var i=t("<div>").attr("role","tooltip"),s=t("<div>").appendTo(i),n=i.uniqueId().attr("id");return this._addClass(s,"ui-tooltip-content"),this._addClass(i,"ui-tooltip","ui-widget ui-widget-content"),i.appendTo(this._appendTo(e)),this.tooltips[n]={element:e,tooltip:i}},_find:function(t){var e=t.data("ui-tooltip-id");return e?this.tooltips[e]:null},_removeTooltip:function(t){t.remove(),delete this.tooltips[t.attr("id")]},_appendTo:function(t){var e=t.closest(".ui-front, dialog");return e.length||(e=this.document[0].body),e},_destroy:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur"),o=s.element;n.target=n.currentTarget=o[0],e.close(n,!0),t("#"+i).remove(),o.data("ui-tooltip-title")&&(o.attr("title")||o.attr("title",o.data("ui-tooltip-title")),o.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}}),t.uiBackCompat!==!1&&t.widget("ui.tooltip",t.ui.tooltip,{options:{tooltipClass:null},_tooltip:function(){var t=this._superApply(arguments);return this.options.tooltipClass&&t.tooltip.addClass(this.options.tooltipClass),t}}),t.ui.tooltip}); \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/js/quicksilver.js b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/js/quicksilver.js index 079ea87d5c2c03ec140396014394dbed08ad4dad..d8ca764f81d5c15b2746bed5fb6d37681ddb486d 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/js/quicksilver.js +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/js/quicksilver.js @@ -38,7 +38,7 @@ String.prototype.score = function (abbreviation,offset) { offset = offset || 0 // TODO: I think this is unused... remove - if (abbreviation.length == 0) { + if (abbreviation.length === 0) { return 0.9 } if (abbreviation.length > this.length) { @@ -57,7 +57,7 @@ String.prototype.score = function (abbreviation,offset) { continue; } - var next_string = this.substring(index+sub_abbreviation.length) + var next_string = this.substring(index + sub_abbreviation.length) var next_abbreviation = null if (i >= abbreviation.length) { @@ -74,8 +74,8 @@ String.prototype.score = function (abbreviation,offset) { if (index != 0) { var j = 0; var c = this.charCodeAt(index - 1) - if ( c==32 || c == 9) { - for (var j=(index-2); j >= 0; j--) { + if ( c == 32 || c == 9) { + for (j = (index - 2); j >= 0; j--) { c = this.charCodeAt(j) score -= ((c == 32 || c == 9) ? 1 : 0.15) } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/js/suggest.js b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/js/suggest.js index b404edd0a0509dad13cab4d2d6fab86feaa0c85b..c30e7ba6a1aeda880840d031966ade16c1d1cff1 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/js/suggest.js +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/js/suggest.js @@ -11,13 +11,13 @@ String.prototype.score = function (abbreviation,offset) { for (var i = 0; i < suggest_cache['len']; ++i) { suggest_cache['re'][i] = new Array(); // /\b<x>/ doesn't work when <x> i a non-ascii - oddly enough \s does ... - suggest_cache['re'][i]['initialword'] = new RegExp("^"+words[i], "i"); - suggest_cache['re'][i]['word'] = new RegExp("[\\s-()_]"+words[i], "i"); + suggest_cache['re'][i]['initialword'] = new RegExp("^" + words[i], "i"); + suggest_cache['re'][i]['word'] = new RegExp("[\\s-()_]" + words[i], "i"); } } - for (var i = 0; i < suggest_cache['len']; ++i) { - if (!(this.match(suggest_cache['re'][i]['initialword']) || this.match(suggest_cache['re'][i]['word']))) { + for (var j = 0; j < suggest_cache['len']; ++j) { + if (!(this.match(suggest_cache['re'][j]['initialword']) || this.match(suggest_cache['re'][j]['word']))) { return 0; } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/js/tablist.js b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/js/tablist.js new file mode 100644 index 0000000000000000000000000000000000000000..695d0dd744f0f95d707d405450b6f83470456a01 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/assets/js/tablist.js @@ -0,0 +1,13 @@ +$(document).ready(function () { + $("#tabdiv").tabs(); + $.getJSON("tablist.php", function(data) { + $("#tabdiv").select(data["default"]); + for (var i = 0; i < data["tabs"].length; i++) { + var tab = data["tabs"][i]; + $("#query_" + tab).liveUpdate("#list_" + tab); + if (data["faventry"] === null && i === 0) { + $("#query_" + tab).focus(); + } + } + }); +}); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/tablist.php b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/tablist.php new file mode 100644 index 0000000000000000000000000000000000000000..cbeb85152ff81d33015b6be204d507401abdde01 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/discopower/www/tablist.php @@ -0,0 +1,43 @@ +<?php + +/** + * An AJAX handler to retrieve a list of disco tabs from the session. + * This allows us to dynamically update the tab list without inline javascript. + * + * @author Guy Halse, http://orcid.org/0000-0002-9388-8592 + * @package SimpleSAMLphp + */ + +$session = \SimpleSAML\Session::getSessionFromRequest(); +$tabs = $session->getData('discopower:tabList', 'tabs'); +$faventry = $session->getData('discopower:tabList', 'faventry'); +$defaulttab = $session->getData('discopower:tabList', 'defaulttab'); + +if (!is_array($tabs)) { + throw new \SimpleSAML\Error\Exception('Could not get tab list from session'); +} + +// handle JSON vs JSONP requests +if (isset($_REQUEST['callback'])) { + if (!preg_match('/^[a-z0-9_]+$/i', $_REQUEST['callback'], $matches)) { + throw new \SimpleSAML\Error\Exception('Unsafe JSONP callback function name "' . $matches[0] . '"'); + } + $jsonp = true; + header('Content-Type: application/javascript'); + echo addslashes($matches[0]) . '('; +} else { + $jsonp = false; + header('Content-Type: application/json'); +} + +echo json_encode( + [ + 'faventry' => $faventry, + 'default' => $defaulttab, + 'tabs' => $tabs, + ] +); + +if ($jsonp) { + echo ');'; +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/.codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/.codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/.codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..9649d08b883c8a661ebabcc8df54c4b748c8973f --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/.php_cs.dist @@ -0,0 +1,15 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/tests', + __DIR__ . '/www', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..3c250287a743959883e40e541e22f26fb1dd8635 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/.travis.yml @@ -0,0 +1,35 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +matrix: + allow_failures: + - php: 7.3 + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then composer require --dev vimeo/psalm:1.1.9; fi + +script: + - bin/check-syntax.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi +# - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/LICENSE b/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..0a041280bd00a9d068f503b8ee7ce35214bd24a1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/bin/check-syntax.sh b/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/bin/check-syntax.sh new file mode 100755 index 0000000000000000000000000000000000000000..7fc4fcd3da6b1e849ad958ee52e31ef0514963b9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/bin/check-syntax.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +PHP='/usr/bin/env php' +RETURN=0 + +# check PHP files +for FILE in `find tests www -name "*.php"`; do + $PHP -l $FILE > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Syntax check failed for ${FILE}" + RETURN=`expr ${RETURN} + 1` + fi +done + +exit $RETURN diff --git a/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..b4c0ff482cbbc7d668c61a9ec1c051bfa74f43ac --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/composer.json @@ -0,0 +1,41 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-exampleattributeserver", + "description": "An example for SAML attributes queries", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "exampleattributeserver"], + "license": "LGPL-3.0-or-later", + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\exampleattributeserver\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "phpunit/phpunit": "~5.7" + }, + "support": { + "issues": "https://github.com/tvdijen/simplesamlphp-module-exampleattributeserver/issues", + "source": "https://github.com/tvdijen/simplesamlphp-module-exampleattributeserver" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/default-disable b/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/default-enable similarity index 59% rename from vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/default-disable rename to vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/default-enable index fa0bd82e2df7bd79d57593d35bc53c1f9d3ef71f..25615cb47c350d23033eb9801627ed8330bcc3e9 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/default-disable +++ b/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/default-enable @@ -1,3 +1,3 @@ This file indicates that the default state of this module -is disabled. To enable, create a file named enable in the +is enabled. To disable, create a file named disable in the same directory as this file. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0985fdd804b18d8d9179ecd956d63582c189e95 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/phpunit.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..9326f7da9c0e9e1ec6bdbb0e019e12c16f8a38c6 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/psalm.xml @@ -0,0 +1,30 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp exampleattributeserver module" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="www" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..67beffd16eb162c745130827e836a3f8c6a442fb --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot.'/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot.'/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/www/attributeserver.php b/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/www/attributeserver.php index 9bdbe415a1ff0a52d2c7fe64701b1bc08550da5b..84aad77dd1204475d4a9d1b908e7c9c32904bb01 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/www/attributeserver.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/exampleattributeserver/www/attributeserver.php @@ -10,10 +10,13 @@ $idpEntityId = $metadata->getMetaDataCurrentEntityID('saml20-idp-hosted'); - -$spEntityId = $query->getIssuer(); -if ($spEntityId === null) { +$issuer = $query->getIssuer(); +if ($issuer === null) { throw new \SimpleSAML\Error\BadRequest('Missing <saml:Issuer> in <samlp:AttributeQuery>.'); +} elseif (is_string($issuer)) { + $spEntityId = $issuer; +} else { + $spEntityId = $issuer->getValue(); } $idpMetadata = $metadata->getMetaDataConfig($idpEntityId, 'saml20-idp-hosted'); @@ -41,6 +44,7 @@ $returnAttributes = []; } else { foreach ($returnAttributes as $name => $values) { + /** @var array $values */ if (!array_key_exists($name, $attributes)) { // We don't have this attribute unset($returnAttributes[$name]); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/lib/Auth/Process/RedirectTest.php b/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/lib/Auth/Process/RedirectTest.php index 13ff82dbd2e92a09d64943c2b2d938a09f7f3537..2e52b99f81e3f5b28f85f2292b405b5e5e43e4de 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/lib/Auth/Process/RedirectTest.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/lib/Auth/Process/RedirectTest.php @@ -1,18 +1,22 @@ <?php -namespace SimpleSAML\Module\exampleautth\Auth\Process; +namespace SimpleSAML\Module\exampleauth\Auth\Process; + +use SimpleSAML\Auth; +use SimpleSAML\Module; +use SimpleSAML\Utils; /** * A simple processing filter for testing that redirection works as it should. * */ - class RedirectTest extends \SimpleSAML\Auth\ProcessingFilter { /** * Initialize processing of the redirect test. * * @param array &$state The state we should update. + * @return void */ public function process(&$state) { @@ -23,8 +27,8 @@ public function process(&$state) $state['Attributes']['RedirectTest1'] = ['OK']; // Save state and redirect - $id = \SimpleSAML\Auth\State::saveState($state, 'exampleauth:redirectfilter-test'); - $url = \SimpleSAML\Module::getModuleURL('exampleauth/redirecttest.php'); - \SimpleSAML\Utils\HTTP::redirectTrustedURL($url, ['StateId' => $id]); + $id = Auth\State::saveState($state, 'exampleauth:redirectfilter-test'); + $url = Module::getModuleURL('exampleauth/redirecttest.php'); + Utils\HTTP::redirectTrustedURL($url, ['StateId' => $id]); } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/lib/Auth/Source/External.php b/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/lib/Auth/Source/External.php index 48a032a36b469fc5eb179a0c7f4922c34e14f8dc..60c2ebfef23544c68638c4fd2e1a426b6009db4a 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/lib/Auth/Source/External.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/lib/Auth/Source/External.php @@ -2,6 +2,11 @@ namespace SimpleSAML\Module\exampleauth\Auth\Source; +use SimpleSAML\Auth; +use SimpleSAML\Error; +use SimpleSAML\Module; +use SimpleSAML\Utils; + /** * Example external authentication source. * @@ -22,7 +27,6 @@ * * @package SimpleSAMLphp */ - class External extends \SimpleSAML\Auth\Source { /** @@ -30,6 +34,7 @@ class External extends \SimpleSAML\Auth\Source */ const AUTHID = 'SimpleSAML\Module\exampleauth\Auth\Source\External.AuthId'; + /** * Constructor for this authentication source. * @@ -47,10 +52,11 @@ public function __construct($info, $config) // Do any other configuration we need here } + /** * Retrieve attributes for the user. * - * @return array|NULL The user's attributes, or NULL if the user isn't authenticated. + * @return array|null The user's attributes, or NULL if the user isn't authenticated. */ private function getUser() { @@ -91,10 +97,12 @@ private function getUser() return $attributes; } + /** * Log in using an external authentication helper. * * @param array &$state Information about the current authentication. + * @return void */ public function authenticate(&$state) { @@ -121,7 +129,7 @@ public function authenticate(&$state) * First we add the identifier of this authentication source * to the state array, so that we know where to resume. */ - $state['exampleauth:AuthID'] = self::AUTHID; + $state['exampleauth:AuthID'] = $this->authId; /* * We need to save the $state-array, so that we can resume the @@ -136,14 +144,14 @@ public function authenticate(&$state) * and restores it in another location, and thus bypasses steps in * the authentication process. */ - $stateId = \SimpleSAML\Auth\State::saveState($state, 'exampleauth:External'); + $stateId = Auth\State::saveState($state, 'exampleauth:External'); /* * Now we generate a URL the user should return to after authentication. * We assume that whatever authentication page we send the user to has an * option to return the user to a specific page afterwards. */ - $returnTo = \SimpleSAML\Module::getModuleURL('exampleauth/resume.php', [ + $returnTo = Module::getModuleURL('exampleauth/resume.php', [ 'State' => $stateId, ]); @@ -154,7 +162,7 @@ public function authenticate(&$state) * is also part of this module, but in a real example, this would likely be * the absolute URL of the login page for the site. */ - $authPage = \SimpleSAML\Module::getModuleURL('exampleauth/authpage.php'); + $authPage = Module::getModuleURL('exampleauth/authpage.php'); /* * The redirect to the authentication page. @@ -162,7 +170,7 @@ public function authenticate(&$state) * Note the 'ReturnTo' parameter. This must most likely be replaced with * the real name of the parameter for the login page. */ - \SimpleSAML\Utils\HTTP::redirectTrustedURL($authPage, [ + Utils\HTTP::redirectTrustedURL($authPage, [ 'ReturnTo' => $returnTo, ]); @@ -172,13 +180,16 @@ public function authenticate(&$state) assert(false); } + /** * Resume authentication process. * * This function resumes the authentication process after the user has * entered his or her credentials. * - * @param array &$state The authentication state. + * @return void + * @throws \SimpleSAML\Error\BadRequest + * @throws \SimpleSAML\Error\Exception */ public static function resume() { @@ -187,26 +198,27 @@ public static function resume() * it in the 'State' request parameter. */ if (!isset($_REQUEST['State'])) { - throw new \SimpleSAML\Error\BadRequest('Missing "State" parameter.'); + throw new Error\BadRequest('Missing "State" parameter.'); } /* * Once again, note the second parameter to the loadState function. This must * match the string we used in the saveState-call above. */ - $state = \SimpleSAML\Auth\State::loadState($_REQUEST['State'], 'exampleauth:External'); + /** @var array $state */ + $state = Auth\State::loadState($_REQUEST['State'], 'exampleauth:External'); /* * Now we have the $state-array, and can use it to locate the authentication * source. */ - $source = \SimpleSAML\Auth\Source::getById($state['exampleauth:AuthID']); + $source = Auth\Source::getById($state['exampleauth:AuthID']); if ($source === null) { /* * The only way this should fail is if we remove or rename the authentication source * while the user is at the login page. */ - throw new \SimpleSAML\Error\Exception('Could not find authentication source with id '.$state[self::AUTHID]); + throw new Error\Exception('Could not find authentication source with id ' . $state[self::AUTHID]); } /* @@ -215,7 +227,7 @@ public static function resume() * change config/authsources.php while an user is logging in. */ if (!($source instanceof self)) { - throw new \SimpleSAML\Error\Exception('Authentication source type changed.'); + throw new Error\Exception('Authentication source type changed.'); } /* @@ -231,7 +243,7 @@ public static function resume() * Here we simply throw an exception, but we could also redirect the user back to the * login page. */ - throw new \SimpleSAML\Error\Exception('User not authenticated after login page.'); + throw new Error\Exception('User not authenticated after login page.'); } /* @@ -240,7 +252,7 @@ public static function resume() */ $state['Attributes'] = $attributes; - \SimpleSAML\Auth\Source::completeAuth($state); + Auth\Source::completeAuth($state); /* * The completeAuth-function never returns, so we never get this far. @@ -248,11 +260,13 @@ public static function resume() assert(false); } + /** * This function is called when the user start a logout operation, for example * by logging out of a SP that supports single logout. * * @param array &$state The logout state array. + * @return void */ public function logout(&$state) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/lib/Auth/Source/StaticSource.php b/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/lib/Auth/Source/StaticSource.php index d81dd325638fe2c2e1f3e64d45ca329310115c54..8d0dc72e141d0d93e982e2c659489fea4300f0f1 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/lib/Auth/Source/StaticSource.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/lib/Auth/Source/StaticSource.php @@ -2,6 +2,8 @@ namespace SimpleSAML\Module\exampleauth\Auth\Source; +use SimpleSAML\Utils; + /** * Example authentication source. * @@ -11,14 +13,15 @@ * @author Olav Morken, UNINETT AS. * @package SimpleSAMLphp */ - class StaticSource extends \SimpleSAML\Auth\Source { /** * The attributes we return. + * @var array */ private $attributes; + /** * Constructor for this authentication source. * @@ -35,17 +38,19 @@ public function __construct($info, $config) // Parse attributes try { - $this->attributes = \SimpleSAML\Utils\Attributes::normalizeAttributesArray($config); + $this->attributes = Utils\Attributes::normalizeAttributesArray($config); } catch (\Exception $e) { - throw new \Exception('Invalid attributes for authentication source '. - $this->authId.': '.$e->getMessage()); + throw new \Exception('Invalid attributes for authentication source ' . + $this->authId . ': ' . $e->getMessage()); } } + /** * Log in using static attributes. * * @param array &$state Information about the current authentication. + * @return void */ public function authenticate(&$state) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/lib/Auth/Source/UserPass.php b/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/lib/Auth/Source/UserPass.php index 19da260bbdfa201c7bb86907da5a806e5002801b..30239a6c2943a327d4382199a6aeb83e0f73ebea 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/lib/Auth/Source/UserPass.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/lib/Auth/Source/UserPass.php @@ -2,6 +2,9 @@ namespace SimpleSAML\Module\exampleauth\Auth\Source; +use SimpleSAML\Error; +use SimpleSAML\Utils; + /** * Example authentication source - username & password. * @@ -17,9 +20,12 @@ class UserPass extends \SimpleSAML\Module\core\Auth\UserPassBase /** * Our users, stored in an associative array. The key of the array is "<username>:<password>", * while the value of each element is a new array with the attributes for each user. + * + * @var array */ private $users; + /** * Constructor for this authentication source. * @@ -40,29 +46,30 @@ public function __construct($info, $config) foreach ($config as $userpass => $attributes) { if (!is_string($userpass)) { throw new \Exception( - 'Invalid <username>:<password> for authentication source '.$this->authId.': '.$userpass + 'Invalid <username>:<password> for authentication source ' . $this->authId . ': ' . $userpass ); } $userpass = explode(':', $userpass, 2); if (count($userpass) !== 2) { throw new \Exception( - 'Invalid <username>:<password> for authentication source '.$this->authId.': '.$userpass[0] + 'Invalid <username>:<password> for authentication source ' . $this->authId . ': ' . $userpass[0] ); } $username = $userpass[0]; $password = $userpass[1]; try { - $attributes = \SimpleSAML\Utils\Attributes::normalizeAttributesArray($attributes); + $attributes = Utils\Attributes::normalizeAttributesArray($attributes); } catch (\Exception $e) { - throw new \Exception('Invalid attributes for user '.$username. - ' in authentication source '.$this->authId.': '.$e->getMessage()); + throw new \Exception('Invalid attributes for user ' . $username . + ' in authentication source ' . $this->authId . ': ' . $e->getMessage()); } - $this->users[$username.':'.$password] = $attributes; + $this->users[$username . ':' . $password] = $attributes; } } + /** * Attempt to log in using the given username and password. * @@ -81,9 +88,9 @@ protected function login($username, $password) assert(is_string($username)); assert(is_string($password)); - $userpass = $username.':'.$password; + $userpass = $username . ':' . $password; if (!array_key_exists($userpass, $this->users)) { - throw new \SimpleSAML\Error\Error('WRONGUSERPASS'); + throw new Error\Error('WRONGUSERPASS'); } return $this->users[$userpass]; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/templates/authenticate.tpl.php b/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/templates/authenticate.tpl.php new file mode 100644 index 0000000000000000000000000000000000000000..fd112ff59f94169ac4257ca083cfeed98ed086bc --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/templates/authenticate.tpl.php @@ -0,0 +1,29 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> + <title>exampleauth login page</title> + </head> + <body> + <h1>exampleauth login page</h1> + <p> + In this example you can log in with two accounts: <code>student</code> and <code>admin</code>. + In both cases, the password is the same as the username. + </p> + <form method="post" action="?"> + <p> + Username: + <input type="text" name="username"> + </p> + <p> + Password: + <input type="text" name="password"> + </p> + <input type="hidden" name="ReturnTo" value="<?= htmlspecialchars($this->data['returnTo']) ?>"> + <p><input type="submit" value="Log in"></p> + </form> +<?php if($this->data['badUserPass']): ?> + <p>!!! Bad username or password !!!</p> +<?php endif; ?> + </body> +</html> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/templates/authenticate.twig b/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/templates/authenticate.twig new file mode 100644 index 0000000000000000000000000000000000000000..4a68e334cbcc465549576cf180bfd2c6998828e8 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/templates/authenticate.twig @@ -0,0 +1,29 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> + <title>exampleauth login page</title> + </head> + <body> + <h1>exampleauth login page</h1> + <p> + In this example you can log in with two accounts: <code>student</code> and <code>admin</code>. + In both cases, the password is the same as the username. + </p> + <form method="post" action="?"> + <p> + Username: + <input type="text" name="username"> + </p> + <p> + Password: + <input type="text" name="password"> + </p> + <input type="hidden" name="ReturnTo" value="{{ returnTo|escape('html') }}"> + <p><input type="submit" value="Log in"></p> + </form> +{% if badUserPass == true %} + <p>!!! Bad username or password !!!</p> +{% endif %} + </body> +</html> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/www/authpage.php b/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/www/authpage.php index 6c34995ec79627eb8e458e5aba5fe6eb858b8910..795a13cba8d2f4fc0aa9a6abc774368964b0dbbc 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/www/authpage.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/www/authpage.php @@ -15,30 +15,27 @@ $returnTo = \SimpleSAML\Utils\HTTP::checkURLAllowed($_REQUEST['ReturnTo']); -/* +/** * The following piece of code would never be found in a real authentication page. Its * purpose in this example is to make this example safer in the case where the - * administrator of * the IdP leaves the exampleauth-module enabled in a production + * administrator of the IdP leaves the exampleauth-module enabled in a production * environment. * * What we do here is to extract the $state-array identifier, and check that it belongs to * the exampleauth:External process. */ - if (!preg_match('@State=(.*)@', $returnTo, $matches)) { die('Invalid ReturnTo URL for this example.'); } -\SimpleSAML\Auth\State::loadState(urldecode($matches[1]), 'exampleauth:External'); -/* +/** * The loadState-function will not return if the second parameter does not * match the parameter passed to saveState, so by now we know that we arrived here * through the exampleauth:External authentication page. */ +\SimpleSAML\Auth\State::loadState(urldecode($matches[1]), 'exampleauth:External'); -/* - * Our list of users. - */ +// our list of users. $users = [ 'student' => [ 'password' => 'student', @@ -56,11 +53,7 @@ ], ]; -/* - * Time to handle login responses. - * Since this is a dummy example, we accept any data. - */ - +// time to handle login responses; since this is a dummy example, we accept any data $badUserPass = false; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $username = (string) $_REQUEST['username']; @@ -85,35 +78,9 @@ } } -/* - * If we get this far, we need to show the login page to the user. - */ -?><!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<title>exampleauth login page</title> -</head> -<body> -<h1>exampleauth login page</h1> -<p> -In this example you can log in with two accounts: <code>student</code> and <code>admin</code>. -In both cases, the password is the same as the username. -</p> -<?php if ($badUserPass) { ?> -<p>Bad username or password.</p> -<?php } ?> -<form method="post" action="?"> -<p> -Username: -<input type="text" name="username"> -</p> -<p> -Password: -<input type="text" name="password"> -</p> -<input type="hidden" name="ReturnTo" value="<?php echo htmlspecialchars($returnTo); ?>"> -<p><input type="submit" value="Log in"></p> -</form> -</body> -</html> +// if we get this far, we need to show the login page to the user +$config = \SimpleSAML\Configuration::getInstance(); +$t = new \SimpleSAML\XHTML\Template($config, 'exampleauth:authenticate.tpl.php'); +$t->data['badUserPass'] = $badUserPass; +$t->data['returnTo'] = $returnTo; +$t->show(); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/www/redirecttest.php b/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/www/redirecttest.php index 9d605277d31a7f2c05508d1d01aa5e4bbf596d67..ff06102cd2e27b573898b6fdd287d3c60cee8327 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/www/redirecttest.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/exampleauth/www/redirecttest.php @@ -10,6 +10,8 @@ if (!array_key_exists('StateId', $_REQUEST)) { throw new \SimpleSAML\Error\BadRequest('Missing required StateId query parameter.'); } + +/** @var array $state */ $state = \SimpleSAML\Auth\State::loadState($_REQUEST['StateId'], 'exampleauth:redirectfilter-test'); $state['Attributes']['RedirectTest2'] = ['OK']; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/.codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/.codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/.codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..59267ee96c7911780c11de4d2e1c4db1838d8752 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/.php_cs.dist @@ -0,0 +1,17 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/lib', + __DIR__ . '/templates', + __DIR__ . '/tests', + __DIR__ . '/www', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..725b371c663863e6c99a81b99b74a38bef58841c --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/.travis.yml @@ -0,0 +1,29 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +matrix: + allow_failures: + - php: 7.3 + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + +script: + - vendor/simplesamlphp/simplesamlphp-test-framework/bin/check-syntax-php.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/LICENSE b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..0a041280bd00a9d068f503b8ee7ce35214bd24a1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..6d120cec7bddf839c8ebd6aa8e1abcabbc39104d --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/composer.json @@ -0,0 +1,42 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-expirycheck", + "description": "The expirycheck module validates user's expiry date", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "expirycheck"], + "license": "LGPL-3.0-or-later", + "authors": [ + { + "name": "Alex Mihičinac", + "email": "alexm@arnes.si" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\expirycheck\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.10" + }, + "support": { + "issues": "https://github.com/simplesamlphp/simplesamlphp-module-expirycheck/issues", + "source": "https://github.com/simplesamlphp/simplesamlphp-module-expirycheck" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/default-disable b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/default-enable similarity index 59% rename from vendor/simplesamlphp/simplesamlphp/modules/expirycheck/default-disable rename to vendor/simplesamlphp/simplesamlphp/modules/expirycheck/default-enable index fa0bd82e2df7bd79d57593d35bc53c1f9d3ef71f..25615cb47c350d23033eb9801627ed8330bcc3e9 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/default-disable +++ b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/default-enable @@ -1,3 +1,3 @@ This file indicates that the default state of this module -is disabled. To enable, create a file named enable in the +is enabled. To disable, create a file named disable in the same directory as this file. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/dictionaries/expwarning.translation.json b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/dictionaries/expwarning.translation.json index 18dc57dc108ab0bec53e63f62b5f3d08d7ea372d..5bbf5361b439e2f257113970db7b9425d4e89bf6 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/dictionaries/expwarning.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/dictionaries/expwarning.translation.json @@ -13,7 +13,9 @@ "af": "Jy het nie toegang na die diens nie", "el": "\u0394\u03b5\u03bd \u03ad\u03c7\u03b5\u03c4\u03b5 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03ae \u03c4\u03b7\u03bd \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1", "xh": "Awunalo ufikelelo kule nkonzo", - "zu": "Awukwazi ukufinyelela le sevisi" + "zu": "Awukwazi ukufinyelela le sevisi", + "st": "Ha o na phihlello ho tshebeletso ena", + "ca": "No teniu accés a aquest servei" }, "no_access_to": { "sl": "Dostop zavrnjen, ker je va\u0161e uporabni\u0161ko (NetID) %NETID% ime poteklo!", @@ -29,7 +31,9 @@ "af": "Jou rekening %NETID% het verval, toegang verbode!", "el": "\u039f \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc\u03c2 %NETID% u03ad\u03c7\u03b5\u03b9 \u03bb\u03ae\u03be\u03b5\u03b9 - \u03b4\u03b5\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03c4\u03b1\u03b9 \u03b7 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7!", "zu": "I-akhawunti yakho ethi %NETID% iphelelwe isikhathi, ukufinyelela kwenqatshiwe!", - "xh": "Iakhawunti yakho %NETID% iphelelwe, ufikelelo lukhatyiwe!" + "xh": "Iakhawunti yakho %NETID% iphelelwe, ufikelelo lukhatyiwe!", + "st": "Akhaonto ya hao %NETID% e feletswe ke nako, phihlello e hanetswe.!", + "ca": "El vostre compte %NETID% ha caducat, accés denegat!" }, "contact_home": { "sl": "Mo\u017enost dostopa do storitve ureja va\u0161a doma\u010da organizacija. Obrnite se na njihov oddelek za pomo\u010d uporabnikom.", @@ -44,7 +48,9 @@ "af": "Toegang tot dienste word beheer deur jou tuis organisasie. Kontak asseblief jou plaaslike IT ondersteuning vir navrae.", "el": "\u0397 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03c3\u03c4\u03b9\u03c2 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b5\u03c2 \u03b5\u03bb\u03ad\u03b3\u03c7\u03b5\u03c4\u03b1\u03b9 \u03b1\u03c0\u03cc \u03c4\u03bf\u03bd \u039f\u03b9\u03ba\u03b5\u03af\u03bf \u03a6\u03bf\u03c1\u03ad\u03b1. \u0393\u03b9\u03b1 \u03c0\u03b5\u03c1\u03b1\u03b9\u03c4\u03ad\u03c1\u03c9 \u03b5\u03c1\u03c9\u03c4\u03ae\u03c3\u03b5\u03b9\u03c2, \u03c0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03bf\u03cd\u03bc\u03b5 \u03b1\u03c0\u03b5\u03c5\u03b8\u03c5\u03bd\u03b8\u03b5\u03af\u03c4\u03b5 \u03c3\u03c4\u03bf \u03c4\u03bf\u03c0\u03b9\u03ba\u03cc \u0393\u03c1\u03b1\u03c6\u03b5\u03af\u03bf \u0391\u03c1\u03c9\u03b3\u03ae\u03c2 \u03a7\u03c1\u03b7\u03c3\u03c4\u03ce\u03bd.", "zu": "Ukufinyelela amasevisi kulawulwa inhlangano yakho yasekhaya. Sicela uthinte ukusekela kwakho kwe-IT kwasendaweni uma unemibuzo.", - "xh": "Ufikelelo kwiinkonzo lulawulwa ngumbutho wakho wekhaya. Nceda uqhagamshelane nenkxaso yakho ye-IT yasekuhlaleni ngemibuzo." + "xh": "Ufikelelo kwiinkonzo lulawulwa ngumbutho wakho wekhaya. Nceda uqhagamshelane nenkxaso yakho ye-IT yasekuhlaleni ngemibuzo.", + "st": "Phihlello ho ditshebeletso e laolwa ke khampani ya heno. Ka kopo ikopanye le ba tshehetso ya IT ba heno ba lehae bakeng sa dipotso.", + "ca": "L’accés als serveis està controlat per la vostra organització principal. Poseu-vos en contacte amb el vostre suport informàtic local per resoldre els dubtes." }, "expiry_date_text": { "sl": "Datum poteka:", @@ -60,7 +66,9 @@ "af": "Verval datum:", "el": "\u0397\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03af\u03b1 \u03bb\u03ae\u03be\u03b7\u03c2 \u03b9\u03c3\u03c7\u03cd\u03bf\u03c2:", "xh": "Umhla wpkuphelelwa:", - "zu": "Usuku lokuphelelwa isikhathi:" + "zu": "Usuku lokuphelelwa isikhathi:", + "st": "Letsatsi la phello:", + "ca": "Data de caducitat:" }, "warning_header": { "sl": "Pozor! Va\u0161e uporabni\u0161ko ime (NetID) %NETID% bo poteklo \u010dez %DAYSLEFT% %DAYS%!", @@ -75,7 +83,9 @@ "af": "Waarskuwing, jou rekening %NETID% sal verval in %DAYSLEFT% %DAYS%!", "el": "\u03a0\u03c1\u03bf\u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7: \u039f \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc\u03c2 %NETID% \u03b8\u03b1 \u03bb\u03ae\u03be\u03b5\u03b9 \u03c3\u03b5 %DAYSLEFT% %DAYS%!", "zu": "Isixwayiso, i-akhawunti yakho ethi %NETID% izophelelwa isikhathi ezinsukwini ezingu-%DAYSLEFT% %DAYS%!", - "xh": "Isilumkiso, iakhawunti yakho %NETID% iza kuphelelwa %DAYSLEFT% %DAYS%!" + "xh": "Isilumkiso, iakhawunti yakho %NETID% iza kuphelelwa %DAYSLEFT% %DAYS%!", + "st": "Tlhokomediso, akhaonto ya hao %NETID% e tla fellwa ke nako nakong ya %DAYSLEFT% %DAYS%!", + "ca": "Advertència, el vostre compte %NETID% caducarà en %DAYSLEFT% %DAYS%!" }, "warning_header_today": { "sl": "Pozor! Va\u0161e uporabni\u0161ko ime (NetID) %NETID% pote\u010de danes!", @@ -90,7 +100,9 @@ "af": "Waarskuwing, jou rekening %NETID% verval vandag!", "el": "\u03a0\u03c1\u03bf\u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7: \u039f \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc\u03c2 %NETID% \u03bb\u03ae\u03b3\u03b5\u03b9 \u03c3\u03ae\u03bc\u03b5\u03c1\u03b1!", "zu": "Isixwayiso, i-akhawunti yakho ethi %NETID% izophelelwa isikhathi namuhla!", - "xh": "Isilumkiso, iakhawunti yakho %NETID% iza kuphelelwa namhlanje!" + "xh": "Isilumkiso, iakhawunti yakho %NETID% iza kuphelelwa namhlanje!", + "st": "Tlhokomediso, akhaonto ya hao %NETID% e tla fellwa ke nako kajeno!", + "ca": "Advertència, el vostre compte %NETID% caducarà avui!" }, "warning": { "sl": "Pozor! Va\u0161e uporabni\u0161ko ime (NetID) %NETID% bo poteklo \u010dez %DAYSLEFT% %DAYS%!", @@ -105,7 +117,9 @@ "af": "Waarskuwing, jou rekening %NETID% sal verval in %DAYSLEFT% %DAYS%!", "el": "\u03a0\u03c1\u03bf\u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7: \u039f \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc\u03c2 %NETID% \u03b8\u03b1 \u03bb\u03ae\u03be\u03b5\u03b9 \u03c3\u03b5 %DAYSLEFT% %DAYS%!", "zu": "Isixwayiso, i-akhawunti yakho ethi %NETID% izophelelwa isikhathi ezinsukwini ezingu-%DAYSLEFT% %DAYS%!", - "xh": "Isilumkiso, iakhawunti yakho %NETID% iza kuphelelwa %DAYSLEFT% %DAYS%!" + "xh": "Isilumkiso, iakhawunti yakho %NETID% iza kuphelelwa %DAYSLEFT% %DAYS%!", + "st": "Tlhokomediso, akhoanto ya hao %NETID% e tla fellwa ke nako nakong ya %DAYSLEFT% %DAYS%!", + "ca": "Advertència, el vostre compte %NETID% caducarà en %DAYSLEFT% %DAYS%!" }, "warning_today": { "sl": "Pozor! Va\u0161e uporabni\u0161ko ime (NetID) %NETID% pote\u010de danes!", @@ -120,7 +134,9 @@ "af": "Waarskuwing, jou rekening %NETID% verval vandag!", "el": "\u03a0\u03c1\u03bf\u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7: \u039f \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc\u03c2 %NETID% \u03bb\u03ae\u03b3\u03b5\u03b9 \u03c3\u03ae\u03bc\u03b5\u03c1\u03b1!", "xh": "Isilumkiso, iakhawunti yakho %NETID% iza kuphelelwa namhlanje!", - "zu": "Isixwayiso, i-akhawunti yakho ethi %NETID% izophelelwa isikhathi namuhla!" + "zu": "Isixwayiso, i-akhawunti yakho ethi %NETID% izophelelwa isikhathi namuhla!", + "st": "Tlhokomediso, akhaonto ya hao %NETID% e tla fellwa ke nako kajeno!", + "ca": "Advertència, el vostre compte %NETID% caducarà avui!" }, "day": { "sl": "dan", @@ -135,7 +151,9 @@ "af": "dag", "el": "\u03b7\u03bc\u03ad\u03c1\u03b1", "xh": "usuku", - "zu": "usuku" + "zu": "usuku", + "st": "letsatsi", + "ca": "dia" }, "days": { "sl": "dni", @@ -150,7 +168,9 @@ "af": "dae", "el": "\u03b7\u03bc\u03ad\u03c1\u03b5\u03c2", "zu": "izinsuku", - "xh": "iintsuku" + "xh": "iintsuku", + "st": "matsatsi", + "ca": "dies" }, "btn_continue": { "sl": "Zavedam se tega, nadaljuj...", @@ -166,6 +186,8 @@ "af": "Ek is bewus hiervan, gaan voort...", "el": "\u0395\u03af\u03bc\u03b1\u03b9 \u03b5\u03bd\u03ae\u03bc\u03b5\u03c1\u03bf\u03c2 - \u03c3\u03c5\u03bd\u03ad\u03c7\u03b5\u03b9\u03b1", "xh": "Ndiyakuqonda oku, qhubeka...", - "zu": "Ngiyakwazi lokhu, qhubeka..." + "zu": "Ngiyakwazi lokhu, qhubeka...", + "st": "Ke lemohile ka sena, tswela pele...", + "ca": "Sóc conscient d'això, continua..." } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/lib/Auth/Process/ExpiryDate.php b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/lib/Auth/Process/ExpiryDate.php index ddd5befc1548c290914a389771a26f632087c33d..e95854e164532067330c19370e1c35900c0094d7 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/lib/Auth/Process/ExpiryDate.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/lib/Auth/Process/ExpiryDate.php @@ -2,6 +2,12 @@ namespace SimpleSAML\Module\expirycheck\Auth\Process; +use SimpleSAML\Auth; +use SimpleSAML\Logger; +use SimpleSAML\Module; +use SimpleSAML\Utils; +use Webmozart\Assert\Assert; + /** * Filter which show "about to expire" warning or deny access if netid is expired. * @@ -21,26 +27,32 @@ * @author Alex Mihičinac, ARNES. <alexm@arnes.si> * @package SimpleSAMLphp */ - class ExpiryDate extends \SimpleSAML\Auth\ProcessingFilter { + /** @var int */ private $warndaysbefore = 0; + + /** @var string|null */ private $netid_attr = null; + + /** @var string|null */ private $expirydate_attr = null; + + /** @var string */ private $date_format = 'd.m.Y'; /** * Initialize this filter. * - * @param array $config Configuration information about this filter. + * @param array &$config Configuration information about this filter. * @param mixed $reserved For future use. */ - public function __construct($config, $reserved) + public function __construct(&$config, $reserved) { parent::__construct($config, $reserved); - assert(is_array($config)); + Assert::isArray($config); if (array_key_exists('warndaysbefore', $config)) { $this->warndaysbefore = $config['warndaysbefore']; @@ -75,12 +87,14 @@ public function __construct($config, $reserved) } } + /** * Show expirational warning if remaining days is equal or under defined $warndaysbefore - * @param integer $expireOnDate - * @param integer $warndaysbefore - * @return bool * + * @param array &$state + * @param int $expireOnDate + * @param int $warndaysbefore + * @return bool */ public function shWarning(&$state, $expireOnDate, $warndaysbefore) { @@ -97,11 +111,12 @@ public function shWarning(&$state, $expireOnDate, $warndaysbefore) return false; } + /** - * Check if given date is older than today - * @param integer $expireOnDate - * @return bool + * Check if given date is older than today * + * @param int $expireOnDate + * @return bool */ public function checkDate($expireOnDate) { @@ -115,10 +130,12 @@ public function checkDate($expireOnDate) } } + /** * Apply filter * * @param array &$state The current state. + * @return void */ public function process(&$state) { @@ -129,32 +146,32 @@ public function process(&$state) $expireOnDate = strtotime($state['Attributes'][$this->expirydate_attr][0]); if ($this->shWarning($state, $expireOnDate, $this->warndaysbefore)) { - assert(is_array($state)); + Assert::isArray($state); if (isset($state['isPassive']) && $state['isPassive'] === true) { // We have a passive request. Skip the warning. return; } - \SimpleSAML\Logger::warning('expirycheck: NetID '.$netId.' is about to expire!'); + Logger::warning('expirycheck: NetID '.$netId.' is about to expire!'); // Save state and redirect $state['expireOnDate'] = date($this->date_format, $expireOnDate); $state['netId'] = $netId; - $id = \SimpleSAML\Auth\State::saveState($state, 'expirywarning:about2expire'); - $url = \SimpleSAML\Module::getModuleURL('expirycheck/about2expire.php'); - \SimpleSAML\Utils\HTTP::redirectTrustedURL($url, ['StateId' => $id]); + $id = Auth\State::saveState($state, 'expirywarning:about2expire'); + $url = Module::getModuleURL('expirycheck/about2expire.php'); + Utils\HTTP::redirectTrustedURL($url, ['StateId' => $id]); } if (!$this->checkDate($expireOnDate)) { - \SimpleSAML\Logger::error('expirycheck: NetID '.$netId. + Logger::error('expirycheck: NetID '.$netId. ' has expired ['.date($this->date_format, $expireOnDate).']. Access denied!'); /* Save state and redirect. */ $state['expireOnDate'] = date($this->date_format, $expireOnDate); $state['netId'] = $netId; - $id = \SimpleSAML\Auth\State::saveState($state, 'expirywarning:expired'); - $url = \SimpleSAML\Module::getModuleURL('expirycheck/expired.php'); - \SimpleSAML\Utils\HTTP::redirectTrustedURL($url, ['StateId' => $id]); + $id = Auth\State::saveState($state, 'expirywarning:expired'); + $url = Module::getModuleURL('expirycheck/expired.php'); + Utils\HTTP::redirectTrustedURL($url, ['StateId' => $id]); } } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/locales/st/LC_MESSAGES/expirycheck.po b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/locales/st/LC_MESSAGES/expirycheck.po new file mode 100644 index 0000000000000000000000000000000000000000..d6f4dd186108ac49bc595838dbc78f9c0834a132 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/locales/st/LC_MESSAGES/expirycheck.po @@ -0,0 +1,89 @@ + +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: SimpleSAMLphp 1.15\n" +"Report-Msgid-Bugs-To: simplesamlphp-translation@googlegroups.com\n" +"POT-Creation-Date: 2019-12-12 12:11+0200\n" +"PO-Revision-Date: 2019-12-12 12:11+0200\n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 1.3\n" + +msgid "{expirycheck:expwarning:contact_home}" +msgstr "" +"Phihlello ho ditshebeletso e laolwa ke khampani ya heno. Ka kopo ikopanye" +" le ba tshehetso ya IT ba heno ba lehae bakeng sa dipotso." + +msgid "{expirycheck:expwarning:access_denied}" +msgstr "Ha o na phihlello ho tshebeletso ena" + +msgid "I am aware of this, continue..." +msgstr "Ke lemohile ka sena, tswela pele..." + +msgid "You do not have access to this service" +msgstr "Ha o na phihlello ho tshebeletso ena" + +msgid "{expirycheck:expwarning:days}" +msgstr "matsatsi" + +msgid "days" +msgstr "matsatsi" + +msgid "day" +msgstr "letsatsi" + +msgid "{expirycheck:expwarning:warning_today}" +msgstr "Tlhokomediso, akhaonto ya hao %NETID% e tla fellwa ke nako kajeno!" + +msgid "Expiration date:" +msgstr "Letsatsi la phello:" + +msgid "{expirycheck:expwarning:no_access_to}" +msgstr "Akhaonto ya hao %NETID% e feletswe ke nako, phihlello e hanetswe.!" + +msgid "{expirycheck:expwarning:expiry_date_text}" +msgstr "Letsatsi la phello:" + +msgid "{expirycheck:expwarning:warning_header}" +msgstr "" +"Tlhokomediso, akhaonto ya hao %NETID% e tla fellwa ke nako nakong ya " +"%DAYSLEFT% %DAYS%!" + +msgid "{expirycheck:expwarning:btn_continue}" +msgstr "Ke lemohile ka sena, tswela pele..." + +msgid "" +"Access to services is controlled by your home organization. Please " +"contact your local IT support for questions." +msgstr "" +"Phihlello ho ditshebeletso e laolwa ke khampani ya heno. Ka kopo ikopanye" +" le ba tshehetso ya IT ba heno ba lehae bakeng sa dipotso." + +#, python-format +msgid "Warning, your account %NETID% will expire in %DAYSLEFT% %DAYS%!" +msgstr "" +"Tlhokomediso, akhoanto ya hao %NETID% e tla fellwa ke nako nakong ya " +"%DAYSLEFT% %DAYS%!" + +msgid "{expirycheck:expwarning:warning}" +msgstr "" +"Tlhokomediso, akhoanto ya hao %NETID% e tla fellwa ke nako nakong ya " +"%DAYSLEFT% %DAYS%!" + +msgid "{expirycheck:expwarning:day}" +msgstr "letsatsi" + +msgid "Your account %NETID% has expired, access denied!" +msgstr "Akhaonto ya hao %NETID% e feletswe ke nako, phihlello e hanetswe.!" + +msgid "{expirycheck:expwarning:warning_header_today}" +msgstr "Tlhokomediso, akhaonto ya hao %NETID% e tla fellwa ke nako kajeno!" + +msgid "Warning, your account %NETID% will expire today!" +msgstr "Tlhokomediso, akhaonto ya hao %NETID% e tla fellwa ke nako kajeno!" + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..0540658da5d229b7588de0714b999d0aebffe445 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/phpunit.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>./vendor/simplesamlphp/simplesamlphp-test-framework/tests/</directory> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..6775b5f4737ebe7615c3ff1cf766a618cb8496cb --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/psalm.xml @@ -0,0 +1,39 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp expirycheck module" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="lib" /> + <directory name="templates" /> + <directory name="www" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + + <!-- Ignore InvalidScope on template-scripts - Remove for 2.0 --> + <InvalidScope> + <errorLevel type="suppress"> + <file name="templates/*.tpl.php" /> + </errorLevel> + </InvalidScope> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/templates/about2expire.php b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/templates/about2expire.tpl.php similarity index 96% rename from vendor/simplesamlphp/simplesamlphp/modules/expirycheck/templates/about2expire.php rename to vendor/simplesamlphp/simplesamlphp/modules/expirycheck/templates/about2expire.tpl.php index 6b135f807f5eb1e5332e136dda9280efa50f8bbd..c6600164c4a2e2d783c62edcbaab3392cead5196 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/templates/about2expire.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/templates/about2expire.tpl.php @@ -29,7 +29,7 @@ } ?> -<h3><?php echo $warning; ?></h3> +<h3><?php echo $this->data['warning']; ?></h3> <p><?php echo $this->t('{expirycheck:expwarning:expiry_date_text}')." ".$this->data['expireOnDate']; ?></p> <input type="submit" name="yes" id="yesbutton" value="<?php echo $buttonContinue; ?>" /> </form> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/templates/expired.php b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/templates/expired.tpl.php similarity index 100% rename from vendor/simplesamlphp/simplesamlphp/modules/expirycheck/templates/expired.php rename to vendor/simplesamlphp/simplesamlphp/modules/expirycheck/templates/expired.tpl.php diff --git a/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..193fa936185633a59dcde5e763fc5296afdbd099 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot.'/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot.'/vendor/simplesamlphp/simplesamlphp/modules/expirycheck'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/www/about2expire.php b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/www/about2expire.php index 1f1766c7e7ad14dbb10c8a8f3c2aebf02149e348..7a3bc22abd0db8e3d2e626175157607ec3177f82 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/www/about2expire.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/www/about2expire.php @@ -12,6 +12,7 @@ throw new \SimpleSAML\Error\BadRequest('Missing required StateId query parameter.'); } $id = $_REQUEST['StateId']; +/** @psalm-var array $state */ $state = \SimpleSAML\Auth\State::loadState($id, 'expirywarning:about2expire'); if (array_key_exists('yes', $_REQUEST)) { @@ -27,41 +28,40 @@ $t->data['autofocus'] = 'yesbutton'; $t->data['yesTarget'] = \SimpleSAML\Module::getModuleURL('expirycheck/about2expire.php'); $t->data['yesData'] = ['StateId' => $id]; -$t->data['warning'] = $warning; $t->data['expireOnDate'] = $state['expireOnDate']; $t->data['netId'] = $state['netId']; if ($daysleft == 0) { # netid will expire today - $this->data['header'] = $this->t('{expirycheck:expwarning:warning_header_today}', [ - '%NETID%' => htmlspecialchars($this->data['netId']) + $t->data['header'] = $t->t('{expirycheck:expwarning:warning_header_today}', [ + '%NETID%' => htmlspecialchars($t->data['netId']) ]); - $this->data['warning'] = $this->t('{expirycheck:expwarning:warning_today}', [ - '%NETID%' => htmlspecialchars($this->data['netId']) + $t->data['warning'] = $t->t('{expirycheck:expwarning:warning_today}', [ + '%NETID%' => htmlspecialchars($t->data['netId']) ]); } elseif ($daysleft == 1) { # netid will expire in one day - $this->data['header'] = $this->t('{expirycheck:expwarning:warning_header}', [ - '%NETID%' => htmlspecialchars($this->data['netId']), - '%DAYS%' => $this->t('{expirycheck:expwarning:day}'), + $t->data['header'] = $t->t('{expirycheck:expwarning:warning_header}', [ + '%NETID%' => htmlspecialchars($t->data['netId']), + '%DAYS%' => $t->t('{expirycheck:expwarning:day}'), '%DAYSLEFT%' => htmlspecialchars($daysleft), ]); - $this->data['warning'] = $this->t('{expirycheck:expwarning:warning}', [ - '%NETID%' => htmlspecialchars($this->data['netId']), - '%DAYS%' => $this->t('{expirycheck:expwarning:day}'), + $t->data['warning'] = $t->t('{expirycheck:expwarning:warning}', [ + '%NETID%' => htmlspecialchars($t->data['netId']), + '%DAYS%' => $t->t('{expirycheck:expwarning:day}'), '%DAYSLEFT%' => htmlspecialchars($daysleft), ]); } else { # netid will expire in next <daysleft> days - $this->data['header'] = $this->t('{expirycheck:expwarning:warning_header}', [ - '%NETID%' => htmlspecialchars($this->data['netId']), - '%DAYS%' => $this->t('{expirycheck:expwarning:days}'), + $t->data['header'] = $t->t('{expirycheck:expwarning:warning_header}', [ + '%NETID%' => htmlspecialchars($t->data['netId']), + '%DAYS%' => $t->t('{expirycheck:expwarning:days}'), '%DAYSLEFT%' => htmlspecialchars($daysleft), ]); - $this->data['warning'] = $this->t('{expirycheck:expwarning:warning}', [ - '%NETID%' => htmlspecialchars($this->data['netId']), - '%DAYS%' => $this->t('{expirycheck:expwarning:days}'), + $t->data['warning'] = $t->t('{expirycheck:expwarning:warning}', [ + '%NETID%' => htmlspecialchars($t->data['netId']), + '%DAYS%' => $t->t('{expirycheck:expwarning:days}'), '%DAYSLEFT%' => htmlspecialchars($daysleft), ]); } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/www/expired.php b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/www/expired.php index 2d3d3b3e8d2d1f63dd164b11349183cccf999dbc..95af697a12e89b975f7cbc5f01185e9438927505 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/www/expired.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/expirycheck/www/expired.php @@ -11,6 +11,7 @@ if (!array_key_exists('StateId', $_REQUEST)) { throw new \SimpleSAML\Error\BadRequest('Missing required StateId query parameter.'); } +/** @psalm-var array $state */ $state = \SimpleSAML\Auth\State::loadState($_REQUEST['StateId'], 'expirywarning:expired'); $globalConfig = \SimpleSAML\Configuration::getInstance(); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/ldap/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/ldap/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..e7d314696c7e461b645c3d603f3a5d3034082ba5 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/ldap/.php_cs.dist @@ -0,0 +1,15 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/lib', + __DIR__ . '/tests', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/ldap/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/ldap/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..3c250287a743959883e40e541e22f26fb1dd8635 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/ldap/.travis.yml @@ -0,0 +1,35 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +matrix: + allow_failures: + - php: 7.3 + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then composer require --dev vimeo/psalm:1.1.9; fi + +script: + - bin/check-syntax.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi +# - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/ldap/LICENSE b/vendor/simplesamlphp/simplesamlphp/modules/ldap/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..a345e48d049f9c6756e9364e908b3f26e36c9df1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/ldap/LICENSE @@ -0,0 +1,459 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/ldap/bin/check-syntax.sh b/vendor/simplesamlphp/simplesamlphp/modules/ldap/bin/check-syntax.sh new file mode 100755 index 0000000000000000000000000000000000000000..db6dc4b0140cb09231c6bf2e756c6a668e8e7cbe --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/ldap/bin/check-syntax.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +PHP='/usr/bin/env php' +RETURN=0 + +# check PHP files +for FILE in `find lib tests -name "*.php"`; do + $PHP -l $FILE > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Syntax check failed for ${FILE}" + RETURN=`expr ${RETURN} + 1` + fi +done + +exit $RETURN diff --git a/vendor/simplesamlphp/simplesamlphp/modules/ldap/codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/ldap/codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/ldap/codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/ldap/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/ldap/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..c994f0750ce2ee778f797d04ba8487eeb15680df --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/ldap/composer.json @@ -0,0 +1,48 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-ldap", + "description": "A module that provides authentication against LDAP stores", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "ldap"], + "license": "LGPL-2.1-or-later", + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + }, + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\ldap\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "phpunit/phpunit": "~5.7" + }, + "suggest": { + "ext-ldap": "Needed when using LDAP authentication in SimpleSAMLphp" + }, + "support": { + "issues": "https://github.com/tvdijen/simplesamlphp-module-ldap/issues", + "source": "https://github.com/tvdijen/simplesamlphp-module-ldap" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Ldap.php b/vendor/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Ldap.php new file mode 100644 index 0000000000000000000000000000000000000000..8c86221891b0c2dd5b45c463d6a865dd02953c22 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Ldap.php @@ -0,0 +1,871 @@ +<?php + +namespace SimpleSAML\Module\ldap\Auth; + +use SimpleSAML\Error; +use SimpleSAML\Logger; + +/** + * Constants defining possible errors + */ + +define('ERR_INTERNAL', 1); +define('ERR_NO_USER', 2); +define('ERR_WRONG_PW', 3); +define('ERR_AS_DATA_INCONSIST', 4); +define('ERR_AS_INTERNAL', 5); +define('ERR_AS_ATTRIBUTE', 6); + +// not defined in earlier PHP versions +if (!defined('LDAP_OPT_DIAGNOSTIC_MESSAGE')) { + define('LDAP_OPT_DIAGNOSTIC_MESSAGE', 0x0032); +} + +/** + * The LDAP class holds helper functions to access an LDAP database. + * + * @author Andreas Aakre Solberg, UNINETT AS. <andreas.solberg@uninett.no> + * @author Anders Lund, UNINETT AS. <anders.lund@uninett.no> + * @package SimpleSAMLphp + */ + +class Ldap +{ + /** + * LDAP link identifier. + * + * @var resource + */ + protected $ldap; + + /** + * LDAP user: authz_id if SASL is in use, binding dn otherwise + * + * @var string|null + */ + protected $authz_id = null; + + /** + * Timeout value, in seconds. + * + * @var int + */ + protected $timeout = 0; + + /** + * Private constructor restricts instantiation to getInstance(). + * + * @param string $hostname + * @param bool $enable_tls + * @param bool $debug + * @param int $timeout + * @param int $port + * @param bool $referrals + * @psalm-suppress NullArgument + */ + public function __construct( + $hostname, + $enable_tls = true, + $debug = false, + $timeout = 0, + $port = 389, + $referrals = true + ) { + // Debug + Logger::debug('Library - LDAP __construct(): Setup LDAP with '. + 'host=\''.$hostname. + '\', tls='.var_export($enable_tls, true). + ', debug='.var_export($debug, true). + ', timeout='.var_export($timeout, true). + ', referrals='.var_export($referrals, true)); + + /* + * Set debug level before calling connect. Note that this passes + * NULL to ldap_set_option, which is an undocumented feature. + * + * OpenLDAP 2.x.x or Netscape Directory SDK x.x needed for this option. + */ + if ($debug && !ldap_set_option(null, LDAP_OPT_DEBUG_LEVEL, 7)) { + Logger::warning('Library - LDAP __construct(): Unable to set debug level (LDAP_OPT_DEBUG_LEVEL) to 7'); + } + + /* + * Prepare a connection for to this LDAP server. Note that this function + * doesn't actually connect to the server. + */ + $resource = @ldap_connect($hostname, $port); + if ($resource === false) { + throw $this->makeException( + 'Library - LDAP __construct(): Unable to connect to \''.$hostname.'\'', + ERR_INTERNAL + ); + } + $this->ldap = $resource; + + // Enable LDAP protocol version 3 + if (!@ldap_set_option($this->ldap, LDAP_OPT_PROTOCOL_VERSION, 3)) { + throw $this->makeException( + 'Library - LDAP __construct(): Failed to set LDAP Protocol version (LDAP_OPT_PROTOCOL_VERSION) to 3', + ERR_INTERNAL + ); + } + + // Set referral option + if (!@ldap_set_option($this->ldap, LDAP_OPT_REFERRALS, $referrals)) { + throw $this->makeException( + 'Library - LDAP __construct(): Failed to set LDAP Referrals (LDAP_OPT_REFERRALS) to '.$referrals, + ERR_INTERNAL + ); + } + + // Set timeouts, if supported + // (OpenLDAP 2.x.x or Netscape Directory SDK x.x needed) + $this->timeout = $timeout; + if ($timeout > 0) { + if (!@ldap_set_option($this->ldap, LDAP_OPT_NETWORK_TIMEOUT, $timeout)) { + Logger::warning( + 'Library - LDAP __construct(): Unable to set timeouts (LDAP_OPT_NETWORK_TIMEOUT) to '.$timeout + ); + } + if (!@ldap_set_option($this->ldap, LDAP_OPT_TIMELIMIT, $timeout)) { + Logger::warning( + 'Library - LDAP __construct(): Unable to set timeouts (LDAP_OPT_TIMELIMIT) to '.$timeout + ); + } + } + + // Enable TLS, if needed + if (stripos($hostname, "ldaps:") === false && $enable_tls) { + if (!@ldap_start_tls($this->ldap)) { + throw $this->makeException('Library - LDAP __construct():'. + ' Unable to force TLS', ERR_INTERNAL); + } + } + } + + + /** + * Convenience method to create an LDAPException as well as log the + * description. + * + * @param string $description The exception's description + * @param int|null $type The exception's type + * @return \Exception + */ + private function makeException($description, $type = null) + { + $errNo = @ldap_errno($this->ldap); + + // Decide exception type and return + if ($type !== null) { + if ($errNo !== 0) { + // Only log real LDAP errors; not success + Logger::error($description.'; cause: \''.ldap_error($this->ldap).'\' (0x'.dechex($errNo).')'); + } else { + Logger::error($description); + } + + switch ($type) { + case ERR_INTERNAL:// 1 - ExInternal + return new Error\Exception($description, $errNo); + case ERR_NO_USER:// 2 - ExUserNotFound + return new Error\UserNotFound($description, $errNo); + case ERR_WRONG_PW:// 3 - ExInvalidCredential + return new Error\InvalidCredential($description, $errNo); + case ERR_AS_DATA_INCONSIST:// 4 - ExAsDataInconsist + return new Error\AuthSource('ldap', $description); + case ERR_AS_INTERNAL:// 5 - ExAsInternal + return new Error\AuthSource('ldap', $description); + } + } else { + if ($errNo !== 0) { + $description .= '; cause: \''.ldap_error($this->ldap).'\' (0x'.dechex($errNo).')'; + if (@ldap_get_option($this->ldap, LDAP_OPT_DIAGNOSTIC_MESSAGE, $extendedError) + && !empty($extendedError) + ) { + $description .= '; additional: \''.$extendedError.'\''; + } + } + switch ($errNo) { + case 0x20://LDAP_NO_SUCH_OBJECT + Logger::warning($description); + return new Error\UserNotFound($description, $errNo); + case 0x31://LDAP_INVALID_CREDENTIALS + Logger::info($description); + return new Error\InvalidCredential($description, $errNo); + case -1://NO_SERVER_CONNECTION + Logger::error($description); + return new Error\AuthSource('ldap', $description); + default: + Logger::error($description); + return new Error\AuthSource('ldap', $description); + } + } + return new \Exception('Unknown LDAP error.'); + } + + + /** + * Search for DN from a single base. + * + * @param string $base + * Indication of root of subtree to search + * @param string|array $attribute + * The attribute name(s) to search for. + * @param string $value + * The attribute value to search for. + * Additional search filter + * @param string|null $searchFilter + * The scope of the search + * @param string $scope + * @return string + * The DN of the resulting found element. + * @throws Error\Exception if: + * - Attribute parameter is wrong type + * @throws Error\AuthSource if: + * - Not able to connect to LDAP server + * - False search result + * - Count return false + * - Searche found more than one result + * - Failed to get first entry from result + * - Failed to get DN for entry + * @throws Error\UserNotFound if: + * - Zero entries were found + * @psalm-suppress TypeDoesNotContainType + */ + private function search($base, $attribute, $value, $searchFilter = null, $scope = "subtree") + { + // Create the search filter + /** @var array $attribute */ + $attribute = self::escape_filter_value($attribute, false); + + /** @var string $value */ + $value = self::escape_filter_value($value, true); + + $filter = ''; + foreach ($attribute as $attr) { + $filter .= '('.$attr.'='.$value.')'; + } + $filter = '(|'.$filter.')'; + + // Append LDAP filters if defined + if ($searchFilter !== null) { + $filter = "(&".$filter."".$searchFilter.")"; + } + + // Search using generated filter + Logger::debug('Library - LDAP search(): Searching base ('.$scope.') \''.$base.'\' for \''.$filter.'\''); + if ($scope === 'base') { + $result = @ldap_read($this->ldap, $base, $filter, [], 0, 0, $this->timeout, LDAP_DEREF_NEVER); + } elseif ($scope === 'onelevel') { + $result = @ldap_list($this->ldap, $base, $filter, [], 0, 0, $this->timeout, LDAP_DEREF_NEVER); + } else { + $result = @ldap_search($this->ldap, $base, $filter, [], 0, 0, $this->timeout, LDAP_DEREF_NEVER); + } + + if ($result === false) { + throw $this->makeException( + 'Library - LDAP search(): Failed search on base \''.$base.'\' for \''.$filter.'\'' + ); + } + + // Sanity checks on search results + $count = @ldap_count_entries($this->ldap, $result); + if ($count === false) { + throw $this->makeException('Library - LDAP search(): Failed to get number of entries returned'); + } elseif ($count > 1) { + // More than one entry is found. External error + throw $this->makeException( + 'Library - LDAP search(): Found '.$count.' entries searching base \''.$base.'\' for \''.$filter.'\'', + ERR_AS_DATA_INCONSIST + ); + } elseif ($count === 0) { + // No entry is fond => wrong username is given (or not registered in the catalogue). User error + throw $this->makeException( + 'Library - LDAP search(): Found no entries searching base \''.$base.'\' for \''.$filter.'\'', + ERR_NO_USER + ); + } + + + // Resolve the DN from the search result + $entry = @ldap_first_entry($this->ldap, $result); + if ($entry === false) { + throw $this->makeException( + 'Library - LDAP search(): Unable to retrieve result after searching base \''. + $base.'\' for \''.$filter.'\'' + ); + } + $dn = @ldap_get_dn($this->ldap, $entry); + if ($dn === false) { + throw $this->makeException( + 'Library - LDAP search(): Unable to get DN after searching base \''.$base.'\' for \''.$filter.'\'' + ); + } + return $dn; + } + + + /** + * Search for a DN. + * + * @param string|array $base + * The base, or bases, which to search from. + * @param string|array $attribute + * The attribute name(s) searched for. + * @param string $value + * The attribute value searched for. + * @param bool $allowZeroHits + * Determines if the method will throw an exception if no hits are found. + * Defaults to FALSE. + * @param string|null $searchFilter + * Additional searchFilter to be added to the (attribute=value) filter + * @param string $scope + * The scope of the search + * @return string|null + * The DN of the matching element, if found. If no element was found and + * $allowZeroHits is set to FALSE, an exception will be thrown; otherwise + * NULL will be returned. + * @throws Error\AuthSource if: + * - LDAP search encounter some problems when searching cataloge + * - Not able to connect to LDAP server + * @throws Error\UserNotFound if: + * - $allowZeroHits is FALSE and no result is found + * + */ + public function searchfordn( + $base, + $attribute, + $value, + $allowZeroHits = false, + $searchFilter = null, + $scope = 'subtree' + ) { + // Traverse all search bases, returning DN if found + $bases = \SimpleSAML\Utils\Arrays::arrayize($base); + foreach ($bases as $current) { + try { + // Single base search + $result = $this->search($current, $attribute, $value, $searchFilter, $scope); + + // We don't hawe to look any futher if user is found + if (!empty($result)) { + return $result; + } + // If search failed, attempt the other base DNs + } catch (Error\UserNotFound $e) { + // Just continue searching + } + } + // Decide what to do for zero entries + Logger::debug('Library - LDAP searchfordn(): No entries found'); + if ($allowZeroHits) { + // Zero hits allowed + return null; + } else { + // Zero hits not allowed + throw $this->makeException('Library - LDAP searchfordn(): LDAP search returned zero entries for'. + ' filter \'('.join(' | ', \SimpleSAML\Utils\Arrays::arrayize($attribute)).' = '.$value.')\' on base(s) \'('.join(' & ', $bases).')\'', 2); + } + } + + + /** + * This method was created specifically for the ldap:AttributeAddUsersGroups->searchActiveDirectory() + * method, but could be used for other LDAP search needs. It will search LDAP and return all the entries. + * + * @throws \Exception + * @param string|array $bases + * @param string|array $filters Array of 'attribute' => 'values' to be combined into the filter, + * or a raw filter string + * @param string|array $attributes Array of attributes requested from LDAP + * @param bool $and If multiple filters defined, then either bind them with & or | + * @param bool $escape Weather to escape the filter values or not + * @param string $scope The scope of the search + * @return array + */ + public function searchformultiple( + $bases, + $filters, + $attributes = [], + $and = true, + $escape = true, + $scope = 'subtree' + ) { + // Escape the filter values, if requested + if ($escape) { + $filters = $this->escape_filter_value($filters, false); + } + + // Build search filter + $filter = ''; + if (is_array($filters)) { + foreach ($filters as $attribute => $value) { + $filter .= "($attribute=$value)"; + } + if (count($filters) > 1) { + $filter = ($and ? '(&' : '(|').$filter.')'; + } + } else { + $filter = $filters; + } + + // Verify filter was created + if ($filter == '' || $filter == '(=)') { + throw $this->makeException('ldap:LdapConnection->search_manual : No search filters defined', ERR_INTERNAL); + } + + // Verify at least one base was passed + $bases = (array) $bases; + if (empty($bases)) { + throw $this->makeException('ldap:LdapConnection->search_manual : No base DNs were passed', ERR_INTERNAL); + } + + $attributes = \SimpleSAML\Utils\Arrays::arrayize($attributes); + + // Search each base until result is found + $result = false; + foreach ($bases as $base) { + if ($scope === 'base') { + $result = @ldap_read($this->ldap, $base, $filter, $attributes, 0, 0, $this->timeout); + } elseif ($scope === 'onelevel') { + $result = @ldap_list($this->ldap, $base, $filter, $attributes, 0, 0, $this->timeout); + } else { + $result = @ldap_search($this->ldap, $base, $filter, $attributes, 0, 0, $this->timeout); + } + + if ($result !== false && @ldap_count_entries($this->ldap, $result) > 0) { + break; + } + } + + // Verify that a result was found in one of the bases + if ($result === false) { + throw $this->makeException( + 'ldap:LdapConnection->search_manual : Failed to search LDAP using base(s) ['. + implode('; ', $bases).'] with filter ['.$filter.']. LDAP error ['. + ldap_error($this->ldap).']' + ); + } elseif (@ldap_count_entries($this->ldap, $result) < 1) { + throw $this->makeException( + 'ldap:LdapConnection->search_manual : No entries found in LDAP using base(s) ['. + implode('; ', $bases).'] with filter ['.$filter.']', + ERR_NO_USER + ); + } + + // Get all results + $results = ldap_get_entries($this->ldap, $result); + if ($results === false) { + throw $this->makeException( + 'ldap:LdapConnection->search_manual : Unable to retrieve entries from search results' + ); + } + + // parse each entry and process its attributes + for ($i = 0; $i < $results['count']; $i++) { + $entry = $results[$i]; + + // iterate over the attributes of the entry + for ($j = 0; $j < $entry['count']; $j++) { + $name = $entry[$j]; + $attribute = $entry[$name]; + + // decide whether to base64 encode or not + for ($k = 0; $k < $attribute['count']; $k++) { + $results[$i][$name][$k] = $this->encodeIfBinary($attribute[$k]); + } + } + } + + // Remove the count and return + unset($results['count']); + return $results; + } + + + /** + * Bind to LDAP with a specific DN and password. Simple wrapper around + * ldap_bind() with some additional logging. + * + * @param string $dn + * The DN used. + * @param string $password + * The password used. + * @param array $sasl_args + * Array of SASL options for SASL bind + * @return bool + * Returns TRUE if successful, FALSE if + * LDAP_INVALID_CREDENTIALS, LDAP_X_PROXY_AUTHZ_FAILURE, + * LDAP_INAPPROPRIATE_AUTH, LDAP_INSUFFICIENT_ACCESS + * @throws Error\Exception on other errors + */ + public function bind($dn, $password, array $sasl_args = null) + { + if ($sasl_args != null) { + if (!function_exists('ldap_sasl_bind')) { + $ex_msg = 'Library - missing SASL support'; + throw $this->makeException($ex_msg); + } + + // SASL Bind, with error handling + $authz_id = $sasl_args['authz_id']; + $error = @ldap_sasl_bind( + $this->ldap, + $dn, + $password, + $sasl_args['mech'], + $sasl_args['realm'], + $sasl_args['authc_id'], + $sasl_args['authz_id'], + $sasl_args['props'] + ); + } else { + // Simple Bind, with error handling + $authz_id = $dn; + $error = @ldap_bind($this->ldap, $dn, $password); + } + + if ($error === true) { + // Good + $this->authz_id = $authz_id; + Logger::debug('Library - LDAP bind(): Bind successful with DN \''.$dn.'\''); + return true; + } + + /* Handle errors + * LDAP_INVALID_CREDENTIALS + * LDAP_INSUFFICIENT_ACCESS */ + switch (ldap_errno($this->ldap)) { + case 32: // LDAP_NO_SUCH_OBJECT + // no break + case 47: // LDAP_X_PROXY_AUTHZ_FAILURE + // no break + case 48: // LDAP_INAPPROPRIATE_AUTH + // no break + case 49: // LDAP_INVALID_CREDENTIALS + // no break + case 50: // LDAP_INSUFFICIENT_ACCESS + return false; + default: + break; + } + + // Bad + throw $this->makeException('Library - LDAP bind(): Bind failed with DN \''.$dn.'\''); + } + + + /** + * Applies an LDAP option to the current connection. + * + * @throws Exception + * @param mixed $option + * @param mixed $value + * @return void + */ + public function setOption($option, $value) + { + // Attempt to set the LDAP option + if (!@ldap_set_option($this->ldap, $option, $value)) { + throw $this->makeException( + 'ldap:LdapConnection->setOption : Failed to set LDAP option ['. + $option.'] with the value ['.$value.'] error: '.ldap_error($this->ldap), + ERR_INTERNAL + ); + } + + // Log debug message + Logger::debug( + 'ldap:LdapConnection->setOption : Set the LDAP option ['. + $option.'] with the value ['.$value.']' + ); + } + + + /** + * Search a given DN for attributes, and return the resulting associative + * array. + * + * @param string $dn + * The DN of an element. + * @param string|array $attributes + * The names of the attribute(s) to retrieve. Defaults to NULL; that is, + * all available attributes. Note that this is not very effective. + * @param int $maxsize + * The maximum size of any attribute's value(s). If exceeded, the attribute + * will not be returned. + * @return array + * The array of attributes and their values. + * @see http://no.php.net/manual/en/function.ldap-read.php + */ + public function getAttributes($dn, $attributes = null, $maxsize = null) + { + // Preparations, including a pretty debug message... + $description = 'all attributes'; + if (is_array($attributes)) { + $description = '\''.join(',', $attributes).'\''; + } else { + // Get all attributes... + // TODO: Verify that this originally was the intended behaviour. Could $attributes be a string? + $attributes = []; + } + Logger::debug('Library - LDAP getAttributes(): Getting '.$description.' from DN \''.$dn.'\''); + + // Attempt to get attributes + // TODO: Should aliases be dereferenced? + /** @var array $attributes */ + $result = @ldap_read($this->ldap, $dn, 'objectClass=*', $attributes, 0, 0, $this->timeout); + if ($result === false) { + throw $this->makeException('Library - LDAP getAttributes(): Failed to get attributes from DN \''.$dn.'\''); + } + $entry = @ldap_first_entry($this->ldap, $result); + if ($entry === false) { + throw $this->makeException('Library - LDAP getAttributes(): Could not get first entry from DN \''.$dn.'\''); + } + unset($attributes); + + /** @var array|false $attributes */ + $attributes = @ldap_get_attributes($this->ldap, $entry); + if ($attributes === false) { + throw $this->makeException( + 'Library - LDAP getAttributes(): Could not get attributes of first entry from DN \''.$dn.'\'' + ); + } + + // Parsing each found attribute into our result set + $result = []; // Recycling $result... Possibly bad practice. + for ($i = 0; $i < $attributes['count']; $i++) { + // Ignore attributes that exceed the maximum allowed size + $name = $attributes[$i]; + $attribute = $attributes[$name]; + + // Deciding whether to base64 encode + $values = []; + for ($j = 0; $j < $attribute['count']; $j++) { + $value = $attribute[$j]; + + if (!empty($maxsize) && strlen($value) > $maxsize) { + // Ignoring and warning + Logger::warning('Library - LDAP getAttributes(): Attribute \''. + $name.'\' exceeded maximum allowed size by '.(strlen($value) - $maxsize)); + continue; + } + + $values[] = $this->encodeIfBinary($value); + } + + // Adding + $result[$name] = $values; + } + + // We're done + Logger::debug('Library - LDAP getAttributes(): Found attributes \'('.join(',', array_keys($result)).')\''); + return $result; + } + + + /** + * Enter description here... + * + * @param array $config + * @param string $username + * @param string $password + * @return array|false + */ + public function validate($config, $username, $password = null) + { + /** + * Escape any characters with a special meaning in LDAP. The following + * characters have a special meaning (according to RFC 2253): + * ',', '+', '"', '\', '<', '>', ';', '*' + * These characters are escaped by prefixing them with '\'. + */ + $username = addcslashes($username, ',+"\\<>;*'); + + if (isset($config['priv_user_dn'])) { + $this->bind($config['priv_user_dn'], $config['priv_user_pw']); + } + if (isset($config['dnpattern'])) { + $dn = str_replace('%username%', $username, $config['dnpattern']); + } else { + /** @var string $dn */ + $dn = $this->searchfordn($config['searchbase'], $config['searchattributes'], $username, false); + } + + if ($password !== null) { + // checking users credentials ... assuming below that she may read her own attributes ... + // escape characters with a special meaning, also in the password + $password = addcslashes($password, ',+"\\<>;*'); + if (!$this->bind($dn, $password)) { + Logger::info( + 'Library - LDAP validate(): Failed to authenticate \''.$username.'\' using DN \''.$dn.'\'' + ); + return false; + } + } + + /** + * Retrieve attributes from LDAP + */ + $attributes = $this->getAttributes($dn, $config['attributes']); + return $attributes; + } + + + /** + * Borrowed function from PEAR:LDAP. + * + * Escapes the given VALUES according to RFC 2254 so that they can be safely used in LDAP filters. + * + * Any control characters with an ACII code < 32 as well as the characters with special meaning in + * LDAP filters "*", "(", ")", and "\" (the backslash) are converted into the representation of a + * backslash followed by two hex digits representing the hexadecimal value of the character. + * + * @static + * @param string|array $values Array of values to escape + * @param bool $singleValue + * @return string|array Array $values, but escaped + */ + public static function escape_filter_value($values = [], $singleValue = true) + { + // Parameter validation + $values = \SimpleSAML\Utils\Arrays::arrayize($values); + + foreach ($values as $key => $val) { + if ($val === null) { + $val = '\0'; // apply escaped "null" if string is empty + } else { + // Escaping of filter meta characters + $val = str_replace('\\', '\5c', $val); + $val = str_replace('*', '\2a', $val); + $val = str_replace('(', '\28', $val); + $val = str_replace(')', '\29', $val); + + // ASCII < 32 escaping + $val = self::asc2hex32($val); + } + + $values[$key] = $val; + } + if ($singleValue) { + return $values[0]; + } + return $values; + } + + + /** + * Borrowed function from PEAR:LDAP. + * + * Converts all ASCII chars < 32 to "\HEX" + * + * @param string $string String to convert + * + * @static + * @return string + */ + public static function asc2hex32($string) + { + for ($i = 0; $i < strlen($string); $i++) { + $char = substr($string, $i, 1); + if (ord($char) < 32) { + $hex = dechex(ord($char)); + if (strlen($hex) == 1) { + $hex = '0'.$hex; + } + $string = str_replace($char, '\\'.$hex, $string); + } + } + return $string; + } + + /** + * Convert SASL authz_id into a DN + * + * @param string $searchBase + * @param array $searchAttributes + * @param string $authz_id + * @return string|null + */ + private function authzidToDn($searchBase, $searchAttributes, $authz_id) + { + if (preg_match("/^dn:/", $authz_id)) { + return preg_replace("/^dn:/", "", $authz_id); + } + + if (preg_match("/^u:/", $authz_id)) { + return $this->searchfordn( + $searchBase, + $searchAttributes, + preg_replace("/^u:/", "", $authz_id) + ); + } + return $authz_id; + } + + /** + * ldap_exop_whoami accessor, if available. Use requested authz_id + * otherwise. + * + * ldap_exop_whoami() has been provided as a third party patch that + * waited several years to get its way upstream: + * http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/databases/php-ldap/files + * + * When it was integrated into PHP repository, the function prototype + * was changed, The new prototype was used in third party patch for + * PHP 7.0 and 7.1, hence the version test below. + * + * @param string $searchBase + * @param array $searchAttributes + * @throws \Exception + * @return string + */ + public function whoami($searchBase, $searchAttributes) + { + $authz_id = ''; + if (function_exists('ldap_exop_whoami')) { + if (version_compare(phpversion(), '7', '<')) { + /** @psalm-suppress TooManyArguments */ + if (ldap_exop_whoami($this->ldap, $authz_id) === false) { + throw $this->makeException('LDAP whoami exop failure'); + } + } else { + /** @var string|false $authz_id */ + $authz_id = ldap_exop_whoami($this->ldap); + if ($authz_id === false) { + throw $this->makeException('LDAP whoami exop failure'); + } + } + } else { + $authz_id = $this->authz_id; + } + + $dn = $this->authzidToDn($searchBase, $searchAttributes, $authz_id); + + if (empty($dn)) { + throw $this->makeException('Cannot figure userID'); + } + + return $dn; + } + + + /** + * Base64 encode binary attributes, or pass original content back + * + * @param string $value Possibly binary string + * @return string Value safe for use in SAML attributes (base64 encoded) + */ + private function encodeIfBinary(string $value) + { + // detect binary values + if ( + mb_detect_encoding($value) === false + || preg_match('~[^\x20-\x7E\x80-\xFF\t\r\n]~', $value) > 0 + ) { + return base64_encode($value); + } + return $value; + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Process/AttributeAddFromLDAP.php b/vendor/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Process/AttributeAddFromLDAP.php index a1062376d98df4ba15fcce8c74d0b4ccb005a5a7..287f5293d9fc68ebaa00d838c86e61cb56e82204 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Process/AttributeAddFromLDAP.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Process/AttributeAddFromLDAP.php @@ -2,6 +2,8 @@ namespace SimpleSAML\Module\ldap\Auth\Process; +use SimpleSAML\Module\ldap\Auth\Ldap; + /** * Filter to add attributes to the identity by executing a query against an LDAP directory * @@ -34,7 +36,6 @@ * @author Remy Blom <remy.blom@hku.nl> * @package SimpleSAMLphp */ - class AttributeAddFromLDAP extends BaseFilter { /** @@ -60,6 +61,7 @@ class AttributeAddFromLDAP extends BaseFilter */ protected $attr_policy; + /** * Initialize this filter. * @@ -136,6 +138,7 @@ public function __construct($config, $reserved) * Add attributes from an LDAP server. * * @param array &$request The current request + * @return void */ public function process(&$request) { @@ -152,7 +155,7 @@ public function process(&$request) $arrSearch[] = '%'.$attr.'%'; if (strlen($val[0]) > 0) { - $arrReplace[] = \SimpleSAML\Auth\LDAP::escape_filter_value($val[0]); + $arrReplace[] = Ldap::escape_filter_value($val[0]); } else { $arrReplace[] = ''; } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Process/AttributeAddUsersGroups.php b/vendor/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Process/AttributeAddUsersGroups.php index f1bfe5e0a4d4b4cf8c85105472f0fb53a7aabc91..5e3d63bf28c50515faa0295ee24ae7ea09e6a8b0 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Process/AttributeAddUsersGroups.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Process/AttributeAddUsersGroups.php @@ -2,6 +2,8 @@ namespace SimpleSAML\Module\ldap\Auth\Process; +use SimpleSAML\Utils\Arrays; + /** * Does a reverse membership lookup on the logged in user, * looking for groups it is a member of and adds them to @@ -10,7 +12,6 @@ * @author Ryan Panning <panman@traileyes.com> * @package SimpleSAMLphp */ - class AttributeAddUsersGroups extends BaseFilter { /** @@ -21,6 +22,7 @@ class AttributeAddUsersGroups extends BaseFilter * * @throws \SimpleSAML\Error\Exception * @param $request + * @return void */ public function process(&$request) { @@ -319,7 +321,7 @@ protected function searchActiveDirectory($dn) ' Member Attribute: '.$map['member']. ' Type Attribute: '.$map['type']. ' Type Value: '.$this->type_map['group']. - ' Base: '.implode('; ', $this->base_dn) + ' Base: '.implode('; ', Arrays::Arrayize($this->base_dn)) ); // AD connections should have this set diff --git a/vendor/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Process/BaseFilter.php b/vendor/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Process/BaseFilter.php index f7de0656fc8da7e7b090737fc0e2f5d8ec5fb916..81f1e18997affdeb097ebfa914048cbba99abec9 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Process/BaseFilter.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/ldap/lib/Auth/Process/BaseFilter.php @@ -2,6 +2,8 @@ namespace SimpleSAML\Module\ldap\Auth\Process; +use SimpleSAML\Module\ldap\Auth\Ldap; + /** * This base LDAP filter class can be extended to enable real * filter classes direct access to the authsource ldap config @@ -14,7 +16,6 @@ * @author Remy Blom <remy.blom@hku.nl> * @package SimpleSAMLphp */ - abstract class BaseFilter extends \SimpleSAML\Auth\ProcessingFilter { /** @@ -50,9 +51,9 @@ abstract class BaseFilter extends \SimpleSAML\Auth\ProcessingFilter * Instance, object of the ldap connection. Stored here to * be access later during processing. * - * @var \SimpleSAML\Auth\Ldap + * @var \SimpleSAML\Module\ldap\Auth\Ldap|null */ - private $ldap; + private $ldap = null; /** @@ -90,8 +91,8 @@ abstract class BaseFilter extends \SimpleSAML\Auth\ProcessingFilter * instance/object and stores everything in class members. * * @throws \SimpleSAML\Error\Exception - * @param array $config - * @param $reserved + * @param array &$config + * @param mixed $reserved */ public function __construct(&$config, $reserved) { @@ -250,17 +251,18 @@ public function __construct(&$config, $reserved) ); } + /** * Getter for the LDAP connection object. Created this getter * rather than setting in the constructor to avoid unnecessarily * connecting to LDAP when it might not be needed. * - * @return \SimpleSAML\Auth\Ldap + * @return \SimpleSAML\Module\ldap\Auth\Ldap */ protected function getLdap() { // Check if already connected - if ($this->ldap) { + if (isset($this->ldap)) { return $this->ldap; } @@ -288,13 +290,14 @@ protected function getLdap() ); // Connect to the LDAP server to be queried during processing - $this->ldap = new \SimpleSAML\Auth\LDAP($hostname, $enable_tls, $debug, $timeout, $port, $referrals); + $this->ldap = new Ldap($hostname, $enable_tls, $debug, $timeout, $port, $referrals); $this->ldap->bind($username, $password); // All done return $this->ldap; } + /** * Local utility function to get details about a variable, * basically converting it to a string to be used in a log diff --git a/vendor/simplesamlphp/simplesamlphp/modules/ldap/lib/ConfigHelper.php b/vendor/simplesamlphp/simplesamlphp/modules/ldap/lib/ConfigHelper.php index d4dcff33ad5084d1f8fdd08cca9bc1734cff91bf..b6eb0de0ed0e943362b0f2c8202d52394b11f1c5 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/ldap/lib/ConfigHelper.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/ldap/lib/ConfigHelper.php @@ -186,7 +186,7 @@ public function login($username, $password, array $sasl_args = null) throw new \SimpleSAML\Error\Error('WRONGUSERPASS'); } - $ldap = new \SimpleSAML\Auth\LDAP( + $ldap = new Auth\Ldap( $this->hostname, $this->enableTLS, $this->debug, @@ -205,6 +205,10 @@ public function login($username, $password, array $sasl_args = null) } } + /** + * PHPdoc changed in SSP 1.18; Remove it after release + * @var string|null $dn + */ $dn = $ldap->searchfordn( $this->searchBase, $this->searchAttributes, @@ -213,6 +217,7 @@ public function login($username, $password, array $sasl_args = null) $this->searchFilter, $this->searchScope ); + if ($dn === null) { /* User not found with search. */ \SimpleSAML\Logger::info($this->location.': Unable to find users DN. username=\''.$username.'\''); @@ -253,7 +258,7 @@ public function login($username, $password, array $sasl_args = null) * @param bool $allowZeroHits * Determines if the method will throw an exception if no * hits are found. Defaults to FALSE. - * @return string + * @return string|null * The DN of the matching element, if found. If no element was * found and $allowZeroHits is set to FALSE, an exception will * be thrown; otherwise NULL will be returned. @@ -266,7 +271,7 @@ public function login($username, $password, array $sasl_args = null) */ public function searchfordn($attribute, $value, $allowZeroHits) { - $ldap = new \SimpleSAML\Auth\LDAP( + $ldap = new Auth\Ldap( $this->hostname, $this->enableTLS, $this->debug, @@ -295,13 +300,20 @@ public function searchfordn($attribute, $value, $allowZeroHits) ); } + + /** + * @param string $dn + * @param array|null $attributes + * @return array + * @throws \Exception + */ public function getAttributes($dn, $attributes = null) { if ($attributes == null) { $attributes = $this->attributes; } - $ldap = new \SimpleSAML\Auth\LDAP( + $ldap = new Auth\Ldap( $this->hostname, $this->enableTLS, $this->debug, diff --git a/vendor/simplesamlphp/simplesamlphp/modules/ldap/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/ldap/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0985fdd804b18d8d9179ecd956d63582c189e95 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/ldap/phpunit.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/ldap/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/ldap/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..c30d4dbb0861e7d8ebbb2c56cd06094fb4207243 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/ldap/psalm.xml @@ -0,0 +1,30 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp LDAP module" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="lib" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/ldap/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/ldap/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..210aa3082fa2df6343f3a7bd09233f3ad3ef822d --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/ldap/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot.'/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot.'/vendor/simplesamlphp/simplesamlphp/modules/ldap'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/ldap/tests/lib/Auth/Process/BaseFilterTest.php b/vendor/simplesamlphp/simplesamlphp/modules/ldap/tests/lib/Auth/Process/BaseFilterTest.php new file mode 100644 index 0000000000000000000000000000000000000000..0c05e2cace90702d737f618a6865adaa43260335 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/ldap/tests/lib/Auth/Process/BaseFilterTest.php @@ -0,0 +1,31 @@ +<?php + +namespace SimpleSAML\Test\Module\ldap\Auth\Process; + +use PHPUnit\Framework\TestCase; +use SimpleSAML\Module\ldap\Auth\Process\BaseFilter; + +class BaseFilterTest extends TestCase +{ + /** + * @return void + */ + public function testVarExportHidesLdapPassword() + { + $stub = $this->getMockBuilder(BaseFilter::class) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + $class = new \ReflectionClass($stub); + $method = $class->getMethod('var_export'); + $method->setAccessible(true); + + $this->assertEquals( + "array ( 'ldap.hostname' => 'ldap://172.17.101.32', 'ldap.port' => 389, 'ldap.password' => '********', )", + $method->invokeArgs($stub, [[ + 'ldap.hostname' => 'ldap://172.17.101.32', + 'ldap.port' => 389, + 'ldap.password' => 'password', + ]]) + ); + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/.codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/.codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/.codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..795e2b10a6086bfb685589fe2279676d10181992 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/.php_cs.dist @@ -0,0 +1,17 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/hooks', + __DIR__ . '/templates', + __DIR__ . '/tests', + __DIR__ . '/www', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..a876f36124e28017088e77b6055e9640a3e53c2a --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/.travis.yml @@ -0,0 +1,31 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + +script: + - vendor/simplesamlphp/simplesamlphp-test-framework/bin/check-syntax-php.sh + - vendor/simplesamlphp/simplesamlphp-test-framework/bin/check-syntax-json.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi +# - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/LICENSE b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..0a041280bd00a9d068f503b8ee7ce35214bd24a1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..47dd1d60a4455fc707629f1205fd33802a10d055 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/composer.json @@ -0,0 +1,43 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-memcachemonitor", + "description": "A module that is able display usage statistics of a memcache(d) store", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "memcachemonitor"], + "license": "LGPL-3.0-or-later", + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + }, + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "~0.0.6" + }, + "extra": { + "ssp-mixedcase-module-name": "memcacheMonitor" + }, + "support": { + "issues": "https://github.com/tvdijen/simplesamlphp-module-memcachemonitor/issues", + "source": "https://github.com/tvdijen/simplesamlphp-module-memcachemonitor" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/hooks/hook_configpage.php b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/hooks/hook_configpage.php index 4debe964ee90ecd9d41b781763738c0beb1f6240..497c84893aa89a811e2db53f259bad67cb6a226a 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/hooks/hook_configpage.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/hooks/hook_configpage.php @@ -1,10 +1,11 @@ <?php + /** * Hook to add the memcacheMonitor module to the config page. * * @param \SimpleSAML\XHTML\Template &$template The template that we should alter in this hook. + * @return void */ - function memcacheMonitor_hook_configpage(\SimpleSAML\XHTML\Template &$template) { $template->data['links']['memcacheMonitor'] = [ diff --git a/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/hooks/hook_frontpage.php b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/hooks/hook_frontpage.php index d25437327aaad82653f3a517a8ecc9051d22dc38..9a1b4f07b7b4c329c0db156648a6a7d556309bb3 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/hooks/hook_frontpage.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/hooks/hook_frontpage.php @@ -1,10 +1,11 @@ <?php + /** * Hook to add the simple consenet admin module to the frontpage. * * @param array &$links The links on the frontpage, split into sections. + * @return void */ - function memcacheMonitor_hook_frontpage(&$links) { assert(is_array($links)); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/hooks/hook_sanitycheck.php b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/hooks/hook_sanitycheck.php index a7a36c415dbdbbe7d1fec858040d650cdd5db5cd..ce95aada196521d5d94e07a27f155728f65b2202 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/hooks/hook_sanitycheck.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/hooks/hook_sanitycheck.php @@ -6,8 +6,8 @@ * This function verifies that all memcache servers work. * * @param array &$hookinfo hookinfo + * @return void */ - function memcacheMonitor_hook_sanitycheck(&$hookinfo) { assert(is_array($hookinfo)); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0985fdd804b18d8d9179ecd956d63582c189e95 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/phpunit.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..89fcf3f9a085df7c74ab3f990152ba1bf7510f63 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/psalm.xml @@ -0,0 +1,31 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp Memcache Monitor" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="hooks" /> + <directory name="www" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/templates/memcachestat.twig b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/templates/memcachestat.twig index fdc4af4bd03a307ad28974a4c4463185ec4ab749..f14848515f513d022a887d2f704d6e791279cd37 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/templates/memcachestat.twig +++ b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/templates/memcachestat.twig @@ -2,7 +2,7 @@ {% extends "base.twig" %} {% block preload %} - <link href="{{ baseurlpath }}assets/css/memcacheMonitor.css" rel="stylesheet" /> + <link href="/{{ baseurlpath }}module.php/memcacheMonitor/assets/css/memcacheMonitor.css" rel="stylesheet"> {% endblock %} {% block content %} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..e635385d76be1d7c337a411c736e007024b11649 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot.'/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot.'/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/www/memcachestat.php b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/www/memcachestat.php index fde791e558da79aa1ad5c266ed7b73ba1e7c2edc..0e79858b98387203181d0084e6d18ffe70e2a5fa 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/www/memcachestat.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/memcacheMonitor/www/memcachestat.php @@ -1,10 +1,19 @@ <?php +/** + * @param int $input + * @return string + */ function tdate($input) { return date(DATE_RFC822, $input); } + +/** + * @param int $input + * @return string + */ function hours($input) { if ($input < 60) { @@ -19,6 +28,11 @@ function hours($input) return number_format($input / (24 * 60 * 60), 2).' days'; } + +/** + * @param int $input + * @return string + */ function humanreadable($input) { $output = ""; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/memcookie/.codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/memcookie/.codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/memcookie/.codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/memcookie/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/memcookie/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..69769c6526ba4a6040eddf0fd3dfb4920a68ede8 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/memcookie/.travis.yml @@ -0,0 +1,31 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then composer require --dev vimeo/psalm:1.1.9; fi + +script: + - vendor/simplesamlphp/simplesamlphp-test-framework/bin/check-syntax-php.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi +# - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/memcookie/README.md b/vendor/simplesamlphp/simplesamlphp/modules/memcookie/README.md new file mode 100644 index 0000000000000000000000000000000000000000..cea74f253dcdbd76f4af4103360088a9a1c6ce7d --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/memcookie/README.md @@ -0,0 +1,109 @@ +SimpleSAMLphp AuthMemCookie module +================================== + +This module implements [Auth MemCookie](https://zenprojects.github.io/Apache-Authmemcookie-Module/) support for SimpleSAMLphp. This allows +you to integrate SimpleSAMLphp with web applications written in languages other than PHP. + +*AuthMemCookie* works by reading authentication data from a *memcache* server and setting environment variables based on +the attributes found in this data. It also allows you to use the default **Apache access control** features to restrict +access to your site. + +Requisites +---------- + +This module requires you to install and set up the following requirements: + +* SimpleSAMLphp running as a [Service Provider](https://simplesamlphp.org/docs/stable/simplesamlphp-sp). +* A *memcache* server. +* [Auth MemCookie](https://zenprojects.github.io/Apache-Authmemcookie-Module/) . + +Installation +------------ + +Once you have installed SimpleSAMLphp, installing this module is very simple. First of all, you will need to [download +Composer](https://getcomposer.org/) if you haven't already. After installing Composer, just execute the following +command in the root of your SimpleSAMLphp installation: + +``` +./composer.phar require simplesamlphp/simplesamlphp-module-memcookie:dev-master +``` + +where `dev-master` instructs Composer to install the `master` branch from the Git repository. See the +[releases](https://github.com/simplesamlphp/simplesamlphp-module-memcookie/releases) available if you want to use a +stable version of the module. + +The module is enabled by default. If you want to disable the module once installed, you just need to create a file named +`disable` in the `modules/memcookie` directory inside your SimpleSAMLphp installation. + +Configuration +------------- + +The first step to use this module is to configure *Auth MemCookie* appropriately. The following example (that you can +find also in `extra/auth_memcookie.conf`) might be helpful: + +``` +<Location /> + # This is a list of memcache servers which Auth MemCookie + # should use. + # Note that this list must list the same servers as the + # 'authmemcookie.servers'-option in config.php in the + # configuration for simpleSAMLphp. + # + # The syntax for this option is inherited from: http://docs.libmemcached.org/libmemcached_configuration.html + Auth_memCookie_Memcached_Configuration "--SERVER=127.0.0.1:11211" + + # This must be set to 'on' to enable Auth MemCookie for + # this directory. + Auth_memCookie_Authoritative on + + # This adjusts the maximum number of data elements in the + # session data. The default is 10, which can be to low. + Auth_memCookie_SessionTableSize "40" + + # These two commands are required to enable access control + # in Apache. + AuthType Cookie + AuthName "My Login" + + # This command causes apache to redirect to the given + # URL when we receive a '401 Authorization Required' + # error. We redirect to "/simplesaml/module.php/memcookie/auth.php", + # which initializes a login to the IdP. + ErrorDocument 401 "/simplesaml/module.php/memcookie/auth.php" +</Location> + +<Location /protected> + # This allows all authenticated users to access the + # directory. To learn more about the 'Require' command, + # please look at: + # http://httpd.apache.org/docs/2.0/mod/core.html#require + Require valid-user +</Location> +``` + +Once *Auth MemCookie* has been correctly configured, you need to configure the module itself by editing the +`config/authmemcookie.php` file. Set the `username` configuration option to the name of an attribute that you are sure +to receive and that will identify the user unambiguously. Read the instructions in the file itself if you need help to +configure it. + +If you already have an *auth source* configured and working in SimpleSAMLphp, and all your memcookie configuration +options are correct, you are ready to go! Make sure to reload Apache so that it uses the new configuration and *Auth +MemCookie* is loaded. Then you can point your browser to the location that you have protected in Apache and it should +redirect you automatically to the IdP for authentication. + +In order to see all the environment variables you have available in the protected location, you can drop a PHP script +like the following in there and access it from your browser after authenticating to your IdP: + +``` +<html> + <body> + <table> +<?php + foreach ($_SERVER as $key => $value) { + echo " <tr><td>".htmlspecialchars($key)."</td><td>".htmlspecialchars($value)."</td></tr>\n"; + } +?> + </table> + </body> +</html> +``` diff --git a/vendor/simplesamlphp/simplesamlphp/modules/memcookie/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/memcookie/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..994b242d1dafe31a0588341e52bc3257008e969f --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/memcookie/composer.json @@ -0,0 +1,31 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-memcookie", + "description": "A SimpleSAMLphp module that allows integration with Auth MemCookie, allowing web applications written in other languages than PHP to integrate with SimpleSAMLphp.", + "type": "simplesamlphp-module", + "keywords": [ "SimpleSAMLphp", "Auth MemCookie", "apache", "cookies"], + "homepage": "https://simplesamlphp.org/", + "license": "LGPL-2.1", + "authors": [ + { + "name": "Olav Morken", + "email": "olav.morken@uninett.no" + }, + { + "name": "Jaime Perez Crespo", + "email": "jaime.perez@uninett.no" + } + ], + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": ">=1.1.6" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.6" + }, + "support": { + "issues": "https://github.com/simplesamlphp/simplesamlphp-module-memcookie/issues", + "source": "https://github.com/simplesamlphp/simplesamlphp-module-memcookie/" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/config-templates/authmemcookie.php b/vendor/simplesamlphp/simplesamlphp/modules/memcookie/config-templates/authmemcookie.php similarity index 100% rename from vendor/simplesamlphp/simplesamlphp/config-templates/authmemcookie.php rename to vendor/simplesamlphp/simplesamlphp/modules/memcookie/config-templates/authmemcookie.php diff --git a/vendor/simplesamlphp/simplesamlphp/modules/memcookie/default-enable b/vendor/simplesamlphp/simplesamlphp/modules/memcookie/default-enable new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/vendor/simplesamlphp/simplesamlphp/modules/memcookie/extra/auth_memcookie.conf b/vendor/simplesamlphp/simplesamlphp/modules/memcookie/extra/auth_memcookie.conf new file mode 100644 index 0000000000000000000000000000000000000000..a3477a80bdc046a97f053a8118a2ce2681508367 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/memcookie/extra/auth_memcookie.conf @@ -0,0 +1,38 @@ +<Location /> + # This is a list of memcache servers which Auth MemCookie + # should use. + # Note that this list must list the same servers as the + # 'authmemcookie.servers'-option in config.php in the + # configuration for simpleSAMLphp. + # + # The syntax for this option is inherited from: http://docs.libmemcached.org/libmemcached_configuration.html + Auth_memCookie_Memcached_Configuration "--SERVER=127.0.0.1:11211" + + # This must be set to 'on' to enable Auth MemCookie for + # this directory. + Auth_memCookie_Authoritative on + + # This adjusts the maximum number of data elements in the + # session data. The default is 10, which can be to low. + Auth_memCookie_SessionTableSize "40" + + # These two commands are required to enable access control + # in Apache. + AuthType Cookie + AuthName "My Login" + + # This command causes apache to redirect to the given + # URL when we receive a '401 Authorization Required' + # error. We redirect to "/simplesaml/module.php/memcookie/auth.php", + # which initializes a login to the IdP. + ErrorDocument 401 "/simplesaml/module.php/memcookie/auth.php" +</Location> + +<Location /protected> + # This allows all authenticated users to access the + # directory. To learn more about the 'Require' command, + # please look at: + # http://httpd.apache.org/docs/2.0/mod/core.html#require + Require valid-user +</Location> + diff --git a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/AuthMemCookie.php b/vendor/simplesamlphp/simplesamlphp/modules/memcookie/lib/AuthMemCookie.php similarity index 66% rename from vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/AuthMemCookie.php rename to vendor/simplesamlphp/simplesamlphp/modules/memcookie/lib/AuthMemCookie.php index 6b4455400c4a1709638da0f9747f1ed696c97362..d5ecc4d88ab39115d556e5a7f68d192f786e741e 100644 --- a/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/AuthMemCookie.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/memcookie/lib/AuthMemCookie.php @@ -1,6 +1,6 @@ <?php -namespace SimpleSAML; +namespace SimpleSAML\Module\memcookie; /** * This is a helper class for the Auth MemCookie module. @@ -8,22 +8,19 @@ * * @author Olav Morken, UNINETT AS. * @package SimpleSAMLphp - * - * @deprecated This class has been deprecated and will be removed in SSP 2.0. Use the memcookie module instead. */ - class AuthMemCookie { /** - * @var AuthMemCookie This is the singleton instance of this class. + * @var AuthMemCookie|null This is the singleton instance of this class. */ private static $instance = null; /** - * @var Configuration The configuration for Auth MemCookie. + * @var \SimpleSAML\Configuration The configuration for Auth MemCookie. */ - private $amcConfig; + private $config; /** @@ -47,7 +44,7 @@ public static function getInstance() private function __construct() { // load AuthMemCookie configuration - $this->amcConfig = Configuration::getConfig('authmemcookie.php'); + $this->config = \SimpleSAML\Configuration::getConfig('authmemcookie.php'); } @@ -58,7 +55,7 @@ private function __construct() */ public function getAuthSource() { - return $this->amcConfig->getString('authsource'); + return $this->config->getString('authsource'); } @@ -66,11 +63,11 @@ public function getAuthSource() * This function retrieves the name of the cookie from the configuration. * * @return string The name of the cookie. - * @throws Exception If the value of the 'cookiename' configuration option is invalid. + * @throws \Exception If the value of the 'cookiename' configuration option is invalid. */ public function getCookieName() { - $cookieName = $this->amcConfig->getString('cookiename', 'AuthMemCookie'); + $cookieName = $this->config->getString('cookiename', 'AuthMemCookie'); if (!is_string($cookieName) || strlen($cookieName) === 0) { throw new \Exception( "Configuration option 'cookiename' contains an invalid value. This option should be a string." @@ -88,7 +85,7 @@ public function getCookieName() */ public function getUsernameAttr() { - $usernameAttr = $this->amcConfig->getString('username', null); + $usernameAttr = $this->config->getString('username', null); return $usernameAttr; } @@ -97,11 +94,11 @@ public function getUsernameAttr() /** * This function retrieves the name of the attribute which contains the groups from the configuration. * - * @return string The name of the attribute which contains the groups. + * @return string|null The name of the attribute which contains the groups. */ public function getGroupsAttr() { - $groupsAttr = $this->amcConfig->getString('groups', null); + $groupsAttr = $this->config->getString('groups', null); return $groupsAttr; } @@ -110,34 +107,38 @@ public function getGroupsAttr() /** * This function creates and initializes a Memcache object from our configuration. * - * @return \Memcache A Memcache object initialized from our configuration. - * @throws \Exception If the servers configuration is invalid. + * @return \Memcache|\Memcached A Memcache object initialized from our configuration. */ public function getMemcache() { - $memcacheHost = $this->amcConfig->getString('memcache.host', '127.0.0.1'); - $memcachePort = $this->amcConfig->getInteger('memcache.port', 11211); + $memcacheHost = $this->config->getString('memcache.host', '127.0.0.1'); + $memcachePort = $this->config->getInteger('memcache.port', 11211); + + $class = class_exists('\Memcache') ? '\Memcache' : (class_exists('\Memcached') ? '\Memcached' : false); - $class = class_exists('Memcache') ? '\Memcache' : (class_exists('Memcached') ? '\Memcached' : false); if (!$class) { - throw new \Exception( - 'Missing Memcached implementation. You must install either the Memcache or Memcached extension.' - ); + throw new \Exception('Missing Memcached implementation. You must install either the Memcache or Memcached extension.'); } - // Create the Memcache(d) object. - $memcache = new $class(); + /** @psalm-suppress InvalidStringClass */ + $memcache = new $class; foreach (explode(',', $memcacheHost) as $memcacheHost) { - $memcache->addServer($memcacheHost, $memcachePort); + if ($memcache instanceof \Memcached) { + $memcache->addServer($memcacheHost, $memcachePort); + } else { + $memcache->addServer($memcacheHost, $memcachePort, true); + } } + /** @var \Memcache|\Memcached $memcache */ return $memcache; } /** * This function logs the user out by deleting the session information from memcache. + * @return void */ private function doLogout() { @@ -161,6 +162,7 @@ private function doLogout() /** * This function implements the logout handler. It deletes the information from Memcache. + * @return void */ public static function logoutHandler() { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/memcookie/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/memcookie/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0985fdd804b18d8d9179ecd956d63582c189e95 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/memcookie/phpunit.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/memcookie/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/memcookie/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..c257963f61a069567bcc606bd24ebb9142297870 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/memcookie/psalm.xml @@ -0,0 +1,37 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp Memcookie" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="config-templates" /> + <directory name="lib" /> + <directory name="www" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> + + <stubs> + <file name="vendor/simplesamlphp/simplesamlphp-test-framework/stubs/memcache.php" /> + <file name="vendor/simplesamlphp/simplesamlphp-test-framework/stubs/memcached.php" /> + </stubs> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/memcookie/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/memcookie/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..0fda7dc8d5f67a754a4ee1a42d9cf149a22ec487 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/memcookie/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot.'/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot.'/vendor/simplesamlphp/simplesamlphp/modules/memcookie'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/memcookie/www/auth.php b/vendor/simplesamlphp/simplesamlphp/modules/memcookie/www/auth.php new file mode 100644 index 0000000000000000000000000000000000000000..9235245550f507eb650b7d532e02d0f3e9a18468 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/memcookie/www/auth.php @@ -0,0 +1,90 @@ +<?php + +use SimpleSAML\Utils; +use SimpleSAML\Module\memcookie\AuthMemCookie; + +/** + * This file implements an script which can be used to authenticate users with Auth MemCookie. + * See: https://zenprojects.github.io/Apache-Authmemcookie-Module/ + * + * The configuration for this script is stored in config/authmemcookie.php. + * + * The file extra/auth_memcookie.conf contains an example of how Auth Memcookie can be configured + * to use SimpleSAMLphp. + */ + +// load SimpleSAMLphp configuration +$ssp_cf = \SimpleSAML\Configuration::getInstance(); + +// load Auth MemCookie configuration +$amc_cf = AuthMemCookie::getInstance(); + +$sourceId = $amc_cf->getAuthSource(); +$s = new SimpleSAML\Auth\Simple($sourceId); + +// check if the user is authorized. We attempt to authenticate the user if not +$s->requireAuth(); + +// generate session id and save it in a cookie +$sessionID = Utils\Random::generateID(); +$cookieName = $amc_cf->getCookieName(); +Utils\HTTP::setCookie($cookieName, $sessionID); + +// generate the authentication information +$attributes = $s->getAttributes(); + +$authData = []; + +// username +$usernameAttr = $amc_cf->getUsernameAttr(); +if (!array_key_exists($usernameAttr, $attributes)) { + throw new \SimpleSAML\Error\Exception( + "The user doesn't have an attribute named '".$usernameAttr. + "'. This attribute is expected to contain the username." + ); +} +$authData['UserName'] = $attributes[$usernameAttr]; + +// groups +$groupsAttr = $amc_cf->getGroupsAttr(); +if ($groupsAttr !== null) { + if (!array_key_exists($groupsAttr, $attributes)) { + throw new \SimpleSAML\Error\Exception( + "The user doesn't have an attribute named '".$groupsAttr. + "'. This attribute is expected to contain the groups the user is a member of." + ); + } + $authData['Groups'] = $attributes[$groupsAttr]; +} else { + $authData['Groups'] = []; +} + +$authData['RemoteIP'] = $_SERVER['REMOTE_ADDR']; + +foreach ($attributes as $n => $v) { + $authData['ATTR_'.$n] = $v; +} + +// store the authentication data in the memcache server +$data = ''; +foreach ($authData as $n => $v) { + if (is_array($v)) { + $v = implode(':', $v); + } + $data .= $n.'='.$v."\r\n"; +} + +$memcache = $amc_cf->getMemcache(); +$expirationTime = $s->getAuthData('Expire'); +if ($memcache instanceof \Memcached) { + $memcache->set($sessionID, $data, $expirationTime); +} else { + $memcache->set($sessionID, $data, 0, $expirationTime); +} + +// register logout handler +$session = \SimpleSAML\Session::getSessionFromRequest(); +$session->registerLogoutHandler($sourceId, '\SimpleSAML\Module\memcookie\AuthMemCookie', 'logoutHandler'); + +// redirect the user back to this page to signal that the login is completed +Utils\HTTP::redirectTrustedURL(Utils\HTTP::getSelfURL()); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..59267ee96c7911780c11de4d2e1c4db1838d8752 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/.php_cs.dist @@ -0,0 +1,17 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/lib', + __DIR__ . '/templates', + __DIR__ . '/tests', + __DIR__ . '/www', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..1e79c514f83141d578a1e3a8ab7c68a04d8b9101 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/.travis.yml @@ -0,0 +1,30 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +matrix: + allow_failures: + - php: 7.3 + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then composer require --dev vimeo/psalm:1.1.9; fi + +script: + - bin/check-syntax.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/LICENSE b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..a345e48d049f9c6756e9364e908b3f26e36c9df1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/LICENSE @@ -0,0 +1,459 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/bin/check-syntax.sh b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/bin/check-syntax.sh new file mode 100755 index 0000000000000000000000000000000000000000..ba71433b22c9ffd59f79f9f107c6ff679946cd60 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/bin/check-syntax.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +PHP='/usr/bin/env php' +RETURN=0 + +# check PHP files +for FILE in `find config-templates hooks lib templates tests www -name "*.php"`; do + $PHP -l $FILE > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Syntax check failed for ${FILE}" + RETURN=`expr ${RETURN} + 1` + fi +done + +exit $RETURN diff --git a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/bin/metarefresh.php b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/bin/metarefresh.php index b02fb75a6a2385eba494f4a41d060e52ff35ce60..87def0acdc4dec43060ace9914eeda8d68103376 100755 --- a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/bin/metarefresh.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/bin/metarefresh.php @@ -5,6 +5,7 @@ * This script can be used to generate metadata for SimpleSAMLphp * based on an XML metadata file. */ +use RobRichards\XMLSecLibs\XMLSecurityDSig; // This is the base directory of the SimpleSAMLphp installation @@ -44,6 +45,11 @@ */ $validateFingerprint = null; +/* $validateFingerprintAlgorithm is the algorithm to use to compute the fingerprint of the + * certificate that signed the metadata. + */ +$validateFingerprintAlgorithm = null; + // This variable contains the files we will parse $files = []; @@ -97,6 +103,9 @@ } $validateFingerprint = $v; break; + case '--validate-fingerprint-algorithm': + $validateFingerprintAlgorithm = $v; + break; case '--help': printHelp(); exit(0); @@ -134,6 +143,9 @@ if (isset($validateFingerprint)) { $source['validateFingerprint'] = $validateFingerprint; } + if (isset($validateFingerprintAlgorithm)) { + $source['validateFingerprintAlgorithm'] = $validateFingerprintAlgorithm; + } $metaloader->loadSource($source); } @@ -145,6 +157,7 @@ /** * This function prints the help output. + * @return void */ function printHelp() { @@ -167,6 +180,10 @@ function printHelp() echo ' Check the signature of the metadata,'."\n"; echo ' and check the fingerprint of the'."\n"; echo ' certificate against <FINGERPRINT>.'."\n"; + echo ' --validate-fingerprint-algorithm=<ALGORITHM>'."\n"; + echo ' Use <ALGORITHM> to validate fingerprint of'."\n"; + echo ' the certificate that signed the metadata.'."\n"; + echo ' Default: '.XMLSecurityDSig::SHA1.".\n"; echo ' -h, --help Print this help.'."\n"; echo ' -o=<DIR>, --out-dir=<DIR> Write the output to this directory. The'."\n"; echo ' default directory is metadata-generated/.'."\n"; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..f23f5501bcf33449019b9f0686ae0188bad393f2 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/composer.json @@ -0,0 +1,41 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-metarefresh", + "description": "The metarefresh module will download and parse metadata documents and store them locally", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "metarefresh"], + "license": "LGPL-2.1-or-later", + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\metarefresh\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.18", + "phpunit/phpunit": "~5.7" + }, + "support": { + "issues": "https://github.com/tvdijen/simplesamlphp-module-metarefresh/issues", + "source": "https://github.com/tvdijen/simplesamlphp-module-metarefresh" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/config-templates/config-metarefresh.php b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/config-templates/config-metarefresh.php index c8009d4c2756ced568d6507b286e833431040f46..333b75dee3bc31798d354ecb7e82c93bb8db27f5 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/config-templates/config-metarefresh.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/config-templates/config-metarefresh.php @@ -44,6 +44,7 @@ 'rollover.crt', ], 'validateFingerprint' => '59:1D:4B:46:70:46:3E:ED:A9:1F:CC:81:6D:C0:AF:2A:09:2A:A8:01', + #'validateFingerprintAlgorithm' => RobRichards\XMLSecLibs\XMLSecurityDSig::SHA1, 'template' => [ 'tags' => ['kalmar'], 'authproc' => [ diff --git a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/dictionaries/metarefresh.translation.json b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/dictionaries/metarefresh.translation.json index 2023ecba4f39e60385911c6708ac187bf2db6c8e..6067187dd3341914cb3e37d6eaee62da8c47bdf3 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/dictionaries/metarefresh.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/dictionaries/metarefresh.translation.json @@ -1,9 +1,12 @@ { "frontpage_link": { + "ca": "Metarefresh: obtenir metadades" }, "metarefresh_header": { + "ca": "Obtenció de Metarefresh" }, "no_output": { + "ca": "No s’ha produït cap sortida de metarefresh." } } diff --git a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-automated_metadata.md b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/docs/simplesamlphp-automated_metadata.md similarity index 74% rename from vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-automated_metadata.md rename to vendor/simplesamlphp/simplesamlphp/modules/metarefresh/docs/simplesamlphp-automated_metadata.md index cc40de2ceb6f5367dc6edf95b91e5462f0d40ddd..fdf33ecbeba9abe219fc92c056d30f02a4ffa777 100644 --- a/vendor/simplesamlphp/simplesamlphp/docs/simplesamlphp-automated_metadata.md +++ b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/docs/simplesamlphp-automated_metadata.md @@ -103,6 +103,38 @@ Here's an example of a possible configuration for both the Kalmar Federation and 'outputDir' => 'metadata/metarefresh-ukaccess/', 'outputFormat' => 'serialize', ], + 'edugain' => [ + 'cron' => ['daily'], + 'sources' => [ + [ + 'src' => 'https://metadata.surfconext.nl/edugain-downstream.xml', + 'certificates' => [ + 'SURFconext-metadata-signer.pem', + ], + ], + ], + 'attributewhitelist' => [ + [ + '#EntityAttributes#' => [ + '#urn:oasis:names:tc:SAML:attribute:assurance-certification#' + => ['#https://refeds.org/sirtfi#'], + '#http://macedir.org/entity-category-support#' + => ['#http://refeds.org/category/research-and-scholarship#'], + ], + ], + [ + '#RegistrationInfo#' => [ + '#registrationAuthority#' + => '#http://www.surfconext.nl/#', + ], + '#EntityAttributes#' => [ + '#urn:oasis:names:tc:SAML:attribute:assurance-certification#' + => ['#https://refeds.org/sirtfi#'], + ], + ], + ], + ], + ], ] ]; @@ -162,13 +194,38 @@ Each metadata source has the following options: don't need this option if you don't want to validate the signature on the metadata. +`validateFingerprintAlgorithm` +: Algorithm used to compute the signing certificate's fingerprint. Defaults to + `XMLSecurityDSig::SHA1`. + `template` : This is an array which will be combined with the metadata fetched to generate the final metadata array. `types` -: Same as the option with the same name at the metadata set level. This option has precedence when both are specified, - allowing a more fine grained configuration for every metadata source. +: Same as the option with the same name at the metadata set level. This option has precedence when both are specified, + allowing a more fine grained configuration for every metadata source. + +`whitelist` +: This is an array that allows for selectively refreshing a list of identity providers. Only data from identity + providers that exist in the whitelist will be processed and written to disk. This is especially useful for hosting + environments that have strict limits memory and maximum execution time. + +`blacklist` +: This is an array that allows for selectively skipping a list of identity providers. Only data from identity + providers that do not appear in the blacklist are processed and written to disk. + +`attributewhitelist` +: This is a multilevel array for selectively refreshing a list of identity providers based on specific attributes + patterns in their metadata. Only data from identity providers that match at least one element of the top-level array + will be processed and written to disk. + Matching of such a top-level element, itself being a (multi-level) array, means that at each level (recursively) the + key and value match with the identity provider's metadata. Scalar keys and values are matched using PCRE. + A typical use-case is to accept only identity providers from eduGAIN that match a combination of specific + EntityAttributes, such as the https://refeds.org/sirtfi assurance-certification *and* + http://refeds.org/category/research-and-scholarship entity-category. + Another example is filtering identity providers from a specific federation, by filtering on specific values of the + registrationAuthority inside the RegistrationInfo. After you have configured the metadata sources, you need to give the diff --git a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/hooks/hook_cron.php b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/hooks/hook_cron.php index 4ab82e2272d8eaf4fa9ed4b8f7d5016bf8bbbdad..697086b006f9989d352262ee8b92b5c3102572ae 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/hooks/hook_cron.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/hooks/hook_cron.php @@ -1,11 +1,12 @@ <?php -use \SimpleSAML\Logger; +use SimpleSAML\Logger; /** * Hook to run a cron job. * * @param array &$croninfo Output + * @return void */ function metarefresh_hook_cron(&$croninfo) { @@ -20,7 +21,9 @@ function metarefresh_hook_cron(&$croninfo) $mconfig = \SimpleSAML\Configuration::getOptionalConfig('config-metarefresh.php'); $sets = $mconfig->getConfigList('sets', []); - $stateFile = $config->getPathValue('datadir', 'data/').'metarefresh-state.php'; + /** @var string $datadir */ + $datadir = $config->getPathValue('datadir', 'data/'); + $stateFile = $datadir.'metarefresh-state.php'; foreach ($sets as $setkey => $set) { // Only process sets where cron matches the current cron tag @@ -40,6 +43,10 @@ function metarefresh_hook_cron(&$croninfo) $outputDir = $set->getString('outputDir'); $outputDir = $config->resolvePath($outputDir); + if ($outputDir === null) { + throw new \Exception("Invalid outputDir specified."); + } + $outputFormat = $set->getValueValidate('outputFormat', ['flatfile', 'serialize'], 'flatfile'); $oldMetadataSrc = \SimpleSAML\Metadata\MetaDataStorageSource::getSource([ @@ -49,9 +56,10 @@ function metarefresh_hook_cron(&$croninfo) $metaloader = new \SimpleSAML\Module\metarefresh\MetaLoader($expire, $stateFile, $oldMetadataSrc); - // Get global blacklist, whitelist and caching info + // Get global blacklist, whitelist, attributewhitelist and caching info $blacklist = $mconfig->getArray('blacklist', []); $whitelist = $mconfig->getArray('whitelist', []); + $attributewhitelist = $mconfig->getArray('attributewhitelist', []); $conditionalGET = $mconfig->getBoolean('conditionalGET', false); // get global type filters @@ -86,6 +94,13 @@ function metarefresh_hook_cron(&$croninfo) $source['whitelist'] = $whitelist; } + # Merge global and src specific attributewhitelists: cannot use array_unique for multi-dim. + if (isset($source['attributewhitelist'])) { + $source['attributewhitelist'] = array_merge($source['attributewhitelist'], $attributewhitelist); + } else { + $source['attributewhitelist'] = $attributewhitelist; + } + // Let src specific conditionalGET override global one if (!isset($source['conditionalGET'])) { $source['conditionalGET'] = $conditionalGET; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/hooks/hook_frontpage.php b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/hooks/hook_frontpage.php index e66c583f29758151ea05e792c06f0809340e85e9..7c0c2ec91eb5593ebcc1f0b296317d09045cccdf 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/hooks/hook_frontpage.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/hooks/hook_frontpage.php @@ -1,10 +1,11 @@ <?php + /** * Hook to add links to the frontpage. * * @param array &$links The links on the frontpage, split into sections. + * @return void */ - function metarefresh_hook_frontpage(&$links) { assert(is_array($links)); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/lib/ARP.php b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/lib/ARP.php index c64ff3463f593c0ed0565b578e069eb70e7c43be..8018486ab519c3af7be5ddba4df5ae7cb653945b 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/lib/ARP.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/lib/ARP.php @@ -6,7 +6,6 @@ * @author Andreas Åkre Solberg <andreas.solberg@uninett.no> * @package SimpleSAMLphp */ - class ARP { /** @@ -17,7 +16,7 @@ class ARP /** * @var array */ - private $attributes; + private $attributes = []; /** * @var string @@ -37,7 +36,7 @@ class ARP * @param string $prefix * @param string $suffix */ - public function __construct($metadata, $attributemap_filename, $prefix, $suffix) + public function __construct(array $metadata, $attributemap_filename, $prefix, $suffix) { $this->metadata = $metadata; $this->prefix = $prefix; @@ -136,7 +135,7 @@ private function getEntryXML($entry) * * @return string */ - private function getEntryXMLcontent($entry) + private function getEntryXMLcontent(array $entry) { if (!array_key_exists('attributes', $entry)) { return ''; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/lib/MetaLoader.php b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/lib/MetaLoader.php index e8007803d579e9b72735b123ad28ac3a386dacf2..653f1bb1a73d0dbadf3d64268f8cb5903166448b 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/lib/MetaLoader.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/lib/MetaLoader.php @@ -2,21 +2,39 @@ namespace SimpleSAML\Module\metarefresh; +use Exception; +use RobRichards\XMLSecLibs\XMLSecurityDSig; +use SAML2\DOMDocumentFactory; +use SimpleSAML\Configuration; use SimpleSAML\Logger; +use SimpleSAML\Metadata; +use SimpleSAML\Utils; /** * @package SimpleSAMLphp * @author Andreas Åkre Solberg <andreas.solberg@uninett.no> */ - class MetaLoader { + /** @var int|null */ private $expire; - private $metadata; + + /** @var array */ + private $metadata = []; + + /** @var object|null */ private $oldMetadataSrc; + + /** @var string|null */ private $stateFile; - private $changed; - private $state; + + /** @var bool*/ + private $changed = false; + + /** @var array */ + private $state = []; + + /** @var array */ private $types = [ 'saml20-idp-remote', 'saml20-sp-remote', @@ -25,29 +43,31 @@ class MetaLoader 'attributeauthority-remote' ]; + /** * Constructor * - * @param integer $expire - * @param string $stateFile - * @param object $oldMetadataSrc + * @param int|null $expire + * @param string|null $stateFile + * @param object|null $oldMetadataSrc */ public function __construct($expire = null, $stateFile = null, $oldMetadataSrc = null) { $this->expire = $expire; - $this->metadata = []; $this->oldMetadataSrc = $oldMetadataSrc; $this->stateFile = $stateFile; - $this->changed = false; // Read file containing $state from disk - if (is_readable($stateFile)) { - include $stateFile; + if (!is_null($stateFile) && is_readable($stateFile)) { + include($stateFile); } - $this->state = []; + if (isset($state)) { + $this->state = $state; + } } + /** * Get the types of entities that will be loaded. * @@ -58,11 +78,13 @@ public function getTypes() return $this->types; } + /** * Set the types of entities that will be loaded. * * @param string|array $types Either a string with the name of one single type allowed, or an array with a list of * types. Pass an empty array to reset to all types of entities. + * @return void */ public function setTypes($types) { @@ -72,12 +94,14 @@ public function setTypes($types) $this->types = $types; } + /** * This function processes a SAML metadata file. * - * @param $source + * @param $source array + * @return void */ - public function loadSource($source) + public function loadSource(array $source) { if (preg_match('@^https?://@i', $source['src'])) { // Build new HTTP context @@ -85,9 +109,11 @@ public function loadSource($source) // GET! try { - list($data, $responseHeaders) = \SimpleSAML\Utils\HTTP::fetch($source['src'], $context, true); - } catch (\Exception $e) { - Logger::warning('metarefresh: '.$e->getMessage()); + /** @var array $response We know this because we set the third parameter to `true` */ + $response = Utils\HTTP::fetch($source['src'], $context, true); + list($data, $responseHeaders) = $response; + } catch (Exception $e) { + Logger::warning('metarefresh: ' . $e->getMessage()); } // We have response headers, so the request succeeded @@ -121,9 +147,9 @@ public function loadSource($source) try { $entities = $this->loadXML($data, $source); - } catch (\Exception $e) { - Logger::debug('XML parser error when parsing '.$source['src'].' - attempting to re-use cached metadata'); - Logger::debug('XML parser returned: '.$e->getMessage()); + } catch (Exception $e) { + Logger::debug('XML parser error when parsing ' . $source['src'] . ' - attempting to re-use cached metadata'); + Logger::debug('XML parser returned: ' . $e->getMessage()); $this->addCachedMetadata($source); return; } @@ -143,7 +169,31 @@ public function loadSource($source) } } - if (array_key_exists('certificates', $source) && $source['certificates'] !== null) { + /* Do we have an attribute whitelist? */ + if (isset($source['attributewhitelist']) && !empty($source['attributewhitelist'])) { + $idpMetadata = $entity->getMetadata20IdP(); + if (!isset($idpMetadata)) { + /* Skip non-IdPs */ + continue; + } + + /* Do a recursive comparison for each whitelist of the attributewhitelist with the idpMetadata for this + * IdP. At least one of these whitelists should match */ + $match = false; + foreach ($source['attributewhitelist'] as $whitelist) { + if ($this->containsArray($whitelist, $idpMetadata)) { + $match = true; + break; + } + } + if (!$match) { + /* No match found -> next IdP */ + continue; + } + Logger::debug('Whitelisted entityID: ' . $entity->getEntityID()); + } + + if (array_key_exists('certificates', $source) && ($source['certificates'] !== null)) { if (!$entity->validateSignature($source['certificates'])) { Logger::info( 'Skipping "'.$entity->getEntityId().'" - could not verify signature using certificate.'."\n" @@ -154,7 +204,10 @@ public function loadSource($source) if (array_key_exists('validateFingerprint', $source) && $source['validateFingerprint'] !== null) { if (!array_key_exists('certificates', $source) || $source['certificates'] == null) { - if (!$entity->validateFingerprint($source['validateFingerprint'])) { + $algo = isset($source['validateFingerprintAlgorithm']) + ? $source['validateFingerprintAlgorithm'] + : XMLSecurityDSig::SHA1; + if (!$entity->validateFingerprint($source['validateFingerprint'], $algo)) { Logger::info( 'Skipping "'.$entity->getEntityId().'" - could not verify signature using fingerprint.'."\n" ); @@ -198,12 +251,80 @@ public function loadSource($source) $this->saveState($source, $responseHeaders); } + + /* + * Recursively checks whether array $dst contains array $src. If $src + * is not an array, a literal comparison is being performed. + */ + private function containsArray($src, $dst): bool + { + if (is_array($src)) { + if (!is_array($dst)) { + return false; + } + $dstKeys = array_keys($dst); + + /* Loop over all src keys */ + foreach ($src as $srcKey => $srcval) { + if (is_int($srcKey)) { + /* key is number, check that the key appears as one + * of the destination keys: if not, then src has + * more keys than dst */ + if (!array_key_exists($srcKey, $dst)) { + return false; + } + + /* loop over dest keys, to find value: we don't know + * whether they are in the same order */ + $submatch = false; + foreach ($dstKeys as $dstKey) { + if ($this->containsArray($srcval, $dst[$dstKey])) { + $submatch = true; + break; + } + } + if (!$submatch) { + return false; + } + } else { + /* key is regexp: find matching keys */ + /** @var array|false $matchingDstKeys */ + $matchingDstKeys = preg_grep($srcKey, $dstKeys); + if (!is_array($matchingDstKeys)) { + return false; + } + + $match = false; + foreach ($matchingDstKeys as $dstKey) { + if ($this->containsArray($srcval, $dst[$dstKey])) { + /* Found a match */ + $match = true; + break; + } + } + if (!$match) { + /* none of the keys has a matching value */ + return false; + } + } + } + /* each src key/value matches */ + return true; + } else { + /* src is not an array, do a regexp match against dst */ + return (preg_match($src, $dst) === 1); + } + } + /** * Create HTTP context, with any available caches taken into account + * + * @param array $source + * @return array */ - private function createContext($source) + private function createContext(array $source) { - $config = \SimpleSAML\Configuration::getInstance(); + $config = Configuration::getInstance(); $name = $config->getString('technicalcontact_name', null); $mail = $config->getString('technicalcontact_email', null); @@ -227,7 +348,11 @@ private function createContext($source) } - private function addCachedMetadata($source) + /** + * @param array $source + * @return void + */ + private function addCachedMetadata(array $source) { if (isset($this->oldMetadataSrc)) { foreach ($this->types as $type) { @@ -245,8 +370,12 @@ private function addCachedMetadata($source) /** * Store caching state data for a source + * + * @param array $source + * @param array|null $responseHeaders + * @return void */ - private function saveState($source, $responseHeaders) + private function saveState(array $source, $responseHeaders) { if (isset($source['conditionalGET']) && $source['conditionalGET']) { // Headers section @@ -268,31 +397,36 @@ private function saveState($source, $responseHeaders) } } + /** * Parse XML metadata and return entities + * + * @param string $data + * @param array $source + * @return \SimpleSAML\Metadata\SAMLParser[] + * @throws \Exception */ - private function loadXML($data, $source) + private function loadXML($data, array $source) { try { - $doc = \SAML2\DOMDocumentFactory::fromString($data); - } catch (\Exception $e) { - throw new \Exception('Failed to read XML from '.$source['src']); - } - if ($doc->documentElement === null) { - throw new \Exception('Opened file is not an XML document: '.$source['src']); + $doc = DOMDocumentFactory::fromString($data); + } catch (Exception $e) { + throw new Exception('Failed to read XML from ' . $source['src']); } - return \SimpleSAML\Metadata\SAMLParser::parseDescriptorsElement($doc->documentElement); + return Metadata\SAMLParser::parseDescriptorsElement($doc->documentElement); } /** * This function writes the state array back to disk + * + * @return void */ public function writeState() { - if ($this->changed) { - Logger::debug('Writing: '.$this->stateFile); - \SimpleSAML\Utils\System::writeFile( + if ($this->changed && !is_null($this->stateFile)) { + Logger::debug('Writing: ' . $this->stateFile); + Utils\System::writeFile( $this->stateFile, "<?php\n/* This file was generated by the metarefresh module at ".$this->getTime().".\n". " Do not update it manually as it will get overwritten. */\n". @@ -305,6 +439,8 @@ public function writeState() /** * This function writes the metadata to stdout. + * + * @return void */ public function dumpMetadataStdOut() { @@ -332,10 +468,12 @@ public function dumpMetadataStdOut() * This function will return without making any changes if $metadata is NULL. * * @param string $filename The filename the metadata comes from. - * @param array $metadata The metadata. + * @param array|null $metadata The metadata. * @param string $type The metadata type. + * @param array|null $template The template. + * @return void */ - private function addMetadata($filename, $metadata, $type, $template = null) + private function addMetadata($filename, $metadata, $type, array $template = null) { if ($metadata === null) { return; @@ -370,10 +508,13 @@ private function addMetadata($filename, $metadata, $type, $template = null) /** * This function writes the metadata to an ARP file + * + * @param \SimpleSAML\Configuration $config + * @return void */ - public function writeARPfile($config) + public function writeARPfile(Configuration $config) { - assert($config instanceof \SimpleSAML\Configuration); + assert($config instanceOf \SimpleSAML\Configuration); $arpfile = $config->getValue('arpfile'); $types = ['saml20-sp-remote']; @@ -387,7 +528,7 @@ public function writeARPfile($config) } // $metadata, $attributemap, $prefix, $suffix - $arp = new \SimpleSAML\Module\metarefresh\ARP( + $arp = new ARP( $md, $config->getValue('attributemap', ''), $config->getValue('prefix', ''), @@ -404,6 +545,9 @@ public function writeARPfile($config) /** * This function writes the metadata to to separate files in the output directory. + * + * @param string $outputDir + * @return void */ public function writeMetadataFiles($outputDir) { @@ -415,7 +559,7 @@ public function writeMetadataFiles($outputDir) Logger::info('Creating directory: '.$outputDir."\n"); $res = @mkdir($outputDir, 0777, true); if ($res === false) { - throw new \Exception('Error creating directory: '.$outputDir); + throw new Exception('Error creating directory: ' . $outputDir); } } @@ -437,7 +581,7 @@ public function writeMetadataFiles($outputDir) $content .= "\n".'?>'; - \SimpleSAML\Utils\System::writeFile($filename, $content, 0644); + Utils\System::writeFile($filename, $content, 0644); } elseif (is_file($filename)) { if (unlink($filename)) { Logger::debug('Deleting stale metadata file: '.$filename); @@ -453,12 +597,13 @@ public function writeMetadataFiles($outputDir) * Save metadata for loading with the 'serialize' metadata loader. * * @param string $outputDir The directory we should save the metadata to. + * @return void */ public function writeMetadataSerialize($outputDir) { assert(is_string($outputDir)); - $metaHandler = new \SimpleSAML\Metadata\MetaDataStorageHandlerSerialize(['directory' => $outputDir]); + $metaHandler = new Metadata\MetaDataStorageHandlerSerialize(['directory' => $outputDir]); // First we add all the metadata entries to the metadata handler foreach ($this->metadata as $set => $elements) { @@ -477,21 +622,26 @@ public function writeMetadataSerialize($outputDir) $ct = time(); foreach ($metaHandler->getMetadataSets() as $set) { foreach ($metaHandler->getMetadataSet($set) as $entityId => $metadata) { - if (!array_key_exists('expire', $metadata)) { + if (!array_key_exists('expire', $metadata) || !is_int($metadata['expire'])) { Logger::warning( - 'metarefresh: Metadata entry without expire timestamp: '.var_export($entityId, true). - ' in set '.var_export($set, true).'.' + 'metarefresh: Metadata entry without valid expire timestamp: ' . var_export($entityId, true) . + ' in set ' . var_export($set, true) . '.' ); continue; } - if ($metadata['expire'] > $ct) { + + $expire = $metadata['expire']; + if ($expire > $ct) { continue; } - Logger::debug('metarefresh: '.$entityId.' expired '.date('l jS \of F Y h:i:s A', $metadata['expire'])); + + /** @var int $stamp */ + $stamp = date('l jS \of F Y h:i:s A', $expire); + Logger::debug('metarefresh: ' . $entityId . ' expired ' . $stamp); Logger::debug( - 'metarefresh: Delete expired metadata entry '. - var_export($entityId, true).' in set '.var_export($set, true). - '. ('.($ct - $metadata['expire']).' sec)' + 'metarefresh: Delete expired metadata entry ' . + var_export($entityId, true) . ' in set ' . var_export($set, true) . + '. (' . ($ct - $expire) . ' sec)' ); $metaHandler->deleteMetadata($entityId, $set); } @@ -499,6 +649,9 @@ public function writeMetadataSerialize($outputDir) } + /** + * @return string + */ private function getTime() { // The current date, as a string diff --git a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0985fdd804b18d8d9179ecd956d63582c189e95 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/phpunit.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..89527d6a7418b539f760842fe32a838c1f2cc9fd --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/psalm.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp metarefresh module" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="config-templates" /> + <directory name="hooks" /> + <directory name="lib" /> + <directory name="templates" /> + <directory name="www" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..b5999566f48bda75f96c6b8872547f3fd7d2527e --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot.'/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot.'/vendor/simplesamlphp/simplesamlphp/modules/metarefresh'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/tests/lib/MetaLoaderTest.php b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/tests/lib/MetaLoaderTest.php new file mode 100644 index 0000000000000000000000000000000000000000..886d56ff186a2e1fdf7aee0f86acf7d64d645cff --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/tests/lib/MetaLoaderTest.php @@ -0,0 +1,258 @@ +<?php + +namespace SimpleSAML\Test\Module\metarefresh; + +use PHPUnit\Framework\TestCase; +use RobRichards\XMLSecLibs\XMLSecurityDSig; +use \SimpleSAML\Configuration; + +class MetaLoaderTest extends TestCase +{ + private $metaloader; + private $config; + private $tmpdir; + private $source = [ + 'outputFormat' => 'flatfile', + 'conditionalGET' => false, + ]; + private $expected = [ + 'entityid' => 'https://idp.example.com/idp/shibboleth', + 'description' => ['en' => 'OrganizationName',], + 'OrganizationName' => ['en' => 'OrganizationName',], + 'name' => ['en' => 'DisplayName',], + 'OrganizationDisplayName' => ['en' => 'OrganizationDisplayName',], + 'url' => ['en' => 'https://example.com',], + 'OrganizationURL' => ['en' => 'https://example.com',], + 'contacts' => [['contactType' => 'technical', 'emailAddress' => ['mailto:technical.contact@example.com',],],], + 'metadata-set' => 'saml20-idp-remote', + 'SingleSignOnService' => [ + [ + 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST', + 'Location' => 'https://idp.example.com/idp/profile/SAML2/POST/SSO', + ], + ], + 'keys' => [ + [ + 'encryption' => true, + 'signing' => true, + 'type' => 'X509Certificate', + ], + ], + 'scope' => ['example.com',], + 'RegistrationInfo' => [ + 'registrationAuthority' => 'http://www.surfconext.nl/', + ], + 'EntityAttributes' => [ + 'urn:oasis:names:tc:SAML:attribute:assurance-certification' => [ + 0 => 'https://refeds.org/sirtfi', + ], + 'http://macedir.org/entity-category-support' => [ + 0 => 'http://refeds.org/category/research-and-scholarship', + ], + ], + 'UIInfo' => [ + 'DisplayName' => ['en' => 'DisplayName',], + 'Description' => ['en' => 'Description',], + ], + ]; + + protected function setUp() + { + $this->config = Configuration::loadFromArray(['module.enable' => ['metarefresh' => true]], '[ARRAY]', 'simplesaml'); + Configuration::setPreLoadedConfig($this->config, 'config.php'); + $this->metaloader = new \SimpleSAML\Module\metarefresh\MetaLoader(); + /* cannot use dirname() in declaration */ + $this->source['src'] = dirname(dirname(__FILE__)) . '/testmetadata.xml'; + } + + protected function tearDown() + { + if ($this->tmpdir && is_dir($this->tmpdir)) { + foreach (array_diff(scandir($this->tmpdir), array('.','..')) as $file) { + unlink($this->tmpdir.'/'.$file); + } + rmdir($this->tmpdir); + } + } + + public function testMetaLoader() + { + $this->metaloader->loadSource($this->source); + $this->metaloader->dumpMetadataStdOut(); + /* match a line from the cert before we attempt to parse */ + $this->expectOutputRegex('/UTEbMBkGA1UECgwSRXhhbXBsZSBVbml2ZXJzaXR5MRgwFgYDVQQDDA9pZHAuZXhh/'); + + $output = $this->getActualOutput(); + try { + eval($output); + } catch (\Exception $e) { + $this->fail('Metarefresh does not produce syntactially valid code'); + } + $this->assertArrayHasKey('https://idp.example.com/idp/shibboleth', $metadata); + $this->assertArraySubset( + $this->expected, + $metadata['https://idp.example.com/idp/shibboleth'] + ); + } + + public function testSignatureVerificationFingerprintDefaultsToSHA1() + { + $this->metaloader->loadSource( + array_merge( + $this->source, + [ + 'validateFingerprint' => '85:11:00:FF:34:55:BC:20:C0:20:5D:46:9B:2F:23:8F:41:09:68:F2', + ] + ) + ); + $this->metaloader->dumpMetadataStdOut(); + $this->expectOutputRegex('/UTEbMBkGA1UECgwSRXhhbXBsZSBVbml2ZXJzaXR5MRgwFgYDVQQDDA9pZHAuZXhh/'); + } + + public function testSignatureVerificationFingerprintSHA256() + { + $this->metaloader->loadSource( + array_merge( + $this->source, + [ + 'validateFingerprint' => '36:64:49:4E:F4:4C:59:9F:5B:8F:FE:75:7E:B2:0C:1A:3A:27:AD:AF:11:B0:6D:EC:DF:38:B6:66:C8:C4:C6:84', + 'validateFingerprintAlgorithm' => XMLSecurityDSig::SHA256, + ] + ) + ); + $this->metaloader->dumpMetadataStdOut(); + $this->expectOutputRegex('/UTEbMBkGA1UECgwSRXhhbXBsZSBVbml2ZXJzaXR5MRgwFgYDVQQDDA9pZHAuZXhh/'); + } + + public function testSignatureVerificationFingerprintFailure() + { + $this->metaloader->loadSource(array_merge($this->source, [ 'validateFingerprint' => 'DE:AD:BE:EF:DE:AD:BE:EF:DE:AD:BE:EF:DE:AD:BE:EF:DE:AD:BE:EF' ])); + $this->metaloader->dumpMetadataStdOut(); + $this->expectOutputString(''); + } + + public function testSignatureVerificationCertificatePass() + { + $this->metaloader->loadSource(array_merge($this->source, [ 'certificates' => [ dirname(dirname(__FILE__)) . '/mdx.pem' ] ])); + $this->metaloader->dumpMetadataStdOut(); + $this->expectOutputRegex('/UTEbMBkGA1UECgwSRXhhbXBsZSBVbml2ZXJzaXR5MRgwFgYDVQQDDA9pZHAuZXhh/'); + } + + public function testWriteMetadataFiles() + { + $this->tmpdir = tempnam(sys_get_temp_dir(), 'SSP:tests:metarefresh:'); + @unlink($this->tmpdir); /* work around post 4.0.3 behaviour */ + $this->metaloader->loadSource($this->source); + $this->metaloader->writeMetadataFiles($this->tmpdir); + $this->assertFileExists($this->tmpdir . '/saml20-idp-remote.php'); + + @include_once($this->tmpdir . '/saml20-idp-remote.php'); + $this->assertArrayHasKey('https://idp.example.com/idp/shibboleth', $metadata); + $this->assertArraySubset( + $this->expected, + $metadata['https://idp.example.com/idp/shibboleth'] + ); + } + + /* + * Test two matching EntityAttributes (R&S + Sirtfi) + */ + public function testAttributewhitelist1() + { + $this->source['attributewhitelist'] = [ + [ + '#EntityAttributes#' => [ + '#urn:oasis:names:tc:SAML:attribute:assurance-certification#' + => ['#https://refeds.org/sirtfi#'], + '#http://macedir.org/entity-category-support#' + => ['#http://refeds.org/category/research-and-scholarship#'], + ], + ], + ]; + $this->metaloader->loadSource($this->source); + $this->metaloader->dumpMetadataStdOut(); + /* match a line from the cert before we attempt to parse */ + $this->expectOutputRegex('/UTEbMBkGA1UECgwSRXhhbXBsZSBVbml2ZXJzaXR5MRgwFgYDVQQDDA9pZHAuZXhh/'); + + $output = $this->getActualOutput(); + try { + eval($output); + } catch (\Exception $e) { + $this->fail('Metarefresh does not produce syntactially valid code'); + } + /* Check we matched the IdP */ + $this->assertArrayHasKey('https://idp.example.com/idp/shibboleth', $metadata); + + $this->assertTrue( + empty(array_diff_key($this->expected, $metadata['https://idp.example.com/idp/shibboleth'])) + ); + } + + /* + * Test non-matching of the whitelist: result should be empty set + */ + public function testAttributewhitelist2() + { + $this->source['attributewhitelist'] = [ + [ + '#EntityAttributes#' => [ + '#urn:oasis:names:tc:SAML:attribute:assurance-certification#' + => ['#https://refeds.org/sirtfi#'], + '#http://macedir.org/entity-category-support#' + => ['#http://clarin.eu/category/clarin-member#'], + ], + ], + ]; + $this->metaloader->loadSource($this->source); + $this->metaloader->dumpMetadataStdOut(); + + /* Expected output is empty */ + $output = $this->getActualOutput(); + $this->assertEmpty($output); + } + + /* + * Test non-matching of first entry, but matching of second, using both + * RegistrationInfo and EntityAttributes + */ + public function testAttributewhitelist3() + { + $this->source['attributewhitelist'] = [ + [ + '#EntityAttributes#' => [ + '#urn:oasis:names:tc:SAML:attribute:assurance-certification#' + => ['#https://refeds.org/sirtfi#'], + '#http://macedir.org/entity-category-support#' + => ['#http://clarin.eu/category/clarin-member#'], + ], + ], + [ + '#RegistrationInfo#' => [ + '#registrationAuthority#' + => '#http://www.surfconext.nl/#', + ], + '#EntityAttributes#' => [ + '#urn:oasis:names:tc:SAML:attribute:assurance-certification#' + => ['#https://refeds.org/sirtfi#'], + ], + ], + ]; + $this->metaloader->loadSource($this->source); + $this->metaloader->dumpMetadataStdOut(); + /* match a line from the cert before we attempt to parse */ + $this->expectOutputRegex('/UTEbMBkGA1UECgwSRXhhbXBsZSBVbml2ZXJzaXR5MRgwFgYDVQQDDA9pZHAuZXhh/'); + + $output = $this->getActualOutput(); + try { + eval($output); + } catch (\Exception $e) { + $this->fail('Metarefresh does not produce syntactially valid code'); + } + /* Check we matched the IdP */ + $this->assertArrayHasKey('https://idp.example.com/idp/shibboleth', $metadata); + + $this->assertTrue( + empty(array_diff_key($this->expected, $metadata['https://idp.example.com/idp/shibboleth'])) + ); + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/tests/mdx.pem b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/tests/mdx.pem new file mode 100644 index 0000000000000000000000000000000000000000..0837fded9194c6f0871b6be3d0c98cf6782df8f9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/tests/mdx.pem @@ -0,0 +1,12 @@ +-----BEGIN CERTIFICATE----- +MIIBrTCCARYCCQC8Ue6scWtEDTANBgkqhkiG9w0BAQsFADAbMQswCQYDVQQGEwJB +UTEMMAoGA1UEAxMDTURYMB4XDTIwMDYxMDEzNTY1NFoXDTM3MDYwNjEzNTY1NFow +GzELMAkGA1UEBhMCQVExDDAKBgNVBAMTA01EWDCBnzANBgkqhkiG9w0BAQEFAAOB +jQAwgYkCgYEAuvq7p0XbdVNDpb4sMhB+rPRDUR/K0htSa3yBrINsdOoBLW67foY0 +rkypFRwmDX/bpe1Ik+hmaJgtdYCnFmlhlAU3mbaByL/q3I9DVVY4OgbC0jjWoy+7 ++wP0/mf7onljzwSQO4jjcUWcx/upDVFYXci3UZjUhCTnu7RO1EAk6isCAwEAATAN +BgkqhkiG9w0BAQsFAAOBgQB3J1oskvJqXoDJzSoGJmahLoDacF01OkXOtxRPtcOc +RvBfakZGC2FtjHLTdyqz+dpcJsfYupBwavFxNunG6K2+d093j387TH7PyA5AckfL +rOTR1iS4akp0yX7wvV2WWYRIXodnVHFGC0f25ZumkbL1vAkUd7q28zNcWIds8O2p ++g== +-----END CERTIFICATE----- diff --git a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/tests/testmetadata.xml b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/tests/testmetadata.xml new file mode 100644 index 0000000000000000000000000000000000000000..d5fa27dea9b25366c2d014f77945d0a0aef3fd65 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/tests/testmetadata.xml @@ -0,0 +1,59 @@ +<?xml version="1.0"?> +<md:EntitiesDescriptor xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:shibmd="urn:mace:shibboleth:metadata:1.0" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:mdrpi="urn:oasis:names:tc:SAML:metadata:rpi" xmlns:mdattr="urn:oasis:names:tc:SAML:metadata:attribute" xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="54a61"><ds:Signature> + <ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/> + <ds:Reference URI=""><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/><ds:DigestValue>AUPsWdEcgoYY+ykZD4Ns7dCtGPIgxH4shMd6CRNQ0r0=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>meQHjxJn2zLgbWCzvvUil6FTwctrr/vEpUUkTFdKspkN8IVmNW1N5WvLZdk7mRrsl161I4BMDc0q+ndlYd+VTjsEf+dVQ4m0+RWRBp/+Q95oGn0ARq/scKH9fZiDNeIZCoRU/Q3mErzGYY0WasM8byZJinJo7WDyMKwhMddX/0k=</ds:SignatureValue> +<ds:KeyInfo><ds:X509Data><ds:X509Certificate>MIIBrTCCARYCCQC8Ue6scWtEDTANBgkqhkiG9w0BAQsFADAbMQswCQYDVQQGEwJBUTEMMAoGA1UEAxMDTURYMB4XDTIwMDYxMDEzNTY1NFoXDTM3MDYwNjEzNTY1NFowGzELMAkGA1UEBhMCQVExDDAKBgNVBAMTA01EWDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuvq7p0XbdVNDpb4sMhB+rPRDUR/K0htSa3yBrINsdOoBLW67foY0rkypFRwmDX/bpe1Ik+hmaJgtdYCnFmlhlAU3mbaByL/q3I9DVVY4OgbC0jjWoy+7+wP0/mf7onljzwSQO4jjcUWcx/upDVFYXci3UZjUhCTnu7RO1EAk6isCAwEAATANBgkqhkiG9w0BAQsFAAOBgQB3J1oskvJqXoDJzSoGJmahLoDacF01OkXOtxRPtcOcRvBfakZGC2FtjHLTdyqz+dpcJsfYupBwavFxNunG6K2+d093j387TH7PyA5AckfLrOTR1iS4akp0yX7wvV2WWYRIXodnVHFGC0f25ZumkbL1vAkUd7q28zNcWIds8O2p+g==</ds:X509Certificate></ds:X509Data></ds:KeyInfo></ds:Signature> + <md:EntityDescriptor entityID="https://idp.example.com/idp/shibboleth"> + <md:Extensions> + <mdrpi:RegistrationInfo registrationAuthority="http://www.surfconext.nl/" registrationInstant="2013-11-18T00:00:00Z"> + <mdrpi:RegistrationPolicy xml:lang="en">https://wiki.surfnet.nl/display/eduGAIN/EduGAIN</mdrpi:RegistrationPolicy> + </mdrpi:RegistrationInfo> + <mdattr:EntityAttributes> + <saml:Attribute Name="urn:oasis:names:tc:SAML:attribute:assurance-certification" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> + <saml:AttributeValue>https://refeds.org/sirtfi</saml:AttributeValue> + </saml:Attribute> + <saml:Attribute Name="http://macedir.org/entity-category-support" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> + <saml:AttributeValue>http://refeds.org/category/research-and-scholarship</saml:AttributeValue> + </saml:Attribute> + </mdattr:EntityAttributes> + </md:Extensions> + <md:IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"> + <md:Extensions> + <shibmd:Scope regexp="false">example.com</shibmd:Scope> + <mdui:UIInfo> + <mdui:DisplayName xml:lang="en">DisplayName</mdui:DisplayName> + <mdui:Description xml:lang="en">Description</mdui:Description> + </mdui:UIInfo> + </md:Extensions> + <md:KeyDescriptor> + <ds:KeyInfo> + <ds:X509Data> + <ds:X509Certificate> + MIIB/zCCAWgCCQCyf41J62ta0jANBgkqhkiG9w0BAQsFADBEMQswCQYDVQQGEwJB + UTEbMBkGA1UECgwSRXhhbXBsZSBVbml2ZXJzaXR5MRgwFgYDVQQDDA9pZHAuZXhh + bXBsZS5jb20wHhcNMTkwMTA3MDYyNDAyWhcNMzcwMzI1MDYyNDAyWjBEMQswCQYD + VQQGEwJBUTEbMBkGA1UECgwSRXhhbXBsZSBVbml2ZXJzaXR5MRgwFgYDVQQDDA9p + ZHAuZXhhbXBsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMBwa9wB + mgxSbFFQzw7T3F84F+EhjQS3d/4KsD3bAgm5WXz8E0H1VV8YcRpAMjRntqaitZ8X + NyjPIq43rUfx9MlYWdjPUthhU5xxBW80Zr9bcmztea6LgelctXnH+OCY4MSOyvji + /0Y4BjBE0N5PZeRiO4snPMz6hneMjtv+Qei9AgMBAAEwDQYJKoZIhvcNAQELBQAD + gYEAipaiTLJwjYpAkaRa8ANXPUgD0hJh6Z/lkX6m+E/mlkVvxN7OfIyDatT2R9B6 + F+Yj7ujHmubkrLmdXvCPMjXNOqSYAtBkf5qcZ5x1d6Xas5Uw8t4uJSk/Nh2nKcom + l+zR8IYmcdFeaTjSMbEhYGDaIou+0T4/+/f8fDwwj8hQLYw= + </ds:X509Certificate> + </ds:X509Data> + </ds:KeyInfo> + </md:KeyDescriptor> + <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://idp.example.com/idp/profile/SAML2/POST/SSO"/> + </md:IDPSSODescriptor> + <md:Organization> + <md:OrganizationName xml:lang="en">OrganizationName</md:OrganizationName> + <md:OrganizationDisplayName xml:lang="en">OrganizationDisplayName</md:OrganizationDisplayName> + <md:OrganizationURL xml:lang="en">https://example.com</md:OrganizationURL> + </md:Organization> + <md:ContactPerson contactType="technical"> + <md:EmailAddress>mailto:technical.contact@example.com</md:EmailAddress> + </md:ContactPerson> + </md:EntityDescriptor> +</md:EntitiesDescriptor> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/www/fetch.php b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/www/fetch.php index a715886fa035cc9d8f4103c141be87d3bb0e90d6..3bca685cc0dea580076988360384aac0efe94b8e 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/www/fetch.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/metarefresh/www/fetch.php @@ -24,6 +24,7 @@ # Get global black/whitelists $blacklist = $mconfig->getArray('blacklist', []); $whitelist = $mconfig->getArray('whitelist', []); + $attributewhitelist = $mconfig->getArray('attributewhitelist', []); // get global type filters $available_types = [ @@ -57,7 +58,16 @@ $source['whitelist'] = $whitelist; } - \SimpleSAML\Logger::debug('[metarefresh]: In set ['.$setkey.'] loading source ['.$source['src'].']'); + # Merge global and src specific attributewhitelists, cannot use array_unique on multi-dim. + if (isset($source['attributewhitelist'])) { + $source['attributewhitelist'] = array_merge($source['attributewhitelist'], $attributewhitelist); + } else { + $source['attributewhitelist'] = $attributewhitelist; + } + + \SimpleSAML\Logger::debug( + '[metarefresh]: In set [' . $setkey . '] loading source [' . $source['src'] . ']' + ); $metaloader->loadSource($source); } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/multiauth/dictionaries/multiauth.translation.json b/vendor/simplesamlphp/simplesamlphp/modules/multiauth/dictionaries/multiauth.translation.json index bd235213fe92d25febc5ea31e83cb372ea6b8a7c..fce7afc0c78fdfcaa1c350ad4a9320778483f0c2 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/multiauth/dictionaries/multiauth.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/modules/multiauth/dictionaries/multiauth.translation.json @@ -32,7 +32,8 @@ "el": "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03c0\u03b7\u03b3\u03ae\u03c2 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2", "pl": "Wybierz \u017aród\u0142o autentykacji", "xh": "Khetha umthombo wongqinisiso", - "zu": "Khetha umthombo wokuqinisekisa" + "zu": "Khetha umthombo wokuqinisekisa", + "ca": "Seleccioneu una font d’autenticació" }, "select_source_text": { "no": "Den valgte autentiseringskilden vil bli brukt til \u00e5 autentisere brukeren og deretter etablere en gyldig sesjon.", @@ -67,6 +68,7 @@ "el": "\u0397 \u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03b7 \u03c0\u03b7\u03b3\u03ae \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2 \u03b8\u03b1 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03b5\u03af \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03c0\u03b9\u03c3\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03c4\u03b7\u03c2 \u03c4\u03b1\u03c5\u03c4\u03cc\u03c4\u03b7\u03c4\u03ac \u03c3\u03b1\u03c2 \u03ba\u03b1\u03b9 \u03c4\u03b7 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b7\u03c2 \u03c3\u03c5\u03bd\u03b5\u03b4\u03c1\u03af\u03b1\u03c2 (session).", "pl": "Wybrane \u017aród\u0142o zostanie u\u017Cyte do autentykacji i stworzenia sesji", "zu": "Umthombo wokuqinisekisa okhethiwe uzosetshenziswa ukuze uqinisekiswe futhi kwakhiwe iseshini esebenzayo.", - "xh": "Umthombo wongqinisiso okhethiweyo uza kusetyenziswa ukukungqinisisa nokuyila iseshoni esebenzayo." + "xh": "Umthombo wongqinisiso okhethiweyo uza kusetyenziswa ukukungqinisisa nokuyila iseshoni esebenzayo.", + "ca": "La font d’autenticació seleccionada s’utilitzarà per autenticar-vos i crear una sessió vàlida." } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/multiauth/lib/Auth/Source/MultiAuth.php b/vendor/simplesamlphp/simplesamlphp/modules/multiauth/lib/Auth/Source/MultiAuth.php index c25f85ba5d224feb17c8751648f80d56f2239588..85d723588a1aa4743c15af3386ff81d7379324f4 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/multiauth/lib/Auth/Source/MultiAuth.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/multiauth/lib/Auth/Source/MultiAuth.php @@ -2,6 +2,13 @@ namespace SimpleSAML\Module\multiauth\Auth\Source; +use SimpleSAML\Auth; +use SimpleSAML\Configuration; +use SimpleSAML\Error; +use SimpleSAML\Module; +use SimpleSAML\Session; +use SimpleSAML\Utils; + /** * Authentication source which let the user chooses among a list of * other authentication sources @@ -9,7 +16,6 @@ * @author Lorenzo Gil, Yaco Sistemas S.L. * @package SimpleSAMLphp */ - class MultiAuth extends \SimpleSAML\Auth\Source { /** @@ -34,6 +40,7 @@ class MultiAuth extends \SimpleSAML\Auth\Source /** * Array of sources we let the user chooses among. + * @var array */ private $sources; @@ -42,6 +49,7 @@ class MultiAuth extends \SimpleSAML\Auth\Source */ private $preselect; + /** * Constructor for this authentication source. * @@ -68,9 +76,9 @@ public function __construct($info, $config) $this->preselect = $config['preselect']; } - $globalConfiguration = \SimpleSAML\Configuration::getInstance(); + $globalConfiguration = Configuration::getInstance(); $defaultLanguage = $globalConfiguration->getString('language.default', 'en'); - $authsources = \SimpleSAML\Configuration::getConfig('authsources.php'); + $authsources = Configuration::getConfig('authsources.php'); $this->sources = []; foreach ($config['sources'] as $source => $info) { if (is_int($source)) { @@ -111,6 +119,7 @@ public function __construct($info, $config) } } + /** * Prompt the user with a list of authentication sources. * @@ -122,6 +131,7 @@ public function __construct($info, $config) * in the delegateAuthentication method. * * @param array &$state Information about the current authentication. + * @return void */ public function authenticate(&$state) { @@ -130,17 +140,17 @@ public function authenticate(&$state) $state[self::AUTHID] = $this->authId; $state[self::SOURCESID] = $this->sources; - if (!\array_key_exists('multiauth:preselect', $state) && is_string($this->preselect)) { + if (!array_key_exists('multiauth:preselect', $state) && is_string($this->preselect)) { $state['multiauth:preselect'] = $this->preselect; } // Save the $state array, so that we can restore if after a redirect - $id = \SimpleSAML\Auth\State::saveState($state, self::STAGEID); + $id = Auth\State::saveState($state, self::STAGEID); /* Redirect to the select source page. We include the identifier of the * saved state array as a parameter to the login form */ - $url = \SimpleSAML\Module::getModuleURL('multiauth/selectsource.php'); + $url = Module::getModuleURL('multiauth/selectsource.php'); $params = ['AuthState' => $id]; // Allows the user to specify the auth source to be used @@ -148,12 +158,13 @@ public function authenticate(&$state) $params['source'] = $_GET['source']; } - \SimpleSAML\Utils\HTTP::redirectTrustedURL($url, $params); + Utils\HTTP::redirectTrustedURL($url, $params); // The previous function never returns, so this code is never executed assert(false); } + /** * Delegate authentication. * @@ -164,43 +175,50 @@ public function authenticate(&$state) * * @param string $authId Selected authentication source * @param array $state Information about the current authentication. + * @return void + * @throws \Exception */ public static function delegateAuthentication($authId, $state) { assert(is_string($authId)); assert(is_array($state)); - $as = \SimpleSAML\Auth\Source::getById($authId); + $as = Auth\Source::getById($authId); $valid_sources = array_map( + /** + * @param array $src + * @return string + */ function ($src) { return $src['source']; }, $state[self::SOURCESID] ); if ($as === null || !in_array($authId, $valid_sources, true)) { - throw new \Exception('Invalid authentication source: '.$authId); + throw new \Exception('Invalid authentication source: ' . $authId); } // Save the selected authentication source for the logout process. - $session = \SimpleSAML\Session::getSessionFromRequest(); + $session = Session::getSessionFromRequest(); $session->setData( self::SESSION_SOURCE, $state[self::AUTHID], $authId, - \SimpleSAML\Session::DATA_TIMEOUT_SESSION_END + Session::DATA_TIMEOUT_SESSION_END ); try { $as->authenticate($state); - } catch (\SimpleSAML\Error\Exception $e) { - \SimpleSAML\Auth\State::throwException($state, $e); + } catch (Error\Exception $e) { + Auth\State::throwException($state, $e); } catch (\Exception $e) { - $e = new \SimpleSAML\Error\UnserializableException($e); - \SimpleSAML\Auth\State::throwException($state, $e); + $e = new Error\UnserializableException($e); + Auth\State::throwException($state, $e); } - \SimpleSAML\Auth\Source::completeAuth($state); + Auth\Source::completeAuth($state); } + /** * Log out from this authentication source. * @@ -208,23 +226,25 @@ function ($src) { * session and then call the logout method on it. * * @param array &$state Information about the current logout operation. + * @return void */ public function logout(&$state) { assert(is_array($state)); // Get the source that was used to authenticate - $session = \SimpleSAML\Session::getSessionFromRequest(); + $session = Session::getSessionFromRequest(); $authId = $session->getData(self::SESSION_SOURCE, $this->authId); - $source = \SimpleSAML\Auth\Source::getById($authId); + $source = Auth\Source::getById($authId); if ($source === null) { - throw new \Exception('Invalid authentication source during logout: '.$source); + throw new \Exception('Invalid authentication source during logout: ' . $authId); } // Then, do the logout on it $source->logout($state); } + /** * Set the previous authentication source. * @@ -232,14 +252,15 @@ public function logout(&$state) * by storing its name in a cookie. * * @param string $source Name of the authentication source the user selected. + * @return void */ public function setPreviousSource($source) { assert(is_string($source)); - $cookieName = 'multiauth_source_'.$this->authId; + $cookieName = 'multiauth_source_' . $this->authId; - $config = \SimpleSAML\Configuration::getInstance(); + $config = Configuration::getInstance(); $params = [ // We save the cookies for 90 days 'lifetime' => 7776000, //60*60*24*90 @@ -248,18 +269,20 @@ public function setPreviousSource($source) 'httponly' => false, ]; - \SimpleSAML\Utils\HTTP::setCookie($cookieName, $source, $params, false); + Utils\HTTP::setCookie($cookieName, $source, $params, false); } + /** * Get the previous authentication source. * * This method retrieves the authentication source that the user selected * last time or NULL if this is the first time or remembering is disabled. + * @return string|null */ public function getPreviousSource() { - $cookieName = 'multiauth_source_'.$this->authId; + $cookieName = 'multiauth_source_' . $this->authId; if (array_key_exists($cookieName, $_COOKIE)) { return $_COOKIE[$cookieName]; } else { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/multiauth/templates/selectsource.php b/vendor/simplesamlphp/simplesamlphp/modules/multiauth/templates/selectsource.tpl.php similarity index 93% rename from vendor/simplesamlphp/simplesamlphp/modules/multiauth/templates/selectsource.php rename to vendor/simplesamlphp/simplesamlphp/modules/multiauth/templates/selectsource.tpl.php index 294fcbc0c53c703862a870624327a82bba812f3d..d40712998d5c636d1a593fda1defc51bb203c6c9 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/multiauth/templates/selectsource.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/multiauth/templates/selectsource.tpl.php @@ -21,7 +21,7 @@ $name = 'src-'.base64_encode($source['source']); echo '<input type="submit" name="'.htmlspecialchars($name).'"'.$autofocus.' '. 'id="button-'.htmlspecialchars($source['source']).'" '. - 'value="'.htmlspecialchars($this->t($source['text'])).'" />'; + 'value="'.htmlspecialchars($source['text']).'" />'; echo '</li>'; } ?> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/multiauth/www/selectsource.php b/vendor/simplesamlphp/simplesamlphp/modules/multiauth/www/selectsource.php index 287f7808eab880abd9749df3e665f90f4b836fac..2038e30874279a5092d08ec918baa8c5102703e5 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/multiauth/www/selectsource.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/multiauth/www/selectsource.php @@ -15,10 +15,13 @@ throw new \SimpleSAML\Error\BadRequest('Missing AuthState parameter.'); } $authStateId = $_REQUEST['AuthState']; + +/** @var array $state */ $state = \SimpleSAML\Auth\State::loadState($authStateId, \SimpleSAML\Module\multiauth\Auth\Source\MultiAuth::STAGEID); if (array_key_exists("\SimpleSAML\Auth\Source.id", $state)) { $authId = $state["\SimpleSAML\Auth\Source.id"]; + /** @var \SimpleSAML\Module\multiauth\Auth\Source\MultiAuth $as */ $as = \SimpleSAML\Auth\Source::getById($authId); } else { $as = null; @@ -48,7 +51,7 @@ } $globalConfig = \SimpleSAML\Configuration::getInstance(); -$t = new \SimpleSAML\XHTML\Template($globalConfig, 'multiauth:selectsource.php'); +$t = new \SimpleSAML\XHTML\Template($globalConfig, 'multiauth:selectsource.tpl.php'); $defaultLanguage = $globalConfig->getString('language.default', 'en'); $language = $t->getTranslator()->getLanguage()->getLanguage(); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..33467ebed8fd85e1f86baae2dc2f5b75cbe7143f --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/.php_cs.dist @@ -0,0 +1,16 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/lib', + __DIR__ . '/tests', + __DIR__ . '/www', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..eeeefcda8e6dbbcd760dc3ee13fac9928dadea44 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/.travis.yml @@ -0,0 +1,36 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +matrix: + allow_failures: + - php: 7.3 + +before_script: + - pecl install krb5 + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then composer require --dev vimeo/psalm:1.1.9; fi + +script: + - bin/check-syntax.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi +# - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/LICENSE b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..0a041280bd00a9d068f503b8ee7ce35214bd24a1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/bin/check-syntax.sh b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/bin/check-syntax.sh new file mode 100755 index 0000000000000000000000000000000000000000..7900912c606f906327df39196d70b5da099377e2 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/bin/check-syntax.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +PHP='/usr/bin/env php' +RETURN=0 + +# check PHP files +for FILE in `find lib www templates tests -name "*.php"`; do + $PHP -l $FILE > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Syntax check failed for ${FILE}" + RETURN=`expr ${RETURN} + 1` + fi +done + +exit $RETURN diff --git a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..a99b1813f01e9ef0a829422dfb372d60bb6ac3e1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/composer.json @@ -0,0 +1,46 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-negotiate", + "description": "The Negotiate module implements Microsofts Kerberos SPNEGO mechanism", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "negotiate"], + "license": "LGPL-3.0-or-later", + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\negotiate\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "simplesamlphp/simplesamlphp-module-ldap": "^0.9", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "phpunit/phpunit": "~5.7" + }, + "suggest": { + "ext-krb5": "Needed in case the SimpleSAMLphp negotiate module is used" + }, + "support": { + "issues": "https://github.com/tvdijen/simplesamlphp-module-negotiate/issues", + "source": "https://github.com/tvdijen/simplesamlphp-module-negotiate" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/default-disable b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/default-disable index fa0bd82e2df7bd79d57593d35bc53c1f9d3ef71f..25615cb47c350d23033eb9801627ed8330bcc3e9 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/default-disable +++ b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/default-disable @@ -1,3 +1,3 @@ This file indicates that the default state of this module -is disabled. To enable, create a file named enable in the +is enabled. To disable, create a file named disable in the same directory as this file. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/docs/negotiate.md b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/docs/negotiate.md index 8563b338d38f1df29c83e7df33cbcf9013f89e2e..5cbe838e2336f95f0fd2c29c24c6847be33c29c9 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/docs/negotiate.md +++ b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/docs/negotiate.md @@ -58,7 +58,9 @@ All configuration is handled in authsources.php: 'hostname' => 'ldap.example.com', 'base' => 'cn=people,dc=example,dc=com', 'adminUser' => 'cn=idp-fallback,cn=services,dc=example,dc=com', - 'adminPassword' => 'VerySecretPassphraseHush' + 'adminPassword' => 'VerySecretPassphraseHush', + 'referrals' => true, + 'spn' => null ], 'ldap' => [ 'ldap:LDAP', @@ -73,13 +75,17 @@ All configuration is handled in authsources.php: ### `php_krb5` The processing involving the actual Kerberos ticket handling is done -by php_krb5. The package is not yet labeled stable but has worked well -during testing. +by php_krb5. + +NOTE! If running using virtual hosts or behind a reverse proxy, you +might need to change the 'spn' variable to '0' (match any entry in the +keytab file) or set it to the specific entry to are trying to match. +This requires php-krb5 >= 1.1.3: + + 'spn' => '0', + + 'spn' => 'HTTP/host', -NOTE! php_krb5 hardcodes the service name in the keytab file to 'HTTP' -as of php_krb5-1.0rc2. To change this you need to edit the module code. -Be wary of how much space is allocated to the string in -`negotiate_auth.c:101`. Depending on you apache config you may need a rewrite rule to allow php_krb5 to read the HTTP_AUTHORIZATION header: @@ -131,11 +137,11 @@ Kerberos. A domain can contain lots of kiosk users, non-personal accounts and the likes. The LDAP lookup will authorize and fetch attributes as defined by SimpleSamlPhp metadata. -'hostname', 'enable_tls', 'debugLDAP', 'timeout' and 'base' are -self-explanatory. Read the documentation of the LDAP auth module for -more information. 'attr' is the attribute that will be used to look up -user objects in the directory after extracting it from the Kerberos -session. Default is 'uid'. +'hostname', 'enable_tls', 'debugLDAP', 'timeout', 'base' and +'referrals' are self-explanatory. Read the documentation of the LDAP +auth module for more information. 'attr' is the attribute that will +be used to look up user objects in the directory after extracting it +from the Kerberos session. Default is 'uid'. For LDAP directories with restricted access to objects or attributes Negotiate implements 'adminUser' and 'adminPassword'. adminUser must diff --git a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/lib/Auth/Source/Negotiate.php b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/lib/Auth/Source/Negotiate.php index bba08d6bbd2aff1b6fee9cbb47dfbd08e29c5b63..04e89094fa3a42604dbdc8e151a8885705c99bc7 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/lib/Auth/Source/Negotiate.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/lib/Auth/Source/Negotiate.php @@ -2,7 +2,7 @@ namespace SimpleSAML\Module\negotiate\Auth\Source; -use \SimpleSAML\Logger; +use SimpleSAML\Logger; /** * The Negotiate module. Allows for password-less, secure login by Kerberos and Negotiate. @@ -10,26 +10,57 @@ * @author Mathias Meisfjordskar, University of Oslo <mathias.meisfjordskar@usit.uio.no> * @package SimpleSAMLphp */ - class Negotiate extends \SimpleSAML\Auth\Source { // Constants used in the module const STAGEID = '\SimpleSAML\Module\negotiate\Auth\Source\Negotiate.StageId'; + /** @var \SimpleSAML\Module\ldap\Auth\Ldap|null */ protected $ldap = null; + + /** @var string */ protected $backend = ''; + + /** @var string*/ protected $hostname = ''; + + /** @var int */ protected $port = 389; + + /** @var bool */ protected $referrals = true; + + /** @var bool */ protected $enableTLS = false; + + /** @var bool */ protected $debugLDAP = false; + + /** @var int */ protected $timeout = 30; + + /** @var string */ protected $keytab = ''; + + /** @var string|null */ + protected $spn = null; + + /** @var array */ protected $base = []; + + /** @var array */ protected $attr = ['uid']; + + /** @var array|null */ protected $subnet = null; + + /** @var string|null */ protected $admin_user = null; + + /** @var string|null */ protected $admin_pw = null; + + /** @var array|null */ protected $attributes = null; @@ -68,6 +99,7 @@ public function __construct($info, $config) $this->admin_user = $config->getString('adminUser', null); $this->admin_pw = $config->getString('adminPassword', null); $this->attributes = $config->getArray('attributes', null); + $this->spn = $config->getString('spn', null); } @@ -81,6 +113,7 @@ public function __construct($info, $config) * LDAP is used as a user metadata source. * * @param array &$state Information about the current authentication. + * @return void */ public function authenticate(&$state) { @@ -93,7 +126,7 @@ public function authenticate(&$state) $state['negotiate:authId'] = $this->authId; - // check for disabled SPs. The disable flag is store in the SP metadata + // check for disabled SPs. The disable flag is stored in the SP metadata if (array_key_exists('SPMetadata', $state) && $this->spDisabledInMetadata($state['SPMetadata'])) { $this->fallBack($state); } @@ -102,9 +135,10 @@ public function authenticate(&$state) $session = \SimpleSAML\Session::getSessionFromRequest(); $disabled = $session->getData('negotiate:disable', 'session'); - if ($disabled || - (!empty($_COOKIE['NEGOTIATE_AUTOLOGIN_DISABLE_PERMANENT']) && - $_COOKIE['NEGOTIATE_AUTOLOGIN_DISABLE_PERMANENT'] == 'True') + if ( + $disabled + || (!empty($_COOKIE['NEGOTIATE_AUTOLOGIN_DISABLE_PERMANENT']) + && $_COOKIE['NEGOTIATE_AUTOLOGIN_DISABLE_PERMANENT'] == 'True') ) { Logger::debug('Negotiate - session disabled. falling back'); $this->fallBack($state); @@ -121,7 +155,7 @@ public function authenticate(&$state) Logger::debug('Negotiate - authenticate(): looking for Negotiate'); if (!empty($_SERVER['HTTP_AUTHORIZATION'])) { Logger::debug('Negotiate - authenticate(): Negotiate found'); - $this->ldap = new \SimpleSAML\Auth\LDAP( + $this->ldap = new \SimpleSAML\Module\ldap\Auth\Ldap( $this->hostname, $this->enableTLS, $this->debugLDAP, @@ -139,19 +173,29 @@ public function authenticate(&$state) } } - $auth = new \KRB5NegotiateAuth($this->keytab); + if ($this->spn === null) { + // old FQDN behavior + $auth = new \KRB5NegotiateAuth($this->keytab); + } elseif ($this->spn === '0') { + // \KRB5NegotiateAuth constructor expects (long)0 value as second + // parameter if you need GSS_C_NO_NAME (match any entry) behavior + $auth = new \KRB5NegotiateAuth($this->keytab, 0); + } else { + $auth = new \KRB5NegotiateAuth($this->keytab, $this->spn); + } + // attempt Kerberos authentication try { $reply = $auth->doAuthentication(); } catch (\Exception $e) { - Logger::error('Negotiate - authenticate(): doAuthentication() exception: '.$e->getMessage()); + Logger::error('Negotiate - authenticate(): doAuthentication() exception: ' . $e->getMessage()); $reply = null; } if ($reply) { // success! krb TGS received $user = $auth->getAuthenticatedUser(); - Logger::info('Negotiate - authenticate(): '.$user.' authenticated.'); + Logger::info('Negotiate - authenticate(): ' . $user . ' authenticated.'); $lookup = $this->lookupUserData($user); if ($lookup !== null) { $state['Attributes'] = $lookup; @@ -159,7 +203,7 @@ public function authenticate(&$state) $state['LogoutState'] = [ 'negotiate:backend' => null, ]; - Logger::info('Negotiate - authenticate(): '.$user.' authorized.'); + Logger::info('Negotiate - authenticate(): ' . $user . ' authorized.'); \SimpleSAML\Auth\Source::completeAuth($state); // Never reached. assert(false); @@ -172,7 +216,7 @@ public function authenticate(&$state) // No auth token. Send it. Logger::debug('Negotiate - authenticate(): Sending Negotiate.'); // Save the $state array, so that we can restore if after a redirect - Logger::debug('Negotiate - fallback: '.$state['LogoutState']['negotiate:backend']); + Logger::debug('Negotiate - fallback: ' . $state['LogoutState']['negotiate:backend']); $id = \SimpleSAML\Auth\State::saveState($state, self::STAGEID); $params = ['AuthState' => $id]; @@ -187,6 +231,10 @@ public function authenticate(&$state) } + /** + * @param array $spMetadata + * @return bool + */ public function spDisabledInMetadata($spMetadata) { if (array_key_exists('negotiate:disable', $spMetadata)) { @@ -209,7 +257,7 @@ public function spDisabledInMetadata($spMetadata) * * Will return TRUE if no subnet option is configured. * - * @return boolean + * @return bool */ public function checkMask() { @@ -221,11 +269,11 @@ public function checkMask() foreach ($this->subnet as $cidr) { $ret = \SimpleSAML\Utils\Net::ipCIDRcheck($cidr); if ($ret) { - Logger::debug('Negotiate: Client "'.$ip.'" matched subnet.'); + Logger::debug('Negotiate: Client "' . $ip . '" matched subnet.'); return true; } } - Logger::debug('Negotiate: Client "'.$ip.'" did not match subnet.'); + Logger::debug('Negotiate: Client "' . $ip . '" did not match subnet.'); return false; } @@ -235,6 +283,7 @@ public function checkMask() * wants to show the 401 message. * * @param array $params additional parameters to the URL in the URL in the body. + * @return void */ protected function sendNegotiate($params) { @@ -256,6 +305,7 @@ protected function sendNegotiate($params) * Passes control of the login process to a different module. * * @param array $state Information about the current authentication. + * @return void * * @throws \SimpleSAML\Error\Error If couldn't determine the auth source. * @throws \SimpleSAML\Error\Exception @@ -290,7 +340,7 @@ public static function fallBack(&$state) * * @param string $user The Kerberos user identifier. * - * @return string The DN to the user or NULL if not found. + * @return array|null The attributes for the user or NULL if not found. */ protected function lookupUserData($user) { @@ -306,7 +356,7 @@ protected function lookupUserData($user) $dn = $this->ldap->searchfordn($this->base, $this->attr, $uid); return $this->ldap->getAttributes($dn, $this->attributes); } catch (\SimpleSAML\Error\Exception $e) { - Logger::debug('Negotiate - ldap lookup failed: '.$e); + Logger::debug('Negotiate - ldap lookup failed: ' . $e); return null; } } @@ -315,6 +365,9 @@ protected function lookupUserData($user) /** * Elevates the LDAP connection to allow restricted lookups if * so configured. Does nothing if not. + * + * @return void + * @throws \SimpleSAML\Error\AuthSource */ protected function adminBind() { @@ -322,11 +375,12 @@ protected function adminBind() // no admin user return; } - Logger::debug('Negotiate - authenticate(): Binding as system user '.var_export($this->admin_user, true)); + Logger::debug('Negotiate - authenticate(): Binding as system user ' . var_export($this->admin_user, true)); if (!$this->ldap->bind($this->admin_user, $this->admin_pw)) { - $msg = 'Unable to authenticate system user (LDAP_INVALID_CREDENTIALS) '.var_export($this->admin_user, true); - Logger::error('Negotiate - authenticate(): '.$msg); + $msg = 'Unable to authenticate system user (LDAP_INVALID_CREDENTIALS) ' + . var_export($this->admin_user, true); + Logger::error('Negotiate - authenticate(): ' . $msg); throw new \SimpleSAML\Error\AuthSource('negotiate', $msg); } } @@ -339,13 +393,14 @@ protected function adminBind() * logout call to the fallback module. * * @param array &$state Information about the current logout operation. + * @return void */ public function logout(&$state) { assert(is_array($state)); // get the source that was used to authenticate $authId = $state['negotiate:backend']; - Logger::debug('Negotiate - logout has the following authId: "'.$authId.'"'); + Logger::debug('Negotiate - logout has the following authId: "' . $authId . '"'); if ($authId === null) { $session = \SimpleSAML\Session::getSessionFromRequest(); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0985fdd804b18d8d9179ecd956d63582c189e95 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/phpunit.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..ac063c055e7caac7a3afd1ca5715026a2631e8d5 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/psalm.xml @@ -0,0 +1,31 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp negotiate module" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="lib" /> + <directory name="www" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/templates/disable.php b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/templates/disable.php index fd8338e9f49265f8a80830aeb5d033bf69c4a6f4..af5fd84ea482395a47bb2c482b922f0ea7c36dcb 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/templates/disable.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/templates/disable.php @@ -7,6 +7,7 @@ * <mathias.meisfjordskar@usit.uio.no> * @package SimpleSAMLphp */ + $this->includeAtTemplateBase('includes/header.php'); ?> <h1><?php echo $this->t('{negotiate:negotiate:disable_title}'); ?></h1> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/templates/enable.php b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/templates/enable.php index a25b6a213b414cfe8c7348d41c13d168fffa412f..93f329dec1a3be8b5edcb2dce7133ecba2ace758 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/templates/enable.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/templates/enable.php @@ -7,6 +7,7 @@ * <mathias.meisfjordskar@usit.uio.no> * @package SimpleSAMLphp */ + $this->includeAtTemplateBase('includes/header.php'); ?> <h1><?php echo $this->t('{negotiate:negotiate:enable_title}'); ?></h1> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..7a5b54ed8d82bd14fe0a3f9c3a3112081fc9bba5 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot . '/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot . '/vendor/simplesamlphp/simplesamlphp/modules/negotiate'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/www/backend.php b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/www/backend.php index 8a5222f26dd378995e108b38105ce3fb445615c8..0ac5e0a3f7c801cfc59fe1309d9f6c141729f7e2 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/www/backend.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/www/backend.php @@ -12,7 +12,7 @@ $_REQUEST['AuthState'], \SimpleSAML\Module\negotiate\Auth\Source\Negotiate::STAGEID ); -\SimpleSAML\Logger::debug('backend - fallback: '.$state['LogoutState']['negotiate:backend']); +\SimpleSAML\Logger::debug('backend - fallback: ' . $state['LogoutState']['negotiate:backend']); \SimpleSAML\Module\negotiate\Auth\Source\Negotiate::fallBack($state); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/www/disable.php b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/www/disable.php index 2734f05c31a7bbb9214a3ecf0965a3f74128aac4..0055746163e06737e188c42131cf8a789c40b9d2 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/www/disable.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/www/disable.php @@ -1,4 +1,5 @@ <?php + /** * @author Mathias Meisfjordskar, University of Oslo. * <mathias.meisfjordskar@usit.uio.no> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/www/enable.php b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/www/enable.php index be52928db4be463d68b030e0cf07d0fbb8a8a26c..9fb3938ce2517bca25c3f15cd3b6780ac3f28aff 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/www/enable.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/www/enable.php @@ -1,4 +1,5 @@ <?php + /** * @author Mathias Meisfjordskar, University of Oslo. * <mathias.meisfjordskar@usit.uio.no> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/www/retry.php b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/www/retry.php index c4ffd87a52ee21a5553fcb6d5277f5a2066c1bbf..2d68caca44b22d6032cfaae235563cd50783f86f 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/negotiate/www/retry.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/negotiate/www/retry.php @@ -20,7 +20,7 @@ if (isset($idpmeta['auth'])) { $source = \SimpleSAML\Auth\Source::getById($idpmeta['auth']); if ($source === null) { - throw new \SimpleSAML\Error\BadRequest('Invalid AuthId "'.$idpmeta['auth'].'" - not found.'); + throw new \SimpleSAML\Error\BadRequest('Invalid AuthId "' . $idpmeta['auth'] . '" - not found.'); } $session = \SimpleSAML\Session::getSessionFromRequest(); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/oauth/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..3c250287a743959883e40e541e22f26fb1dd8635 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/.travis.yml @@ -0,0 +1,35 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +matrix: + allow_failures: + - php: 7.3 + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then composer require --dev vimeo/psalm:1.1.9; fi + +script: + - bin/check-syntax.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi +# - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/LICENSE b/vendor/simplesamlphp/simplesamlphp/modules/oauth/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..a345e48d049f9c6756e9364e908b3f26e36c9df1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/LICENSE @@ -0,0 +1,459 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/README.md b/vendor/simplesamlphp/simplesamlphp/modules/oauth/README.md new file mode 100644 index 0000000000000000000000000000000000000000..ce5a8383b66f786f1b5707f45aba70dfa68decb2 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/README.md @@ -0,0 +1,9 @@ +# simplesamlphp-module-oauth +Ancient Oauth1 module for SimpleSAMLphp + +This module was extracted from SimpleSAMLphp 1.17. +It will not be included in 2.0 anymore, but can be installed separately. + +To install this legacy module, use the following command from the SimpleSAMLphp installation directory: + +`composer.phar require simplesamlphp/simplesamlphp-module-oauth` diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/bin/check-syntax.sh b/vendor/simplesamlphp/simplesamlphp/modules/oauth/bin/check-syntax.sh new file mode 100755 index 0000000000000000000000000000000000000000..4bcb9cc6fb320d010e5fab15ae4719fe9648e6dc --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/bin/check-syntax.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +PHP='/usr/bin/env php' +RETURN=0 + +# check PHP files +for FILE in `find config-templates hooks lib libextinc templates www -name "*.php"`; do + $PHP -l $FILE > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Syntax check failed for ${FILE}" + RETURN=`expr ${RETURN} + 1` + fi +done + +exit $RETURN diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/oauth/codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..2d76b2030a4da304bc0c686f62300be6b2a6a587 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/codecov.yml @@ -0,0 +1,12 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/oauth/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..11238008a11b03cae7458331af1f5390d3e8879f --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/composer.json @@ -0,0 +1,29 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-oauth", + "description": "A SimpleSAMLphp module that allows integration with OAuth1,", + "type": "simplesamlphp-module", + "keywords": [ "SimpleSAMLphp", "OAuth1"], + "homepage": "https://simplesamlphp.org/", + "license": "LGPL-2.1-or-later", + "authors": [ + { + "name": "Olav Morken", + "email": "olav.morken@uninett.no" + }, + { + "name": "Jaime Perez Crespo", + "email": "jaime.perez@uninett.no" + } + ], + "require": { + "simplesamlphp/composer-module-installer": ">=1.1.6" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "phpunit/phpunit": "~4.8.36" + }, + "support": { + "issues": "https://github.com/simplesamlphp/simplesamlphp-module-oauth/issues", + "source": "https://github.com/simplesamlphp/simplesamlphp-module-oauth/" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/hooks/hook_cron.php b/vendor/simplesamlphp/simplesamlphp/modules/oauth/hooks/hook_cron.php index 1a37cb41d6e4777583b75d23cad64f509ed2fc87..5df267877bf4141ee3df31661b36562c602885e9 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/oauth/hooks/hook_cron.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/hooks/hook_cron.php @@ -4,8 +4,8 @@ * Hook to run a cron job. * * @param array &$croninfo Output + * @return void */ - function oauth_hook_cron(&$croninfo) { assert(is_array($croninfo)); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/hooks/hook_frontpage.php b/vendor/simplesamlphp/simplesamlphp/modules/oauth/hooks/hook_frontpage.php index 028e11c85d0750157741bb07f5b5cffe20ca6cbf..188b4b2649ca5fdaa5fcecfe60965fbaf6b9d058 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/oauth/hooks/hook_frontpage.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/hooks/hook_frontpage.php @@ -1,8 +1,10 @@ <?php + /** * Hook to add link to the frontpage. * * @param array &$links The links on the frontpage, split into sections. + * @return void */ function oauth_hook_frontpage(&$links) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/lib/Consumer.php b/vendor/simplesamlphp/simplesamlphp/modules/oauth/lib/Consumer.php index b3a4080ae6c384a48b3971fcc51c9354d1ac5f4d..7b61528b9facb4148624eec13de93029ec073730 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/oauth/lib/Consumer.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/lib/Consumer.php @@ -10,23 +10,39 @@ * @author Andreas Åkre Solberg, <andreas.solberg@uninett.no>, UNINETT AS. * @package SimpleSAMLphp */ - class Consumer { + /** @var \OAuthConsumer */ private $consumer; + + /** @var \OAuthSignatureMethod */ private $signer; + + /** + * @param string $key + * @param string $secret + */ public function __construct($key, $secret) { $this->consumer = new \OAuthConsumer($key, $secret, null); $this->signer = new \OAuthSignatureMethod_HMAC_SHA1(); } - // Used only to load the libextinc library early + + /** + * Used only to load the libextinc library early + * @return void + */ public static function dummy() { } + + /** + * @param array $hrh + * @return string|null + */ public static function getOAuthError($hrh) { foreach ($hrh as $h) { @@ -37,6 +53,11 @@ public static function getOAuthError($hrh) return null; } + + /** + * @param array $hrh + * @return string|null + */ public static function getContentType($hrh) { foreach ($hrh as $h) { @@ -47,7 +68,8 @@ public static function getContentType($hrh) return null; } - /* + + /** * This static helper function wraps \SimpleSAML\Utils\HTTP::fetch * and throws an exception with diagnostics messages if it appear * to be failing on an OAuth endpoint. @@ -55,18 +77,26 @@ public static function getContentType($hrh) * If the status code is not 200, an exception is thrown. If the content-type * of the response if text/plain, the content of the response is included in * the text of the Exception thrown. + * + * @param string $url + * @param string $context + * @return string + * @throws \Exception */ public static function getHTTP($url, $context = '') { try { - $response = \SimpleSAML\Utils\HTTP::fetch($url); + $response = \SimpleSAML\Utils\HTTP::fetch($url, [], false); } catch (\SimpleSAML\Error\Exception $e) { $statuscode = 'unknown'; + + /** @psalm-suppress UndefinedVariable */ if (preg_match('/^HTTP.*\s([0-9]{3})/', $http_response_header[0], $matches)) { $statuscode = $matches[1]; } $error = $context.' [statuscode: '.$statuscode.']: '; + /** @psalm-suppress UndefinedVariable */ $oautherror = self::getOAuthError($http_response_header); if (!empty($oautherror)) { @@ -76,9 +106,17 @@ public static function getHTTP($url, $context = '') throw new \Exception($error.':'.$url); } // Fall back to return response, if could not reckognize HTTP header. Should not happen. + /** @var string $response */ return $response; } + + /** + * @param string $url + * @param array|null $parameters + * @return \OAuthToken + * @throws \Exception + */ public function getRequestToken($url, $parameters = null) { $req_req = \OAuthRequest::from_consumer_and_token($this->consumer, null, "GET", $url, $parameters); @@ -101,6 +139,14 @@ public function getRequestToken($url, $parameters = null) return new \OAuthToken($requestToken, $requestTokenSecret); } + + /** + * @param string $url + * @param \OAuthToken $requestToken + * @param bool $redirect + * @param callable|null $callback + * @return string + */ public function getAuthorizeRequest($url, $requestToken, $redirect = true, $callback = null) { $params = ['oauth_token' => $requestToken->key]; @@ -115,19 +161,29 @@ public function getAuthorizeRequest($url, $requestToken, $redirect = true, $call return $authorizeURL; } + + /** + * @param string $url + * @param \OAuthToken $requestToken + * @param array|null $parameters + * @return \OAuthToken + * @throws \Exception + */ public function getAccessToken($url, $requestToken, $parameters = null) { $acc_req = \OAuthRequest::from_consumer_and_token($this->consumer, $requestToken, "GET", $url, $parameters); $acc_req->sign_request($this->signer, $this->consumer, $requestToken); try { - $response_acc = \SimpleSAML\Utils\HTTP::fetch($acc_req->to_url()); + /** @var string $response_acc */ + $response_acc = \SimpleSAML\Utils\HTTP::fetch($acc_req->to_url(), [], false); } catch (\SimpleSAML\Error\Exception $e) { throw new \Exception('Error contacting request_token endpoint on the OAuth Provider'); } \SimpleSAML\Logger::debug('oauth: Reponse to get access token: '.$response_acc); + $accessResponseParsed = []; parse_str($response_acc, $accessResponseParsed); if (array_key_exists('error', $accessResponseParsed)) { @@ -140,6 +196,14 @@ public function getAccessToken($url, $requestToken, $parameters = null) return new \OAuthToken($accessToken, $accessTokenSecret); } + + /** + * @param string $url + * @param \OAuthToken $accessToken + * @param array $parameters + * @return array|string + * @throws \SimpleSAML\Error\Exception + */ public function postRequest($url, $accessToken, $parameters) { $data_req = \OAuthRequest::from_consumer_and_token($this->consumer, $accessToken, "POST", $url, $parameters); @@ -167,13 +231,21 @@ public function postRequest($url, $accessToken, $parameters) return $response; } - public function getUserInfo($url, $accessToken, $opts = null) + + /** + * @param string $url + * @param \OAuthToken $accessToken + * @param array $opts + * @return array|null + */ + public function getUserInfo($url, $accessToken, $opts = []) { $data_req = \OAuthRequest::from_consumer_and_token($this->consumer, $accessToken, "GET", $url, null); $data_req->sign_request($this->signer, $this->consumer, $accessToken); + /** @var string $data */ $data = \SimpleSAML\Utils\HTTP::fetch($data_req->to_url(), $opts); - return json_decode($data, true); + return json_decode($data, true); } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/lib/OAuthServer.php b/vendor/simplesamlphp/simplesamlphp/modules/oauth/lib/OAuthServer.php index 41e60383ad92a01ebecc95fb7695f5d6c14c59eb..f4cda9b5d754d1774636dc3cf1a789fdccf93e0b 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/oauth/lib/OAuthServer.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/lib/OAuthServer.php @@ -10,14 +10,20 @@ * @author Andreas Åkre Solberg, <andreas.solberg@uninett.no>, UNINETT AS. * @package SimpleSAMLphp */ - class OAuthServer extends \OAuthServer { + /** + * @param \OAuthDataStore $store + */ public function __construct($store) { parent::__construct($store); } + + /** + * @return array + */ public function get_signature_methods() { return $this->signature_methods; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/lib/OAuthStore.php b/vendor/simplesamlphp/simplesamlphp/modules/oauth/lib/OAuthStore.php index b0c9d222dd5176dd343878a774309676bf03eb2c..694e3240f20e776fe10d9e56763f9ae51a1a1557 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/oauth/lib/OAuthStore.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/lib/OAuthStore.php @@ -14,13 +14,18 @@ * @author Mark Dobrinic, <mdobrinic@cozmanova.com>, Cozmanova bv * @package SimpleSAMLphp */ - class OAuthStore extends \OAuthDataStore { + /** @var \SimpleSAML\Module\core\Storage\SQLPermanentStorage */ private $store; + + /** @var \SimpleSAML\Configuration */ private $config; + + /** @var string */ private $defaultversion = '1.0'; + /** @var array */ protected $_store_tables = [ 'consumers' => 'consumer = array with consumer attributes', 'nonce' => 'nonce+consumer_key = -boolean-', @@ -42,7 +47,7 @@ public function __construct() * Attach the data to the token, and establish the Callback URL and verifier * @param string $requestTokenKey RequestToken that was authorized * @param string $data Data that is authorized and to be attached to the requestToken - * @return array(string:url, string:verifier) ; empty verifier for 1.0-response + * @return string[] empty verifier for 1.0-response */ public function authorize($requestTokenKey, $data) { @@ -73,6 +78,7 @@ public function authorize($requestTokenKey, $data) return [$url, $verifier]; } + /** * Perform lookup whether a given token exists in the list of authorized tokens; if a verifier is * passed as well, the verifier *must* match the verifier that was registered with the token<br/> @@ -87,6 +93,12 @@ public function isAuthorized($requestToken, $verifier = '') return $this->store->exists('authorized', $requestToken, $verifier); } + + /** + * @param string $token + * @param string $verifier + * @return mixed + */ public function getAuthorizedData($token, $verifier = '') { \SimpleSAML\Logger::info('OAuth getAuthorizedData('.$token.')'); @@ -94,6 +106,13 @@ public function getAuthorizedData($token, $verifier = '') return $data['value']; } + + /** + * @param string $requestToken + * @param string $verifier + * @param string $accessTokenKey + * @return void + */ public function moveAuthorizedData($requestToken, $verifier, $accessTokenKey) { \SimpleSAML\Logger::info('OAuth moveAuthorizedData('.$requestToken.', '.$accessTokenKey.')'); @@ -109,6 +128,10 @@ public function moveAuthorizedData($requestToken, $verifier, $accessTokenKey) $this->store->set('authorized', $accessTokenKey, '', $authorizedData, $this->config->getValue('accessTokenDuration', 86400)); //60*60*24=86400 } + /** + * @param string $consumer_key + * @return \OAuthConsumer|null + */ public function lookup_consumer($consumer_key) { \SimpleSAML\Logger::info('OAuth lookup_consumer('.$consumer_key.')'); @@ -129,6 +152,14 @@ public function lookup_consumer($consumer_key) } } + + /** + * @param \OAuthConsumer $consumer + * @param string $tokenType + * @param string $token + * @return string + * @throws \Exception + */ public function lookup_token($consumer, $tokenType = 'default', $token) { \SimpleSAML\Logger::info('OAuth lookup_token('.$consumer->key.', '.$tokenType.','.$token.')'); @@ -139,9 +170,17 @@ public function lookup_token($consumer, $tokenType = 'default', $token) return $data['value']; } + + /** + * @param \OAuthConsumer $consumer + * @param string|null $token + * @param string $nonce + * @param int $timestamp + * @return bool + */ public function lookup_nonce($consumer, $token, $nonce, $timestamp) { - \SimpleSAML\Logger::info('OAuth lookup_nonce('.$consumer.', '.$token.','.$nonce.')'); + \SimpleSAML\Logger::info('OAuth lookup_nonce('.$consumer.', '.strval($token).','.$nonce.')'); if ($this->store->exists('nonce', $nonce, $consumer->key)) { return true; } @@ -149,6 +188,13 @@ public function lookup_nonce($consumer, $token, $nonce, $timestamp) return false; } + + /** + * @param \OAuthConsumer $consumer + * @param callable|null $callback + * @param string|null $version + * @return \OAuthToken + */ public function new_request_token($consumer, $callback = null, $version = null) { \SimpleSAML\Logger::info('OAuth new_request_token('.$consumer.')'); @@ -175,6 +221,13 @@ public function new_request_token($consumer, $callback = null, $version = null) return $token; } + + /** + * @param string $requestToken + * @param \OAuthConsumer $consumer + * @param string|null $verifier + * @return \OAuthToken + */ public function new_access_token($requestToken, $consumer, $verifier = null) { \SimpleSAML\Logger::info('OAuth new_access_token('.$requestToken.','.$consumer.')'); @@ -189,6 +242,7 @@ public function new_access_token($requestToken, $consumer, $verifier = null) return $accesstoken; } + /** * Return OAuthConsumer-instance that a given requestToken was issued to * @param string $requestTokenKey diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/lib/Registry.php b/vendor/simplesamlphp/simplesamlphp/modules/oauth/lib/Registry.php index 0939be6f410ce90c587c388c7ffa15e7cbc89c12..73e83c70e6ea1ab371adf3a0434754918047a768 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/oauth/lib/Registry.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/lib/Registry.php @@ -8,9 +8,14 @@ * @author Andreas Åkre Solberg <andreas@uninett.no>, UNINETT AS. * @package SimpleSAMLphp */ - class Registry { + /** + * @param array $entry + * @param string $userid + * @return void + * @throws \Exception + */ public static function requireOwnership($entry, $userid) { if (!isset($entry['owner'])) { @@ -22,6 +27,13 @@ public static function requireOwnership($entry, $userid) } } + + /** + * @param array $request + * @param array &$entry + * @param string $key + * @return void + */ protected function getStandardField($request, &$entry, $key) { if (array_key_exists('field_'.$key, $request)) { @@ -31,6 +43,13 @@ protected function getStandardField($request, &$entry, $key) } } + + /** + * @param array $request + * @param array $entry + * @param array|null $override + * @return array + */ public function formToMeta($request, $entry = [], $override = null) { $this->getStandardField($request, $entry, 'name'); @@ -48,6 +67,13 @@ public function formToMeta($request, $entry = [], $override = null) return $entry; } + + /** + * @param array $request + * @param string $key + * @return void + * @throws \Exception + */ protected function requireStandardField($request, $key) { if (!array_key_exists('field_'.$key, $request)) { @@ -58,6 +84,11 @@ protected function requireStandardField($request, $key) } } + + /** + * @param array $request + * @return void + */ public function checkForm($request) { $this->requireStandardField($request, 'name'); @@ -65,11 +96,23 @@ public function checkForm($request) $this->requireStandardField($request, 'key'); } + + /** + * @param string $name + * @return string + */ protected function header($name) { return '<tr><td> </td><td class="header">'.$name.'</td></tr>'; } + + /** + * @param array $metadata + * @param string $key + * @param string $name + * @return string + */ protected function readonlyDateField($metadata, $key, $name) { $value = '<span style="color: #aaa">Not set</a>'; @@ -79,6 +122,13 @@ protected function readonlyDateField($metadata, $key, $name) return '<tr><td class="name">'.$name.'</td><td class="data">'.$value.'</td></tr>'; } + + /** + * @param array $metadata + * @param string $key + * @param string $name + * @return string + */ protected function readonlyField($metadata, $key, $name) { $value = ''; @@ -88,11 +138,23 @@ protected function readonlyField($metadata, $key, $name) return '<tr><td class="name">'.$name.'</td><td class="data">'.htmlspecialchars($value).'</td></tr>'; } + + /** + * @param string $key + * @param string $value + * @return string + */ protected function hiddenField($key, $value) { return '<input type="hidden" name="'.$key.'" value="'.htmlspecialchars($value).'" />'; } + + /** + * @param array &$metadata + * @param string $key + * @return void + */ protected function flattenLanguageField(&$metadata, $key) { if (array_key_exists($key, $metadata)) { @@ -106,6 +168,14 @@ protected function flattenLanguageField(&$metadata, $key) } } + + /** + * @param array $metadata + * @param string $key + * @param string $name + * @param bool $textarea + * @return string + */ protected function standardField($metadata, $key, $name, $textarea = false) { $value = ''; @@ -122,6 +192,11 @@ protected function standardField($metadata, $key, $name, $textarea = false) } } + + /** + * @param array $metadata + * @return string + */ public function metaToForm($metadata) { return '<form action="registry.edit.php" method="post">'. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/libextinc/OAuth.php b/vendor/simplesamlphp/simplesamlphp/modules/oauth/libextinc/OAuth.php index c8811d6ce1263032e6fe32c9227546a5014ad945..f9f1a015b70daa0372ae3d361a34dd8f8bc7190c 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/oauth/libextinc/OAuth.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/libextinc/OAuth.php @@ -21,10 +21,21 @@ class OAuthException extends Exception if (!class_exists('OAuthConsumer')) { class OAuthConsumer { + /** @var string */ public $key; + + /** @var string */ public $secret; + + /** @var string|null */ public $callback_url; + + /** + * @param string $key + * @param string $secret + * @param string|null $callback_url + */ public function __construct($key, $secret, $callback_url = null) { $this->key = $key; @@ -32,6 +43,10 @@ public function __construct($key, $secret, $callback_url = null) $this->callback_url = $callback_url; } + + /** + * @return string + */ public function __toString() { return "OAuthConsumer[key=$this->key,secret=$this->secret]"; @@ -42,12 +57,19 @@ public function __toString() class OAuthToken { // access tokens and request tokens + /** @var string */ public $key; + + /** @var string */ public $secret; + /** @var callable|null */ + public $callback = null; + + /** - * key = the token - * secret = the token secret + * @param string $key = the token + * @param string $secret = the token secret */ public function __construct($key, $secret) { @@ -55,19 +77,27 @@ public function __construct($key, $secret) $this->secret = $secret; } + /** * generates the basic string serialization of a token that a server * would respond to request_token and access_token calls with + * @return string */ public function to_string() { - return "oauth_token=". - OAuthUtil::urlencode_rfc3986($this->key). - "&oauth_token_secret=". - OAuthUtil::urlencode_rfc3986($this->secret). + /** @var string $key */ + $key = OAuthUtil::urlencode_rfc3986($this->key); + /** @var string $secret */ + $secret = OAuthUtil::urlencode_rfc3986($this->secret); + return "oauth_token=".$key. + "&oauth_token_secret=".$secret. "&oauth_callback_confirmed=true"; } + + /** + * @return string + */ public function __toString() { return $this->to_string(); @@ -93,7 +123,7 @@ abstract public function get_name(); * request is serialized * @param OAuthRequest $request * @param OAuthConsumer $consumer - * @param OAuthToken $token + * @param OAuthToken $token|null * @return string */ abstract public function build_signature($request, $consumer, $token); @@ -122,7 +152,7 @@ public function check_signature($request, $consumer, $token, $signature) // Avoid a timing leak with a (hopefully) time insensitive compare $result = 0; for ($i = 0; $i < strlen($signature); $i++) { - $result |= ord($built{$i}) ^ ord($signature{$i}); + $result |= ord($built[$i]) ^ ord($signature[$i]); } return $result == 0; @@ -138,11 +168,21 @@ public function check_signature($request, $consumer, $token, $signature) */ class OAuthSignatureMethod_HMAC_SHA1 extends OAuthSignatureMethod { + /** + * @return string + */ public function get_name() { return "HMAC-SHA1"; } + + /** + * @param OAuthRequest $request + * @param OAuthConsumer $consumer + * @param OAuthToken $token|null + * @return string + */ public function build_signature($request, $consumer, $token) { $base_string = $request->get_signature_base_string(); @@ -153,6 +193,7 @@ public function build_signature($request, $consumer, $token) ($token) ? $token->secret : "" ]; + /** @var array $key_parts */ $key_parts = OAuthUtil::urlencode_rfc3986($key_parts); $key = implode('&', $key_parts); @@ -167,6 +208,9 @@ public function build_signature($request, $consumer, $token) */ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod { + /** + * @return string + */ public function get_name() { return "PLAINTEXT"; @@ -180,6 +224,11 @@ public function get_name() * * Please note that the second encoding MUST NOT happen in the SignatureMethod, as * OAuthRequest handles this! + * + * @param OAuthRequest $request + * @param OAuthConsumer $consumer + * @param OAuthToken|null $token + * @return string */ public function build_signature($request, $consumer, $token) { @@ -188,6 +237,7 @@ public function build_signature($request, $consumer, $token) ($token) ? $token->secret : "" ]; + /** @var array $key_parts */ $key_parts = OAuthUtil::urlencode_rfc3986($key_parts); $key = implode('&', $key_parts); $request->base_string = $key; @@ -206,25 +256,45 @@ public function build_signature($request, $consumer, $token) */ abstract class OAuthSignatureMethod_RSA_SHA1 extends OAuthSignatureMethod { + /** + * @return string + */ public function get_name() { return "RSA-SHA1"; } - // Up to the SP to implement this lookup of keys. Possible ideas are: - // (1) do a lookup in a table of trusted certs keyed off of consumer - // (2) fetch via http using a url provided by the requester - // (3) some sort of specific discovery code based on request - // - // Either way should return a string representation of the certificate + + /** + * Up to the SP to implement this lookup of keys. Possible ideas are: + * (1) do a lookup in a table of trusted certs keyed off of consumer + * (2) fetch via http using a url provided by the requester + * (3) some sort of specific discovery code based on request + * + * Either way should return a string representation of the certificate + * + * @param OAuthRequest &$request + */ abstract protected function fetch_public_cert(&$request); - // Up to the SP to implement this lookup of keys. Possible ideas are: - // (1) do a lookup in a table of trusted certs keyed off of consumer - // - // Either way should return a string representation of the certificate + + /** + * Up to the SP to implement this lookup of keys. Possible ideas are: + * (1) do a lookup in a table of trusted certs keyed off of consumer + * + * Either way should return a string representation of the certificate + * + * @param OAuthRequest &$request + */ abstract protected function fetch_private_cert(&$request); + + /** + * @param OAuthRequest $request + * @param OAuthConsumer $consumer + * @param OAuthToken $token + * @return string + */ public function build_signature($request, $consumer, $token) { $base_string = $request->get_signature_base_string(); @@ -245,6 +315,14 @@ public function build_signature($request, $consumer, $token) return base64_encode($signature); } + + /** + * @param OAuthRequest $request + * @param OAuthConsumer $consumer + * @param OAuthToken $token + * @param string $signature + * @return bool + */ public function check_signature($request, $consumer, $token, $signature) { $decoded_sig = base64_decode($signature); @@ -269,14 +347,32 @@ public function check_signature($request, $consumer, $token, $signature) class OAuthRequest { + /** @var array */ protected $parameters; + + /** @var string */ protected $http_method; + + /** @var string */ protected $http_url; + // for debug purposes - public $base_string; + /** @var string|null */ + public $base_string = null; + + /** @var string */ public static $version = '1.0'; + + /** @var string */ public static $POST_INPUT = 'php://input'; + + /** + * @param string $http_method + * @param string $http_url + * @param array|null $parameters + * @return void + */ public function __construct($http_method, $http_url, $parameters = null) { $parameters = ($parameters) ? $parameters : []; @@ -289,6 +385,11 @@ public function __construct($http_method, $http_url, $parameters = null) /** * attempt to build up a request from what was passed to the server + * + * @param string|null $http_method + * @param string|null $http_url + * @param array|null $parameters + * @return OAuthRequest */ public static function from_request($http_method = null, $http_url = null, $parameters = null) { @@ -340,8 +441,16 @@ public static function from_request($http_method = null, $http_url = null, $para return new OAuthRequest($http_method, $http_url, $parameters); } + /** * pretty much a helper function to set up the request + * + * @param OAuthConsumer $consumer + * @param OAuthToken|null $token + * @param string $http_method + * @param string $http_url + * @param array|null $parameters + * @return OAuthRequest */ public static function from_consumer_and_token($consumer, $token, $http_method, $http_url, $parameters = null) { @@ -359,6 +468,13 @@ public static function from_consumer_and_token($consumer, $token, $http_method, return new OAuthRequest($http_method, $http_url, $parameters); } + + /** + * @param string $name + * @param string $value + * @param bool $allow_duplicates + * @return void + */ public function set_parameter($name, $value, $allow_duplicates = true) { if ($allow_duplicates && isset($this->parameters[$name])) { @@ -375,21 +491,36 @@ public function set_parameter($name, $value, $allow_duplicates = true) } } + + /** + * @param string $name + * @return mixed|null + */ public function get_parameter($name) { return isset($this->parameters[$name]) ? $this->parameters[$name] : null; } + + /** + * @return array|null + */ public function get_parameters() { return $this->parameters; } + + /** + * @param string $name + * @return void + */ public function unset_parameter($name) { unset($this->parameters[$name]); } + /** * The request parameters, sorted and concatenated into a normalized string. * @return string @@ -408,12 +539,14 @@ public function get_signable_parameters() return OAuthUtil::build_http_query($params); } + /** * Returns the base string of this request * * The base string defined as the method, the url * and the parameters (normalized), each urlencoded * and the concated with &. + * @return string */ public function get_signature_base_string() { @@ -423,22 +556,27 @@ public function get_signature_base_string() $this->get_signable_parameters() ]; + /** @var array $parts */ $parts = OAuthUtil::urlencode_rfc3986($parts); return implode('&', $parts); } + /** * just uppercases the http method + * @return string */ public function get_normalized_http_method() { return strtoupper($this->http_method); } + /** * parses the url and rebuilds it to be * scheme://host/path + * @return string */ public function get_normalized_http_url() { @@ -456,8 +594,10 @@ public function get_normalized_http_url() return "$scheme://$host$path"; } + /** * builds a url usable for a GET request + * @return string */ public function to_url() { @@ -469,22 +609,30 @@ public function to_url() return $out; } + /** * builds the data one would send in a POST request + * @return string */ public function to_postdata() { return OAuthUtil::build_http_query($this->parameters); } + /** * builds the Authorization: header + * + * @param string|null $realm + * @return string */ public function to_header($realm = null) { $first = true; - if ($realm) { - $out = 'Authorization: OAuth realm="'.OAuthUtil::urlencode_rfc3986($realm).'"'; + if (!is_null($realm)) { + /** @var string $realm */ + $realm = OAuthUtil::urlencode_rfc3986($realm); + $out = 'Authorization: OAuth realm="'.$realm.'"'; $first = false; } else { $out = 'Authorization: OAuth'; @@ -498,21 +646,32 @@ public function to_header($realm = null) throw new OAuthException('Arrays not supported in headers'); } $out .= ($first) ? ' ' : ','; - $out .= OAuthUtil::urlencode_rfc3986($k). - '="'. - OAuthUtil::urlencode_rfc3986($v). - '"'; + /** @var string $key */ + $key = OAuthUtil::urlencode_rfc3986($k); + /** @var string $value */ + $value = OAuthUtil::urlencode_rfc3986($v); + $out .= $key.'="'.$value.'"'; $first = false; } return $out; } + + /** + * @return string + */ public function __toString() { return $this->to_url(); } + /** + * @param OAuthSignatureMethod $signature_method + * @param OAuthConsumer $consumer + * @param OAuthToken|null $token + * @return void + */ public function sign_request($signature_method, $consumer, $token) { $this->set_parameter( @@ -524,22 +683,33 @@ public function sign_request($signature_method, $consumer, $token) $this->set_parameter("oauth_signature", $signature, false); } + + /** + * @param OAuthSignatureMethod $signature_method + * @param OAuthConsumer $consumer + * @param OAuthToken|null $token + * @return string + */ public function build_signature($signature_method, $consumer, $token) { $signature = $signature_method->build_signature($this, $consumer, $token); return $signature; } + /** * util function: current timestamp + * @return int */ private static function generate_timestamp() { return time(); } + /** * util function: current nonce + * @return string */ private static function generate_nonce() { @@ -552,28 +722,48 @@ private static function generate_nonce() class OAuthServer { + /** @var int */ protected $timestamp_threshold = 300; // in seconds, five minutes + + /** @var string */ protected $version = '1.0'; // hi blaine + + /** @var array */ protected $signature_methods = []; + /** @var OAuthDataStore */ protected $data_store; + + /** + * @param OAuthDataStore $data_store + */ public function __construct($data_store) { $this->data_store = $data_store; } + + /** + * @param OAuthSignatureMethod $signature_method + * @return void + */ public function add_signature_method($signature_method) { $this->signature_methods[$signature_method->get_name()] = $signature_method; } + // high level functions + /** * process a request_token request * returns the request token on success + * + * @param OAuthRequest &$request + * @return OAuthToken */ public function fetch_request_token(&$request) { @@ -593,9 +783,13 @@ public function fetch_request_token(&$request) return $new_token; } + /** * process an access_token request * returns the access token on success + * + * @param OAuthRequest &$request + * @return OAuthToken */ public function fetch_access_token(&$request) { @@ -615,8 +809,12 @@ public function fetch_access_token(&$request) return $new_token; } + /** * verify an api call, checks all the parameters + * + * @param OAuthRequest &$request + * @return array */ public function verify_request(&$request) { @@ -627,9 +825,15 @@ public function verify_request(&$request) return [$consumer, $token]; } + // Internals from here + + /** * version 1 + * + * @param OAuthRequest &$request + * @return string */ private function getVersion(&$request) { @@ -645,14 +849,16 @@ private function getVersion(&$request) return $version; } + /** * figure out the signature with some defaults + * + * @param OAuthRequest $request + * @return string */ - private function getSignatureMethod($request) + private function getSignatureMethod(OAuthRequest $request) { - $signature_method = $request instanceof OAuthRequest - ? $request->get_parameter("oauth_signature_method") - : null; + $signature_method = $request->get_parameter("oauth_signature_method"); if (!$signature_method) { // According to chapter 7 ("Accessing Protected Ressources") the signature-method @@ -670,14 +876,16 @@ private function getSignatureMethod($request) return $this->signature_methods[$signature_method]; } + /** * try to find the consumer for the provided request's consumer key + * + * @param OAuthRequest $request + * @return OAuthConsumer */ - private function getConsumer($request) + private function getConsumer(OAuthRequest $request) { - $consumer_key = $request instanceof OAuthRequest - ? $request->get_parameter("oauth_consumer_key") - : null; + $consumer_key = $request->get_parameter("oauth_consumer_key"); if (!$consumer_key) { throw new OAuthException("Invalid consumer key"); @@ -691,14 +899,19 @@ private function getConsumer($request) return $consumer; } + /** * try to find the token for the provided request's token key + * + * @param OAuthRequest $request + * @param OAuthConsumer $consumer + * @param string $token_type + * @return OAuthToken + * @throws OAuthException */ - private function getToken($request, $consumer, $token_type = "access") + private function getToken(OAuthRequest $request, OAuthConsumer $consumer, $token_type = "access") { - $token_field = $request instanceof OAuthRequest - ? $request->get_parameter('oauth_token') - : null; + $token_field = $request->get_parameter('oauth_token'); if (!empty($token_field)) { $token = $this->data_store->lookup_token($consumer, $token_type, $token_field); @@ -711,27 +924,32 @@ private function getToken($request, $consumer, $token_type = "access") return $token; } + /** * all-in-one function to check the signature on a request * should guess the signature method appropriately + * + * @param OAuthRequest $request + * @param OAuthConsumer $consumer + * @param OAuthToken $token|null + * @return void + * @throws OAuthException */ - private function checkSignature($request, $consumer, $token) + private function checkSignature(OAuthRequest $request, OAuthConsumer $consumer, OAuthToken $token = null) { // this should probably be in a different method - $timestamp = $request instanceof OAuthRequest - ? $request->get_parameter('oauth_timestamp') - : null; - $nonce = $request instanceof OAuthRequest - ? $request->get_parameter('oauth_nonce') - : null; + $timestamp = $request->get_parameter('oauth_timestamp'); + $nonce = $request->get_parameter('oauth_nonce'); $this->checkTimestamp($timestamp); $this->checkNonce($consumer, $token, $nonce, $timestamp); - $signature_method = $this->getSignatureMethod($request); + $signature_method = 'OAuthSignatureMethod_'.$this->getSignatureMethod($request); + /** @psalm-suppress InvalidStringClass */ + $method = new $signature_method; $signature = $request->get_parameter('oauth_signature'); - $valid_sig = $signature_method->checkSignature( + $valid_sig = $method->checkSignature( $request, $consumer, $token, @@ -743,8 +961,13 @@ private function checkSignature($request, $consumer, $token) } } + /** * check that the timestamp is new enough + * + * @param int|null $timestamp + * @return void + * @throws OAuthException */ private function checkTimestamp($timestamp) { @@ -763,8 +986,16 @@ private function checkTimestamp($timestamp) } } + /** * check that the nonce is not repeated + * + * @param OAuthConsumer $consumer + * @param OAuthToken|null $token + * @param string $nonce + * @param int $timestamp + * @return void + * @throws OAuthException */ private function checkNonce($consumer, $token, $nonce, $timestamp) { @@ -787,39 +1018,52 @@ private function checkNonce($consumer, $token, $nonce, $timestamp) } } -class OAuthDataStore +abstract class OAuthDataStore { - public function lookup_consumer($consumer_key) - { - // implement me - } + /** + * @param string $consumer_key + */ + abstract public function lookup_consumer($consumer_key); - public function lookup_token($consumer, $token_type, $token) - { - // implement me - } - public function lookup_nonce($consumer, $token, $nonce, $timestamp) - { - // implement me - } + /** + * @param OAuthConsumer $consumer + * @param string $token_type + * @param string $token + */ + abstract public function lookup_token($consumer, $token_type, $token); - public function new_request_token($consumer, $callback = null) - { - // return a new token attached to this consumer - } - public function new_access_token($token, $consumer, $verifier = null) - { - // return a new access token attached to this consumer - // for the user associated with this token if the request token - // is authorized - // should also invalidate the request token - } + /** + * @param OAuthConsumer $consumer + * @param OAuthToken|null $token + * @param string $nonce + * @param int $timestamp + */ + abstract public function lookup_nonce($consumer, $token, $nonce, $timestamp); + + + /** + * @param OAuthConsumer $consumer + * @param callable|null $callback + */ + abstract public function new_request_token($consumer, $callback = null); + + + /** + * @param OAuthToken $token + * @param OAuthConsumer $consumer + * @param string|null $verifier + */ + abstract public function new_access_token($token, $consumer, $verifier = null); } class OAuthUtil { + /** + * @param mixed $input + * @return string|array + */ public static function urlencode_rfc3986($input) { if (is_array($input)) { @@ -828,7 +1072,7 @@ public static function urlencode_rfc3986($input) return str_replace( '+', ' ', - str_replace('%7E', '~', rawurlencode($input)) + str_replace('%7E', '~', rawurlencode(strval($input))) ); } else { return ''; @@ -836,19 +1080,31 @@ public static function urlencode_rfc3986($input) } - // This decode function isn't taking into consideration the above - // modifications to the encoding process. However, this method doesn't - // seem to be used anywhere so leaving it as is. + /** + * This decode function isn't taking into consideration the above + * modifications to the encoding process. However, this method doesn't + * seem to be used anywhere so leaving it as is. + * + * @param string $string + * @return string + */ public static function urldecode_rfc3986($string) { return urldecode($string); } - // Utility function for turning the Authorization: header into - // parameters, has to do some unescaping - // Can filter out any non-oauth parameters if needed (default behaviour) - // May 28th, 2010 - method updated to tjerk.meesters for a speed improvement. - // see http://code.google.com/p/oauth/issues/detail?id=163 + + /** + * Utility function for turning the Authorization: header into + * parameters, has to do some unescaping + * Can filter out any non-oauth parameters if needed (default behaviour) + * May 28th, 2010 - method updated to tjerk.meesters for a speed improvement. + * see http://code.google.com/p/oauth/issues/detail?id=163 + * + * @param string $header + * @param bool $only_allow_oauth_parameters + * @return array + */ public static function split_header($header, $only_allow_oauth_parameters = true) { $params = []; @@ -867,7 +1123,12 @@ public static function split_header($header, $only_allow_oauth_parameters = true return $params; } - // helper to try to sort out headers for people who aren't running apache + + /** + * helper to try to sort out headers for people who aren't running apache + * + * @return array + */ public static function get_headers() { if (function_exists('apache_request_headers')) { @@ -920,12 +1181,18 @@ public static function get_headers() return $out; } - // This function takes a input like a=b&a=c&d=e and returns the parsed - // parameters like this - // array('a' => array('b','c'), 'd' => 'e') + + /** + * This function takes a input like a=b&a=c&d=e and returns the parsed + * parameters like this + * array('a' => array('b','c'), 'd' => 'e') + * + * @param string $input + * @return array + */ public static function parse_parameters($input) { - if (!isset($input) || !$input) { + if (!strlen($input)) { return []; } @@ -955,6 +1222,11 @@ public static function parse_parameters($input) return $parsed_parameters; } + + /** + * @param array $params + * @return string + */ public static function build_http_query($params) { if (!$params) { @@ -962,7 +1234,9 @@ public static function build_http_query($params) } // Urlencode both keys and values + /** @var array $keys */ $keys = OAuthUtil::urlencode_rfc3986(array_keys($params)); + /** @var array $values */ $values = OAuthUtil::urlencode_rfc3986(array_values($params)); $params = array_combine($keys, $values); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/oauth/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..16ca579962da55db8cfa9c3b3a669b04107504c9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/phpunit.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/oauth/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..f7448164cc3294f5869001879a6564d6085a1794 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/psalm.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp Monitor" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="config-template" /> + <directory name="hooks" /> + <directory name="lib" /> + <directory name="libextinc" /> + <directory name="www" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/templates/registry.edit.tpl.php b/vendor/simplesamlphp/simplesamlphp/modules/oauth/templates/registry.edit.tpl.php index b43c40d39c3239424a148bff6084f0aa056b2406..32bfddea9c18e14b82568c5d2334596043c7d805 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/oauth/templates/registry.edit.tpl.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/templates/registry.edit.tpl.php @@ -1,13 +1,19 @@ <?php -$this->data['jquery'] = ['core' => true, 'ui' => true, 'css' => true]; $this->data['head'] = '<link rel="stylesheet" type="text/css" href="/'. $this->data['baseurlpath'].'module.php/oauth/assets/css/oauth.css" />'."\n"; +$this->data['head'] = '<link rel="stylesheet" type="text/css" href="/'. + $this->data['baseurlpath'].'module.php/oauth/assets/css/uitheme1.12.1/jquery-ui.min.css" />'."\n"; $this->data['head'] .= '<script type="text/javascript" src="/'. $this->data['baseurlpath'].'module.php/oauth/assets/js/oauth.js"></script>'; $this->includeAtTemplateBase('includes/header.php'); +$this->data['htmlinject']['htmlContentPost'][] = '<script type="text/javascript" src="'. + SimpleSAML\Module::getModuleURL('discopower/assets/js/jquery-1.12.4.min.js').'"></script>'."\n"; +$this->data['htmlinject']['htmlContentPost'][] = '<script type="text/javascript" src="'. + SimpleSAML\Module::getModuleURL('discopower/assets/js/jquery-ui-1.12.1.min.js').'"></script>'."\n"; + echo '<h1>OAuth Client</h1>'; echo $this->data['form']; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/templates/registry.edit.twig b/vendor/simplesamlphp/simplesamlphp/modules/oauth/templates/registry.edit.twig index ad9345d731a93a397528e1c6e2c0a05d7dd940f6..4476edd116fe5ced3535c312efb088d872a633a7 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/oauth/templates/registry.edit.twig +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/templates/registry.edit.twig @@ -2,11 +2,13 @@ {% extends "base.twig" %} {% block preload %} - <link href="{{ baseurlpath }}assets/css/oauth.css" rel="stylesheet"> + <link rel="stylesheet" media="screen" href="/{{ baseurlpath }}module.php/oauth/assets/css/uitheme1.12.1/jquery-ui.min.css"> + <link href="/{{ baseurlpath }}module.php/oauth/assets/css/oauth.css" rel="stylesheet"> {% endblock %} {% block postload %} - <script src="{{ baseurlpath}}assets/js/oauth.js"></script> + <script src="/{{ baseurlpath }}module.php/oauth/assets/js/jquery-ui-1.12.1.min.js"></script> + <script src="/{{ baseurlpath }}module.php/oauth/assets/js/oauth.js"></script> {% endblock %} {% block content %} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/templates/registry.list.php b/vendor/simplesamlphp/simplesamlphp/modules/oauth/templates/registry.list.php index 1c3b287fb696b8ced33285dbe34599ebd85426ef..1bfdfdec52bbc5da8a126b605d0cc4e525d560dd 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/oauth/templates/registry.list.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/templates/registry.list.php @@ -1,5 +1,4 @@ <?php -$this->data['jquery'] = ['core' => true, 'ui' => true, 'css' => true]; $this->data['head'] = '<link rel="stylesheet" type="text/css" href="/'. $this->data['baseurlpath'].'module.php/oauth/assets/oauth.css" />'."\n"; $this->includeAtTemplateBase('includes/header.php'); @@ -18,7 +17,7 @@ echo '<tr class="'.$rows[$i % 2].'"><td>'. htmlspecialchars($entry['name']).'</td> <td><code>'.htmlspecialchars($entry['key']). '</code></td><td><a href="registry.edit.php?editkey='.urlencode($entry['key']). - '">edit</a><a href="registry.php?delete='.urlencode($entry['key']).'">delete</a></td></tr>'; + '">edit</a> <a href="registry.php?delete='.urlencode($entry['key']).'">delete</a></td></tr>'; } if ($i == 0) { echo'<tr><td colspan="3">No entries registered</td></tr>'; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/oauth/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..9f8cb3bde81f1dc1ab491206a2b3f432d15fe3f7 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot.'/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot.'/vendor/simplesamlphp/simplesamlphp/modules/oauth'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-bg_glass_55_fbf9ee_1x400.png b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-bg_glass_55_fbf9ee_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..1f851db2c9babc701aa0df1cc4e675943ab7812b --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-bg_glass_55_fbf9ee_1x400.png @@ -0,0 +1,5 @@ +�PNG + +��� IHDR�����������A����bKGD������ X����� pHYs���H���H�F�k>����IDATH���! +A���bl����A1{�V�Y0i��x��x�v����D�K_��O��9��a�Ք��}��^�JaȌ�0b�vBA�$,�Q���"_44���=�Sqc�yE��I�W +<kA����i�0��<a$S��y.���%tEXtdate:create�2019-05-26T16:42:24+00:00R������%tEXtdate:modify�2019-05-26T16:42:24+00:00#�oP����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-bg_glass_65_ffffff_1x400.png b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-bg_glass_65_ffffff_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..a82e07c128d7a152c2ddd7d5eed531ac7f1b5ec7 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-bg_glass_65_ffffff_1x400.png @@ -0,0 +1,3 @@ +�PNG + +��� IHDR����������G#7v���bKGD�݊���� pHYs���H���H�F�k>���IDAT(�ch`��p���h��4�i���%tEXtdate:create�2019-05-26T16:42:24+00:00R������%tEXtdate:modify�2019-05-26T16:42:24+00:00#�oP����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-bg_glass_75_dadada_1x400.png b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-bg_glass_75_dadada_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..f323d2943e827649ecb51caf4e1a53c4d4435ab9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-bg_glass_75_dadada_1x400.png @@ -0,0 +1,3 @@ +�PNG + +��� IHDR������������D���bKGD���1���� pHYs���H���H�F�k>���HIDAT8�cx��a�"��[�n{1�qc��po"��?3}`xR���1�s?��^^bxu��u)�뉣h���W�%R�|���%tEXtdate:create�2019-05-26T16:42:24+00:00R������%tEXtdate:modify�2019-05-26T16:42:24+00:00#�oP����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-bg_glass_75_e6e6e6_1x400.png b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-bg_glass_75_e6e6e6_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..8adf417e90dd6fad53bc76564f9d497c58184a6e --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-bg_glass_75_e6e6e6_1x400.png @@ -0,0 +1,3 @@ +�PNG + +��� IHDR������������D���bKGD���1���� pHYs���H���H�F�k>���HIDAT8�cx��0�F�ѳgύ��ax1��e&ë8��!obަ2��fx�����#3�ǵ��>��QD��@�$�.5o���%tEXtdate:create�2019-05-26T16:42:24+00:00R������%tEXtdate:modify�2019-05-26T16:42:24+00:00#�oP����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-bg_glass_95_fef1ec_1x400.png b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-bg_glass_95_fef1ec_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..3f88c6b520cd6d07bbeb3a7f7aa748ebcbe3aabf --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-bg_glass_95_fef1ec_1x400.png @@ -0,0 +1,3 @@ +�PNG + +��� IHDR�����������A����bKGD������ X����� pHYs���H���H�F�k>����IDATH��ϱ a�����\!V��J#X����ЋD}� .f�>���>��P�կx���x����q��жuɚq���f+��6���[��\�����כW�T4r���6:]V:�, (�Ŵ�8�yG-(d�� H���%tEXtdate:create�2019-05-26T16:42:24+00:00R������%tEXtdate:modify�2019-05-26T16:42:24+00:00#�oP����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-bg_highlight-soft_75_cccccc_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..d022fb79b5b59df131762103ed3cfdf66eadfc8f --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-bg_highlight-soft_75_cccccc_1x100.png @@ -0,0 +1,3 @@ +�PNG + +��� IHDR������d����2������bKGD���1���� pHYs���H���H�F�k>���ZIDAT�cx|��Nhã����2<hc�_�p/��n,� �[_n�g���p=��Õ��w2\je�X�pa��&�s��b8��p���"�����Y{���%tEXtdate:create�2019-05-26T16:42:24+00:00R������%tEXtdate:modify�2019-05-26T16:42:24+00:00#�oP����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-icons_222222_256x240.png b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-icons_222222_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..e723e17cb5428094de75a0d3c6f4f3c07dbd3bbe --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-icons_222222_256x240.png @@ -0,0 +1,32 @@ +�PNG + +��� IHDR����������E�r@���bKGD�"�b���� pHYs���H���H�F�k>��'IDATx��{he�}�?g����{��1)�����]K&qq�U�4kbiK�R(H��B��P(I�vJ�_��ӮIV�@nB�5i�N��iG�jq�& ~A#Q����rX'����9�:�ܫ{�3�E{�=�y�o~3g~��Mp�&����1Xxh8<�#dlЅ�Mx1�&��$�5~��V�� ��c�$��ױ���,���� ��ƹ�i���N:�Z ��ߊY���>�"�B���H!�������-C�u�8t�}����8�!�B�� *�OF�.[�aͲ��l��B&���1h�>��M]hN���4MAb���̐!(�hE�1�5jձcO�<6�e7��,e���S(��f�o�16+3�y +JR|{�^3�^����{�88������~'����pxh8<4��� �g����������2��n6e̘�����{�����Q�����pӀ��P�A��iۺߖ�f�S����(�D��'�L�6=����T:s���f�q��羀l��.c�I +���ǧ�=�i���M�>��ڠLN{U��&������&��{u��o�����.�.��4~#����pxh8<4��� �g��Û��p���^i����/�0���TW�c����Q��� �@)��y��u}`L��Uc���%T��������ȥ +�A��R��@�?��P�-`����BKl� b����Z}�������Ш��͢uJ��%U�]�K2��e ts�Y���@,e�e���豅r��jcܭs��M�n�0 A���mP��y �D�K(5�,�lN�&b�D�m�rwYDV����t�e$��謷� �L���[��C��0O�� P��&��0����+��;� �g���3@������pxh8<4����Y��`��O����F�Z<��h�\J!c��`����j �;TK�Vr�0��ʹqc�cGz�䟾c�[ ̕P5�t�h�)���ti���З߭ty�������&��M/Е����S���u����@��݅���n���b�9��`y�9��Ya�SX�0e���q�J`nB���g����b�����3���4P�- k�**�@HC�z(}��U����cj2��=��Ob�����3� ����R��05���1U�\8SMi�U��}����l�Hl�N� ���J��q+%e��7s���"�<։�ּ�z����M�L�T��ƾP��1f�1i��Ѹ��Vp������pxh8<4�z�A��+ o`�I_�R�����~�~��f��սh`�Ic�K�h����Q�p��xx`=�j�`]|S�B�(������(��v���F3�4v�6��T��4 ���5����:���*��-D#�n6��a��J<U���~�y(�1��(,�|t�z�}��d��j��0u]PT��-D}@����� +�n�+[�Ύ� A�B�T���(V� K������BT<[F{�m��=��-�ڤ����$��.��JR�U j��:X��e�n�e���bՅ��"C ��e2�@�Ј�݂� �Ѱ���xxh8<4��� ��1@kX6I��<��M*�Љ�Ѣ�+�b���04(�.�M3Z�<]&i�UuY�a��^2�w�ͻ�ɨn�U�@�n����E�4 ���O�Us�.J���}��dw�Ed�p��� ��me^f���mF gg������T��G4�Ѱ����m��������N��է��N�c�����������5�L�xi���D��9�|��%ܔ�h�P=�áb����o�p�VBG�X ,�#E��+�\�^��o�ʼdM��ɳ]�d����.�@ 䮚���D���e��FU6'g6��)��52p|��f��X�_a�"z��x���� �w�.c�t� +�� �g���3@ñ�`"�i��K�9���s D07� +ӕS��E�oC�Y�Z�l'N��~_Sƞ��y���a��xK�������z�-&|(�ϜC�K������Xg�d����5Ig��8k8YTL=�,/ +]s��w-~��t�����e�� ^�~�&6vh�}�Զ�:g���?m�bG!����1�:O8����]�%��2�����v +�E�@�5"�6 Y�rXcRb��ݎ���E%���`�#�D��r¤��Z�:�ϛ!�x�R���h�!��}v�۴��ϳ����x�y}FrA1#�*�u�T�?>��!�x#�~��G���k���@3K@�:>P�R�����M�A|��e]K�g�F.B�����t�l��OY d��!(v�V�X��%m�#���I[RR�`2�T�� ��H��w�Y�u=���b�YPEc�U%�&@��Ĺ�]��}�q���o7*�G�L� ��e�QX�5�U����-����³��8| ���_�ݟ��5\�5�p�VH^��\ �Fآ��a��a��5�l1�4[��#�b�o�P�1�E��is��wMJ'5�T���06�B|I�,b�����`�ՈP���X�k��B�$�[��-E�OHt�|�3�D�(i��d9�N6@x/ؠm�(�#�wj�P�t��/Z���ob�q%[:���3^�~a��5���5�����|E닃�^�E��$�L�-���_s, +߫��㕔Ņ�&�� +�_�,�������#F�}����&���.��<4��� �g���O��rdh9�����M7L(5꓂.���?M(�����stզ��-?�:��[ڧC�r�]�'��YB�2�l�C| l�eXS��pG��0KcI��~�u�L0/��y�Lt�r�I�?�R�%�����-�w�Ƿ�h���$L��J��V���Ϳ�Ӣ,�����g� x�_7��l��4�*��u�M+�@�x�<}��ã��q>��<�#��`�i� +:=��*��ۿ�{��)��_��8hs���������p�CWғ�K�`B]H��"}���_P�N���t�Q�l��1Y�Q�h+����&?��x�5:� ֘aY�ҭ���=\��En��������.�Yʸ��J���E%uTj5�����F�'������b;[��v�ט4�u��6]�lkw�3�÷���,: ��%&�� �[|��|��|Yi�q`:�����qXc�2+u|~/�wrz�[j-�I>#���,�9�Q:�#,2�����5@�@%��S@@6ÅJ�{��6��{��)h���W�~q]����t��<�+|�'�0O�a����6���3�U��HW������l;�����'�Z9�Z\�o��O�嵁���e�e�Ƣ[o��da�����rEm&�ʧ�������3m���6��=�g�^S��x +Hj���mi�(v��ۈ�{.�h�_���%�8��nF�7y{�����O���FS5�:�����/��ա���W�P�H+b�����Gx��/9��I�Yy�.����M�t��T�eە,�ѿ�-�R����e�d�� +��;�Ә:�9k��T�5��m����������E�G��|\Wu����ǣ��@^L���E��� ��4��� �g���y��; +J'U��䐎N�<�p2m���ӫ��.Z������Z5<� V +,��p�3��w�=~�3j��ǿě�#����ʭ�|�S��f�yk��=C�n1]�C�'I_O��*,�J՞�D\\I���}�E�\�$�M�(�E��\�߮�?ƫw +�����NJ��E�b�6��t�z�:<��u��d��k��vs!��PfM��7dT����3 ��*S,�AZl+N����l�R�&{�I��T�G�O�*�M~�;������XFS��j����^�Q���N�n3�Z���0Ne�R�]�3�8��<�$@�˜c.�t�=�.{e��'�TI�s��u����>-?B��p���?���X�J $�x�QJ�}�!#��Ո2�Ht!VɽV�\'���Y�3�6����6Yu��JOAa�[5e���]p9=7����t���_�y��?�OS���<V��q.��Ի���;�8�~��YE����KSȀ��Xjq@M�� ���/�p�X��۴�[�S��c7�'S6 �E� ������_Ձ'�_��)^3�b�h���+Z ��"rLz�ZA��#��[��'�?�Z7{mZl�Ӭ�Q�De+^��o�*D��g��r؈;/�."��HF�Ƴ5��)F ���2�c.�W�~�`����VEl����6�R����8ظ�ky�k�.����`��Fp7pps"�"��KR{(us�[�%6 u�s�ͻ���,BD�����/�ȷ�_Pt?�Y�Vy�.s���Y�3����3������\�V*#��y�f2j��g����A��Ѣ� +�g�-�5����Fh�-1�9�v��<�s �����m�� =/�_f�WX�M�&�לi�RvٗQt��_���"������Q<�(�1[��_~��b"T z3��sxh8��������p�`Z�/�NΧ���F��{�"p�i`�� +�gsO��s�.�G}��t<��9�ug����g�R`���&��X�t�岇�}� ������7����2J�X�e\�� 08j=�XJ�Ql�l����x�6z(\5Q��I��=�l +8�7Ɏ���E�a4�O�;�-��M�1Iy�vV�y^�b�EN��sQ���Cw[ �2 ��V�Ǽ� o�yw�7J����K'�Tu�l�>_�i���T��<͛<�iM +�p������7�YMW���=�ӡl(����u�+���^j��>3��2N�묳}��j�H��Q RT�Ȣ�� ���n�fݮ�~�+��c�iQ��< ����Ma=��|�*���� +�$@'��Ԍ��ǕqUO;�5~@��eI�2��9�w��"��O�~��s��s��k{��$�m��>����v�z��^2���v�ow�`a������4c��M C�����b�>����q:��o�=�-�p`_2�ng:6K��XV,����2�Ǿ��6��� �g���3@�� ��ś�s�a����R��WWB +g-N�;F[��Ւa�A��V�L�F�<-m +VbMC����7���K)�X����P�y� �s�~��=�����<�ܒ�{�x!�=����Ãq�R��l�]���/���� 0�l)'�}�#�^tX��孋�t�8FC�Y�$)�PUBE�(~��Ҟ��V�2^��*SL�H�l��S��'IA[�������Z���x-V�"ȥ�J�+���\�|�5u�W��nLJ�k��ܟ���(0�0����JyꞄ���a���f��g����6��� �g���3@Ñg���[�}��Z����Q�k?ҳ=��z�I$Т�:�9FW��m�x��:\(�W���+��e���F�9��,��*�!Gh�D��L��8�[v��o�����)�A�a�K�5�S/�)^c����(��W�H�N�W8T�r=op��p]MC�O?���*�� +DO��b/�hs�0�ڜb�9�1C�9-����o�ۿ���ԗ��u���Q��Fc���|W�%@�HB�2�9�������/Dx�D`�U:�Ƈ�gi����"`�%��ᄽ +������t �E`t���6�2k�)P�E�ѿO,��?�k��_�yh(/����=@��u �g���3@������v@]��<����]���~��WD�`��.��f���~�o��ʈ�N�VA��߈�ե�M����� �^��y��M�Q|��ߛ^-{o�~��>��w���Ѓ +��(��g��X���ץ�i��&�X +u��D�U���͕l� ��ғޥ�ߞ���k�������PH�H�C��J�~��S�@O�� ��ѓy7��� �k {��25���of����ϫ�o���{���'!�'���Z%��q�*)�g���C\���#��\���'��0���P_���WL��7��&AlJ���\��� Z��p��,���Y�x��j�c�����O�(6z��I�V�� u�:ג���T��D��O��9�ׄ�Q<��*y =���2��~����/?J,����WJ�Q�W�>����W��u�?��#G��/����4�"�K���{㧏�',I��ҟ综E;���|R�ݠ��~��W�7i8�6����pxh8<4��� ��r�<}8� kG�o;��u�C��P��v�)��A�<$��ց;��{l��� ����� ��#`��F���C�!f� Ӆ/`7��(��0R!9�9�z���@%!/m�]���Ad��hv�G�����3@������pxh8<4{����P/ 3@�}�� B&�^�16�{. �����ߠa�Q�o ���2l���mt���!\%@�X���?5��ճa��~ ��ʠM65wk��a�)T���F��_� +2�$�x�5�_9!�VxRd�1!}����'�`�$����Uԇ��r�?� �Q +�`7`�.���k����_V����zԄ��p�]]�GO���LXCk�3����%tEXtdate:create�2016-07-13T10:21:59+00:00�����%tEXtdate:modify�2016-07-13T09:26:54+00:00�͠���tEXtSoftware�Adobe ImageReadyq�e<����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-icons_2e83ff_256x240.png b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..1f5f49756ca64bd20a1048bd7a3a584457d4bf00 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-icons_2e83ff_256x240.png @@ -0,0 +1,18 @@ +�PNG + +��� IHDR�����������IJ���PLTE.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.����o���YtRNS�3P���/"Uq@f`2� !<BHK Z#'1S,�4���j���8E���|��������)��Q$� +��b�J��mߜGc?o�h�@^����bKGD��H��� pHYs���H���H�F�k>��dIDATx��]c۶�H�阒]�K���d��%٫뺮��lm���w]����|�p��X�m�-��}<�w�(1$�� ;�F�@��%��?����B,Lh{�t���#���T@�/?j�9 m��N� #���+`��`����I� +��_�-s�ʹU0�M��[�� +s�4`x���#�� �D<�~�K��.4�]`��PDDDDDDĈq������Ek@����A�~�*��� !Y���X�`hv3\LX��Ot�J2b���ؓl�QI<��� �6�-X�lֈ�6�H��|=j�`E�iq����Cv:�q���C?�?���x�,��r*t�ݻ}|;�kP�4���d�Y����f����K��~[ >�X:+�i����ĆQV9\����e�'���A�tOS�:7��2����YsxM�ہ��B���&���z�>n�C��@��r@��*�a�ӝ���%��MFDDDDDD�T�ߖ���H,���E����RU��n ب<��V- @�/Nm�թ���������Hw����*�+��#��$o�e�{�% �7\X��ǀ���2��~0��&n��sbA,�D�� �A�V�I��|� �Og���鴋� �7�y 7Jf�����:_�w^��H v{/O�9���<����Y�`+�� HRٰ����[��?�� +������=���c""""""F�˽�sG�<*k9c��E�8薽�������zfm��r�1�N�������nq�w��&=O�\}K` +#���2��~��L�|?�m>�\�f���:}�4ᦋ���{�)�n[�� +�̰E +KY��D�ۇ-�� �+�Kl=�Ӄ��L`љ�|�%��n� a� ���N�#��5� (4���?�����EDDDD\o�W�Ffq;��\E��_������,���W!%�zE!F�¶.�(USHQ0d�w)T���8#p,�x�B��K���� �*�x��X��E�e������ +K솎%mK��X~s�FE���~������tdc��a��I���1��Af4��dH��c�G�S�B`��0�wev`����"�{�� �.�GDDDD�,d�O�6�k"qk��Me�fS_����U��KŌ&g~>n� �H�})��L���F%8(�)r���!�[4统qQk�0�m[Le���_�7���0�@>1 X0A��Z����Vc�E�V ���Lt�k�3�EJ��44�Zﮊ�N`rt�>`�˥� � � A��HBLH�@��c���Uq=�j������cM����2�s����J���CL�iR �NQ���������0=���Yi�-�|4�V��]��]��B^�ޞ���_H������$�<�$� +a����=��d@� (Z�Ap_�}�~s���:�N�{DC>����m�^������S�&�, ;�N����&�B} ��<_A��B]H�u���N(B�0��{h���1�IK����Ds��j����'��M���8�.�ӫ1�h3�df}mq��� ��n�U{��L�o��z\=?@ ((���e�|=ơ麄�C�i����1r<|�OO�;� `��H��p�Qy�zԈu�����Z���V���Ʋ�!�)��5m�C���2��Ly�g�;���֑�R���jW�a@��@V�L�&W���ru=Z +�̥��=U���5}���������7�;b(�����nP&�s��k�4�����8�ͥ��0���1�U�W�v�k�18dq���T��ՌE]qH8�������G�F�����K�����'��r����Or���r�̧��6"fp��T�^3c��"�����n��Mم-�/��W=�tJ,��X�)���{�P Rm|K����>mX�8v�5h��<������_{ꘀ�Y�F�|&_G;&�>^�����W⁃�&�K���(��81�EB@F&��;"L���'wfw��E-6��o&/̫'X�e,>~�ee��|���A����=) d��Q�`}P[���K��N��˂����/�~)����O[d�O=�3E�l5'Y�$?��7�m���Tzզ.�\��.��` WE�����"""""v�)��V���<���K�ZX.Ex�~Ч)���ߚ�����W_}�5|��s��/!?����'poդ���tC3����@�Q�)��t��`���b!,dY9�6A2����������/튮���n�t�TK>����#]�L;zq�J���r���²[��\-t�ҽ�5 @�ͷϟ��n�T@��+;��c���Qh�C*���T�ڙ��A<Sku�µb�E� /��$�Z���.e�j������_ʤrWaB6d���(��S�s[�|���竕 +/5R���(�4X������76����`3|���P��p�'�H~<R?M�2�)� ��g��Vp��B�n�=�|W�ͬ\��V0_�81Oׄ�Kz||lP_��ω���lxX;ǀ�Ju�<��Ng[��]=�(�#]������p�P�a���i�������s�f�� +V�z��]ౚ������z>�Vr�?�f��?������ �Q�1�T`��} H�k���,{�VZˋT��ϛ�?I̯u�QK�LM�e͆��~��q������y�m0�9�S�;���j�����5 ���i��Q��]7k0�U�ޭ���G�kX����3#���lY��_Цx����j9��`�# +M [z��KuO_z˿Dܭ��*��kOJ�(7��n��\�e� I�T�ƨ�l�/�U������߶uw�.�~���;#�r���.�����8 �o# 5L��h>1�i�����p��V�M�?�/u7��0� X@��L��+M�+�����{��Fkt�{�ŧ89�0`���. ĀC�R+\��/��t�R����; �TӲ���]�aL���|�efđ�� �>�ۣ��G�|�P`P��8C1K՛�A�̍<�2��ۂ��K�r�l@L +L��������8�@�E>`n�����PNԍ,��p�����E��Ɔ����Z�FlÎ;�����F���7��Ȯ;�� +��s�wSz)g7�{r�s��S��gȋ��(߄~�AWytX��$�NV����R�_��<6�p.�O�8�O[�OdDk>_��O�O�}����JS���d��mV�?�W(_��m� ��j���~=H IԁF>T/��{*]IGJ@i����qam�NF|Q�5���0+���E�S8�:�v�`p~v���j:B�����p96�o��ys%�������� �|@H�����]��+�@��t]W�k}}�����7��Fʮr����A�����B���\m�-�_�2PY8�������x�ՎN�.h�~���@+7��z5������t�_/������/�?���0�S>��)���z�i0n�/�B����`{D��W���#`����B��o���[,�g��FVЁ�pP߾���C]Bz�� ��,X�����X�fԃ����A�:H��� k�7��d�Z9��oc}o�]�0�vd�:R]�0�ve���]刈����j����у����| �?�+(��OǍ�+ �#��ys���ߍ�n�p���Fru<��.HȺotM��3h���}��߆P}�������˗��v�����P�}mǀ���?���W��Z@���������}���������@��@���FD�������l����%tEXtdate:create�2016-07-13T10:21:59+00:00�����%tEXtdate:modify�2016-07-13T09:26:54+00:00�͠���tEXtSoftware�Adobe ImageReadyq�e<����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-icons_454545_256x240.png b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-icons_454545_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..618f5b0ca756789f81bc276426805df6f61b91d7 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-icons_454545_256x240.png @@ -0,0 +1,30 @@ +�PNG + +��� IHDR����������E�r@���bKGD�E�;�-��� pHYs���H���H�F�k>��mIDATx��{leG}�?g�K��$����U�!�>T��؈�J��i6A"�V��R%;��"���*UP)� +�/���z�RJ�F��QP��z��BQH�VU������5sμ�9��^�3ߕ��{~����7s�7��<���.��`���� c���Ab/�@�[�V�D��0��3AX9�0�N��_�B���&���>~�>� c�;ab�D�ߎE����Q�z��'k���M�ayԉ��6�!�:u:�:@RŤ�B�yDD���'�L��-�f�]S��q!��f� +S�Q�&�S��7MC��r==3dJ��{��f�Z���S0�Ms��:0K٦g�ʿ��&H�U�=�mc�4�i?UĔG��U4�hc��Qb�]�!��hL���W/� ����@������pxh8�~�|�A��Qf?�ێ��1f¸����=u����Q�GJH��p����PϠI�w״m췥���ԧ>2���"�WÓP&{��n����T:s���f�q���H@���.c�I������~�S�s+�^|B�n�29�dH�������]��v�-ˌ-m�e�h�>�����q&ت��g�9x�#c�n��~!����pxh8��4^�/� ����o�#�Z@��S���^��4� KZKP�d�9���C@F[�����,��a+�����]8��v��K�qHl�w9ק�84�KB��ץ|��&��#��[�\C�����`��R��!�����:�F +z��C���6��)A���T1wU.I�җ!4��ig�3w��������E:��q7����n�0uA���mP��y �T�K(5ͬ�lNæb�T���rw�DV�]��t�e4���7� �L���[��C��0��P��&��0����+��+� ����@������pxh8��4����Y��`��O����E�Z<��h�\J!��䞋��j �;TK�Vr�0��ͬq�cˇ��u���a����p����E{B�w"�K��5���n-��c"w�v�T�6 T�hzီ|6�ŝ���Ι��N{ t��]��K��^m1(�6��m�3��'�R�f���`Ô�� �_�>��j�,�*�-E)�e��{�U�,�� \u���oV��: `o��m�Ke�t��_W��O��dW3���Z Քrv|�~^�g��`j�yc���p�*���f���b�]�M5��9��.��L��N��q+%����ۯ�0�vc�c�J��E�M5���kk�#I�<���x_�� �I#0D�w��4xh8��4^�/� ��^c��� +����d�r��DM{w�Q�t�e�{��^�`��b�r./��M:0գ��*����z���`]|S�B�(�e)�h͎/V����ܮ�"aO!�o� ,�u�^���Љ�^�=�z��t`�WeCC�MQϱo���0q��%���U�o?�<��@6��HG/����������uAQ-_�u||����ִ*2l��ٍ�uG�@� j !�B���r����� q�L!*)�h������.�V�{3����-��!�w�$dP�*�����/P[�t1���l3�hl�y�p������0b��g�L�} �3���$�%\/��.)TwQ�"uK7d�+�2�!��@������pxh8��4�'��aY$m��f�6�lB'�.D�� ��Р��x7S�x��tI��eW�e}���d0�R�W��^ݢ��0](U�T�x����|��T�|����@v�^DfLb��(�2��H��0n8;���_�Q�O��}D���&3{��Y��W�w��5*��e˗?�̖�G� +�:H iZӖ)/MP���(:�!�/�|B��[i����:�Gf �L�`�~��:z$aa���^����ʭ|P�- kbݞ<ەL&�xJ�AABȼ�Hvᑢ�[�yS��ə�w�NJuy��%pw�0�_a"z��x���� �3i�1|���=����@����%�JW����A���m�\���� ��l��X�m9+�(��)������S��� or��ro*E`�Z��1��&=�ޗ�g�!�Rt<<�A.-V���+�l�|����suK��,&�ȇ��%����y�q�s��(A�K�*�q^�~����anb�1`�6��G�P�a�&.� �)b���muL��I���fnE! k̠Ò��c��m���c�ȱD�-B֥֙�D`:G��e�tQ ��7�0���0��������YQ�Ӕ،?�mb�/�eL{8�<� q�{��X4��$s���D@����s�9�����e8��\c(���Y���"�r���7��q6�u- |��B����R���i�x!��9^P�HD�����g�t7K���|��2��"�.�t���V����w�E�u>�b�������f����a?q�h'y'r�y����#\��&�� +o+��Ԫ������|�Y��%��_Hp���"����k��1��*ɫ���U[��&x�9�xA��s�mf�e��<�_����7�;y�6m���i � +:�[��)�EB���7�̰����8f��CH��`⾿�h�)�����}�(�%m���'��&��� ;��(�ݚ!�{:^����R��@���N���Kү"�*�<�V�敡�=��o�h~q���+`6I��i�I<#�����Z=^IE\`�0]1����%�D��A��^�a0f��,���c %[�Gxh8��4^�/������rdh9�����M7L)-�ӂ-���?K(����stբ�h-?�:��[ڧC�r�]�G�(�YB�3�|�C| l�eXW��_�x�V8Ɗ�b����bQ����7�����V�4J�]������l!��=� D?��'a`^����a�q��8���:-��O��YP��x�ۀ���֝��X�5Q�"�Gִ����W}��� +���I>ȓ<�c��b�YV +6=��*��ۿ�-\��įi|��BH���J_F�Wx�CWғ�_��K�`B]J��"}�`�_R��β��&nDsp����t%G-�^���V�����yIc�b�9.hM�u����K��ĭ��6T���6��5Ko(� +%Hz߲�:.��n�z�ōO�>���c��lpVZM_gڰ�C�v��eG{�����<_d�����0e���N�%N�y�ƍ����Ȅp��~�Ú�/���k�������n��������|��(G������#.�s��9�J�ۇ��l���[��6�ɻ�&�.X���{�����SDf��<����y?O�~��ƅDP���*~b���gco��s{;�����'�Z9�Z��.��O�孁���e��U�~?�Ӆ1N�3��ڶD�(��1Gx�x�k�S�H�I~ی?O��������k���,��i�(���ׁۈ�{.�h�_���5�؋�nF�7��0Q���O����S5�:�'����/��ա���J�r���� �.���KN�wu�e��r>n��-�U�$U`I�v%�����.A�U����e�d�� +��;�Ә:�+�a&�XĎ �y������������������G�с��� ��"��4��pxh8��4^��� @d6�((�Ԕ{�C::[�>�H, +�ɴNVN����hr.�~N������Z��`�3����K��Q�|$�%�t��!�Vn%�=�*�7����f��g(�m!fy���"�k�I6Y�/�eZ�ٳ���+���z�g�6W8ɦbQ%�y�{9����Ï�*ŕ�#��7��b-t��X�͕8y��nO�{]�!ټ�*���\� �(��p�2.�H�ٙ�d�.�^Z�(N���&�l�2�&k� �U&ף���#~�.���7������6���58A7����}P:��BlkU�[�8�)�j�w0�$��W� ��!s\�������QF�n(qRK��:'�X���@����=$��x����|�5:��@��]���2�S�i�.�&�� +��$` +8�t�����S =�&[#�߫��U3���Wҳq��^H{���➇�Z���4������"��A��H��#����U��0�+̱�1�Ɏ�;����O9���"�D�E �C+n�U:�|a��ɔ�M|�?H������W1�$~=�k��U�џ���V������V�����l{���7� �����^�;<�,�t[������T"��3SU9l��˾�H���x^�&�a�@���)�E��&�<<B4�(b����p������Ƶ\˫\�u��f�����7r����������^��Ci�[��.��h���_�^��mD�"DD�_3��e�������e��X� �,�B@�fU���/�?���g���B�R���C�&��2���P�8��@3ZtS��<����v7�^#�另�;c'�Nȹ����6�g[�J!Az^ ?�<̯�oɛ�_s[Kg{(e�}�E�~J��,�m<<�����U���g +"&B%��7�~�{��/� G�l��4^�����j�����Ԓt���cA��0\(�����ܓ�Ԡ�Q�8��YN�Bݝ�?[���R��$�k���\�{�u���~�Q���q�)�8���z:G�G��UK�:� 07��6�-�� +WMY<����� ��2�Ѱ��$5�&v�}%��8�)#9&)/��K^2�+��B̳�i���\Ҥ����V�}�LD���1/i��n�]2č��>��I?U�7x���G�4�c�*�i�� +�5)�ñ>�wH�����f5[q���O�.���d&J_�~W\`G{� |-���e/���Чk��d� E�����(���N�i�v=����C`�̲�Z���+���%m +)s�!ī�6Fei�N��%���O*㪞v,s��@��%����4���tS/<E�%��0wr��k{ʉ2b�6ɻ��*���;�����zs�]�,�B��!,ų�uM�zȐ"��={����O���E����۴��w80���ۙ��%�\PL���� +��H�[/� ����@������G����9��A�Pi�G +ѫ+!��'��^��u'þ��:�Z�@�LxZ�:�Ɩ����oQA_�RR�`��E��,���~�]M�y_��xD�$��&J�B�k�Q�@����3����=�A_��هA`��RN�#�"��tX��孋�0Z죡�Ԭa�t����R��Mi�C-�k��r�a�fH4@�C��ܓ���-��`$�~����Ul�$^�Ufr)�0�*-C�n9W-��@M�1��a���@7�g!�7 +?̣|�l�R��/ᭁytX5��L݇��p�����@������pxh8�`:{�1����J��5��#;���ǾD"�-��s�ct�Ln3�<D��B���d1w]���=4H�α�'�!���r�+t��d����eG���{h @�.���k�q���v�e�5V�h.0�©|U������ +��C��u����k��G���O��C��Y� �"@�E�"mNzP�S,��1����rzk�M}������y�.�{+j{���xL��wE^DPk�$�3�cA�Y�~Y��� +�/�C�H�F�����<m�47Ṟ�Q�3��Wa�o�~o�)�C�d݇��E�ƀl7�(̢b��s��ڸ���<<�Fx�~?@��m ����@������v@]��<����=���~��WD�`��.��f���~�o��ʈ�n�VA{_��ե�M����� �^��y��M�Q|��ߟ^-{�~��>������Ѓ +��(��g��X���7��i��&�X +5WJ"�*V���J6s{��I��w�oO_��5~���YX�w(�R��!��m���)^�'��D������ɸ�����5�=�@��+���~���j��yQ`O�`�$�D��<B�F0C<�^%�@��?t�k3�}�@����{�^��y��U��|���pS�nĦ�t���e��=���$�v��>`����H_�B���T#%].Xx��D�ѫ�OR��2�E���\K"��R\T|��:m�O��� +�x��*y =���2��~����/?J,����+%q� �W�ޛ���3������?ܕ�?������� �^���e������ +R����oҎ�5س�~�o����Bo l8��4^�/� ����@�!��/ON�G�����ۮ2t]��С8�cݮ5�z=7���������ˮ���g���@�/�aE[��y#�3�#z��7L�.|�� +��(cR�c�S��m�Q�$�6�ץ{D���a�{T�_j8��4^�/� ����@ñ`�/����_g�"d���`�ɾ����0� ���{����� �����C�j����_9��jD�Ջa�~?� dc�[�����0�*a���������,�& 0��&�+���O�B4!��1��~��Ix����>�8�c��&�G)�j���I������=@�5@�v�&J?��Q��l�Ç@��Q�����?��^�������%tEXtdate:create�2016-07-13T10:21:59+00:00�����%tEXtdate:modify�2016-07-13T09:26:54+00:00�͠���tEXtSoftware�Adobe ImageReadyq�e<����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-icons_888888_256x240.png b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-icons_888888_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..ee5e33f27235d1b5cf0259f63f3894a6be33c679 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-icons_888888_256x240.png @@ -0,0 +1,35 @@ +�PNG + +��� IHDR����������E�r@���bKGD��I�( ��� pHYs���H���H�F�k>��tIDATx��{le�}�?g� k�u��J�>D�C�^�Q���M��H��*MU�� h�(*$H���R�*j� �D�]����)Ż(M6��F�6!6�- �xI���i�-�� HN�8��s�uι���g������f����7��3����ƣ��7�x^�/�2&�v&v^�DL� l6I�-��o?��cn��D Iy�e�#d0+�0�3��~������0�g'L�V���[��R�C:B�~(��)$q�vXu�B@��E@`H�NG���`TA�%=]�qAw��J)��u)�9�:e9d`V��0�A{�=��BS*�ڦ�S��gFA��-(D���R˷@�"����g'�U�,eSwʿ���j���*�)l[����.HLyϰ��9�����j�a�I6��MR~��~�nG�ٕ�3� ����@������pxh8��4~=@>���(��mE��3a\`~��=u����Q�����[�f3W��A���i��oK}3wէ�gV�����,j���n2��*ߕ���m��M��] y=��xn"�co�.�L"��7]��EC�:dHz�E@W�.�f+^�eƦ6vռE4��O���`��̴�.�)l�:��7����){�_Я��~"����pxh8��4^�/� ����/�#�\@��S��^�T�0sZs1�J�1�Pr��h�w�V��E�g���S��T��Q5�[ \B���O +`+�˾>}����\�6��/0��k�g���1[ �Kh��l�Xʿ��_�Z�^IA���^�N�4v���OW=%i^�<��9��t�f �2����С��B�Hg�6����!u�\ҭZ�&蒶� +�2����s ���U�]��i�T����� ��]�Uaq;]�A �:�rG-3�<F�n��*�ݴ�T�ݯ 4<;���������@������pxh8��4^�ysh�,ux��$\j��"Z-�mo��SJ��9���{� +���e˹[ �\�fָ�ұ��y�2LT��0�K@�9Լ��Ţ=���?Х��B���=c"��v�T�6 Tokza���9T����s&�6��ո���v�� }3�':��[�5�)�,�xU!��҃@}�����U� �kc�� +ꈡ����Y,]��`&߬('�u*�^�v ��O�wu�?}2�&�C����Ȗr�}ݾ^g�[`��y�c*�9s�"���f_��b�� +uuT?�M���f� + +e���ۏ�0e�vb�c�J��E�M%�6���Po��l�M`n�~Esչd�j|���z��)miOq/{�ک��Jq���A�G������pxh8��4^���a��+ ����ʥ�5�݃F�����+��Y�&{�˾����I� �z��\e�X�����oJ}Hȯ�iW��)~�n��m߮ɞh�����l*7TP3k���XJ7R"�����"NX�U�}ٔއA���/(qW�\���v6�$2� ��-���˶Ezd��j��0u]PT{�[�:>>�L�DkZ�Y���ֺ�14�ZC�WU���b�d�12zB���Y�$i".�~A�i=�������۪>���E��AI�b�\Ϋ������� +c6��O�SB\��ɅJ#"�RE�Ȱ_'��I.��aluI�������� ��YX^�/� ����@����=h��$i3��7[��d:Qu!Ztw�Ul�~F��Ż�b�k�K"$-c��.�3���@��,�y�;i�-�JӉR�H���!���ɷjN��;��L�dw�Ed�p��� fO�,�j�T�q��������+ +�h[@Vef��6KV����x��\�b���|���l}_��$U+�W!��?o[�����y�B(�p3 ��r_�5P�2ݚ�la�˱*�x��GXG$�`�W~9?�r+���y�-k��d����.�@ <]�����#<R�y0/��99����T�����^w� ����.�?0�ꠁ{�]0j"<�v�g��Qxh8��4^���$�S�L��@�����oԆ�5 �l\q+�VN�!��߆���j��L�b-����=UK<��׳�6��R���?S�j����b�s�'�\ +>U��\Z,��W�����4Ig��9��L�1�sa��R���O�^�.�P����(�>�K��\�c�6m^�um ��Ql��g�"�y[ө�D�/����[V�*3谨��X�m�@[�q�X#r,a��5� kLK"0���(����q��A�O�VP��U j�(�iJ��l�Wq����l�i�����x�S�� T!s��XD@����s�9�k����y8��\a���Y���"�r������v֗u- ��v!���H�� ��� �4�<��@��(B$"Pd�V�Z��5Ɯ�� �ߦ�����s0k��B�5h$��=�dpϪ�_�@0+�������4@"h�O�t���c�ky5�v��z�K����\��1@ޒZ��]��B�_.܋ؿ�!���I��Xd��WpW0�Z%y9�s9�jaK���0��h�sN��,�lU�����X!����h�f!�2.)��0����� 6�B|Iq/�Ӽ��0�jD��F[,�5� !m`�-�������$�J~1w�WQ�J�D#"YO�� �6hV�Q��5C��t��/���7 �8�-*�"����_E�U�y0�x�+Cxg�h|����+`6H��i�A|]�����Z=^JE\`20 +�~]���f 5X��`?S�0��Q^��?J�1�%[�Gxh8��4^�/�{��S�"��rؘ���ɛn�RZԧ[v�-�P����O��I'�Z~t�t����O�N�z����q����g����آ�4��X�����ԃ,s�e���q�9 ,2�)�^���Ķ/�����(��rS?�=<��B|W{|�&~�OO������� +�t�q���uZt�E��A��)n��7 �;O&-��+��D쏬iEcG����F� ?�c|�Ǹ��54�:�,lz��O�l �7s��'~C���%B�f�2:`��ě�T��T��bjn� +F�E���,�,p�n��F4'өkLWr�"�P[oa��o��s��k�qNkҭ����\��n��������.�Y�xS�V(A�����q��t+/ԫ-�u�p0w�-z��4��ƴaY�=zt���n��g~��2�7Y,,耄��L d�=|�|�|Y�p�z��?2�\���f�˼���\~'f�{�[j,� >#���(�9�a:��,��وK� �x�R��. ��B%�f6����n�ϻV����/Σ������� %O��+|���!��I��6���3�e��HW����O�� vXIK�O�rZ�8���g�g8=C��2�9Ǫ[�P��B'���rAmK"zʻ�!���� +���m���6�뱾�3����y5����ܓ��"�[�< �J��sϏ��U9Z^��8_�fD!Zq��_\���- ��-`<uQS,�y�����b�]z@h`�*�*GZ������>���)����D�g��鲔��i�qIb.JXT���bj�k�$��M��1^�K6�<��˿�9��C_��fr��E���M~���8]�T�xX��u5�_<���t_0PA����@������p4O�"�qGA餦������v�GbQ���p�rz���E��3��3�U �6����+��$�q?�W +1���X�K<�8� ���[����sC!��}E~5C~=C�n1[x�LO +��g�U�X���=�����̪�y�hs��l(&U�'/qg��v�|�^�8Sx(��o(�B�x�e�\�ӑ�����ľ�U��s���:�҅ͅ2k +W�!�B�Ԝ�i� V���EO�f�X6�g�A5�kOد2���jS���6ۼ�[J���S��j����Q��:(����Z���0Ne +�Z�]L2�$����4@��8�B,���,�Nj(�t'�8.��JC�L�K�U���i��5�#�Xx�#|�U:��@��m��??d,^q5�L!��]�Mr��I4�pZ��;��>�g@��M�F�K�)(�}�f��U�.�{���]��~5��5������>�"����$c�����+�ן�?��Q���c�# +�mK-6�)࿁���_�Y�n��G+��:�|a������"�~ϯ��ٯb�q�~=�+���,j�?�M��y +9"�y��D���ʍn��g����6-z<�,+tK�����xW"�����'l��˾�H��[yJ�&�a�@�~/�9�"�a�%�$iѣ���6.S����8ظ�+y�+�*�o�jo�mp-���k��1 �u����%�=�����-�"� +���4wq�-��Ր�E���K +�|�Uf�G�� +-���Ua]X�r���x.�\���˅h�:"����LF�dF���5p���f�覊�)n�Yͣ�n��Fh� 1{�'��\���<ϫlik)$H�䇙�5��%y��kni�b ��/���O����E���OjZ�<�,�b�������P ���p�+�@��<[��/� ���#/��Z�wp6�$�5�D��E����� +���|6w�^>7��{ԇ�Nĭ��Pw���f�>��k�7�/��c͗=��cM��ﴯ߁A�E`�q��:N*��N��Q����b�UG�`��ʟ�Ƴ���Cᨉ"��5�w5�.��&�v;����.ܱ��7e$�$��y�K�YE<[�y�8����M +n�m%�U�4@��[��&����EC�(�.�/���b���C��>Z�1�_P�O�^�;�Ф������!�N��wc��l�^���]`C1�L�����8GO{� <��fpY�8���:�X�! ��W�Z���Vc��ʺ��b���+����_ݖ�fp9U�4��u +*��QD�I�3cv�1e\�ݎe�(ֲ$��ؿ��.�]��z�)�/�>�>.|mO9Q��HN �P��{����;�=�YJ���7'�[��ɂ-����b< +Xӌ���2��@}�Pw�������aŨ�M� lqG{R�\p��Dx�s��T3�X�ؓ�����@������pxh8���ѱx��e l TZ�B��H�a�e�c��t*ZHF��b52�iiS�[:�DH�S +�))%��_rp�S���eUӮ@��*I�3�*�C� +3��=���&�&5�CB���`����Ê�,o]���~����]3�t�������ح�jXe�x����0CTA3y �5�{�t����!k@Q�V+Vr�� +3�e!�̰Bː�ۓ��O�A���� # ���U4V��D�ч�D����*Oݕ���<:�Xl��Bxh8�L`������pxh8��4y0������J��k5��#;��ǮD"�-�鞺#t�Ln3ã|��Áysɩ�q�v��A2t�>�}�<���Jw�Z,ӱ:�-�*���%��A$�-�lp�I�d���5�S/���BGs�iN�z,v�~�79P�r5�q��p]MM�O?�m���~"g�ǀ�����9VhAmn`��0G�)�����ԧ_ԇ��U������W�1}�3�y A�����p��;d��U���>X����J��x��<mV5'Ṟ�a�0�Wa��s��w��A2�����<w�F}b@�`fQ���=�{Ɂ�h�����s<���5P�ŏ�.�_�px[@������pxh82��P�~���G�Mt��M���-�v@]���ܠ�.߰� �����~��K�9�4}��6��. ��/n�:��&"O�'�"�'G�SH��;U�k�A��'��U峕_������4]|]̅�+%�w~�tUFD�w_���/}�����e��7��%~�B*E�����K�����e�U�پ^̀����Y��`]�����2���Y���O�ޯF��g��E���OB�O���Z5��v�*)���*�C��63ه ��(��/�w0��zP_���WL�� +7��AlJ���(�� ��p�� ,���Y����j�c�����w�(6z��I�V�?+�_�Ԓ�༔���D��O+��9�7��Q���*y =���2��|���/?J,����+%q�{�^�?�@�r_O�ץ������^��c�A�o����.�J��㻏�,K��ҟ��E;��7|B`�N�]�a�+�/i8�5����pxh8��4^�/� �hr?<}4� [��o���u�#�bP�u���\���������l�{l��V��{h��102p�1#=�СG�y�����/��(�b0V!9�9�z��&@%!m�]���A��ju�G�����@������pxh8��4�W�&��P? @�y��)B��� 6��S�Y�&�ϰak�����ͽ�Y�6��pakݞ�}���(|�!,���W/� ���/��A�lj�֮�x�)T��I#}ˏ�Y�L`2eM�)��� +w�B4!��1����FIx���>�8�c��&�G)�j���I������}@�5��V�&J?�� Y�����!�\=jb��<�����h�jo���%tEXtdate:create�2016-07-13T10:21:59+00:00�����%tEXtdate:modify�2016-07-13T09:26:54+00:00�͠���tEXtSoftware�Adobe ImageReadyq�e<����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-icons_cd0a0a_256x240.png b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..7e8ebc180a2d2a74739059799407b8b7b57a9092 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/images/ui-icons_cd0a0a_256x240.png @@ -0,0 +1,198 @@ +�PNG + +��� IHDR�����������IJ���PLTE� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +4�v����YtRNS�3P���/"Uq@f`2� !<BHK Z#'1S,�4���j���8E���|��������)��Q$� +��b�J��mߜGc?o�h�@^����bKGD��H��� pHYs���H���H�F�k>��dIDATx��]c۶�H�阒]�K���d��%٫뺮��lm���w]����|�p��X�m�-��}<�w�(1$�� ;�F�@��%��?����B,Lh{�t���#���T@�/?j�9 m��N� #���+`��`����I� +��_�-s�ʹU0�M��[�� +s�4`x���#�� �D<�~�K��.4�]`��PDDDDDDĈq������Ek@����A�~�*��� !Y���X�`hv3\LX��Ot�J2b���ؓl�QI<��� �6�-X�lֈ�6�H��|=j�`E�iq����Cv:�q���C?�?���x�,��r*t�ݻ}|;�kP�4���d�Y����f����K��~[ >�X:+�i����ĆQV9\����e�'���A�tOS�:7��2����YsxM�ہ��B���&���z�>n�C��@��r@��*�a�ӝ���%��MFDDDDDD�T�ߖ���H,���E����RU��n ب<��V- @�/Nm�թ���������Hw����*�+��#��$o�e�{�% �7\X��ǀ���2��~0��&n��sbA,�D�� �A�V�I��|� �Og���鴋� �7�y 7Jf�����:_�w^��H v{/O�9���<����Y�`+�� HRٰ����[��?�� +������=���c""""""F�˽�sG�<*k9c��E�8薽�������zfm��r�1�N�������nq�w��&=O�\}K` +#���2��~��L�|?�m>�\�f���:}�4ᦋ���{�)�n[�� +�̰E +KY��D�ۇ-�� �+�Kl=�Ӄ��L`љ�|�%��n� a� ���N�#��5� (4���?�����EDDDD\o�W�Ffq;��\E��_������,���W!%�zE!F�¶.�(USHQ0d�w)T���8#p,�x�B��K���� �*�x��X��E�e������ +K솎%mK��X~s�FE���~������tdc��a��I���1��Af4��dH��c�G�S�B`��0�wev`����"�{�� �.�GDDDD�,d�O�6�k"qk��Me�fS_����U��KŌ&g~>n� �H�})��L���F%8(�)r���!�[4统qQk�0�m[Le���_�7���0�@>1 X0A��Z����Vc�E�V ���Lt�k�3�EJ��44�Zﮊ�N`rt�>`�˥� � � A��HBLH�@��c���Uq=�j������cM����2�s����J���CL�iR �NQ���������0=���Yi�-�|4�V��]��]��B^�ޞ���_H������$�<�$� +a����=��d@� (Z�Ap_�}�~s���:�N�{DC>����m�^������S�&�, ;�N����&�B} ��<_A��B]H�u���N(B�0��{h���1�IK����Ds��j����'��M���8�.�ӫ1�h3�df}mq��� ��n�U{��L�o��z\=?@ ((���e�|=ơ麄�C�i����1r<|�OO�;� `��H��p�Qy�zԈu�����Z���V���Ʋ�!�)��5m�C���2��Ly�g�;���֑�R���jW�a@��@V�L�&W���ru=Z +�̥��=U���5}���������7�;b(�����nP&�s��k�4�����8�ͥ��0���1�U�W�v�k�18dq���T��ՌE]qH8�������G�F�����K�����'��r����Or���r�̧��6"fp��T�^3c��"�����n��Mم-�/��W=�tJ,��X�)���{�P Rm|K����>mX�8v�5h��<������_{ꘀ�Y�F�|&_G;&�>^�����W⁃�&�K���(��81�EB@F&��;"L���'wfw��E-6��o&/̫'X�e,>~�ee��|���A����=) d��Q�`}P[���K��N��˂����/�~)����O[d�O=�3E�l5'Y�$?��7�m���Tzզ.�\��.��` WE�����"""""v�)��V���<���K�ZX.Ex�~Ч)���ߚ�����W_}�5|��s��/!?����'poդ���tC3����@�Q�)��t��`���b!,dY9�6A2����������/튮���n�t�TK>����#]�L;zq�J���r���²[��\-t�ҽ�5 @�ͷϟ��n�T@��+;��c���Qh�C*���T�ڙ��A<Sku�µb�E� /��$�Z���.e�j������_ʤrWaB6d���(��S�s[�|���竕 +/5R���(�4X������76����`3|���P��p�'�H~<R?M�2�)� ��g��Vp��B�n�=�|W�ͬ\��V0_�81Oׄ�Kz||lP_��ω���lxX;ǀ�Ju�<��Ng[��]=�(�#]������p�P�a���i�������s�f�� +V�z��]ౚ������z>�Vr�?�f��?������ �Q�1�T`��} H�k���,{�VZˋT��ϛ�?I̯u�QK�LM�e͆��~��q������y�m0�9�S�;���j�����5 ���i��Q��]7k0�U�ޭ���G�kX����3#���lY��_Цx����j9��`�# +M [z��KuO_z˿Dܭ��*��kOJ�(7��n��\�e� I�T�ƨ�l�/�U������߶uw�.�~���;#�r���.�����8 �o# 5L��h>1�i�����p��V�M�?�/u7��0� X@��L��+M�+�����{��Fkt�{�ŧ89�0`���. ĀC�R+\��/��t�R����; �TӲ���]�aL���|�efđ�� �>�ۣ��G�|�P`P��8C1K՛�A�̍<�2��ۂ��K�r�l@L +L��������8�@�E>`n�����PNԍ,��p�����E��Ɔ����Z�FlÎ;�����F���7��Ȯ;�� +��s�wSz)g7�{r�s��S��gȋ��(߄~�AWytX��$�NV����R�_��<6�p.�O�8�O[�OdDk>_��O�O�}����JS���d��mV�?�W(_��m� ��j���~=H IԁF>T/��{*]IGJ@i����qam�NF|Q�5���0+���E�S8�:�v�`p~v���j:B�����p96�o��ys%�������� �|@H�����]��+�@��t]W�k}}�����7��Fʮr����A�����B���\m�-�_�2PY8�������x�ՎN�.h�~���@+7��z5������t�_/������/�?���0�S>��)���z�i0n�/�B����`{D��W���#`����B��o���[,�g��FVЁ�pP߾���C]Bz�� ��,X�����X�fԃ����A�:H��� k�7��d�Z9��oc}o�]�0�vd�:R]�0�ve���]刈����j����у����| �?�+(��OǍ�+ �#��ys���ߍ�n�p���Fru<��.HȺotM��3h���}��߆P}�������˗��v�����P�}mǀ���?���W��Z@���������}���������@��@���FD�������l����%tEXtdate:create�2016-07-13T10:21:59+00:00�����%tEXtdate:modify�2016-07-13T09:26:54+00:00�͠���tEXtSoftware�Adobe ImageReadyq�e<����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/jquery-ui.min.css b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/jquery-ui.min.css new file mode 100644 index 0000000000000000000000000000000000000000..b3fe46344d7b1b0e8452e071be22972c2dd7e18b --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/css/uitheme1.12.1/jquery-ui.min.css @@ -0,0 +1,7 @@ +/*! jQuery UI - v1.12.1 - 2019-05-26 +* http://jqueryui.com +* Includes: core.css, tabs.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=smoothness&cornerRadiusShadow=8px&offsetLeftShadow=-8px&offsetTopShadow=-8px&thicknessShadow=8px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=aaaaaa&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cd0a0a&fcError=cd0a0a&borderColorError=cd0a0a&bgImgOpacityError=95&bgTextureError=glass&bgColorError=fef1ec&iconColorHighlight=2e83ff&fcHighlight=363636&borderColorHighlight=fcefa1&bgImgOpacityHighlight=55&bgTextureHighlight=glass&bgColorHighlight=fbf9ee&iconColorActive=454545&fcActive=212121&borderColorActive=aaaaaa&bgImgOpacityActive=65&bgTextureActive=glass&bgColorActive=ffffff&iconColorHover=454545&fcHover=212121&borderColorHover=999999&bgImgOpacityHover=75&bgTextureHover=glass&bgColorHover=dadada&iconColorDefault=888888&fcDefault=555555&borderColorDefault=d3d3d3&bgImgOpacityDefault=75&bgTextureDefault=glass&bgColorDefault=e6e6e6&iconColorContent=222222&fcContent=222222&borderColorContent=aaaaaa&bgImgOpacityContent=75&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=222222&fcHeader=222222&borderColorHeader=aaaaaa&bgImgOpacityHeader=75&bgTextureHeader=highlight_soft&bgColorHeader=cccccc&cornerRadius=4px&fsDefault=1.1em&fwDefault=normal&ffDefault=Verdana%2CArial%2Csans-serif +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #d3d3d3}.ui-widget-content{border:1px solid #aaa;background:#fff;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#212121;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-icon-background,.ui-state-active .ui-icon-background{border:#aaa;background-color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-checked{border:1px solid #fcefa1;background:#fbf9ee}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:-8px -8px 8px #aaa;box-shadow:-8px -8px 8px #aaa} \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/js/jquery-1.12.4.min.js b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/js/jquery-1.12.4.min.js new file mode 100644 index 0000000000000000000000000000000000000000..e836475870da67f3c72f64777c6e0f37d9f4c87b --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/js/jquery-1.12.4.min.js @@ -0,0 +1,5 @@ +/*! jQuery v1.12.4 | (c) jQuery Foundation | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="1.12.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(!l.ownFirst)for(b in a)return k.call(a,b);for(b in a);return void 0===b||k.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(h)return h.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=e.call(arguments,2),d=function(){return a.apply(b||this,c.concat(e.call(arguments)))},d.guid=a.guid=a.guid||n.guid++,d):void 0},now:function(){return+new Date},support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=la(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=ma(b);function pa(){}pa.prototype=d.filters=d.pseudos,d.setFilters=new pa,g=fa.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=R.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=S.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(Q," ")}),h=h.slice(c.length));for(g in d.filter)!(e=W[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fa.error(a):z(a,i).slice(0)};function qa(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}if(f=d.getElementById(e[2]),f&&f.parentNode){if(f.id!==e[2])return A.find(a);this.length=1,this[0]=f}return this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||(e=n.uniqueSort(e)),D.test(a)&&(e=e.reverse())),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){n.each(b,function(b,c){n.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==n.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return n.each(arguments,function(a,b){var c;while((c=n.inArray(b,f,c))>-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=!0,c||j.disable(),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.addEventListener?(d.removeEventListener("DOMContentLoaded",K),a.removeEventListener("load",K)):(d.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(d.addEventListener||"load"===a.event.type||"complete"===d.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll)a.setTimeout(n.ready);else if(d.addEventListener)d.addEventListener("DOMContentLoaded",K),a.addEventListener("load",K);else{d.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&d.documentElement}catch(e){}c&&c.doScroll&&!function f(){if(!n.isReady){try{c.doScroll("left")}catch(b){return a.setTimeout(f,50)}J(),n.ready()}}()}return I.promise(b)},n.ready.promise();var L;for(L in n(l))break;l.ownFirst="0"===L,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c,e;c=d.getElementsByTagName("body")[0],c&&c.style&&(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",l.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(e))}),function(){var a=d.createElement("div");l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}a=null}();var M=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b},N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0; +}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(M(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),"object"!=typeof b&&"function"!=typeof b||(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f}}function S(a,b,c){if(M(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=void 0)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=n._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}}),function(){var a;l.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,e;return c=d.getElementsByTagName("body")[0],c&&c.style?(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(d.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(e),a):void 0}}();var T=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,U=new RegExp("^(?:([+-])=|)("+T+")([a-z%]*)$","i"),V=["Top","Right","Bottom","Left"],W=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)};function X(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return n.css(a,b,"")},i=h(),j=c&&c[3]||(n.cssNumber[b]?"":"px"),k=(n.cssNumber[b]||"px"!==j&&+i)&&U.exec(n.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,n.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var Y=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)Y(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},Z=/^(?:checkbox|radio)$/i,$=/<([\w:-]+)/,_=/^$|\/(?:java|ecma)script/i,aa=/^\s+/,ba="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";function ca(a){var b=ba.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}!function(){var a=d.createElement("div"),b=d.createDocumentFragment(),c=d.createElement("input");a.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",l.leadingWhitespace=3===a.firstChild.nodeType,l.tbody=!a.getElementsByTagName("tbody").length,l.htmlSerialize=!!a.getElementsByTagName("link").length,l.html5Clone="<:nav></:nav>"!==d.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,b.appendChild(c),l.appendChecked=c.checked,a.innerHTML="<textarea>x</textarea>",l.noCloneChecked=!!a.cloneNode(!0).lastChild.defaultValue,b.appendChild(a),c=d.createElement("input"),c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),a.appendChild(c),l.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!!a.addEventListener,a[n.expando]=1,l.attributes=!a.getAttribute(n.expando)}();var da={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:l.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]};da.optgroup=da.option,da.tbody=da.tfoot=da.colgroup=da.caption=da.thead,da.th=da.td;function ea(a,b){var c,d,e=0,f="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,ea(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function fa(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}var ga=/<|&#?\w+;/,ha=/<tbody/i;function ia(a){Z.test(a.type)&&(a.defaultChecked=a.checked)}function ja(a,b,c,d,e){for(var f,g,h,i,j,k,m,o=a.length,p=ca(b),q=[],r=0;o>r;r++)if(g=a[r],g||0===g)if("object"===n.type(g))n.merge(q,g.nodeType?[g]:g);else if(ga.test(g)){i=i||p.appendChild(b.createElement("div")),j=($.exec(g)||["",""])[1].toLowerCase(),m=da[j]||da._default,i.innerHTML=m[1]+n.htmlPrefilter(g)+m[2],f=m[0];while(f--)i=i.lastChild;if(!l.leadingWhitespace&&aa.test(g)&&q.push(b.createTextNode(aa.exec(g)[0])),!l.tbody){g="table"!==j||ha.test(g)?"<table>"!==m[1]||ha.test(g)?0:i:i.firstChild,f=g&&g.childNodes.length;while(f--)n.nodeName(k=g.childNodes[f],"tbody")&&!k.childNodes.length&&g.removeChild(k)}n.merge(q,i.childNodes),i.textContent="";while(i.firstChild)i.removeChild(i.firstChild);i=p.lastChild}else q.push(b.createTextNode(g));i&&p.removeChild(i),l.appendChecked||n.grep(ea(q,"input"),ia),r=0;while(g=q[r++])if(d&&n.inArray(g,d)>-1)e&&e.push(g);else if(h=n.contains(g.ownerDocument,g),i=ea(p.appendChild(g),"script"),h&&fa(i),c){f=0;while(g=i[f++])_.test(g.type||"")&&c.push(g)}return i=null,p}!function(){var b,c,e=d.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b]=c in a)||(e.setAttribute(c,"t"),l[b]=e.attributes[c].expando===!1);e=null}();var ka=/^(?:input|select|textarea)$/i,la=/^key/,ma=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,na=/^(?:focusinfocus|focusoutblur)$/,oa=/^([^.]*)(?:\.(.+)|)/;function pa(){return!0}function qa(){return!1}function ra(){try{return d.activeElement}catch(a){}}function sa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)sa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=qa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return"undefined"==typeof n||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(G)||[""],h=b.length;while(h--)f=oa.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=oa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,e,f){var g,h,i,j,l,m,o,p=[e||d],q=k.call(b,"type")?b.type:b,r=k.call(b,"namespace")?b.namespace.split("."):[];if(i=m=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!na.test(q+n.event.triggered)&&(q.indexOf(".")>-1&&(r=q.split("."),q=r.shift(),r.sort()),h=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=r.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:n.makeArray(c,[b]),l=n.event.special[q]||{},f||!l.trigger||l.trigger.apply(e,c)!==!1)){if(!f&&!l.noBubble&&!n.isWindow(e)){for(j=l.delegateType||q,na.test(j+q)||(i=i.parentNode);i;i=i.parentNode)p.push(i),m=i;m===(e.ownerDocument||d)&&p.push(m.defaultView||m.parentWindow||a)}o=0;while((i=p[o++])&&!b.isPropagationStopped())b.type=o>1?j:l.bindType||q,g=(n._data(i,"events")||{})[b.type]&&n._data(i,"handle"),g&&g.apply(i,c),g=h&&i[h],g&&g.apply&&M(i)&&(b.result=g.apply(i,c),b.result===!1&&b.preventDefault());if(b.type=q,!f&&!b.isDefaultPrevented()&&(!l._default||l._default.apply(p.pop(),c)===!1)&&M(e)&&h&&e[q]&&!n.isWindow(e)){m=e[h],m&&(e[h]=null),n.event.triggered=q;try{e[q]()}catch(s){}n.event.triggered=void 0,m&&(e[h]=m)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[n.expando])return a;var b,c,e,f=a.type,g=a,h=this.fixHooks[f];h||(this.fixHooks[f]=h=ma.test(f)?this.mouseHooks:la.test(f)?this.keyHooks:{}),e=h.props?this.props.concat(h.props):this.props,a=new n.Event(g),b=e.length;while(b--)c=e[b],a[c]=g[c];return a.target||(a.target=g.srcElement||d),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,h.filter?h.filter(a,g):a},props:"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,e,f,g=b.button,h=b.fromElement;return null==a.pageX&&null!=b.clientX&&(e=a.target.ownerDocument||d,f=e.documentElement,c=e.body,a.pageX=b.clientX+(f&&f.scrollLeft||c&&c.scrollLeft||0)-(f&&f.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(f&&f.scrollTop||c&&c.scrollTop||0)-(f&&f.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&h&&(a.relatedTarget=h===a.target?b.toElement:h),a.which||void 0===g||(a.which=1&g?1:2&g?3:4&g?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==ra()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===ra()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return n.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c){var d=n.extend(new n.Event,c,{type:a,isSimulated:!0});n.event.trigger(d,null,b),d.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=d.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)}:function(a,b,c){var d="on"+b;a.detachEvent&&("undefined"==typeof a[d]&&(a[d]=null),a.detachEvent(d,c))},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?pa:qa):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={constructor:n.Event,isDefaultPrevented:qa,isPropagationStopped:qa,isImmediatePropagationStopped:qa,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=pa,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=pa,a&&!this.isSimulated&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=pa,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||n.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),l.submit||(n.event.special.submit={setup:function(){return n.nodeName(this,"form")?!1:void n.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=n.nodeName(b,"input")||n.nodeName(b,"button")?n.prop(b,"form"):void 0;c&&!n._data(c,"submit")&&(n.event.add(c,"submit._submit",function(a){a._submitBubble=!0}),n._data(c,"submit",!0))})},postDispatch:function(a){a._submitBubble&&(delete a._submitBubble,this.parentNode&&!a.isTrigger&&n.event.simulate("submit",this.parentNode,a))},teardown:function(){return n.nodeName(this,"form")?!1:void n.event.remove(this,"._submit")}}),l.change||(n.event.special.change={setup:function(){return ka.test(this.nodeName)?("checkbox"!==this.type&&"radio"!==this.type||(n.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._justChanged=!0)}),n.event.add(this,"click._change",function(a){this._justChanged&&!a.isTrigger&&(this._justChanged=!1),n.event.simulate("change",this,a)})),!1):void n.event.add(this,"beforeactivate._change",function(a){var b=a.target;ka.test(b.nodeName)&&!n._data(b,"change")&&(n.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||n.event.simulate("change",this.parentNode,a)}),n._data(b,"change",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return n.event.remove(this,"._change"),!ka.test(this.nodeName)}}),l.focusin||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a))};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=n._data(d,b);e||d.addEventListener(a,c,!0),n._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=n._data(d,b)-1;e?n._data(d,b,e):(d.removeEventListener(a,c,!0),n._removeData(d,b))}}}),n.fn.extend({on:function(a,b,c,d){return sa(this,a,b,c,d)},one:function(a,b,c,d){return sa(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=qa),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var ta=/ jQuery\d+="(?:null|\d+)"/g,ua=new RegExp("<(?:"+ba+")[\\s/>]","i"),va=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,wa=/<script|<style|<link/i,xa=/checked\s*(?:[^=]|=\s*.checked.)/i,ya=/^true\/(.*)/,za=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Aa=ca(d),Ba=Aa.appendChild(d.createElement("div"));function Ca(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Da(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function Ea(a){var b=ya.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Ga(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(Da(b).text=a.text,Ea(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&Z.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}}function Ha(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&xa.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(o&&(k=ja(b,a[0].ownerDocument,!1,a,d),e=k.firstChild,1===k.childNodes.length&&(k=e),e||d)){for(i=n.map(ea(k,"script"),Da),h=i.length;o>m;m++)g=k,m!==p&&(g=n.clone(g,!0,!0),h&&n.merge(i,ea(g,"script"))),c.call(a[m],g,m);if(h)for(j=i[i.length-1].ownerDocument,n.map(i,Ea),m=0;h>m;m++)g=i[m],_.test(g.type||"")&&!n._data(g,"globalEval")&&n.contains(j,g)&&(g.src?n._evalUrl&&n._evalUrl(g.src):n.globalEval((g.text||g.textContent||g.innerHTML||"").replace(za,"")));k=e=null}return a}function Ia(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(ea(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&fa(ea(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(va,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!ua.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(Ba.innerHTML=a.outerHTML,Ba.removeChild(f=Ba.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=ea(f),h=ea(a),g=0;null!=(e=h[g]);++g)d[g]&&Ga(e,d[g]);if(b)if(c)for(h=h||ea(a),d=d||ea(f),g=0;null!=(e=h[g]);g++)Fa(e,d[g]);else Fa(a,f);return d=ea(f,"script"),d.length>0&&fa(d,!i&&ea(a,"script")),d=h=e=null,f},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.attributes,m=n.event.special;null!=(d=a[h]);h++)if((b||M(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k||"undefined"==typeof d.removeAttribute?d[i]=void 0:d.removeAttribute(i),c.push(f))}}}),n.fn.extend({domManip:Ha,detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return Y(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||d).createTextNode(a))},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(ea(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return Y(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(ta,""):void 0;if("string"==typeof a&&!wa.test(a)&&(l.htmlSerialize||!ua.test(a))&&(l.leadingWhitespace||!aa.test(a))&&!da[($.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ea(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(ea(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],f=n(a),h=f.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(f[d])[b](c),g.apply(e,c.get());return this.pushStack(e)}});var Ja,Ka={HTML:"block",BODY:"block"};function La(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function Ma(a){var b=d,c=Ka[a];return c||(c=La(a,b),"none"!==c&&c||(Ja=(Ja||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Ja[0].contentWindow||Ja[0].contentDocument).document,b.write(),b.close(),c=La(a,b),Ja.detach()),Ka[a]=c),c}var Na=/^margin/,Oa=new RegExp("^("+T+")(?!px)[a-z%]+$","i"),Pa=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e},Qa=d.documentElement;!function(){var b,c,e,f,g,h,i=d.createElement("div"),j=d.createElement("div");if(j.style){j.style.cssText="float:left;opacity:.5",l.opacity="0.5"===j.style.opacity,l.cssFloat=!!j.style.cssFloat,j.style.backgroundClip="content-box",j.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===j.style.backgroundClip,i=d.createElement("div"),i.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",j.innerHTML="",i.appendChild(j),l.boxSizing=""===j.style.boxSizing||""===j.style.MozBoxSizing||""===j.style.WebkitBoxSizing,n.extend(l,{reliableHiddenOffsets:function(){return null==b&&k(),f},boxSizingReliable:function(){return null==b&&k(),e},pixelMarginRight:function(){return null==b&&k(),c},pixelPosition:function(){return null==b&&k(),b},reliableMarginRight:function(){return null==b&&k(),g},reliableMarginLeft:function(){return null==b&&k(),h}});function k(){var k,l,m=d.documentElement;m.appendChild(i),j.style.cssText="-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",b=e=h=!1,c=g=!0,a.getComputedStyle&&(l=a.getComputedStyle(j),b="1%"!==(l||{}).top,h="2px"===(l||{}).marginLeft,e="4px"===(l||{width:"4px"}).width,j.style.marginRight="50%",c="4px"===(l||{marginRight:"4px"}).marginRight,k=j.appendChild(d.createElement("div")),k.style.cssText=j.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",k.style.marginRight=k.style.width="0",j.style.width="1px",g=!parseFloat((a.getComputedStyle(k)||{}).marginRight),j.removeChild(k)),j.style.display="none",f=0===j.getClientRects().length,f&&(j.style.display="",j.innerHTML="<table><tr><td></td><td>t</td></tr></table>",j.childNodes[0].style.borderCollapse="separate",k=j.getElementsByTagName("td"),k[0].style.cssText="margin:0;border:0;padding:0;display:none",f=0===k[0].offsetHeight,f&&(k[0].style.display="",k[1].style.display="none",f=0===k[0].offsetHeight)),m.removeChild(i)}}}();var Ra,Sa,Ta=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ra=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)},Sa=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ra(a),g=c?c.getPropertyValue(b)||c[b]:void 0,""!==g&&void 0!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),c&&!l.pixelMarginRight()&&Oa.test(g)&&Na.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f),void 0===g?g:g+""}):Qa.currentStyle&&(Ra=function(a){return a.currentStyle},Sa=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ra(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Oa.test(g)&&!Ta.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Ua(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Va=/alpha\([^)]*\)/i,Wa=/opacity\s*=\s*([^)]*)/i,Xa=/^(none|table(?!-c[ea]).+)/,Ya=new RegExp("^("+T+")(.*)$","i"),Za={position:"absolute",visibility:"hidden",display:"block"},$a={letterSpacing:"0",fontWeight:"400"},_a=["Webkit","O","Moz","ms"],ab=d.createElement("div").style;function bb(a){if(a in ab)return a;var b=a.charAt(0).toUpperCase()+a.slice(1),c=_a.length;while(c--)if(a=_a[c]+b,a in ab)return a}function cb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=n._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&W(d)&&(f[g]=n._data(d,"olddisplay",Ma(d.nodeName)))):(e=W(d),(c&&"none"!==c||!e)&&n._data(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function db(a,b,c){var d=Ya.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function eb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+V[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+V[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+V[f]+"Width",!0,e))):(g+=n.css(a,"padding"+V[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+V[f]+"Width",!0,e)));return g}function fb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ra(a),g=l.boxSizing&&"border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Sa(a,b,f),(0>e||null==e)&&(e=a.style[b]),Oa.test(e))return e;d=g&&(l.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+eb(a,b,c||(g?"border":"content"),d,f)+"px"}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Sa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":l.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;if(b=n.cssProps[h]||(n.cssProps[h]=bb(h)||h),g=n.cssHooks[b]||n.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=U.exec(c))&&e[1]&&(c=X(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(n.cssNumber[h]?"":"px")),l.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=bb(h)||h),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Sa(a,b,d)),"normal"===f&&b in $a&&(f=$a[b]),""===c||c?(e=parseFloat(f),c===!0||isFinite(e)?e||0:f):f}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?Xa.test(n.css(a,"display"))&&0===a.offsetWidth?Pa(a,Za,function(){return fb(a,b,d)}):fb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ra(a);return db(a,c,d?eb(a,b,d,l.boxSizing&&"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),l.opacity||(n.cssHooks.opacity={get:function(a,b){return Wa.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=n.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===n.trim(f.replace(Va,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Va.test(f)?f.replace(Va,e):f+" "+e)}}),n.cssHooks.marginRight=Ua(l.reliableMarginRight,function(a,b){return b?Pa(a,{display:"inline-block"},Sa,[a,"marginRight"]):void 0}),n.cssHooks.marginLeft=Ua(l.reliableMarginLeft,function(a,b){return b?(parseFloat(Sa(a,"marginLeft"))||(n.contains(a.ownerDocument,a)?a.getBoundingClientRect().left-Pa(a,{ +marginLeft:0},function(){return a.getBoundingClientRect().left}):0))+"px":void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+V[d]+b]=f[d]||f[d-2]||f[0];return e}},Na.test(a)||(n.cssHooks[a+b].set=db)}),n.fn.extend({css:function(a,b){return Y(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=Ra(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return cb(this,!0)},hide:function(){return cb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){W(this)?n(this).show():n(this).hide()})}});function gb(a,b,c,d,e){return new gb.prototype.init(a,b,c,d,e)}n.Tween=gb,gb.prototype={constructor:gb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||n.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=gb.propHooks[this.prop];return a&&a.get?a.get(this):gb.propHooks._default.get(this)},run:function(a){var b,c=gb.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):gb.propHooks._default.set(this),this}},gb.prototype.init.prototype=gb.prototype,gb.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[n.cssProps[a.prop]]&&!n.cssHooks[a.prop]?a.elem[a.prop]=a.now:n.style(a.elem,a.prop,a.now+a.unit)}}},gb.propHooks.scrollTop=gb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},n.fx=gb.prototype.init,n.fx.step={};var hb,ib,jb=/^(?:toggle|show|hide)$/,kb=/queueHooks$/;function lb(){return a.setTimeout(function(){hb=void 0}),hb=n.now()}function mb(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=V[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function nb(a,b,c){for(var d,e=(qb.tweeners[b]||[]).concat(qb.tweeners["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ob(a,b,c){var d,e,f,g,h,i,j,k,m=this,o={},p=a.style,q=a.nodeType&&W(a),r=n._data(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,m.always(function(){m.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=n.css(a,"display"),k="none"===j?n._data(a,"olddisplay")||Ma(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(l.inlineBlockNeedsLayout&&"inline"!==Ma(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",l.shrinkWrapBlocks()||m.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],jb.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(o))"inline"===("none"===j?Ma(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=n._data(a,"fxshow",{}),f&&(r.hidden=!q),q?n(a).show():m.done(function(){n(a).hide()}),m.done(function(){var b;n._removeData(a,"fxshow");for(b in o)n.style(a,b,o[b])});for(d in o)g=nb(q?r[d]:0,d,m),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function pb(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function qb(a,b,c){var d,e,f=0,g=qb.prefilters.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=hb||lb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{},easing:n.easing._default},c),originalProperties:b,originalOptions:c,startTime:hb||lb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(pb(k,j.opts.specialEasing);g>f;f++)if(d=qb.prefilters[f].call(j,a,k,j.opts))return n.isFunction(d.stop)&&(n._queueHooks(j.elem,j.opts.queue).stop=n.proxy(d.stop,d)),d;return n.map(k,nb,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(qb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return X(c.elem,a,U.exec(b),c),c}]},tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.match(G);for(var c,d=0,e=a.length;e>d;d++)c=a[d],qb.tweeners[c]=qb.tweeners[c]||[],qb.tweeners[c].unshift(b)},prefilters:[ob],prefilter:function(a,b){b?qb.prefilters.unshift(a):qb.prefilters.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(W).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=qb(this,n.extend({},a),f);(e||n._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=n._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&kb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=n._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(mb(b,!0),a,d,e)}}),n.each({slideDown:mb("show"),slideUp:mb("hide"),slideToggle:mb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=n.timers,c=0;for(hb=n.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||n.fx.stop(),hb=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){ib||(ib=a.setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){a.clearInterval(ib),ib=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(b,c){return b=n.fx?n.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a,b=d.createElement("input"),c=d.createElement("div"),e=d.createElement("select"),f=e.appendChild(d.createElement("option"));c=d.createElement("div"),c.setAttribute("className","t"),c.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=c.getElementsByTagName("a")[0],b.setAttribute("type","checkbox"),c.appendChild(b),a=c.getElementsByTagName("a")[0],a.style.cssText="top:1px",l.getSetAttribute="t"!==c.className,l.style=/top/.test(a.getAttribute("style")),l.hrefNormalized="/a"===a.getAttribute("href"),l.checkOn=!!b.value,l.optSelected=f.selected,l.enctype=!!d.createElement("form").enctype,e.disabled=!0,l.optDisabled=!f.disabled,b=d.createElement("input"),b.setAttribute("value",""),l.input=""===b.getAttribute("value"),b.value="t",b.setAttribute("type","radio"),l.radioValue="t"===b.value}();var rb=/\r/g,sb=/[\x20\t\r\n\f]+/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a)).replace(sb," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],(c.selected||i===e)&&(l.optDisabled?!c.disabled:null===c.getAttribute("disabled"))&&(!c.parentNode.disabled||!n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)if(d=e[g],n.inArray(n.valHooks.option.get(d),f)>-1)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>-1:void 0}},l.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var tb,ub,vb=n.expr.attrHandle,wb=/^(?:checked|selected)$/i,xb=l.getSetAttribute,yb=l.input;n.fn.extend({attr:function(a,b){return Y(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),e=n.attrHooks[b]||(n.expr.match.bool.test(b)?ub:tb)),void 0!==c?null===c?void n.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=n.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!l.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(G);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)?yb&&xb||!wb.test(c)?a[d]=!1:a[n.camelCase("default-"+c)]=a[d]=!1:n.attr(a,c,""),a.removeAttribute(xb?c:d)}}),ub={set:function(a,b,c){return b===!1?n.removeAttr(a,c):yb&&xb||!wb.test(c)?a.setAttribute(!xb&&n.propFix[c]||c,c):a[n.camelCase("default-"+c)]=a[c]=!0,c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=vb[b]||n.find.attr;yb&&xb||!wb.test(b)?vb[b]=function(a,b,d){var e,f;return d||(f=vb[b],vb[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,vb[b]=f),e}:vb[b]=function(a,b,c){return c?void 0:a[n.camelCase("default-"+b)]?b.toLowerCase():null}}),yb&&xb||(n.attrHooks.value={set:function(a,b,c){return n.nodeName(a,"input")?void(a.defaultValue=b):tb&&tb.set(a,b,c)}}),xb||(tb={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},vb.id=vb.name=vb.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},n.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:tb.set},n.attrHooks.contenteditable={set:function(a,b,c){tb.set(a,""===b?!1:b,c)}},n.each(["width","height"],function(a,b){n.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),l.style||(n.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var zb=/^(?:input|select|textarea|button|object)$/i,Ab=/^(?:a|area)$/i;n.fn.extend({prop:function(a,b){return Y(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return a=n.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),n.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&n.isXMLDoc(a)||(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=n.find.attr(a,"tabindex");return b?parseInt(b,10):zb.test(a.nodeName)||Ab.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),l.hrefNormalized||n.each(["href","src"],function(a,b){n.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),l.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this}),l.enctype||(n.propFix.enctype="encoding");var Bb=/[\t\r\n\f]/g;function Cb(a){return n.attr(a,"class")||""}n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,Cb(this)))});if("string"==typeof a&&a){b=a.match(G)||[];while(c=this[i++])if(e=Cb(c),d=1===c.nodeType&&(" "+e+" ").replace(Bb," ")){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=n.trim(d),e!==h&&n.attr(c,"class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,Cb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(G)||[];while(c=this[i++])if(e=Cb(c),d=1===c.nodeType&&(" "+e+" ").replace(Bb," ")){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=n.trim(d),e!==h&&n.attr(c,"class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):n.isFunction(a)?this.each(function(c){n(this).toggleClass(a.call(this,c,Cb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=n(this),f=a.match(G)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=Cb(this),b&&n._data(this,"__className__",b),n.attr(this,"class",b||a===!1?"":n._data(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+Cb(c)+" ").replace(Bb," ").indexOf(b)>-1)return!0;return!1}}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Db=a.location,Eb=n.now(),Fb=/\?/,Gb=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;n.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=n.trim(b+"");return e&&!n.trim(e.replace(Gb,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():n.error("Invalid JSON: "+b)},n.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new a.DOMParser,c=d.parseFromString(b,"text/xml")):(c=new a.ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||n.error("Invalid XML: "+b),c};var Hb=/#.*$/,Ib=/([?&])_=[^&]*/,Jb=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Kb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Lb=/^(?:GET|HEAD)$/,Mb=/^\/\//,Nb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Ob={},Pb={},Qb="*/".concat("*"),Rb=Db.href,Sb=Nb.exec(Rb.toLowerCase())||[];function Tb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(G)||[];if(n.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Ub(a,b,c,d){var e={},f=a===Pb;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Vb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&n.extend(!0,a,c),a}function Wb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Xb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Rb,type:"GET",isLocal:Kb.test(Sb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Qb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Vb(Vb(a,n.ajaxSettings),b):Vb(n.ajaxSettings,a)},ajaxPrefilter:Tb(Ob),ajaxTransport:Tb(Pb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var d,e,f,g,h,i,j,k,l=n.ajaxSetup({},c),m=l.context||l,o=l.context&&(m.nodeType||m.jquery)?n(m):n.event,p=n.Deferred(),q=n.Callbacks("once memory"),r=l.statusCode||{},s={},t={},u=0,v="canceled",w={readyState:0,getResponseHeader:function(a){var b;if(2===u){if(!k){k={};while(b=Jb.exec(g))k[b[1].toLowerCase()]=b[2]}b=k[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===u?g:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return u||(a=t[c]=t[c]||a,s[a]=b),this},overrideMimeType:function(a){return u||(l.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>u)for(b in a)r[b]=[r[b],a[b]];else w.always(a[w.status]);return this},abort:function(a){var b=a||v;return j&&j.abort(b),y(0,b),this}};if(p.promise(w).complete=q.add,w.success=w.done,w.error=w.fail,l.url=((b||l.url||Rb)+"").replace(Hb,"").replace(Mb,Sb[1]+"//"),l.type=c.method||c.type||l.method||l.type,l.dataTypes=n.trim(l.dataType||"*").toLowerCase().match(G)||[""],null==l.crossDomain&&(d=Nb.exec(l.url.toLowerCase()),l.crossDomain=!(!d||d[1]===Sb[1]&&d[2]===Sb[2]&&(d[3]||("http:"===d[1]?"80":"443"))===(Sb[3]||("http:"===Sb[1]?"80":"443")))),l.data&&l.processData&&"string"!=typeof l.data&&(l.data=n.param(l.data,l.traditional)),Ub(Ob,l,c,w),2===u)return w;i=n.event&&l.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),l.type=l.type.toUpperCase(),l.hasContent=!Lb.test(l.type),f=l.url,l.hasContent||(l.data&&(f=l.url+=(Fb.test(f)?"&":"?")+l.data,delete l.data),l.cache===!1&&(l.url=Ib.test(f)?f.replace(Ib,"$1_="+Eb++):f+(Fb.test(f)?"&":"?")+"_="+Eb++)),l.ifModified&&(n.lastModified[f]&&w.setRequestHeader("If-Modified-Since",n.lastModified[f]),n.etag[f]&&w.setRequestHeader("If-None-Match",n.etag[f])),(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&w.setRequestHeader("Content-Type",l.contentType),w.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+("*"!==l.dataTypes[0]?", "+Qb+"; q=0.01":""):l.accepts["*"]);for(e in l.headers)w.setRequestHeader(e,l.headers[e]);if(l.beforeSend&&(l.beforeSend.call(m,w,l)===!1||2===u))return w.abort();v="abort";for(e in{success:1,error:1,complete:1})w[e](l[e]);if(j=Ub(Pb,l,c,w)){if(w.readyState=1,i&&o.trigger("ajaxSend",[w,l]),2===u)return w;l.async&&l.timeout>0&&(h=a.setTimeout(function(){w.abort("timeout")},l.timeout));try{u=1,j.send(s,y)}catch(x){if(!(2>u))throw x;y(-1,x)}}else y(-1,"No Transport");function y(b,c,d,e){var k,s,t,v,x,y=c;2!==u&&(u=2,h&&a.clearTimeout(h),j=void 0,g=e||"",w.readyState=b>0?4:0,k=b>=200&&300>b||304===b,d&&(v=Wb(l,w,d)),v=Xb(l,v,w,k),k?(l.ifModified&&(x=w.getResponseHeader("Last-Modified"),x&&(n.lastModified[f]=x),x=w.getResponseHeader("etag"),x&&(n.etag[f]=x)),204===b||"HEAD"===l.type?y="nocontent":304===b?y="notmodified":(y=v.state,s=v.data,t=v.error,k=!t)):(t=y,!b&&y||(y="error",0>b&&(b=0))),w.status=b,w.statusText=(c||y)+"",k?p.resolveWith(m,[s,y,w]):p.rejectWith(m,[w,y,t]),w.statusCode(r),r=void 0,i&&o.trigger(k?"ajaxSuccess":"ajaxError",[w,l,k?s:t]),q.fireWith(m,[w,y]),i&&(o.trigger("ajaxComplete",[w,l]),--n.active||n.event.trigger("ajaxStop")))}return w},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax(n.extend({url:a,type:b,dataType:e,data:c,success:d},n.isPlainObject(a)&&a))}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){if(n.isFunction(a))return this.each(function(b){n(this).wrapAll(a.call(this,b))});if(this[0]){var b=n(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return n.isFunction(a)?this.each(function(b){n(this).wrapInner(a.call(this,b))}):this.each(function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}});function Yb(a){return a.style&&a.style.display||n.css(a,"display")}function Zb(a){if(!n.contains(a.ownerDocument||d,a))return!0;while(a&&1===a.nodeType){if("none"===Yb(a)||"hidden"===a.type)return!0;a=a.parentNode}return!1}n.expr.filters.hidden=function(a){return l.reliableHiddenOffsets()?a.offsetWidth<=0&&a.offsetHeight<=0&&!a.getClientRects().length:Zb(a)},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var $b=/%20/g,_b=/\[\]$/,ac=/\r?\n/g,bc=/^(?:submit|button|image|reset|file)$/i,cc=/^(?:input|select|textarea|keygen)/i;function dc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||_b.test(a)?d(a,e):dc(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)dc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)dc(c,a[c],b,e);return d.join("&").replace($b,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&cc.test(this.nodeName)&&!bc.test(a)&&(this.checked||!Z.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(ac,"\r\n")}}):{name:b.name,value:c.replace(ac,"\r\n")}}).get()}}),n.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return this.isLocal?ic():d.documentMode>8?hc():/^(get|post|head|put|delete|options)$/i.test(this.type)&&hc()||ic()}:hc;var ec=0,fc={},gc=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in fc)fc[a](void 0,!0)}),l.cors=!!gc&&"withCredentials"in gc,gc=l.ajax=!!gc,gc&&n.ajaxTransport(function(b){if(!b.crossDomain||l.cors){var c;return{send:function(d,e){var f,g=b.xhr(),h=++ec;if(g.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(f in b.xhrFields)g[f]=b.xhrFields[f];b.mimeType&&g.overrideMimeType&&g.overrideMimeType(b.mimeType),b.crossDomain||d["X-Requested-With"]||(d["X-Requested-With"]="XMLHttpRequest");for(f in d)void 0!==d[f]&&g.setRequestHeader(f,d[f]+"");g.send(b.hasContent&&b.data||null),c=function(a,d){var f,i,j;if(c&&(d||4===g.readyState))if(delete fc[h],c=void 0,g.onreadystatechange=n.noop,d)4!==g.readyState&&g.abort();else{j={},f=g.status,"string"==typeof g.responseText&&(j.text=g.responseText);try{i=g.statusText}catch(k){i=""}f||!b.isLocal||b.crossDomain?1223===f&&(f=204):f=j.text?200:404}j&&e(f,i,j,g.getAllResponseHeaders())},b.async?4===g.readyState?a.setTimeout(c):g.onreadystatechange=fc[h]=c:c()},abort:function(){c&&c(void 0,!0)}}}});function hc(){try{return new a.XMLHttpRequest}catch(b){}}function ic(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=d.head||n("head")[0]||d.documentElement;return{send:function(e,f){b=d.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||f(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var jc=[],kc=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=jc.pop()||n.expando+"_"+Eb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(kc.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&kc.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(kc,"$1"+e):b.jsonp!==!1&&(b.url+=(Fb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?n(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,jc.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||d;var e=x.exec(a),f=!c&&[];return e?[b.createElement(e[1])]:(e=ja([a],b,f),f&&f.length&&n(f).remove(),n.merge([],e.childNodes))};var lc=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&lc)return lc.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=n.trim(a.slice(h,a.length)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};function mc(a){return n.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&n.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,n.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,n.contains(b,e)?("undefined"!=typeof e.getBoundingClientRect&&(d=e.getBoundingClientRect()),c=mc(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===n.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(c=a.offset()),c.top+=n.css(a[0],"borderTopWidth",!0),c.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-n.css(d,"marginTop",!0),left:b.left-c.left-n.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Qa})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);n.fn[a]=function(d){return Y(this,function(a,d,e){var f=mc(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?n(f).scrollLeft():e,c?e:n(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=Ua(l.pixelPosition,function(a,c){return c?(c=Sa(a,b),Oa.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({ +padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return Y(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var nc=a.jQuery,oc=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=oc),b&&a.jQuery===n&&(a.jQuery=nc),n},b||(a.jQuery=a.$=n),n}); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/js/jquery-ui-1.12.1.min.js b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/js/jquery-ui-1.12.1.min.js new file mode 100644 index 0000000000000000000000000000000000000000..25398a167415050ae8bfb0bfebac6aa3ab790909 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/assets/js/jquery-ui-1.12.1.min.js @@ -0,0 +1,13 @@ +/*! jQuery UI - v1.12.1 - 2016-09-14 +* http://jqueryui.com +* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e=t.css("visibility");"inherit"===e;)t=t.parent(),e=t.css("visibility");return"hidden"!==e}function i(t){for(var e,i;t.length&&t[0]!==document;){if(e=t.css("position"),("absolute"===e||"relative"===e||"fixed"===e)&&(i=parseInt(t.css("zIndex"),10),!isNaN(i)&&0!==i))return i;t=t.parent()}return 0}function s(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},t.extend(this._defaults,this.regional[""]),this.regional.en=t.extend(!0,{},this.regional[""]),this.regional["en-US"]=t.extend(!0,{},this.regional.en),this.dpDiv=n(t("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function n(e){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return e.on("mouseout",i,function(){t(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).removeClass("ui-datepicker-next-hover")}).on("mouseover",i,o)}function o(){t.datepicker._isDisabledDatepicker(m.inline?m.dpDiv.parent()[0]:m.input[0])||(t(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),t(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).addClass("ui-datepicker-next-hover"))}function a(e,i){t.extend(e,i);for(var s in i)null==i[s]&&(e[s]=i[s]);return e}function r(t){return function(){var e=this.element.val();t.apply(this,arguments),this._refresh(),e!==this.element.val()&&this._trigger("change")}}t.ui=t.ui||{},t.ui.version="1.12.1";var h=0,l=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},h=e.split(".")[0];e=e.split(".")[1];var l=h+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][l.toLowerCase()]=function(e){return!!t.data(e,l)},t[h]=t[h]||{},n=t[h][e],o=t[h][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:h,widgetName:e,widgetFullName:l}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,s,n=l.call(arguments,1),o=0,a=n.length;a>o;o++)for(i in n[o])s=n[o][i],n[o].hasOwnProperty(i)&&void 0!==s&&(e[i]=t.isPlainObject(s)?t.isPlainObject(e[i])?t.widget.extend({},e[i],s):t.widget.extend({},s):s);return e},t.widget.bridge=function(e,i){var s=i.prototype.widgetFullName||e;t.fn[e]=function(n){var o="string"==typeof n,a=l.call(arguments,1),r=this;return o?this.length||"instance"!==n?this.each(function(){var i,o=t.data(this,s);return"instance"===n?(r=o,!1):o?t.isFunction(o[n])&&"_"!==n.charAt(0)?(i=o[n].apply(o,a),i!==o&&void 0!==i?(r=i&&i.jquery?r.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+n+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+n+"'")}):r=void 0:(a.length&&(n=t.widget.extend.apply(null,[n].concat(a))),this.each(function(){var e=t.data(this,s);e?(e.option(n||{}),e._init&&e._init()):t.data(this,s,new i(n,this))})),r}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,i){i=t(i||this.defaultElement||this)[0],this.element=t(i),this.uuid=h++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},i!==this&&(t.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===i&&this.destroy()}}),this.document=t(i.style?i.ownerDocument:i.document||i),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType,o=!s&&!n;return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){if(!n||!n.of)return d.apply(this,arguments);n=t.extend({},n);var u,p,f,g,m,_,v=t(n.of),b=t.position.getWithinInfo(n.within),y=t.position.getScrollInfo(b),w=(n.collision||"flip").split(" "),k={};return _=s(v),v[0].preventDefault&&(n.at="left top"),p=_.width,f=_.height,g=_.offset,m=t.extend({},g),t.each(["my","at"],function(){var t,e,i=(n[this]||"").split(" ");1===i.length&&(i=r.test(i[0])?i.concat(["center"]):h.test(i[0])?["center"].concat(i):["center","center"]),i[0]=r.test(i[0])?i[0]:"center",i[1]=h.test(i[1])?i[1]:"center",t=l.exec(i[0]),e=l.exec(i[1]),k[this]=[t?t[0]:0,e?e[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===n.at[0]?m.left+=p:"center"===n.at[0]&&(m.left+=p/2),"bottom"===n.at[1]?m.top+=f:"center"===n.at[1]&&(m.top+=f/2),u=e(k.at,p,f),m.left+=u[0],m.top+=u[1],this.each(function(){var s,r,h=t(this),l=h.outerWidth(),c=h.outerHeight(),d=i(this,"marginLeft"),_=i(this,"marginTop"),x=l+d+i(this,"marginRight")+y.width,C=c+_+i(this,"marginBottom")+y.height,D=t.extend({},m),I=e(k.my,h.outerWidth(),h.outerHeight());"right"===n.my[0]?D.left-=l:"center"===n.my[0]&&(D.left-=l/2),"bottom"===n.my[1]?D.top-=c:"center"===n.my[1]&&(D.top-=c/2),D.left+=I[0],D.top+=I[1],s={marginLeft:d,marginTop:_},t.each(["left","top"],function(e,i){t.ui.position[w[e]]&&t.ui.position[w[e]][i](D,{targetWidth:p,targetHeight:f,elemWidth:l,elemHeight:c,collisionPosition:s,collisionWidth:x,collisionHeight:C,offset:[u[0]+I[0],u[1]+I[1]],my:n.my,at:n.at,within:b,elem:h})}),n.using&&(r=function(t){var e=g.left-D.left,i=e+p-l,s=g.top-D.top,r=s+f-c,u={target:{element:v,left:g.left,top:g.top,width:p,height:f},element:{element:h,left:D.left,top:D.top,width:l,height:c},horizontal:0>i?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-h,(i>0||u>a(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}});var c="ui-effects-",u="ui-effects-style",d="ui-effects-animated",p=t;t.effects={effect:{}},function(t,e){function i(t,e,i){var s=u[e.type]||{};return null==t?i||!e.def?null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod:0>t?0:t>s.max?s.max:t)}function s(i){var s=l(),n=s._rgba=[];return i=i.toLowerCase(),f(h,function(t,o){var a,r=o.re.exec(i),h=r&&o.parse(r),l=o.space||"rgba";return h?(a=s[l](h),s[c[l].cache]=a[c[l].cache],n=s._rgba=a._rgba,!1):e}),n.length?("0,0,0,0"===n.join()&&t.extend(n,o.transparent),s):o[i]}function n(t,e,i){return i=(i+1)%1,1>6*i?t+6*(e-t)*i:1>2*i?e:2>3*i?t+6*(e-t)*(2/3-i):t}var o,a="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,h=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[t[1],t[2],t[3],t[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],t[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(t){return[t[1],t[2]/100,t[3]/100,t[4]]}}],l=t.Color=function(e,i,s,n){return new t.Color.fn.parse(e,i,s,n)},c={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},u={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},d=l.support={},p=t("<p>")[0],f=t.each;p.style.cssText="background-color:rgba(1,1,1,.5)",d.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(c,function(t,e){e.cache="_"+t,e.props.alpha={idx:3,type:"percent",def:1}}),l.fn=t.extend(l.prototype,{parse:function(n,a,r,h){if(n===e)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=t(n).css(a),a=e);var u=this,d=t.type(n),p=this._rgba=[];return a!==e&&(n=[n,a,r,h],d="array"),"string"===d?this.parse(s(n)||o._default):"array"===d?(f(c.rgba.props,function(t,e){p[e.idx]=i(n[e.idx],e)}),this):"object"===d?(n instanceof l?f(c,function(t,e){n[e.cache]&&(u[e.cache]=n[e.cache].slice())}):f(c,function(e,s){var o=s.cache;f(s.props,function(t,e){if(!u[o]&&s.to){if("alpha"===t||null==n[t])return;u[o]=s.to(u._rgba)}u[o][e.idx]=i(n[t],e,!0)}),u[o]&&0>t.inArray(null,u[o].slice(0,3))&&(u[o][3]=1,s.from&&(u._rgba=s.from(u[o])))}),this):e},is:function(t){var i=l(t),s=!0,n=this;return f(c,function(t,o){var a,r=i[o.cache];return r&&(a=n[o.cache]||o.to&&o.to(n._rgba)||[],f(o.props,function(t,i){return null!=r[i.idx]?s=r[i.idx]===a[i.idx]:e})),s}),s},_space:function(){var t=[],e=this;return f(c,function(i,s){e[s.cache]&&t.push(i)}),t.pop()},transition:function(t,e){var s=l(t),n=s._space(),o=c[n],a=0===this.alpha()?l("transparent"):this,r=a[o.cache]||o.to(a._rgba),h=r.slice();return s=s[o.cache],f(o.props,function(t,n){var o=n.idx,a=r[o],l=s[o],c=u[n.type]||{};null!==l&&(null===a?h[o]=l:(c.mod&&(l-a>c.mod/2?a+=c.mod:a-l>c.mod/2&&(a-=c.mod)),h[o]=i((l-a)*e+a,n)))}),this[n](h)},blend:function(e){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=l(e)._rgba;return l(t.map(i,function(t,e){return(1-s)*n[e]+s*t}))},toRgbaString:function(){var e="rgba(",i=t.map(this._rgba,function(t,e){return null==t?e>2?1:0:t});return 1===i[3]&&(i.pop(),e="rgb("),e+i.join()+")"},toHslaString:function(){var e="hsla(",i=t.map(this.hsla(),function(t,e){return null==t&&(t=e>2?1:0),e&&3>e&&(t=Math.round(100*t)+"%"),t});return 1===i[3]&&(i.pop(),e="hsl("),e+i.join()+")"},toHexString:function(e){var i=this._rgba.slice(),s=i.pop();return e&&i.push(~~(255*s)),"#"+t.map(i,function(t){return t=(t||0).toString(16),1===t.length?"0"+t:t}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,c.hsla.to=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e,i,s=t[0]/255,n=t[1]/255,o=t[2]/255,a=t[3],r=Math.max(s,n,o),h=Math.min(s,n,o),l=r-h,c=r+h,u=.5*c;return e=h===r?0:s===r?60*(n-o)/l+360:n===r?60*(o-s)/l+120:60*(s-n)/l+240,i=0===l?0:.5>=u?l/c:l/(2-c),[Math.round(e)%360,i,u,null==a?1:a]},c.hsla.from=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e=t[0]/360,i=t[1],s=t[2],o=t[3],a=.5>=s?s*(1+i):s+i-s*i,r=2*s-a;return[Math.round(255*n(r,a,e+1/3)),Math.round(255*n(r,a,e)),Math.round(255*n(r,a,e-1/3)),o]},f(c,function(s,n){var o=n.props,a=n.cache,h=n.to,c=n.from;l.fn[s]=function(s){if(h&&!this[a]&&(this[a]=h(this._rgba)),s===e)return this[a].slice();var n,r=t.type(s),u="array"===r||"object"===r?s:arguments,d=this[a].slice();return f(o,function(t,e){var s=u["object"===r?t:e.idx];null==s&&(s=d[e.idx]),d[e.idx]=i(s,e)}),c?(n=l(c(d)),n[a]=d,n):l(d)},f(o,function(e,i){l.fn[e]||(l.fn[e]=function(n){var o,a=t.type(n),h="alpha"===e?this._hsla?"hsla":"rgba":s,l=this[h](),c=l[i.idx];return"undefined"===a?c:("function"===a&&(n=n.call(this,c),a=t.type(n)),null==n&&i.empty?this:("string"===a&&(o=r.exec(n),o&&(n=c+parseFloat(o[2])*("+"===o[1]?1:-1))),l[i.idx]=n,this[h](l)))})})}),l.hook=function(e){var i=e.split(" ");f(i,function(e,i){t.cssHooks[i]={set:function(e,n){var o,a,r="";if("transparent"!==n&&("string"!==t.type(n)||(o=s(n)))){if(n=l(o||n),!d.rgba&&1!==n._rgba[3]){for(a="backgroundColor"===i?e.parentNode:e;(""===r||"transparent"===r)&&a&&a.style;)try{r=t.css(a,"backgroundColor"),a=a.parentNode}catch(h){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{e.style[i]=n}catch(h){}}},t.fx.step[i]=function(e){e.colorInit||(e.start=l(e.elem,i),e.end=l(e.end),e.colorInit=!0),t.cssHooks[i].set(e.elem,e.start.transition(e.end,e.pos))}})},l.hook(a),t.cssHooks.borderColor={expand:function(t){var e={};return f(["Top","Right","Bottom","Left"],function(i,s){e["border"+s+"Color"]=t}),e}},o=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(p),function(){function e(e){var i,s,n=e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,null):e.currentStyle,o={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(o[t.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(o[i]=n[i]);return o}function i(e,i){var s,o,a={};for(s in i)o=i[s],e[s]!==o&&(n[s]||(t.fx.step[s]||!isNaN(parseFloat(o)))&&(a[s]=o));return a}var s=["add","remove","toggle"],n={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};t.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(e,i){t.fx.step[i]=function(t){("none"!==t.end&&!t.setAttr||1===t.pos&&!t.setAttr)&&(p.style(t.elem,i,t.end),t.setAttr=!0)}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.effects.animateClass=function(n,o,a,r){var h=t.speed(o,a,r);return this.queue(function(){var o,a=t(this),r=a.attr("class")||"",l=h.children?a.find("*").addBack():a;l=l.map(function(){var i=t(this);return{el:i,start:e(this)}}),o=function(){t.each(s,function(t,e){n[e]&&a[e+"Class"](n[e])})},o(),l=l.map(function(){return this.end=e(this.el[0]),this.diff=i(this.start,this.end),this}),a.attr("class",r),l=l.map(function(){var e=this,i=t.Deferred(),s=t.extend({},h,{queue:!1,complete:function(){i.resolve(e)}});return this.el.animate(this.diff,s),i.promise()}),t.when.apply(t,l.get()).done(function(){o(),t.each(arguments,function(){var e=this.el;t.each(this.diff,function(t){e.css(t,"")})}),h.complete.call(a[0])})})},t.fn.extend({addClass:function(e){return function(i,s,n,o){return s?t.effects.animateClass.call(this,{add:i},s,n,o):e.apply(this,arguments)}}(t.fn.addClass),removeClass:function(e){return function(i,s,n,o){return arguments.length>1?t.effects.animateClass.call(this,{remove:i},s,n,o):e.apply(this,arguments)}}(t.fn.removeClass),toggleClass:function(e){return function(i,s,n,o,a){return"boolean"==typeof s||void 0===s?n?t.effects.animateClass.call(this,s?{add:i}:{remove:i},n,o,a):e.apply(this,arguments):t.effects.animateClass.call(this,{toggle:i},s,n,o)}}(t.fn.toggleClass),switchClass:function(e,i,s,n,o){return t.effects.animateClass.call(this,{add:i,remove:e},s,n,o)}})}(),function(){function e(e,i,s,n){return t.isPlainObject(e)&&(i=e,e=e.effect),e={effect:e},null==i&&(i={}),t.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||t.fx.speeds[i])&&(n=s,s=i,i={}),t.isFunction(s)&&(n=s,s=null),i&&t.extend(e,i),s=s||i.duration,e.duration=t.fx.off?0:"number"==typeof s?s:s in t.fx.speeds?t.fx.speeds[s]:t.fx.speeds._default,e.complete=n||i.complete,e}function i(e){return!e||"number"==typeof e||t.fx.speeds[e]?!0:"string"!=typeof e||t.effects.effect[e]?t.isFunction(e)?!0:"object"!=typeof e||e.effect?!1:!0:!0}function s(t,e){var i=e.outerWidth(),s=e.outerHeight(),n=/^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/,o=n.exec(t)||["",0,i,s,0];return{top:parseFloat(o[1])||0,right:"auto"===o[2]?i:parseFloat(o[2]),bottom:"auto"===o[3]?s:parseFloat(o[3]),left:parseFloat(o[4])||0}}t.expr&&t.expr.filters&&t.expr.filters.animated&&(t.expr.filters.animated=function(e){return function(i){return!!t(i).data(d)||e(i)}}(t.expr.filters.animated)),t.uiBackCompat!==!1&&t.extend(t.effects,{save:function(t,e){for(var i=0,s=e.length;s>i;i++)null!==e[i]&&t.data(c+e[i],t[0].style[e[i]])},restore:function(t,e){for(var i,s=0,n=e.length;n>s;s++)null!==e[s]&&(i=t.data(c+e[s]),t.css(e[s],i))},setMode:function(t,e){return"toggle"===e&&(e=t.is(":hidden")?"show":"hide"),e},createWrapper:function(e){if(e.parent().is(".ui-effects-wrapper"))return e.parent();var i={width:e.outerWidth(!0),height:e.outerHeight(!0),"float":e.css("float")},s=t("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:e.width(),height:e.height()},o=document.activeElement;try{o.id}catch(a){o=document.body}return e.wrap(s),(e[0]===o||t.contains(e[0],o))&&t(o).trigger("focus"),s=e.parent(),"static"===e.css("position")?(s.css({position:"relative"}),e.css({position:"relative"})):(t.extend(i,{position:e.css("position"),zIndex:e.css("z-index")}),t.each(["top","left","bottom","right"],function(t,s){i[s]=e.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),e.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),e.css(n),s.css(i).show()},removeWrapper:function(e){var i=document.activeElement;return e.parent().is(".ui-effects-wrapper")&&(e.parent().replaceWith(e),(e[0]===i||t.contains(e[0],i))&&t(i).trigger("focus")),e}}),t.extend(t.effects,{version:"1.12.1",define:function(e,i,s){return s||(s=i,i="effect"),t.effects.effect[e]=s,t.effects.effect[e].mode=i,s},scaledDimensions:function(t,e,i){if(0===e)return{height:0,width:0,outerHeight:0,outerWidth:0};var s="horizontal"!==i?(e||100)/100:1,n="vertical"!==i?(e||100)/100:1;return{height:t.height()*n,width:t.width()*s,outerHeight:t.outerHeight()*n,outerWidth:t.outerWidth()*s}},clipToBox:function(t){return{width:t.clip.right-t.clip.left,height:t.clip.bottom-t.clip.top,left:t.clip.left,top:t.clip.top}},unshift:function(t,e,i){var s=t.queue();e>1&&s.splice.apply(s,[1,0].concat(s.splice(e,i))),t.dequeue()},saveStyle:function(t){t.data(u,t[0].style.cssText)},restoreStyle:function(t){t[0].style.cssText=t.data(u)||"",t.removeData(u)},mode:function(t,e){var i=t.is(":hidden");return"toggle"===e&&(e=i?"show":"hide"),(i?"hide"===e:"show"===e)&&(e="none"),e},getBaseline:function(t,e){var i,s;switch(t[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=t[0]/e.height}switch(t[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=t[1]/e.width}return{x:s,y:i}},createPlaceholder:function(e){var i,s=e.css("position"),n=e.position();return e.css({marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()),/^(static|relative)/.test(s)&&(s="absolute",i=t("<"+e[0].nodeName+">").insertAfter(e).css({display:/^(inline|ruby)/.test(e.css("display"))?"inline-block":"block",visibility:"hidden",marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight"),"float":e.css("float")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).addClass("ui-effects-placeholder"),e.data(c+"placeholder",i)),e.css({position:s,left:n.left,top:n.top}),i},removePlaceholder:function(t){var e=c+"placeholder",i=t.data(e);i&&(i.remove(),t.removeData(e))},cleanUp:function(e){t.effects.restoreStyle(e),t.effects.removePlaceholder(e)},setTransition:function(e,i,s,n){return n=n||{},t.each(i,function(t,i){var o=e.cssUnit(i);o[0]>0&&(n[i]=o[0]*s+o[1])}),n}}),t.fn.extend({effect:function(){function i(e){function i(){r.removeData(d),t.effects.cleanUp(r),"hide"===s.mode&&r.hide(),a()}function a(){t.isFunction(h)&&h.call(r[0]),t.isFunction(e)&&e()}var r=t(this);s.mode=c.shift(),t.uiBackCompat===!1||o?"none"===s.mode?(r[l](),a()):n.call(r[0],s,i):(r.is(":hidden")?"hide"===l:"show"===l)?(r[l](),a()):n.call(r[0],s,a)}var s=e.apply(this,arguments),n=t.effects.effect[s.effect],o=n.mode,a=s.queue,r=a||"fx",h=s.complete,l=s.mode,c=[],u=function(e){var i=t(this),s=t.effects.mode(i,l)||o;i.data(d,!0),c.push(s),o&&("show"===s||s===o&&"hide"===s)&&i.show(),o&&"none"===s||t.effects.saveStyle(i),t.isFunction(e)&&e()};return t.fx.off||!n?l?this[l](s.duration,h):this.each(function(){h&&h.call(this)}):a===!1?this.each(u).each(i):this.queue(r,u).queue(r,i)},show:function(t){return function(s){if(i(s))return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="show",this.effect.call(this,n) +}}(t.fn.show),hide:function(t){return function(s){if(i(s))return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="hide",this.effect.call(this,n)}}(t.fn.hide),toggle:function(t){return function(s){if(i(s)||"boolean"==typeof s)return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)}}(t.fn.toggle),cssUnit:function(e){var i=this.css(e),s=[];return t.each(["em","px","%","pt"],function(t,e){i.indexOf(e)>0&&(s=[parseFloat(i),e])}),s},cssClip:function(t){return t?this.css("clip","rect("+t.top+"px "+t.right+"px "+t.bottom+"px "+t.left+"px)"):s(this.css("clip"),this)},transfer:function(e,i){var s=t(this),n=t(e.to),o="fixed"===n.css("position"),a=t("body"),r=o?a.scrollTop():0,h=o?a.scrollLeft():0,l=n.offset(),c={top:l.top-r,left:l.left-h,height:n.innerHeight(),width:n.innerWidth()},u=s.offset(),d=t("<div class='ui-effects-transfer'></div>").appendTo("body").addClass(e.className).css({top:u.top-r,left:u.left-h,height:s.innerHeight(),width:s.innerWidth(),position:o?"fixed":"absolute"}).animate(c,e.duration,e.easing,function(){d.remove(),t.isFunction(i)&&i()})}}),t.fx.step.clip=function(e){e.clipInit||(e.start=t(e.elem).cssClip(),"string"==typeof e.end&&(e.end=s(e.end,e.elem)),e.clipInit=!0),t(e.elem).cssClip({top:e.pos*(e.end.top-e.start.top)+e.start.top,right:e.pos*(e.end.right-e.start.right)+e.start.right,bottom:e.pos*(e.end.bottom-e.start.bottom)+e.start.bottom,left:e.pos*(e.end.left-e.start.left)+e.start.left})}}(),function(){var e={};t.each(["Quad","Cubic","Quart","Quint","Expo"],function(t,i){e[i]=function(e){return Math.pow(e,t+2)}}),t.extend(e,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;((e=Math.pow(2,--i))-1)/11>t;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),t.each(e,function(e,i){t.easing["easeIn"+e]=i,t.easing["easeOut"+e]=function(t){return 1-i(1-t)},t.easing["easeInOut"+e]=function(t){return.5>t?i(2*t)/2:1-i(-2*t+2)/2}})}();var f=t.effects;t.effects.define("blind","hide",function(e,i){var s={up:["bottom","top"],vertical:["bottom","top"],down:["top","bottom"],left:["right","left"],horizontal:["right","left"],right:["left","right"]},n=t(this),o=e.direction||"up",a=n.cssClip(),r={clip:t.extend({},a)},h=t.effects.createPlaceholder(n);r.clip[s[o][0]]=r.clip[s[o][1]],"show"===e.mode&&(n.cssClip(r.clip),h&&h.css(t.effects.clipToBox(r)),r.clip=a),h&&h.animate(t.effects.clipToBox(r),e.duration,e.easing),n.animate(r,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("bounce",function(e,i){var s,n,o,a=t(this),r=e.mode,h="hide"===r,l="show"===r,c=e.direction||"up",u=e.distance,d=e.times||5,p=2*d+(l||h?1:0),f=e.duration/p,g=e.easing,m="up"===c||"down"===c?"top":"left",_="up"===c||"left"===c,v=0,b=a.queue().length;for(t.effects.createPlaceholder(a),o=a.css(m),u||(u=a["top"===m?"outerHeight":"outerWidth"]()/3),l&&(n={opacity:1},n[m]=o,a.css("opacity",0).css(m,_?2*-u:2*u).animate(n,f,g)),h&&(u/=Math.pow(2,d-1)),n={},n[m]=o;d>v;v++)s={},s[m]=(_?"-=":"+=")+u,a.animate(s,f,g).animate(n,f,g),u=h?2*u:u/2;h&&(s={opacity:0},s[m]=(_?"-=":"+=")+u,a.animate(s,f,g)),a.queue(i),t.effects.unshift(a,b,p+1)}),t.effects.define("clip","hide",function(e,i){var s,n={},o=t(this),a=e.direction||"vertical",r="both"===a,h=r||"horizontal"===a,l=r||"vertical"===a;s=o.cssClip(),n.clip={top:l?(s.bottom-s.top)/2:s.top,right:h?(s.right-s.left)/2:s.right,bottom:l?(s.bottom-s.top)/2:s.bottom,left:h?(s.right-s.left)/2:s.left},t.effects.createPlaceholder(o),"show"===e.mode&&(o.cssClip(n.clip),n.clip=s),o.animate(n,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("drop","hide",function(e,i){var s,n=t(this),o=e.mode,a="show"===o,r=e.direction||"left",h="up"===r||"down"===r?"top":"left",l="up"===r||"left"===r?"-=":"+=",c="+="===l?"-=":"+=",u={opacity:0};t.effects.createPlaceholder(n),s=e.distance||n["top"===h?"outerHeight":"outerWidth"](!0)/2,u[h]=l+s,a&&(n.css(u),u[h]=c+s,u.opacity=1),n.animate(u,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("explode","hide",function(e,i){function s(){b.push(this),b.length===u*d&&n()}function n(){p.css({visibility:"visible"}),t(b).remove(),i()}var o,a,r,h,l,c,u=e.pieces?Math.round(Math.sqrt(e.pieces)):3,d=u,p=t(this),f=e.mode,g="show"===f,m=p.show().css("visibility","hidden").offset(),_=Math.ceil(p.outerWidth()/d),v=Math.ceil(p.outerHeight()/u),b=[];for(o=0;u>o;o++)for(h=m.top+o*v,c=o-(u-1)/2,a=0;d>a;a++)r=m.left+a*_,l=a-(d-1)/2,p.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-a*_,top:-o*v}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:_,height:v,left:r+(g?l*_:0),top:h+(g?c*v:0),opacity:g?0:1}).animate({left:r+(g?0:l*_),top:h+(g?0:c*v),opacity:g?1:0},e.duration||500,e.easing,s)}),t.effects.define("fade","toggle",function(e,i){var s="show"===e.mode;t(this).css("opacity",s?0:1).animate({opacity:s?1:0},{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("fold","hide",function(e,i){var s=t(this),n=e.mode,o="show"===n,a="hide"===n,r=e.size||15,h=/([0-9]+)%/.exec(r),l=!!e.horizFirst,c=l?["right","bottom"]:["bottom","right"],u=e.duration/2,d=t.effects.createPlaceholder(s),p=s.cssClip(),f={clip:t.extend({},p)},g={clip:t.extend({},p)},m=[p[c[0]],p[c[1]]],_=s.queue().length;h&&(r=parseInt(h[1],10)/100*m[a?0:1]),f.clip[c[0]]=r,g.clip[c[0]]=r,g.clip[c[1]]=0,o&&(s.cssClip(g.clip),d&&d.css(t.effects.clipToBox(g)),g.clip=p),s.queue(function(i){d&&d.animate(t.effects.clipToBox(f),u,e.easing).animate(t.effects.clipToBox(g),u,e.easing),i()}).animate(f,u,e.easing).animate(g,u,e.easing).queue(i),t.effects.unshift(s,_,4)}),t.effects.define("highlight","show",function(e,i){var s=t(this),n={backgroundColor:s.css("backgroundColor")};"hide"===e.mode&&(n.opacity=0),t.effects.saveStyle(s),s.css({backgroundImage:"none",backgroundColor:e.color||"#ffff99"}).animate(n,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("size",function(e,i){var s,n,o,a=t(this),r=["fontSize"],h=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],l=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],c=e.mode,u="effect"!==c,d=e.scale||"both",p=e.origin||["middle","center"],f=a.css("position"),g=a.position(),m=t.effects.scaledDimensions(a),_=e.from||m,v=e.to||t.effects.scaledDimensions(a,0);t.effects.createPlaceholder(a),"show"===c&&(o=_,_=v,v=o),n={from:{y:_.height/m.height,x:_.width/m.width},to:{y:v.height/m.height,x:v.width/m.width}},("box"===d||"both"===d)&&(n.from.y!==n.to.y&&(_=t.effects.setTransition(a,h,n.from.y,_),v=t.effects.setTransition(a,h,n.to.y,v)),n.from.x!==n.to.x&&(_=t.effects.setTransition(a,l,n.from.x,_),v=t.effects.setTransition(a,l,n.to.x,v))),("content"===d||"both"===d)&&n.from.y!==n.to.y&&(_=t.effects.setTransition(a,r,n.from.y,_),v=t.effects.setTransition(a,r,n.to.y,v)),p&&(s=t.effects.getBaseline(p,m),_.top=(m.outerHeight-_.outerHeight)*s.y+g.top,_.left=(m.outerWidth-_.outerWidth)*s.x+g.left,v.top=(m.outerHeight-v.outerHeight)*s.y+g.top,v.left=(m.outerWidth-v.outerWidth)*s.x+g.left),a.css(_),("content"===d||"both"===d)&&(h=h.concat(["marginTop","marginBottom"]).concat(r),l=l.concat(["marginLeft","marginRight"]),a.find("*[width]").each(function(){var i=t(this),s=t.effects.scaledDimensions(i),o={height:s.height*n.from.y,width:s.width*n.from.x,outerHeight:s.outerHeight*n.from.y,outerWidth:s.outerWidth*n.from.x},a={height:s.height*n.to.y,width:s.width*n.to.x,outerHeight:s.height*n.to.y,outerWidth:s.width*n.to.x};n.from.y!==n.to.y&&(o=t.effects.setTransition(i,h,n.from.y,o),a=t.effects.setTransition(i,h,n.to.y,a)),n.from.x!==n.to.x&&(o=t.effects.setTransition(i,l,n.from.x,o),a=t.effects.setTransition(i,l,n.to.x,a)),u&&t.effects.saveStyle(i),i.css(o),i.animate(a,e.duration,e.easing,function(){u&&t.effects.restoreStyle(i)})})),a.animate(v,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){var e=a.offset();0===v.opacity&&a.css("opacity",_.opacity),u||(a.css("position","static"===f?"relative":f).offset(e),t.effects.saveStyle(a)),i()}})}),t.effects.define("scale",function(e,i){var s=t(this),n=e.mode,o=parseInt(e.percent,10)||(0===parseInt(e.percent,10)?0:"effect"!==n?0:100),a=t.extend(!0,{from:t.effects.scaledDimensions(s),to:t.effects.scaledDimensions(s,o,e.direction||"both"),origin:e.origin||["middle","center"]},e);e.fade&&(a.from.opacity=1,a.to.opacity=0),t.effects.effect.size.call(this,a,i)}),t.effects.define("puff","hide",function(e,i){var s=t.extend(!0,{},e,{fade:!0,percent:parseInt(e.percent,10)||150});t.effects.effect.scale.call(this,s,i)}),t.effects.define("pulsate","show",function(e,i){var s=t(this),n=e.mode,o="show"===n,a="hide"===n,r=o||a,h=2*(e.times||5)+(r?1:0),l=e.duration/h,c=0,u=1,d=s.queue().length;for((o||!s.is(":visible"))&&(s.css("opacity",0).show(),c=1);h>u;u++)s.animate({opacity:c},l,e.easing),c=1-c;s.animate({opacity:c},l,e.easing),s.queue(i),t.effects.unshift(s,d,h+1)}),t.effects.define("shake",function(e,i){var s=1,n=t(this),o=e.direction||"left",a=e.distance||20,r=e.times||3,h=2*r+1,l=Math.round(e.duration/h),c="up"===o||"down"===o?"top":"left",u="up"===o||"left"===o,d={},p={},f={},g=n.queue().length;for(t.effects.createPlaceholder(n),d[c]=(u?"-=":"+=")+a,p[c]=(u?"+=":"-=")+2*a,f[c]=(u?"-=":"+=")+2*a,n.animate(d,l,e.easing);r>s;s++)n.animate(p,l,e.easing).animate(f,l,e.easing);n.animate(p,l,e.easing).animate(d,l/2,e.easing).queue(i),t.effects.unshift(n,g,h+1)}),t.effects.define("slide","show",function(e,i){var s,n,o=t(this),a={up:["bottom","top"],down:["top","bottom"],left:["right","left"],right:["left","right"]},r=e.mode,h=e.direction||"left",l="up"===h||"down"===h?"top":"left",c="up"===h||"left"===h,u=e.distance||o["top"===l?"outerHeight":"outerWidth"](!0),d={};t.effects.createPlaceholder(o),s=o.cssClip(),n=o.position()[l],d[l]=(c?-1:1)*u+n,d.clip=o.cssClip(),d.clip[a[h][1]]=d.clip[a[h][0]],"show"===r&&(o.cssClip(d.clip),o.css(l,d[l]),d.clip=s,d[l]=n),o.animate(d,{queue:!1,duration:e.duration,easing:e.easing,complete:i})});var f;t.uiBackCompat!==!1&&(f=t.effects.define("transfer",function(e,i){t(this).transfer(e,i)})),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,.\/:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.widget("ui.accordion",{version:"1.12.1",options:{active:0,animate:{},classes:{"ui-accordion-header":"ui-corner-top","ui-accordion-header-collapsed":"ui-corner-all","ui-accordion-content":"ui-corner-bottom"},collapsible:!1,event:"click",header:"> li > :first-child, > :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var e=this.options;this.prevShow=this.prevHide=t(),this._addClass("ui-accordion","ui-widget ui-helper-reset"),this.element.attr("role","tablist"),e.collapsible||e.active!==!1&&null!=e.active||(e.active=0),this._processPanels(),0>e.active&&(e.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():t()}},_createIcons:function(){var e,i,s=this.options.icons;s&&(e=t("<span>"),this._addClass(e,"ui-accordion-header-icon","ui-icon "+s.header),e.prependTo(this.headers),i=this.active.children(".ui-accordion-header-icon"),this._removeClass(i,s.header)._addClass(i,null,s.activeHeader)._addClass(this.headers,"ui-accordion-icons"))},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons"),this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeAttr("role"),this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),this._destroyIcons(),t=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){return"active"===t?(this._activate(e),void 0):("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||this.options.active!==!1||this._activate(0),"icons"===t&&(this._destroyIcons(),e&&this._createIcons()),void 0)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t),this._toggleClass(this.headers.add(this.headers.next()),null,"ui-state-disabled",!!t)},_keydown:function(e){if(!e.altKey&&!e.ctrlKey){var i=t.ui.keyCode,s=this.headers.length,n=this.headers.index(e.target),o=!1;switch(e.keyCode){case i.RIGHT:case i.DOWN:o=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:o=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(e);break;case i.HOME:o=this.headers[0];break;case i.END:o=this.headers[s-1]}o&&(t(e.target).attr("tabIndex",-1),t(o).attr("tabIndex",0),t(o).trigger("focus"),e.preventDefault())}},_panelKeyDown:function(e){e.keyCode===t.ui.keyCode.UP&&e.ctrlKey&&t(e.currentTarget).prev().trigger("focus")},refresh:function(){var e=this.options;this._processPanels(),e.active===!1&&e.collapsible===!0||!this.headers.length?(e.active=!1,this.active=t()):e.active===!1?this._activate(0):this.active.length&&!t.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(e.active=!1,this.active=t()):this._activate(Math.max(0,e.active-1)):e.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;this.headers=this.element.find(this.options.header),this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default"),this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content"),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var e,i=this.options,s=i.heightStyle,n=this.element.parent();this.active=this._findActive(i.active),this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed"),this._addClass(this.active.next(),"ui-accordion-content-active"),this.active.next().show(),this.headers.attr("role","tab").each(function(){var e=t(this),i=e.uniqueId().attr("id"),s=e.next(),n=s.uniqueId().attr("id");e.attr("aria-controls",n),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(i.event),"fill"===s?(e=n.height(),this.element.siblings(":visible").each(function(){var i=t(this),s=i.css("position");"absolute"!==s&&"fixed"!==s&&(e-=i.outerHeight(!0))}),this.headers.each(function(){e-=t(this).outerHeight(!0)}),this.headers.next().each(function(){t(this).height(Math.max(0,e-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===s&&(e=0,this.headers.next().each(function(){var i=t(this).is(":visible");i||t(this).show(),e=Math.max(e,t(this).css("height","").height()),i||t(this).hide()}).height(e))},_activate:function(e){var i=this._findActive(e)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return"number"==typeof e?this.headers.eq(e):t()},_setupEvents:function(e){var i={keydown:"_keydown"};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(e){var i,s,n=this.options,o=this.active,a=t(e.currentTarget),r=a[0]===o[0],h=r&&n.collapsible,l=h?t():a.next(),c=o.next(),u={oldHeader:o,oldPanel:c,newHeader:h?t():a,newPanel:l};e.preventDefault(),r&&!n.collapsible||this._trigger("beforeActivate",e,u)===!1||(n.active=h?!1:this.headers.index(a),this.active=r?t():a,this._toggle(u),this._removeClass(o,"ui-accordion-header-active","ui-state-active"),n.icons&&(i=o.children(".ui-accordion-header-icon"),this._removeClass(i,null,n.icons.activeHeader)._addClass(i,null,n.icons.header)),r||(this._removeClass(a,"ui-accordion-header-collapsed")._addClass(a,"ui-accordion-header-active","ui-state-active"),n.icons&&(s=a.children(".ui-accordion-header-icon"),this._removeClass(s,null,n.icons.header)._addClass(s,null,n.icons.activeHeader)),this._addClass(a.next(),"ui-accordion-content-active")))},_toggle:function(e){var i=e.newPanel,s=this.prevShow.length?this.prevShow:e.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,e):(s.hide(),i.show(),this._toggleComplete(e)),s.attr({"aria-hidden":"true"}),s.prev().attr({"aria-selected":"false","aria-expanded":"false"}),i.length&&s.length?s.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return 0===parseInt(t(this).attr("tabIndex"),10)}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(t,e,i){var s,n,o,a=this,r=0,h=t.css("box-sizing"),l=t.length&&(!e.length||t.index()<e.index()),c=this.options.animate||{},u=l&&c.down||c,d=function(){a._toggleComplete(i)};return"number"==typeof u&&(o=u),"string"==typeof u&&(n=u),n=n||u.easing||c.easing,o=o||u.duration||c.duration,e.length?t.length?(s=t.show().outerHeight(),e.animate(this.hideProps,{duration:o,easing:n,step:function(t,e){e.now=Math.round(t)}}),t.hide().animate(this.showProps,{duration:o,easing:n,complete:d,step:function(t,i){i.now=Math.round(t),"height"!==i.prop?"content-box"===h&&(r+=i.now):"content"!==a.options.heightStyle&&(i.now=Math.round(s-e.outerHeight()-r),r=0)}}),void 0):e.animate(this.hideProps,o,n,d):t.animate(this.showProps,o,n,d)},_toggleComplete:function(t){var e=t.oldPanel,i=e.prev();this._removeClass(e,"ui-accordion-content-active"),this._removeClass(i,"ui-accordion-header-active")._addClass(i,"ui-accordion-header-collapsed"),e.length&&(e.parent()[0].className=e.parent()[0].className),this._trigger("activate",null,t)}}),t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.widget("ui.menu",{version:"1.12.1",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var i=t(e.target),s=t(t.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&s.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var i=t(e.target).closest(".ui-menu-item"),s=t(e.currentTarget);i[0]===s[0]&&(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,s))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){var i=!t.contains(this.element[0],t.ui.safeActiveElement(this.document[0]));i&&this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),i=e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){var e=t(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var i,s,n,o,a=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:a=!1,s=this.previousFilter||"",o=!1,n=e.keyCode>=96&&105>=e.keyCode?""+(e.keyCode-96):String.fromCharCode(e.keyCode),clearTimeout(this.filterTimer),n===s?o=!0:n=s+n,i=this._filterMenuItems(n),i=o&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(e,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}a&&e.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i,s,n,o,a=this,r=this.options.icons.submenu,h=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),s=h.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),i=e.prev(),s=t("<span>").data("ui-menu-submenu-caret",!0);a._addClass(s,"ui-menu-icon","ui-icon "+r),i.attr("aria-haspopup","true").prepend(s),e.attr("aria-labelledby",i.attr("id"))}),this._addClass(s,"ui-menu","ui-widget ui-widget-content ui-front"),e=h.add(this.element),i=e.find(this.options.items),i.not(".ui-menu-item").each(function(){var e=t(this);a._isDivider(e)&&a._addClass(e,"ui-menu-divider","ui-widget-content")}),n=i.not(".ui-menu-item, .ui-menu-divider"),o=n.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(n,"ui-menu-item")._addClass(o,"ui-menu-item-wrapper"),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){if("icons"===t){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)}this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t+""),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i,s,n;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,a,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),r=e.outerHeight(),0>n?this.activeMenu.scrollTop(o+n):n+r>a&&this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(e),void 0)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items).first())),void 0):(this.next(e),void 0)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(e){this.active=this.active||t(e.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(e,!0),this._trigger("select",e,i)},_filterMenuItems:function(e){var i=e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),s=RegExp("^"+i,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return s.test(t.trim(t(this).children(".ui-menu-item-wrapper").text()))})}}),t.widget("ui.autocomplete",{version:"1.12.1",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,a="input"===n; +this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,void 0;e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),void 0):(this._searchTimeout(t),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(t),this._change(t),void 0)}}),this._initSource(),this.menu=t("<ul>").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==t.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(e,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:n})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&t.trim(s).length&&(this.liveRegion.children().hide(),t("<div>").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,i){var s=i.item.data("ui-autocomplete-item"),n=this.previous;this.element[0]!==t.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=n,this._delay(function(){this.previous=n,this.selectedItem=s})),!1!==this._trigger("select",e,{item:s})&&this._value(s.value),this.term=this._value(),this.close(e),this.selectedItem=s}}),this.liveRegion=t("<div>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(e){var i=this.menu.element[0];return e.target===this.element[0]||e.target===i||t.contains(i,e.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,i,s=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,data:e,dataType:"json",success:function(t){n(t)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),i=this.menu.element.is(":visible"),s=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!i&&!s)&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length<this.options.minLength?this.close(e):this._trigger("search",e)!==!1?this._search(t):void 0},_search:function(t){this.pending++,this._addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:t},this._response())},_response:function(){var e=++this.requestIndex;return t.proxy(function(t){e===this.requestIndex&&this.__response(t),this.pending--,this.pending||this._removeClass("ui-autocomplete-loading")},this)},__response:function(t){t&&(t=this._normalize(t)),this._trigger("response",null,{content:t}),!this.options.disabled&&t&&t.length&&!this.cancelSearch?(this._suggest(t),this._trigger("open")):this._close()},close:function(t){this.cancelSearch=!0,this._close(t)},_close:function(t){this._off(this.document,"mousedown"),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",t))},_change:function(t){this.previous!==this._value()&&this._trigger("change",t,{item:this.selectedItem})},_normalize:function(e){return e.length&&e[0].label&&e[0].value?e:t.map(e,function(e){return"string"==typeof e?{label:e,value:e}:t.extend({},e,{label:e.label||e.value,value:e.value||e.label})})},_suggest:function(e){var i=this.menu.element.empty();this._renderMenu(i,e),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(t.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next(),this._on(this.document,{mousedown:"_closeOnClickOutside"})},_resizeMenu:function(){var t=this.menu.element;t.outerWidth(Math.max(t.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(e,i){var s=this;t.each(i,function(t,i){s._renderItemData(e,i)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-autocomplete-item",e)},_renderItem:function(e,i){return t("<li>").append(t("<div>").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[t](e),void 0):(this.search(null,e),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("<div>").text(i).appendTo(this.liveRegion))}}),t.ui.autocomplete;var g=/ui-corner-([a-z]){2,6}/g;t.widget("ui.controlgroup",{version:"1.12.1",defaultElement:"<div>",options:{direction:"horizontal",disabled:null,onlyVisible:!0,items:{button:"input[type=button], input[type=submit], input[type=reset], button, a",controlgroupLabel:".ui-controlgroup-label",checkboxradio:"input[type='checkbox'], input[type='radio']",selectmenu:"select",spinner:".ui-spinner-input"}},_create:function(){this._enhance()},_enhance:function(){this.element.attr("role","toolbar"),this.refresh()},_destroy:function(){this._callChildMethod("destroy"),this.childWidgets.removeData("ui-controlgroup-data"),this.element.removeAttr("role"),this.options.items.controlgroupLabel&&this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap()},_initWidgets:function(){var e=this,i=[];t.each(this.options.items,function(s,n){var o,a={};return n?"controlgroupLabel"===s?(o=e.element.find(n),o.each(function(){var e=t(this);e.children(".ui-controlgroup-label-contents").length||e.contents().wrapAll("<span class='ui-controlgroup-label-contents'></span>")}),e._addClass(o,null,"ui-widget ui-widget-content ui-state-default"),i=i.concat(o.get()),void 0):(t.fn[s]&&(a=e["_"+s+"Options"]?e["_"+s+"Options"]("middle"):{classes:{}},e.element.find(n).each(function(){var n=t(this),o=n[s]("instance"),r=t.widget.extend({},a);if("button"!==s||!n.parent(".ui-spinner").length){o||(o=n[s]()[s]("instance")),o&&(r.classes=e._resolveClassesValues(r.classes,o)),n[s](r);var h=n[s]("widget");t.data(h[0],"ui-controlgroup-data",o?o:n[s]("instance")),i.push(h[0])}})),void 0):void 0}),this.childWidgets=t(t.unique(i)),this._addClass(this.childWidgets,"ui-controlgroup-item")},_callChildMethod:function(e){this.childWidgets.each(function(){var i=t(this),s=i.data("ui-controlgroup-data");s&&s[e]&&s[e]()})},_updateCornerClass:function(t,e){var i="ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all",s=this._buildSimpleOptions(e,"label").classes.label;this._removeClass(t,null,i),this._addClass(t,null,s)},_buildSimpleOptions:function(t,e){var i="vertical"===this.options.direction,s={classes:{}};return s.classes[e]={middle:"",first:"ui-corner-"+(i?"top":"left"),last:"ui-corner-"+(i?"bottom":"right"),only:"ui-corner-all"}[t],s},_spinnerOptions:function(t){var e=this._buildSimpleOptions(t,"ui-spinner");return e.classes["ui-spinner-up"]="",e.classes["ui-spinner-down"]="",e},_buttonOptions:function(t){return this._buildSimpleOptions(t,"ui-button")},_checkboxradioOptions:function(t){return this._buildSimpleOptions(t,"ui-checkboxradio-label")},_selectmenuOptions:function(t){var e="vertical"===this.options.direction;return{width:e?"auto":!1,classes:{middle:{"ui-selectmenu-button-open":"","ui-selectmenu-button-closed":""},first:{"ui-selectmenu-button-open":"ui-corner-"+(e?"top":"tl"),"ui-selectmenu-button-closed":"ui-corner-"+(e?"top":"left")},last:{"ui-selectmenu-button-open":e?"":"ui-corner-tr","ui-selectmenu-button-closed":"ui-corner-"+(e?"bottom":"right")},only:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"}}[t]}},_resolveClassesValues:function(e,i){var s={};return t.each(e,function(n){var o=i.options.classes[n]||"";o=t.trim(o.replace(g,"")),s[n]=(o+" "+e[n]).replace(/\s+/g," ")}),s},_setOption:function(t,e){return"direction"===t&&this._removeClass("ui-controlgroup-"+this.options.direction),this._super(t,e),"disabled"===t?(this._callChildMethod(e?"disable":"enable"),void 0):(this.refresh(),void 0)},refresh:function(){var e,i=this;this._addClass("ui-controlgroup ui-controlgroup-"+this.options.direction),"horizontal"===this.options.direction&&this._addClass(null,"ui-helper-clearfix"),this._initWidgets(),e=this.childWidgets,this.options.onlyVisible&&(e=e.filter(":visible")),e.length&&(t.each(["first","last"],function(t,s){var n=e[s]().data("ui-controlgroup-data");if(n&&i["_"+n.widgetName+"Options"]){var o=i["_"+n.widgetName+"Options"](1===e.length?"only":s);o.classes=i._resolveClassesValues(o.classes,n),n.element[n.widgetName](o)}else i._updateCornerClass(e[s](),s)}),this._callChildMethod("refresh"))}}),t.widget("ui.checkboxradio",[t.ui.formResetMixin,{version:"1.12.1",options:{disabled:null,label:null,icon:!0,classes:{"ui-checkboxradio-label":"ui-corner-all","ui-checkboxradio-icon":"ui-corner-all"}},_getCreateOptions:function(){var e,i,s=this,n=this._super()||{};return this._readType(),i=this.element.labels(),this.label=t(i[i.length-1]),this.label.length||t.error("No label found for checkboxradio widget"),this.originalLabel="",this.label.contents().not(this.element[0]).each(function(){s.originalLabel+=3===this.nodeType?t(this).text():this.outerHTML}),this.originalLabel&&(n.label=this.originalLabel),e=this.element[0].disabled,null!=e&&(n.disabled=e),n},_create:function(){var t=this.element[0].checked;this._bindFormResetHandler(),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled),this._setOption("disabled",this.options.disabled),this._addClass("ui-checkboxradio","ui-helper-hidden-accessible"),this._addClass(this.label,"ui-checkboxradio-label","ui-button ui-widget"),"radio"===this.type&&this._addClass(this.label,"ui-checkboxradio-radio-label"),this.options.label&&this.options.label!==this.originalLabel?this._updateLabel():this.originalLabel&&(this.options.label=this.originalLabel),this._enhance(),t&&(this._addClass(this.label,"ui-checkboxradio-checked","ui-state-active"),this.icon&&this._addClass(this.icon,null,"ui-state-hover")),this._on({change:"_toggleClasses",focus:function(){this._addClass(this.label,null,"ui-state-focus ui-visual-focus")},blur:function(){this._removeClass(this.label,null,"ui-state-focus ui-visual-focus")}})},_readType:function(){var e=this.element[0].nodeName.toLowerCase();this.type=this.element[0].type,"input"===e&&/radio|checkbox/.test(this.type)||t.error("Can't create checkboxradio on element.nodeName="+e+" and element.type="+this.type)},_enhance:function(){this._updateIcon(this.element[0].checked)},widget:function(){return this.label},_getRadioGroup:function(){var e,i=this.element[0].name,s="input[name='"+t.ui.escapeSelector(i)+"']";return i?(e=this.form.length?t(this.form[0].elements).filter(s):t(s).filter(function(){return 0===t(this).form().length}),e.not(this.element)):t([])},_toggleClasses:function(){var e=this.element[0].checked;this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",e),this.options.icon&&"checkbox"===this.type&&this._toggleClass(this.icon,null,"ui-icon-check ui-state-checked",e)._toggleClass(this.icon,null,"ui-icon-blank",!e),"radio"===this.type&&this._getRadioGroup().each(function(){var e=t(this).checkboxradio("instance");e&&e._removeClass(e.label,"ui-checkboxradio-checked","ui-state-active")})},_destroy:function(){this._unbindFormResetHandler(),this.icon&&(this.icon.remove(),this.iconSpace.remove())},_setOption:function(t,e){return"label"!==t||e?(this._super(t,e),"disabled"===t?(this._toggleClass(this.label,null,"ui-state-disabled",e),this.element[0].disabled=e,void 0):(this.refresh(),void 0)):void 0},_updateIcon:function(e){var i="ui-icon ui-icon-background ";this.options.icon?(this.icon||(this.icon=t("<span>"),this.iconSpace=t("<span> </span>"),this._addClass(this.iconSpace,"ui-checkboxradio-icon-space")),"checkbox"===this.type?(i+=e?"ui-icon-check ui-state-checked":"ui-icon-blank",this._removeClass(this.icon,null,e?"ui-icon-blank":"ui-icon-check")):i+="ui-icon-blank",this._addClass(this.icon,"ui-checkboxradio-icon",i),e||this._removeClass(this.icon,null,"ui-icon-check ui-state-checked"),this.icon.prependTo(this.label).after(this.iconSpace)):void 0!==this.icon&&(this.icon.remove(),this.iconSpace.remove(),delete this.icon)},_updateLabel:function(){var t=this.label.contents().not(this.element[0]);this.icon&&(t=t.not(this.icon[0])),this.iconSpace&&(t=t.not(this.iconSpace[0])),t.remove(),this.label.append(this.options.label)},refresh:function(){var t=this.element[0].checked,e=this.element[0].disabled;this._updateIcon(t),this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",t),null!==this.options.label&&this._updateLabel(),e!==this.options.disabled&&this._setOptions({disabled:e})}}]),t.ui.checkboxradio,t.widget("ui.button",{version:"1.12.1",defaultElement:"<button>",options:{classes:{"ui-button":"ui-corner-all"},disabled:null,icon:null,iconPosition:"beginning",label:null,showLabel:!0},_getCreateOptions:function(){var t,e=this._super()||{};return this.isInput=this.element.is("input"),t=this.element[0].disabled,null!=t&&(e.disabled=t),this.originalLabel=this.isInput?this.element.val():this.element.html(),this.originalLabel&&(e.label=this.originalLabel),e},_create:function(){!this.option.showLabel&!this.options.icon&&(this.options.showLabel=!0),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled||!1),this.hasTitle=!!this.element.attr("title"),this.options.label&&this.options.label!==this.originalLabel&&(this.isInput?this.element.val(this.options.label):this.element.html(this.options.label)),this._addClass("ui-button","ui-widget"),this._setOption("disabled",this.options.disabled),this._enhance(),this.element.is("a")&&this._on({keyup:function(e){e.keyCode===t.ui.keyCode.SPACE&&(e.preventDefault(),this.element[0].click?this.element[0].click():this.element.trigger("click"))}})},_enhance:function(){this.element.is("button")||this.element.attr("role","button"),this.options.icon&&(this._updateIcon("icon",this.options.icon),this._updateTooltip())},_updateTooltip:function(){this.title=this.element.attr("title"),this.options.showLabel||this.title||this.element.attr("title",this.options.label)},_updateIcon:function(e,i){var s="iconPosition"!==e,n=s?this.options.iconPosition:i,o="top"===n||"bottom"===n;this.icon?s&&this._removeClass(this.icon,null,this.options.icon):(this.icon=t("<span>"),this._addClass(this.icon,"ui-button-icon","ui-icon"),this.options.showLabel||this._addClass("ui-button-icon-only")),s&&this._addClass(this.icon,null,i),this._attachIcon(n),o?(this._addClass(this.icon,null,"ui-widget-icon-block"),this.iconSpace&&this.iconSpace.remove()):(this.iconSpace||(this.iconSpace=t("<span> </span>"),this._addClass(this.iconSpace,"ui-button-icon-space")),this._removeClass(this.icon,null,"ui-wiget-icon-block"),this._attachIconSpace(n))},_destroy:function(){this.element.removeAttr("role"),this.icon&&this.icon.remove(),this.iconSpace&&this.iconSpace.remove(),this.hasTitle||this.element.removeAttr("title")},_attachIconSpace:function(t){this.icon[/^(?:end|bottom)/.test(t)?"before":"after"](this.iconSpace)},_attachIcon:function(t){this.element[/^(?:end|bottom)/.test(t)?"append":"prepend"](this.icon)},_setOptions:function(t){var e=void 0===t.showLabel?this.options.showLabel:t.showLabel,i=void 0===t.icon?this.options.icon:t.icon;e||i||(t.showLabel=!0),this._super(t)},_setOption:function(t,e){"icon"===t&&(e?this._updateIcon(t,e):this.icon&&(this.icon.remove(),this.iconSpace&&this.iconSpace.remove())),"iconPosition"===t&&this._updateIcon(t,e),"showLabel"===t&&(this._toggleClass("ui-button-icon-only",null,!e),this._updateTooltip()),"label"===t&&(this.isInput?this.element.val(e):(this.element.html(e),this.icon&&(this._attachIcon(this.options.iconPosition),this._attachIconSpace(this.options.iconPosition)))),this._super(t,e),"disabled"===t&&(this._toggleClass(null,"ui-state-disabled",e),this.element[0].disabled=e,e&&this.element.blur())},refresh:function(){var t=this.element.is("input, button")?this.element[0].disabled:this.element.hasClass("ui-button-disabled");t!==this.options.disabled&&this._setOptions({disabled:t}),this._updateTooltip()}}),t.uiBackCompat!==!1&&(t.widget("ui.button",t.ui.button,{options:{text:!0,icons:{primary:null,secondary:null}},_create:function(){this.options.showLabel&&!this.options.text&&(this.options.showLabel=this.options.text),!this.options.showLabel&&this.options.text&&(this.options.text=this.options.showLabel),this.options.icon||!this.options.icons.primary&&!this.options.icons.secondary?this.options.icon&&(this.options.icons.primary=this.options.icon):this.options.icons.primary?this.options.icon=this.options.icons.primary:(this.options.icon=this.options.icons.secondary,this.options.iconPosition="end"),this._super()},_setOption:function(t,e){return"text"===t?(this._super("showLabel",e),void 0):("showLabel"===t&&(this.options.text=e),"icon"===t&&(this.options.icons.primary=e),"icons"===t&&(e.primary?(this._super("icon",e.primary),this._super("iconPosition","beginning")):e.secondary&&(this._super("icon",e.secondary),this._super("iconPosition","end"))),this._superApply(arguments),void 0)}}),t.fn.button=function(e){return function(){return!this.length||this.length&&"INPUT"!==this[0].tagName||this.length&&"INPUT"===this[0].tagName&&"checkbox"!==this.attr("type")&&"radio"!==this.attr("type")?e.apply(this,arguments):(t.ui.checkboxradio||t.error("Checkboxradio widget missing"),0===arguments.length?this.checkboxradio({icon:!1}):this.checkboxradio.apply(this,arguments))}}(t.fn.button),t.fn.buttonset=function(){return t.ui.controlgroup||t.error("Controlgroup widget missing"),"option"===arguments[0]&&"items"===arguments[1]&&arguments[2]?this.controlgroup.apply(this,[arguments[0],"items.button",arguments[2]]):"option"===arguments[0]&&"items"===arguments[1]?this.controlgroup.apply(this,[arguments[0],"items.button"]):("object"==typeof arguments[0]&&arguments[0].items&&(arguments[0].items={button:arguments[0].items}),this.controlgroup.apply(this,arguments))}),t.ui.button,t.extend(t.ui,{datepicker:{version:"1.12.1"}});var m;t.extend(s.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(t){return a(this._defaults,t||{}),this},_attachDatepicker:function(e,i){var s,n,o;s=e.nodeName.toLowerCase(),n="div"===s||"span"===s,e.id||(this.uuid+=1,e.id="dp"+this.uuid),o=this._newInst(t(e),n),o.settings=t.extend({},i||{}),"input"===s?this._connectDatepicker(e,o):n&&this._inlineDatepicker(e,o)},_newInst:function(e,i){var s=e[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:s,input:e,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:i,dpDiv:i?n(t("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(e,i){var s=t(e);i.append=t([]),i.trigger=t([]),s.hasClass(this.markerClassName)||(this._attachments(s,i),s.addClass(this.markerClassName).on("keydown",this._doKeyDown).on("keypress",this._doKeyPress).on("keyup",this._doKeyUp),this._autoSize(i),t.data(e,"datepicker",i),i.settings.disabled&&this._disableDatepicker(e))},_attachments:function(e,i){var s,n,o,a=this._get(i,"appendText"),r=this._get(i,"isRTL");i.append&&i.append.remove(),a&&(i.append=t("<span class='"+this._appendClass+"'>"+a+"</span>"),e[r?"before":"after"](i.append)),e.off("focus",this._showDatepicker),i.trigger&&i.trigger.remove(),s=this._get(i,"showOn"),("focus"===s||"both"===s)&&e.on("focus",this._showDatepicker),("button"===s||"both"===s)&&(n=this._get(i,"buttonText"),o=this._get(i,"buttonImage"),i.trigger=t(this._get(i,"buttonImageOnly")?t("<img/>").addClass(this._triggerClass).attr({src:o,alt:n,title:n}):t("<button type='button'></button>").addClass(this._triggerClass).html(o?t("<img/>").attr({src:o,alt:n,title:n}):n)),e[r?"before":"after"](i.trigger),i.trigger.on("click",function(){return t.datepicker._datepickerShowing&&t.datepicker._lastInput===e[0]?t.datepicker._hideDatepicker():t.datepicker._datepickerShowing&&t.datepicker._lastInput!==e[0]?(t.datepicker._hideDatepicker(),t.datepicker._showDatepicker(e[0])):t.datepicker._showDatepicker(e[0]),!1}))},_autoSize:function(t){if(this._get(t,"autoSize")&&!t.inline){var e,i,s,n,o=new Date(2009,11,20),a=this._get(t,"dateFormat");a.match(/[DM]/)&&(e=function(t){for(i=0,s=0,n=0;t.length>n;n++)t[n].length>i&&(i=t[n].length,s=n);return s},o.setMonth(e(this._get(t,a.match(/MM/)?"monthNames":"monthNamesShort"))),o.setDate(e(this._get(t,a.match(/DD/)?"dayNames":"dayNamesShort"))+20-o.getDay())),t.input.attr("size",this._formatDate(t,o).length)}},_inlineDatepicker:function(e,i){var s=t(e);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),t.data(e,"datepicker",i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(e),i.dpDiv.css("display","block"))},_dialogDatepicker:function(e,i,s,n,o){var r,h,l,c,u,d=this._dialogInst;return d||(this.uuid+=1,r="dp"+this.uuid,this._dialogInput=t("<input type='text' id='"+r+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.on("keydown",this._doKeyDown),t("body").append(this._dialogInput),d=this._dialogInst=this._newInst(this._dialogInput,!1),d.settings={},t.data(this._dialogInput[0],"datepicker",d)),a(d.settings,n||{}),i=i&&i.constructor===Date?this._formatDate(d,i):i,this._dialogInput.val(i),this._pos=o?o.length?o:[o.pageX,o.pageY]:null,this._pos||(h=document.documentElement.clientWidth,l=document.documentElement.clientHeight,c=document.documentElement.scrollLeft||document.body.scrollLeft,u=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[h/2-100+c,l/2-150+u]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),d.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),t.blockUI&&t.blockUI(this.dpDiv),t.data(this._dialogInput[0],"datepicker",d),this},_destroyDatepicker:function(e){var i,s=t(e),n=t.data(e,"datepicker");s.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),t.removeData(e,"datepicker"),"input"===i?(n.append.remove(),n.trigger.remove(),s.removeClass(this.markerClassName).off("focus",this._showDatepicker).off("keydown",this._doKeyDown).off("keypress",this._doKeyPress).off("keyup",this._doKeyUp)):("div"===i||"span"===i)&&s.removeClass(this.markerClassName).empty(),m===n&&(m=null))},_enableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!1,o.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}))},_disableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!0,o.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}),this._disabledInputs[this._disabledInputs.length]=e)},_isDisabledDatepicker:function(t){if(!t)return!1;for(var e=0;this._disabledInputs.length>e;e++)if(this._disabledInputs[e]===t)return!0;return!1},_getInst:function(e){try{return t.data(e,"datepicker")}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(e,i,s){var n,o,r,h,l=this._getInst(e);return 2===arguments.length&&"string"==typeof i?"defaults"===i?t.extend({},t.datepicker._defaults):l?"all"===i?t.extend({},l.settings):this._get(l,i):null:(n=i||{},"string"==typeof i&&(n={},n[i]=s),l&&(this._curInst===l&&this._hideDatepicker(),o=this._getDateDatepicker(e,!0),r=this._getMinMaxDate(l,"min"),h=this._getMinMaxDate(l,"max"),a(l.settings,n),null!==r&&void 0!==n.dateFormat&&void 0===n.minDate&&(l.settings.minDate=this._formatDate(l,r)),null!==h&&void 0!==n.dateFormat&&void 0===n.maxDate&&(l.settings.maxDate=this._formatDate(l,h)),"disabled"in n&&(n.disabled?this._disableDatepicker(e):this._enableDatepicker(e)),this._attachments(t(e),l),this._autoSize(l),this._setDate(l,o),this._updateAlternate(l),this._updateDatepicker(l)),void 0)},_changeDatepicker:function(t,e,i){this._optionDatepicker(t,e,i)},_refreshDatepicker:function(t){var e=this._getInst(t);e&&this._updateDatepicker(e)},_setDateDatepicker:function(t,e){var i=this._getInst(t);i&&(this._setDate(i,e),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(t,e){var i=this._getInst(t);return i&&!i.inline&&this._setDateFromField(i,e),i?this._getDate(i):null},_doKeyDown:function(e){var i,s,n,o=t.datepicker._getInst(e.target),a=!0,r=o.dpDiv.is(".ui-datepicker-rtl");if(o._keyEvent=!0,t.datepicker._datepickerShowing)switch(e.keyCode){case 9:t.datepicker._hideDatepicker(),a=!1;break;case 13:return n=t("td."+t.datepicker._dayOverClass+":not(."+t.datepicker._currentClass+")",o.dpDiv),n[0]&&t.datepicker._selectDay(e.target,o.selectedMonth,o.selectedYear,n[0]),i=t.datepicker._get(o,"onSelect"),i?(s=t.datepicker._formatDate(o),i.apply(o.input?o.input[0]:null,[s,o])):t.datepicker._hideDatepicker(),!1;case 27:t.datepicker._hideDatepicker();break;case 33:t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 34:t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 35:(e.ctrlKey||e.metaKey)&&t.datepicker._clearDate(e.target),a=e.ctrlKey||e.metaKey;break;case 36:(e.ctrlKey||e.metaKey)&&t.datepicker._gotoToday(e.target),a=e.ctrlKey||e.metaKey;break;case 37:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?1:-1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 38:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,-7,"D"),a=e.ctrlKey||e.metaKey;break;case 39:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?-1:1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 40:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,7,"D"),a=e.ctrlKey||e.metaKey;break;default:a=!1}else 36===e.keyCode&&e.ctrlKey?t.datepicker._showDatepicker(this):a=!1;a&&(e.preventDefault(),e.stopPropagation())},_doKeyPress:function(e){var i,s,n=t.datepicker._getInst(e.target);return t.datepicker._get(n,"constrainInput")?(i=t.datepicker._possibleChars(t.datepicker._get(n,"dateFormat")),s=String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),e.ctrlKey||e.metaKey||" ">s||!i||i.indexOf(s)>-1):void 0},_doKeyUp:function(e){var i,s=t.datepicker._getInst(e.target);if(s.input.val()!==s.lastVal)try{i=t.datepicker.parseDate(t.datepicker._get(s,"dateFormat"),s.input?s.input.val():null,t.datepicker._getFormatConfig(s)),i&&(t.datepicker._setDateFromField(s),t.datepicker._updateAlternate(s),t.datepicker._updateDatepicker(s))}catch(n){}return!0},_showDatepicker:function(e){if(e=e.target||e,"input"!==e.nodeName.toLowerCase()&&(e=t("input",e.parentNode)[0]),!t.datepicker._isDisabledDatepicker(e)&&t.datepicker._lastInput!==e){var s,n,o,r,h,l,c;s=t.datepicker._getInst(e),t.datepicker._curInst&&t.datepicker._curInst!==s&&(t.datepicker._curInst.dpDiv.stop(!0,!0),s&&t.datepicker._datepickerShowing&&t.datepicker._hideDatepicker(t.datepicker._curInst.input[0])),n=t.datepicker._get(s,"beforeShow"),o=n?n.apply(e,[e,s]):{},o!==!1&&(a(s.settings,o),s.lastVal=null,t.datepicker._lastInput=e,t.datepicker._setDateFromField(s),t.datepicker._inDialog&&(e.value=""),t.datepicker._pos||(t.datepicker._pos=t.datepicker._findPos(e),t.datepicker._pos[1]+=e.offsetHeight),r=!1,t(e).parents().each(function(){return r|="fixed"===t(this).css("position"),!r}),h={left:t.datepicker._pos[0],top:t.datepicker._pos[1]},t.datepicker._pos=null,s.dpDiv.empty(),s.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),t.datepicker._updateDatepicker(s),h=t.datepicker._checkOffset(s,h,r),s.dpDiv.css({position:t.datepicker._inDialog&&t.blockUI?"static":r?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"}),s.inline||(l=t.datepicker._get(s,"showAnim"),c=t.datepicker._get(s,"duration"),s.dpDiv.css("z-index",i(t(e))+1),t.datepicker._datepickerShowing=!0,t.effects&&t.effects.effect[l]?s.dpDiv.show(l,t.datepicker._get(s,"showOptions"),c):s.dpDiv[l||"show"](l?c:null),t.datepicker._shouldFocusInput(s)&&s.input.trigger("focus"),t.datepicker._curInst=s)) +}},_updateDatepicker:function(e){this.maxRows=4,m=e,e.dpDiv.empty().append(this._generateHTML(e)),this._attachHandlers(e);var i,s=this._getNumberOfMonths(e),n=s[1],a=17,r=e.dpDiv.find("."+this._dayOverClass+" a");r.length>0&&o.apply(r.get(0)),e.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),n>1&&e.dpDiv.addClass("ui-datepicker-multi-"+n).css("width",a*n+"em"),e.dpDiv[(1!==s[0]||1!==s[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),e.dpDiv[(this._get(e,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),e===t.datepicker._curInst&&t.datepicker._datepickerShowing&&t.datepicker._shouldFocusInput(e)&&e.input.trigger("focus"),e.yearshtml&&(i=e.yearshtml,setTimeout(function(){i===e.yearshtml&&e.yearshtml&&e.dpDiv.find("select.ui-datepicker-year:first").replaceWith(e.yearshtml),i=e.yearshtml=null},0))},_shouldFocusInput:function(t){return t.input&&t.input.is(":visible")&&!t.input.is(":disabled")&&!t.input.is(":focus")},_checkOffset:function(e,i,s){var n=e.dpDiv.outerWidth(),o=e.dpDiv.outerHeight(),a=e.input?e.input.outerWidth():0,r=e.input?e.input.outerHeight():0,h=document.documentElement.clientWidth+(s?0:t(document).scrollLeft()),l=document.documentElement.clientHeight+(s?0:t(document).scrollTop());return i.left-=this._get(e,"isRTL")?n-a:0,i.left-=s&&i.left===e.input.offset().left?t(document).scrollLeft():0,i.top-=s&&i.top===e.input.offset().top+r?t(document).scrollTop():0,i.left-=Math.min(i.left,i.left+n>h&&h>n?Math.abs(i.left+n-h):0),i.top-=Math.min(i.top,i.top+o>l&&l>o?Math.abs(o+r):0),i},_findPos:function(e){for(var i,s=this._getInst(e),n=this._get(s,"isRTL");e&&("hidden"===e.type||1!==e.nodeType||t.expr.filters.hidden(e));)e=e[n?"previousSibling":"nextSibling"];return i=t(e).offset(),[i.left,i.top]},_hideDatepicker:function(e){var i,s,n,o,a=this._curInst;!a||e&&a!==t.data(e,"datepicker")||this._datepickerShowing&&(i=this._get(a,"showAnim"),s=this._get(a,"duration"),n=function(){t.datepicker._tidyDialog(a)},t.effects&&(t.effects.effect[i]||t.effects[i])?a.dpDiv.hide(i,t.datepicker._get(a,"showOptions"),s,n):a.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,n),i||n(),this._datepickerShowing=!1,o=this._get(a,"onClose"),o&&o.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),t.blockUI&&(t.unblockUI(),t("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(t){t.dpDiv.removeClass(this._dialogClass).off(".ui-datepicker-calendar")},_checkExternalClick:function(e){if(t.datepicker._curInst){var i=t(e.target),s=t.datepicker._getInst(i[0]);(i[0].id!==t.datepicker._mainDivId&&0===i.parents("#"+t.datepicker._mainDivId).length&&!i.hasClass(t.datepicker.markerClassName)&&!i.closest("."+t.datepicker._triggerClass).length&&t.datepicker._datepickerShowing&&(!t.datepicker._inDialog||!t.blockUI)||i.hasClass(t.datepicker.markerClassName)&&t.datepicker._curInst!==s)&&t.datepicker._hideDatepicker()}},_adjustDate:function(e,i,s){var n=t(e),o=this._getInst(n[0]);this._isDisabledDatepicker(n[0])||(this._adjustInstDate(o,i+("M"===s?this._get(o,"showCurrentAtPos"):0),s),this._updateDatepicker(o))},_gotoToday:function(e){var i,s=t(e),n=this._getInst(s[0]);this._get(n,"gotoCurrent")&&n.currentDay?(n.selectedDay=n.currentDay,n.drawMonth=n.selectedMonth=n.currentMonth,n.drawYear=n.selectedYear=n.currentYear):(i=new Date,n.selectedDay=i.getDate(),n.drawMonth=n.selectedMonth=i.getMonth(),n.drawYear=n.selectedYear=i.getFullYear()),this._notifyChange(n),this._adjustDate(s)},_selectMonthYear:function(e,i,s){var n=t(e),o=this._getInst(n[0]);o["selected"+("M"===s?"Month":"Year")]=o["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(o),this._adjustDate(n)},_selectDay:function(e,i,s,n){var o,a=t(e);t(n).hasClass(this._unselectableClass)||this._isDisabledDatepicker(a[0])||(o=this._getInst(a[0]),o.selectedDay=o.currentDay=t("a",n).html(),o.selectedMonth=o.currentMonth=i,o.selectedYear=o.currentYear=s,this._selectDate(e,this._formatDate(o,o.currentDay,o.currentMonth,o.currentYear)))},_clearDate:function(e){var i=t(e);this._selectDate(i,"")},_selectDate:function(e,i){var s,n=t(e),o=this._getInst(n[0]);i=null!=i?i:this._formatDate(o),o.input&&o.input.val(i),this._updateAlternate(o),s=this._get(o,"onSelect"),s?s.apply(o.input?o.input[0]:null,[i,o]):o.input&&o.input.trigger("change"),o.inline?this._updateDatepicker(o):(this._hideDatepicker(),this._lastInput=o.input[0],"object"!=typeof o.input[0]&&o.input.trigger("focus"),this._lastInput=null)},_updateAlternate:function(e){var i,s,n,o=this._get(e,"altField");o&&(i=this._get(e,"altFormat")||this._get(e,"dateFormat"),s=this._getDate(e),n=this.formatDate(i,s,this._getFormatConfig(e)),t(o).val(n))},noWeekends:function(t){var e=t.getDay();return[e>0&&6>e,""]},iso8601Week:function(t){var e,i=new Date(t.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),e=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((e-i)/864e5)/7)+1},parseDate:function(e,i,s){if(null==e||null==i)throw"Invalid arguments";if(i="object"==typeof i?""+i:i+"",""===i)return null;var n,o,a,r,h=0,l=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,c="string"!=typeof l?l:(new Date).getFullYear()%100+parseInt(l,10),u=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,d=(s?s.dayNames:null)||this._defaults.dayNames,p=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,f=(s?s.monthNames:null)||this._defaults.monthNames,g=-1,m=-1,_=-1,v=-1,b=!1,y=function(t){var i=e.length>n+1&&e.charAt(n+1)===t;return i&&n++,i},w=function(t){var e=y(t),s="@"===t?14:"!"===t?20:"y"===t&&e?4:"o"===t?3:2,n="y"===t?s:1,o=RegExp("^\\d{"+n+","+s+"}"),a=i.substring(h).match(o);if(!a)throw"Missing number at position "+h;return h+=a[0].length,parseInt(a[0],10)},k=function(e,s,n){var o=-1,a=t.map(y(e)?n:s,function(t,e){return[[e,t]]}).sort(function(t,e){return-(t[1].length-e[1].length)});if(t.each(a,function(t,e){var s=e[1];return i.substr(h,s.length).toLowerCase()===s.toLowerCase()?(o=e[0],h+=s.length,!1):void 0}),-1!==o)return o+1;throw"Unknown name at position "+h},x=function(){if(i.charAt(h)!==e.charAt(n))throw"Unexpected literal at position "+h;h++};for(n=0;e.length>n;n++)if(b)"'"!==e.charAt(n)||y("'")?x():b=!1;else switch(e.charAt(n)){case"d":_=w("d");break;case"D":k("D",u,d);break;case"o":v=w("o");break;case"m":m=w("m");break;case"M":m=k("M",p,f);break;case"y":g=w("y");break;case"@":r=new Date(w("@")),g=r.getFullYear(),m=r.getMonth()+1,_=r.getDate();break;case"!":r=new Date((w("!")-this._ticksTo1970)/1e4),g=r.getFullYear(),m=r.getMonth()+1,_=r.getDate();break;case"'":y("'")?x():b=!0;break;default:x()}if(i.length>h&&(a=i.substr(h),!/^\s+/.test(a)))throw"Extra/unparsed characters found in date: "+a;if(-1===g?g=(new Date).getFullYear():100>g&&(g+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c>=g?0:-100)),v>-1)for(m=1,_=v;;){if(o=this._getDaysInMonth(g,m-1),o>=_)break;m++,_-=o}if(r=this._daylightSavingAdjust(new Date(g,m-1,_)),r.getFullYear()!==g||r.getMonth()+1!==m||r.getDate()!==_)throw"Invalid date";return r},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(t,e,i){if(!e)return"";var s,n=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,o=(i?i.dayNames:null)||this._defaults.dayNames,a=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,r=(i?i.monthNames:null)||this._defaults.monthNames,h=function(e){var i=t.length>s+1&&t.charAt(s+1)===e;return i&&s++,i},l=function(t,e,i){var s=""+e;if(h(t))for(;i>s.length;)s="0"+s;return s},c=function(t,e,i,s){return h(t)?s[e]:i[e]},u="",d=!1;if(e)for(s=0;t.length>s;s++)if(d)"'"!==t.charAt(s)||h("'")?u+=t.charAt(s):d=!1;else switch(t.charAt(s)){case"d":u+=l("d",e.getDate(),2);break;case"D":u+=c("D",e.getDay(),n,o);break;case"o":u+=l("o",Math.round((new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5),3);break;case"m":u+=l("m",e.getMonth()+1,2);break;case"M":u+=c("M",e.getMonth(),a,r);break;case"y":u+=h("y")?e.getFullYear():(10>e.getFullYear()%100?"0":"")+e.getFullYear()%100;break;case"@":u+=e.getTime();break;case"!":u+=1e4*e.getTime()+this._ticksTo1970;break;case"'":h("'")?u+="'":d=!0;break;default:u+=t.charAt(s)}return u},_possibleChars:function(t){var e,i="",s=!1,n=function(i){var s=t.length>e+1&&t.charAt(e+1)===i;return s&&e++,s};for(e=0;t.length>e;e++)if(s)"'"!==t.charAt(e)||n("'")?i+=t.charAt(e):s=!1;else switch(t.charAt(e)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":n("'")?i+="'":s=!0;break;default:i+=t.charAt(e)}return i},_get:function(t,e){return void 0!==t.settings[e]?t.settings[e]:this._defaults[e]},_setDateFromField:function(t,e){if(t.input.val()!==t.lastVal){var i=this._get(t,"dateFormat"),s=t.lastVal=t.input?t.input.val():null,n=this._getDefaultDate(t),o=n,a=this._getFormatConfig(t);try{o=this.parseDate(i,s,a)||n}catch(r){s=e?"":s}t.selectedDay=o.getDate(),t.drawMonth=t.selectedMonth=o.getMonth(),t.drawYear=t.selectedYear=o.getFullYear(),t.currentDay=s?o.getDate():0,t.currentMonth=s?o.getMonth():0,t.currentYear=s?o.getFullYear():0,this._adjustInstDate(t)}},_getDefaultDate:function(t){return this._restrictMinMax(t,this._determineDate(t,this._get(t,"defaultDate"),new Date))},_determineDate:function(e,i,s){var n=function(t){var e=new Date;return e.setDate(e.getDate()+t),e},o=function(i){try{return t.datepicker.parseDate(t.datepicker._get(e,"dateFormat"),i,t.datepicker._getFormatConfig(e))}catch(s){}for(var n=(i.toLowerCase().match(/^c/)?t.datepicker._getDate(e):null)||new Date,o=n.getFullYear(),a=n.getMonth(),r=n.getDate(),h=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,l=h.exec(i);l;){switch(l[2]||"d"){case"d":case"D":r+=parseInt(l[1],10);break;case"w":case"W":r+=7*parseInt(l[1],10);break;case"m":case"M":a+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a));break;case"y":case"Y":o+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a))}l=h.exec(i)}return new Date(o,a,r)},a=null==i||""===i?s:"string"==typeof i?o(i):"number"==typeof i?isNaN(i)?s:n(i):new Date(i.getTime());return a=a&&"Invalid Date"==""+a?s:a,a&&(a.setHours(0),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0)),this._daylightSavingAdjust(a)},_daylightSavingAdjust:function(t){return t?(t.setHours(t.getHours()>12?t.getHours()+2:0),t):null},_setDate:function(t,e,i){var s=!e,n=t.selectedMonth,o=t.selectedYear,a=this._restrictMinMax(t,this._determineDate(t,e,new Date));t.selectedDay=t.currentDay=a.getDate(),t.drawMonth=t.selectedMonth=t.currentMonth=a.getMonth(),t.drawYear=t.selectedYear=t.currentYear=a.getFullYear(),n===t.selectedMonth&&o===t.selectedYear||i||this._notifyChange(t),this._adjustInstDate(t),t.input&&t.input.val(s?"":this._formatDate(t))},_getDate:function(t){var e=!t.currentYear||t.input&&""===t.input.val()?null:this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return e},_attachHandlers:function(e){var i=this._get(e,"stepMonths"),s="#"+e.id.replace(/\\\\/g,"\\");e.dpDiv.find("[data-handler]").map(function(){var e={prev:function(){t.datepicker._adjustDate(s,-i,"M")},next:function(){t.datepicker._adjustDate(s,+i,"M")},hide:function(){t.datepicker._hideDatepicker()},today:function(){t.datepicker._gotoToday(s)},selectDay:function(){return t.datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return t.datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return t.datepicker._selectMonthYear(s,this,"Y"),!1}};t(this).on(this.getAttribute("data-event"),e[this.getAttribute("data-handler")])})},_generateHTML:function(t){var e,i,s,n,o,a,r,h,l,c,u,d,p,f,g,m,_,v,b,y,w,k,x,C,D,I,T,P,M,S,H,z,O,A,N,W,E,F,L,R=new Date,B=this._daylightSavingAdjust(new Date(R.getFullYear(),R.getMonth(),R.getDate())),Y=this._get(t,"isRTL"),j=this._get(t,"showButtonPanel"),q=this._get(t,"hideIfNoPrevNext"),K=this._get(t,"navigationAsDateFormat"),U=this._getNumberOfMonths(t),V=this._get(t,"showCurrentAtPos"),$=this._get(t,"stepMonths"),X=1!==U[0]||1!==U[1],G=this._daylightSavingAdjust(t.currentDay?new Date(t.currentYear,t.currentMonth,t.currentDay):new Date(9999,9,9)),Q=this._getMinMaxDate(t,"min"),J=this._getMinMaxDate(t,"max"),Z=t.drawMonth-V,te=t.drawYear;if(0>Z&&(Z+=12,te--),J)for(e=this._daylightSavingAdjust(new Date(J.getFullYear(),J.getMonth()-U[0]*U[1]+1,J.getDate())),e=Q&&Q>e?Q:e;this._daylightSavingAdjust(new Date(te,Z,1))>e;)Z--,0>Z&&(Z=11,te--);for(t.drawMonth=Z,t.drawYear=te,i=this._get(t,"prevText"),i=K?this.formatDate(i,this._daylightSavingAdjust(new Date(te,Z-$,1)),this._getFormatConfig(t)):i,s=this._canAdjustMonth(t,-1,te,Z)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>":q?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>",n=this._get(t,"nextText"),n=K?this.formatDate(n,this._daylightSavingAdjust(new Date(te,Z+$,1)),this._getFormatConfig(t)):n,o=this._canAdjustMonth(t,1,te,Z)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>":q?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>",a=this._get(t,"currentText"),r=this._get(t,"gotoCurrent")&&t.currentDay?G:B,a=K?this.formatDate(a,r,this._getFormatConfig(t)):a,h=t.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(t,"closeText")+"</button>",l=j?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(Y?h:"")+(this._isInRange(t,r)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+a+"</button>":"")+(Y?"":h)+"</div>":"",c=parseInt(this._get(t,"firstDay"),10),c=isNaN(c)?0:c,u=this._get(t,"showWeek"),d=this._get(t,"dayNames"),p=this._get(t,"dayNamesMin"),f=this._get(t,"monthNames"),g=this._get(t,"monthNamesShort"),m=this._get(t,"beforeShowDay"),_=this._get(t,"showOtherMonths"),v=this._get(t,"selectOtherMonths"),b=this._getDefaultDate(t),y="",k=0;U[0]>k;k++){for(x="",this.maxRows=4,C=0;U[1]>C;C++){if(D=this._daylightSavingAdjust(new Date(te,Z,t.selectedDay)),I=" ui-corner-all",T="",X){if(T+="<div class='ui-datepicker-group",U[1]>1)switch(C){case 0:T+=" ui-datepicker-group-first",I=" ui-corner-"+(Y?"right":"left");break;case U[1]-1:T+=" ui-datepicker-group-last",I=" ui-corner-"+(Y?"left":"right");break;default:T+=" ui-datepicker-group-middle",I=""}T+="'>"}for(T+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+I+"'>"+(/all|left/.test(I)&&0===k?Y?o:s:"")+(/all|right/.test(I)&&0===k?Y?s:o:"")+this._generateMonthYearHeader(t,Z,te,Q,J,k>0||C>0,f,g)+"</div><table class='ui-datepicker-calendar'><thead>"+"<tr>",P=u?"<th class='ui-datepicker-week-col'>"+this._get(t,"weekHeader")+"</th>":"",w=0;7>w;w++)M=(w+c)%7,P+="<th scope='col'"+((w+c+6)%7>=5?" class='ui-datepicker-week-end'":"")+">"+"<span title='"+d[M]+"'>"+p[M]+"</span></th>";for(T+=P+"</tr></thead><tbody>",S=this._getDaysInMonth(te,Z),te===t.selectedYear&&Z===t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,S)),H=(this._getFirstDayOfMonth(te,Z)-c+7)%7,z=Math.ceil((H+S)/7),O=X?this.maxRows>z?this.maxRows:z:z,this.maxRows=O,A=this._daylightSavingAdjust(new Date(te,Z,1-H)),N=0;O>N;N++){for(T+="<tr>",W=u?"<td class='ui-datepicker-week-col'>"+this._get(t,"calculateWeek")(A)+"</td>":"",w=0;7>w;w++)E=m?m.apply(t.input?t.input[0]:null,[A]):[!0,""],F=A.getMonth()!==Z,L=F&&!v||!E[0]||Q&&Q>A||J&&A>J,W+="<td class='"+((w+c+6)%7>=5?" ui-datepicker-week-end":"")+(F?" ui-datepicker-other-month":"")+(A.getTime()===D.getTime()&&Z===t.selectedMonth&&t._keyEvent||b.getTime()===A.getTime()&&b.getTime()===D.getTime()?" "+this._dayOverClass:"")+(L?" "+this._unselectableClass+" ui-state-disabled":"")+(F&&!_?"":" "+E[1]+(A.getTime()===G.getTime()?" "+this._currentClass:"")+(A.getTime()===B.getTime()?" ui-datepicker-today":""))+"'"+(F&&!_||!E[2]?"":" title='"+E[2].replace(/'/g,"'")+"'")+(L?"":" data-handler='selectDay' data-event='click' data-month='"+A.getMonth()+"' data-year='"+A.getFullYear()+"'")+">"+(F&&!_?" ":L?"<span class='ui-state-default'>"+A.getDate()+"</span>":"<a class='ui-state-default"+(A.getTime()===B.getTime()?" ui-state-highlight":"")+(A.getTime()===G.getTime()?" ui-state-active":"")+(F?" ui-priority-secondary":"")+"' href='#'>"+A.getDate()+"</a>")+"</td>",A.setDate(A.getDate()+1),A=this._daylightSavingAdjust(A);T+=W+"</tr>"}Z++,Z>11&&(Z=0,te++),T+="</tbody></table>"+(X?"</div>"+(U[0]>0&&C===U[1]-1?"<div class='ui-datepicker-row-break'></div>":""):""),x+=T}y+=x}return y+=l,t._keyEvent=!1,y},_generateMonthYearHeader:function(t,e,i,s,n,o,a,r){var h,l,c,u,d,p,f,g,m=this._get(t,"changeMonth"),_=this._get(t,"changeYear"),v=this._get(t,"showMonthAfterYear"),b="<div class='ui-datepicker-title'>",y="";if(o||!m)y+="<span class='ui-datepicker-month'>"+a[e]+"</span>";else{for(h=s&&s.getFullYear()===i,l=n&&n.getFullYear()===i,y+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",c=0;12>c;c++)(!h||c>=s.getMonth())&&(!l||n.getMonth()>=c)&&(y+="<option value='"+c+"'"+(c===e?" selected='selected'":"")+">"+r[c]+"</option>");y+="</select>"}if(v||(b+=y+(!o&&m&&_?"":" ")),!t.yearshtml)if(t.yearshtml="",o||!_)b+="<span class='ui-datepicker-year'>"+i+"</span>";else{for(u=this._get(t,"yearRange").split(":"),d=(new Date).getFullYear(),p=function(t){var e=t.match(/c[+\-].*/)?i+parseInt(t.substring(1),10):t.match(/[+\-].*/)?d+parseInt(t,10):parseInt(t,10);return isNaN(e)?d:e},f=p(u[0]),g=Math.max(f,p(u[1]||"")),f=s?Math.max(f,s.getFullYear()):f,g=n?Math.min(g,n.getFullYear()):g,t.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";g>=f;f++)t.yearshtml+="<option value='"+f+"'"+(f===i?" selected='selected'":"")+">"+f+"</option>";t.yearshtml+="</select>",b+=t.yearshtml,t.yearshtml=null}return b+=this._get(t,"yearSuffix"),v&&(b+=(!o&&m&&_?"":" ")+y),b+="</div>"},_adjustInstDate:function(t,e,i){var s=t.selectedYear+("Y"===i?e:0),n=t.selectedMonth+("M"===i?e:0),o=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+("D"===i?e:0),a=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,o)));t.selectedDay=a.getDate(),t.drawMonth=t.selectedMonth=a.getMonth(),t.drawYear=t.selectedYear=a.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),s=this._getMinMaxDate(t,"max"),n=i&&i>e?i:e;return s&&n>s?s:n},_notifyChange:function(t){var e=this._get(t,"onChangeMonthYear");e&&e.apply(t.input?t.input[0]:null,[t.selectedYear,t.selectedMonth+1,t])},_getNumberOfMonths:function(t){var e=this._get(t,"numberOfMonths");return null==e?[1,1]:"number"==typeof e?[1,e]:e},_getMinMaxDate:function(t,e){return this._determineDate(t,this._get(t,e+"Date"),null)},_getDaysInMonth:function(t,e){return 32-this._daylightSavingAdjust(new Date(t,e,32)).getDate()},_getFirstDayOfMonth:function(t,e){return new Date(t,e,1).getDay()},_canAdjustMonth:function(t,e,i,s){var n=this._getNumberOfMonths(t),o=this._daylightSavingAdjust(new Date(i,s+(0>e?e:n[0]*n[1]),1));return 0>e&&o.setDate(this._getDaysInMonth(o.getFullYear(),o.getMonth())),this._isInRange(t,o)},_isInRange:function(t,e){var i,s,n=this._getMinMaxDate(t,"min"),o=this._getMinMaxDate(t,"max"),a=null,r=null,h=this._get(t,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),a=parseInt(i[0],10),r=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(a+=s),i[1].match(/[+\-].*/)&&(r+=s)),(!n||e.getTime()>=n.getTime())&&(!o||e.getTime()<=o.getTime())&&(!a||e.getFullYear()>=a)&&(!r||r>=e.getFullYear())},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),{shortYearCutoff:e,dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);var n=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),n,this._getFormatConfig(t))}}),t.fn.datepicker=function(e){if(!this.length)return this;t.datepicker.initialized||(t(document).on("mousedown",t.datepicker._checkExternalClick),t.datepicker.initialized=!0),0===t("#"+t.datepicker._mainDivId).length&&t("body").append(t.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof e||"isDisabled"!==e&&"getDate"!==e&&"widget"!==e?"option"===e&&2===arguments.length&&"string"==typeof arguments[1]?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof e?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this].concat(i)):t.datepicker._attachDatepicker(this,e)}):t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i))},t.datepicker=new s,t.datepicker.initialized=!1,t.datepicker.uuid=(new Date).getTime(),t.datepicker.version="1.12.1",t.datepicker,t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var _=!1;t(document).on("mouseup",function(){_=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!_){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,n="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),_=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,_=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.ui.safeBlur=function(e){e&&"body"!==e.nodeName.toLowerCase()&&t(e).trigger("blur")},t.widget("ui.draggable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass("ui-draggable"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(e){var i=this.options;return this.helper||i.disabled||t(e.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(e),this.handle?(this._blurActiveElement(e),this._blockFrames(i.iframeFix===!0?"iframe":i.iframeFix),!0):!1)},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map(function(){var e=t(this);return t("<div>").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var i=t.ui.safeActiveElement(this.document[0]),s=t(e.target);s.closest(i).length||t.ui.safeBlur(i)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===t(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",e)===!1?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",e,s)===!1)return this._mouseUp(new t.Event("mouseup",e)),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,s=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(s=t.ui.ddmanager.drop(this,e)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",e)!==!1&&i._clear()}):this._trigger("stop",e)!==!1&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.trigger("focus"),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new t.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(e){return this.options.handle?!!t(e.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper),n=s?t(i.helper.apply(this.element[0],[e])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return n.parents("body").length||n.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css("position"))||n.css("position","absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())} +},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options,o=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?(this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,t(o).width()-this.helperProportions.width-this.margins.left,(t(o).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=t(n.containment),s=i[0],s&&(e=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(e?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i),void 0):(this.containment=null,void 0)},_convertPositionTo:function(t,e){e||(e=this.position);var i="absolute"===t?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,s,n,o,a=this.options,r=this._isRootNode(this.scrollParent[0]),h=t.pageX,l=t.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,t.pageX-this.offset.click.left<i[0]&&(h=i[0]+this.offset.click.left),t.pageY-this.offset.click.top<i[1]&&(l=i[1]+this.offset.click.top),t.pageX-this.offset.click.left>i[2]&&(h=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),a.grid&&(n=a.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/a.grid[1])*a.grid[1]:this.originalPageY,l=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-a.grid[1]:n+a.grid[1]:n,o=a.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/a.grid[0])*a.grid[0]:this.originalPageX,h=i?o-this.offset.click.left>=i[0]||o-this.offset.click.left>i[2]?o:o-this.offset.click.left>=i[0]?o-a.grid[0]:o+a.grid[0]:o),"y"===a.axis&&(h=this.originalPageX),"x"===a.axis&&(l=this.originalPageY)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:h-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(e,i,s){return s=s||this._uiHash(),t.ui.plugin.call(this,e,[i,s,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i,s){var n=t.extend({},i,{item:s.element});s.sortables=[],t(s.options.connectToSortable).each(function(){var i=t(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",e,n))})},stop:function(e,i,s){var n=t.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,t.each(s.sortables,function(){var t=this;t.isOver?(t.isOver=0,s.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,n))})},drag:function(e,i,s){t.each(s.sortables,function(){var n=!1,o=this;o.positionAbs=s.positionAbs,o.helperProportions=s.helperProportions,o.offset.click=s.offset.click,o._intersectsWith(o.containerCache)&&(n=!0,t.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&t.contains(o.element[0],this.element[0])&&(n=!1),n})),n?(o.isOver||(o.isOver=1,s._parent=i.helper.parent(),o.currentItem=i.helper.appendTo(o.element).data("ui-sortable-item",!0),o.options._helper=o.options.helper,o.options.helper=function(){return i.helper[0]},e.target=o.currentItem[0],o._mouseCapture(e,!0),o._mouseStart(e,!0,!0),o.offset.click.top=s.offset.click.top,o.offset.click.left=s.offset.click.left,o.offset.parent.left-=s.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=s.offset.parent.top-o.offset.parent.top,s._trigger("toSortable",e),s.dropped=o.element,t.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,o.fromOutside=s),o.currentItem&&(o._mouseDrag(e),i.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger("out",e,o._uiHash(o)),o._mouseStop(e,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(e),i.position=s._generatePosition(e,!0),s._trigger("fromSortable",e),s.dropped=!1,t.each(s.sortables,function(){this.refreshPositions()}))})}}),t.ui.plugin.add("draggable","cursor",{start:function(e,i,s){var n=t("body"),o=s.options;n.css("cursor")&&(o._cursor=n.css("cursor")),n.css("cursor",o.cursor)},stop:function(e,i,s){var n=s.options;n._cursor&&t("body").css("cursor",n._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("opacity")&&(o._opacity=n.css("opacity")),n.css("opacity",o.opacity)},stop:function(e,i,s){var n=s.options;n._opacity&&t(i.helper).css("opacity",n._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,s){var n=s.options,o=!1,a=s.scrollParentNotHidden[0],r=s.document[0];a!==r&&"HTML"!==a.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+a.offsetHeight-e.pageY<n.scrollSensitivity?a.scrollTop=o=a.scrollTop+n.scrollSpeed:e.pageY-s.overflowOffset.top<n.scrollSensitivity&&(a.scrollTop=o=a.scrollTop-n.scrollSpeed)),n.axis&&"y"===n.axis||(s.overflowOffset.left+a.offsetWidth-e.pageX<n.scrollSensitivity?a.scrollLeft=o=a.scrollLeft+n.scrollSpeed:e.pageX-s.overflowOffset.left<n.scrollSensitivity&&(a.scrollLeft=o=a.scrollLeft-n.scrollSpeed))):(n.axis&&"x"===n.axis||(e.pageY-t(r).scrollTop()<n.scrollSensitivity?o=t(r).scrollTop(t(r).scrollTop()-n.scrollSpeed):t(window).height()-(e.pageY-t(r).scrollTop())<n.scrollSensitivity&&(o=t(r).scrollTop(t(r).scrollTop()+n.scrollSpeed))),n.axis&&"y"===n.axis||(e.pageX-t(r).scrollLeft()<n.scrollSensitivity?o=t(r).scrollLeft(t(r).scrollLeft()-n.scrollSpeed):t(window).width()-(e.pageX-t(r).scrollLeft())<n.scrollSensitivity&&(o=t(r).scrollLeft(t(r).scrollLeft()+n.scrollSpeed)))),o!==!1&&t.ui.ddmanager&&!n.dropBehaviour&&t.ui.ddmanager.prepareOffsets(s,e)}}),t.ui.plugin.add("draggable","snap",{start:function(e,i,s){var n=s.options;s.snapElements=[],t(n.snap.constructor!==String?n.snap.items||":data(ui-draggable)":n.snap).each(function(){var e=t(this),i=e.offset();this!==s.element[0]&&s.snapElements.push({item:this,width:e.outerWidth(),height:e.outerHeight(),top:i.top,left:i.left})})},drag:function(e,i,s){var n,o,a,r,h,l,c,u,d,p,f=s.options,g=f.snapTolerance,m=i.offset.left,_=m+s.helperProportions.width,v=i.offset.top,b=v+s.helperProportions.height;for(d=s.snapElements.length-1;d>=0;d--)h=s.snapElements[d].left-s.margins.left,l=h+s.snapElements[d].width,c=s.snapElements[d].top-s.margins.top,u=c+s.snapElements[d].height,h-g>_||m>l+g||c-g>b||v>u+g||!t.contains(s.snapElements[d].item.ownerDocument,s.snapElements[d].item)?(s.snapElements[d].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(n=g>=Math.abs(c-b),o=g>=Math.abs(u-v),a=g>=Math.abs(h-_),r=g>=Math.abs(l-m),n&&(i.position.top=s._convertPositionTo("relative",{top:c-s.helperProportions.height,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left)),p=n||o||a||r,"outer"!==f.snapMode&&(n=g>=Math.abs(c-v),o=g>=Math.abs(u-b),a=g>=Math.abs(h-m),r=g>=Math.abs(l-_),n&&(i.position.top=s._convertPositionTo("relative",{top:c,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left)),!s.snapElements[d].snapping&&(n||o||a||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=n||o||a||r||p)}}),t.ui.plugin.add("draggable","stack",{start:function(e,i,s){var n,o=s.options,a=t.makeArray(t(o.stack)).sort(function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)});a.length&&(n=parseInt(t(a[0]).css("zIndex"),10)||0,t(a).each(function(e){t(this).css("zIndex",n+e)}),this.css("zIndex",n+a.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("zIndex")&&(o._zIndex=n.css("zIndex")),n.css("zIndex",o.zIndex)},stop:function(e,i,s){var n=s.options;n._zIndex&&t(i.helper).css("zIndex",n._zIndex)}}),t.ui.draggable,t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("<div>"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,g=s.maxWidth&&p>s.maxWidth,m=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),g&&(p-=l),m&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable,t.widget("ui.dialog",{version:"1.12.1",options:{appendTo:"body",autoOpen:!0,buttons:[],classes:{"ui-dialog":"ui-corner-all","ui-dialog-titlebar":"ui-corner-all"},closeOnEscape:!0,closeText:"Close",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(e){var i=t(this).css(e).offset().top;0>i&&t(this).css("top",e.top-i)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),null==this.options.title&&null!=this.originalTitle&&(this.options.title=this.originalTitle),this.options.disabled&&(this.options.disabled=!1),this._createWrapper(),this.element.show().removeAttr("title").appendTo(this.uiDialog),this._addClass("ui-dialog-content","ui-widget-content"),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&t.fn.draggable&&this._makeDraggable(),this.options.resizable&&t.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var e=this.options.appendTo;return e&&(e.jquery||e.nodeType)?t(e):this.document.find(e||"body").eq(0)},_destroy:function(){var t,e=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().css(this.originalCss).detach(),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),t=e.parent.children().eq(e.index),t.length&&t[0]!==this.element[0]?t.before(this.element):e.parent.append(this.element)},widget:function(){return this.uiDialog +},disable:t.noop,enable:t.noop,close:function(e){var i=this;this._isOpen&&this._trigger("beforeClose",e)!==!1&&(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),this.opener.filter(":focusable").trigger("focus").length||t.ui.safeBlur(t.ui.safeActiveElement(this.document[0])),this._hide(this.uiDialog,this.options.hide,function(){i._trigger("close",e)}))},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(e,i){var s=!1,n=this.uiDialog.siblings(".ui-front:visible").map(function(){return+t(this).css("z-index")}).get(),o=Math.max.apply(null,n);return o>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",o+1),s=!0),s&&!i&&this._trigger("focus",e),s},open:function(){var e=this;return this._isOpen?(this._moveToTop()&&this._focusTabbable(),void 0):(this._isOpen=!0,this.opener=t(t.ui.safeActiveElement(this.document[0])),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){e._focusTabbable(),e._trigger("focus")}),this._makeFocusTarget(),this._trigger("open"),void 0)},_focusTabbable:function(){var t=this._focusedElement;t||(t=this.element.find("[autofocus]")),t.length||(t=this.element.find(":tabbable")),t.length||(t=this.uiDialogButtonPane.find(":tabbable")),t.length||(t=this.uiDialogTitlebarClose.filter(":tabbable")),t.length||(t=this.uiDialog),t.eq(0).trigger("focus")},_keepFocus:function(e){function i(){var e=t.ui.safeActiveElement(this.document[0]),i=this.uiDialog[0]===e||t.contains(this.uiDialog[0],e);i||this._focusTabbable()}e.preventDefault(),i.call(this),this._delay(i)},_createWrapper:function(){this.uiDialog=t("<div>").hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._addClass(this.uiDialog,"ui-dialog","ui-widget ui-widget-content ui-front"),this._on(this.uiDialog,{keydown:function(e){if(this.options.closeOnEscape&&!e.isDefaultPrevented()&&e.keyCode&&e.keyCode===t.ui.keyCode.ESCAPE)return e.preventDefault(),this.close(e),void 0;if(e.keyCode===t.ui.keyCode.TAB&&!e.isDefaultPrevented()){var i=this.uiDialog.find(":tabbable"),s=i.filter(":first"),n=i.filter(":last");e.target!==n[0]&&e.target!==this.uiDialog[0]||e.shiftKey?e.target!==s[0]&&e.target!==this.uiDialog[0]||!e.shiftKey||(this._delay(function(){n.trigger("focus")}),e.preventDefault()):(this._delay(function(){s.trigger("focus")}),e.preventDefault())}},mousedown:function(t){this._moveToTop(t)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var e;this.uiDialogTitlebar=t("<div>"),this._addClass(this.uiDialogTitlebar,"ui-dialog-titlebar","ui-widget-header ui-helper-clearfix"),this._on(this.uiDialogTitlebar,{mousedown:function(e){t(e.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.trigger("focus")}}),this.uiDialogTitlebarClose=t("<button type='button'></button>").button({label:t("<a>").text(this.options.closeText).html(),icon:"ui-icon-closethick",showLabel:!1}).appendTo(this.uiDialogTitlebar),this._addClass(this.uiDialogTitlebarClose,"ui-dialog-titlebar-close"),this._on(this.uiDialogTitlebarClose,{click:function(t){t.preventDefault(),this.close(t)}}),e=t("<span>").uniqueId().prependTo(this.uiDialogTitlebar),this._addClass(e,"ui-dialog-title"),this._title(e),this.uiDialogTitlebar.prependTo(this.uiDialog),this.uiDialog.attr({"aria-labelledby":e.attr("id")})},_title:function(t){this.options.title?t.text(this.options.title):t.html(" ")},_createButtonPane:function(){this.uiDialogButtonPane=t("<div>"),this._addClass(this.uiDialogButtonPane,"ui-dialog-buttonpane","ui-widget-content ui-helper-clearfix"),this.uiButtonSet=t("<div>").appendTo(this.uiDialogButtonPane),this._addClass(this.uiButtonSet,"ui-dialog-buttonset"),this._createButtons()},_createButtons:function(){var e=this,i=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),t.isEmptyObject(i)||t.isArray(i)&&!i.length?(this._removeClass(this.uiDialog,"ui-dialog-buttons"),void 0):(t.each(i,function(i,s){var n,o;s=t.isFunction(s)?{click:s,text:i}:s,s=t.extend({type:"button"},s),n=s.click,o={icon:s.icon,iconPosition:s.iconPosition,showLabel:s.showLabel,icons:s.icons,text:s.text},delete s.click,delete s.icon,delete s.iconPosition,delete s.showLabel,delete s.icons,"boolean"==typeof s.text&&delete s.text,t("<button></button>",s).button(o).appendTo(e.uiButtonSet).on("click",function(){n.apply(e.element[0],arguments)})}),this._addClass(this.uiDialog,"ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog),void 0)},_makeDraggable:function(){function e(t){return{position:t.position,offset:t.offset}}var i=this,s=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(s,n){i._addClass(t(this),"ui-dialog-dragging"),i._blockFrames(),i._trigger("dragStart",s,e(n))},drag:function(t,s){i._trigger("drag",t,e(s))},stop:function(n,o){var a=o.offset.left-i.document.scrollLeft(),r=o.offset.top-i.document.scrollTop();s.position={my:"left top",at:"left"+(a>=0?"+":"")+a+" "+"top"+(r>=0?"+":"")+r,of:i.window},i._removeClass(t(this),"ui-dialog-dragging"),i._unblockFrames(),i._trigger("dragStop",n,e(o))}})},_makeResizable:function(){function e(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}var i=this,s=this.options,n=s.resizable,o=this.uiDialog.css("position"),a="string"==typeof n?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:s.maxWidth,maxHeight:s.maxHeight,minWidth:s.minWidth,minHeight:this._minHeight(),handles:a,start:function(s,n){i._addClass(t(this),"ui-dialog-resizing"),i._blockFrames(),i._trigger("resizeStart",s,e(n))},resize:function(t,s){i._trigger("resize",t,e(s))},stop:function(n,o){var a=i.uiDialog.offset(),r=a.left-i.document.scrollLeft(),h=a.top-i.document.scrollTop();s.height=i.uiDialog.height(),s.width=i.uiDialog.width(),s.position={my:"left top",at:"left"+(r>=0?"+":"")+r+" "+"top"+(h>=0?"+":"")+h,of:i.window},i._removeClass(t(this),"ui-dialog-resizing"),i._unblockFrames(),i._trigger("resizeStop",n,e(o))}}).css("position",o)},_trackFocus:function(){this._on(this.widget(),{focusin:function(e){this._makeFocusTarget(),this._focusedElement=t(e.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var e=this._trackingInstances(),i=t.inArray(this,e);-1!==i&&e.splice(i,1)},_trackingInstances:function(){var t=this.document.data("ui-dialog-instances");return t||(t=[],this.document.data("ui-dialog-instances",t)),t},_minHeight:function(){var t=this.options;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(){var t=this.uiDialog.is(":visible");t||this.uiDialog.show(),this.uiDialog.position(this.options.position),t||this.uiDialog.hide()},_setOptions:function(e){var i=this,s=!1,n={};t.each(e,function(t,e){i._setOption(t,e),t in i.sizeRelatedOptions&&(s=!0),t in i.resizableRelatedOptions&&(n[t]=e)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",n)},_setOption:function(e,i){var s,n,o=this.uiDialog;"disabled"!==e&&(this._super(e,i),"appendTo"===e&&this.uiDialog.appendTo(this._appendTo()),"buttons"===e&&this._createButtons(),"closeText"===e&&this.uiDialogTitlebarClose.button({label:t("<a>").text(""+this.options.closeText).html()}),"draggable"===e&&(s=o.is(":data(ui-draggable)"),s&&!i&&o.draggable("destroy"),!s&&i&&this._makeDraggable()),"position"===e&&this._position(),"resizable"===e&&(n=o.is(":data(ui-resizable)"),n&&!i&&o.resizable("destroy"),n&&"string"==typeof i&&o.resizable("option","handles",i),n||i===!1||this._makeResizable()),"title"===e&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var t,e,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),t=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),e=Math.max(0,s.minHeight-t),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-t):"none","auto"===s.height?this.element.css({minHeight:e,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-t)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var e=t(this);return t("<div>").css({position:"absolute",width:e.outerWidth(),height:e.outerHeight()}).appendTo(e.parent()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(e){return t(e.target).closest(".ui-dialog").length?!0:!!t(e.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var e=!0;this._delay(function(){e=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(t){e||this._allowInteraction(t)||(t.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=t("<div>").appendTo(this._appendTo()),this._addClass(this.overlay,null,"ui-widget-overlay ui-front"),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var t=this.document.data("ui-dialog-overlays")-1;t?this.document.data("ui-dialog-overlays",t):(this._off(this.document,"focusin"),this.document.removeData("ui-dialog-overlays")),this.overlay.remove(),this.overlay=null}}}),t.uiBackCompat!==!1&&t.widget("ui.dialog",t.ui.dialog,{options:{dialogClass:""},_createWrapper:function(){this._super(),this.uiDialog.addClass(this.options.dialogClass)},_setOption:function(t,e){"dialogClass"===t&&this.uiDialog.removeClass(this.options.dialogClass).addClass(e),this._superApply(arguments)}}),t.ui.dialog,t.widget("ui.droppable",{version:"1.12.1",widgetEventPrefix:"drop",options:{accept:"*",addClasses:!0,greedy:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var e,i=this.options,s=i.accept;this.isover=!1,this.isout=!0,this.accept=t.isFunction(s)?s:function(t){return t.is(s)},this.proportions=function(){return arguments.length?(e=arguments[0],void 0):e?e:e={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(i.scope),i.addClasses&&this._addClass("ui-droppable")},_addToManager:function(e){t.ui.ddmanager.droppables[e]=t.ui.ddmanager.droppables[e]||[],t.ui.ddmanager.droppables[e].push(this)},_splice:function(t){for(var e=0;t.length>e;e++)t[e]===this&&t.splice(e,1)},_destroy:function(){var e=t.ui.ddmanager.droppables[this.options.scope];this._splice(e)},_setOption:function(e,i){if("accept"===e)this.accept=t.isFunction(i)?i:function(t){return t.is(i)};else if("scope"===e){var s=t.ui.ddmanager.droppables[this.options.scope];this._splice(s),this._addToManager(i)}this._super(e,i)},_activate:function(e){var i=t.ui.ddmanager.current;this._addActiveClass(),i&&this._trigger("activate",e,this.ui(i))},_deactivate:function(e){var i=t.ui.ddmanager.current;this._removeActiveClass(),i&&this._trigger("deactivate",e,this.ui(i))},_over:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._addHoverClass(),this._trigger("over",e,this.ui(i)))},_out:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._removeHoverClass(),this._trigger("out",e,this.ui(i)))},_drop:function(e,i){var s=i||t.ui.ddmanager.current,n=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var i=t(this).droppable("instance");return i.options.greedy&&!i.options.disabled&&i.options.scope===s.options.scope&&i.accept.call(i.element[0],s.currentItem||s.element)&&v(s,t.extend(i,{offset:i.element.offset()}),i.options.tolerance,e)?(n=!0,!1):void 0}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this._removeActiveClass(),this._removeHoverClass(),this._trigger("drop",e,this.ui(s)),this.element):!1):!1},ui:function(t){return{draggable:t.currentItem||t.element,helper:t.helper,position:t.position,offset:t.positionAbs}},_addHoverClass:function(){this._addClass("ui-droppable-hover")},_removeHoverClass:function(){this._removeClass("ui-droppable-hover")},_addActiveClass:function(){this._addClass("ui-droppable-active")},_removeActiveClass:function(){this._removeClass("ui-droppable-active")}});var v=t.ui.intersect=function(){function t(t,e,i){return t>=e&&e+i>t}return function(e,i,s,n){if(!i.offset)return!1;var o=(e.positionAbs||e.position.absolute).left+e.margins.left,a=(e.positionAbs||e.position.absolute).top+e.margins.top,r=o+e.helperProportions.width,h=a+e.helperProportions.height,l=i.offset.left,c=i.offset.top,u=l+i.proportions().width,d=c+i.proportions().height;switch(s){case"fit":return o>=l&&u>=r&&a>=c&&d>=h;case"intersect":return o+e.helperProportions.width/2>l&&u>r-e.helperProportions.width/2&&a+e.helperProportions.height/2>c&&d>h-e.helperProportions.height/2;case"pointer":return t(n.pageY,c,i.proportions().height)&&t(n.pageX,l,i.proportions().width);case"touch":return(a>=c&&d>=a||h>=c&&d>=h||c>a&&h>d)&&(o>=l&&u>=o||r>=l&&u>=r||l>o&&r>u);default:return!1}}}();t.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,i){var s,n,o=t.ui.ddmanager.droppables[e.options.scope]||[],a=i?i.type:null,r=(e.currentItem||e.element).find(":data(ui-droppable)").addBack();t:for(s=0;o.length>s;s++)if(!(o[s].options.disabled||e&&!o[s].accept.call(o[s].element[0],e.currentItem||e.element))){for(n=0;r.length>n;n++)if(r[n]===o[s].element[0]){o[s].proportions().height=0;continue t}o[s].visible="none"!==o[s].element.css("display"),o[s].visible&&("mousedown"===a&&o[s]._activate.call(o[s],i),o[s].offset=o[s].element.offset(),o[s].proportions({width:o[s].element[0].offsetWidth,height:o[s].element[0].offsetHeight}))}},drop:function(e,i){var s=!1;return t.each((t.ui.ddmanager.droppables[e.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&v(e,this,this.options.tolerance,i)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(e,i){e.element.parentsUntil("body").on("scroll.droppable",function(){e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)})},drag:function(e,i){e.options.refreshPositions&&t.ui.ddmanager.prepareOffsets(e,i),t.each(t.ui.ddmanager.droppables[e.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,o,a=v(e,this,this.options.tolerance,i),r=!a&&this.isover?"isout":a&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,o=this.element.parents(":data(ui-droppable)").filter(function(){return t(this).droppable("instance").options.scope===n}),o.length&&(s=t(o[0]).droppable("instance"),s.greedyChild="isover"===r)),s&&"isover"===r&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[r]=!0,this["isout"===r?"isover":"isout"]=!1,this["isover"===r?"_over":"_out"].call(this,i),s&&"isout"===r&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(e,i){e.element.parentsUntil("body").off("scroll.droppable"),e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)}},t.uiBackCompat!==!1&&t.widget("ui.droppable",t.ui.droppable,{options:{hoverClass:!1,activeClass:!1},_addActiveClass:function(){this._super(),this.options.activeClass&&this.element.addClass(this.options.activeClass)},_removeActiveClass:function(){this._super(),this.options.activeClass&&this.element.removeClass(this.options.activeClass)},_addHoverClass:function(){this._super(),this.options.hoverClass&&this.element.addClass(this.options.hoverClass)},_removeHoverClass:function(){this._super(),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass)}}),t.ui.droppable,t.widget("ui.progressbar",{version:"1.12.1",options:{classes:{"ui-progressbar":"ui-corner-all","ui-progressbar-value":"ui-corner-left","ui-progressbar-complete":"ui-corner-right"},max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.attr({role:"progressbar","aria-valuemin":this.min}),this._addClass("ui-progressbar","ui-widget ui-widget-content"),this.valueDiv=t("<div>").appendTo(this.element),this._addClass(this.valueDiv,"ui-progressbar-value","ui-widget-header"),this._refreshValue()},_destroy:function(){this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"),this.valueDiv.remove()},value:function(t){return void 0===t?this.options.value:(this.options.value=this._constrainedValue(t),this._refreshValue(),void 0)},_constrainedValue:function(t){return void 0===t&&(t=this.options.value),this.indeterminate=t===!1,"number"!=typeof t&&(t=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){"max"===t&&(e=Math.max(this.min,e)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var e=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||e>this.min).width(i.toFixed(0)+"%"),this._toggleClass(this.valueDiv,"ui-progressbar-complete",null,e===this.options.max)._toggleClass("ui-progressbar-indeterminate",null,this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=t("<div>").appendTo(this.valueDiv),this._addClass(this.overlayDiv,"ui-progressbar-overlay"))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":e}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),e===this.options.max&&this._trigger("complete")}}),t.widget("ui.selectable",t.ui.mouse,{version:"1.12.1",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var e=this;this._addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){e.elementPos=t(e.element[0]).offset(),e.selectees=t(e.options.filter,e.element[0]),e._addClass(e.selectees,"ui-selectee"),e.selectees.each(function(){var i=t(this),s=i.offset(),n={left:s.left-e.elementPos.left,top:s.top-e.elementPos.top};t.data(this,"selectable-item",{element:this,$element:i,left:n.left,top:n.top,right:n.left+i.outerWidth(),bottom:n.top+i.outerHeight(),startselected:!1,selected:i.hasClass("ui-selected"),selecting:i.hasClass("ui-selecting"),unselecting:i.hasClass("ui-unselecting")})})},this.refresh(),this._mouseInit(),this.helper=t("<div>"),this._addClass(this.helper,"ui-selectable-helper")},_destroy:function(){this.selectees.removeData("selectable-item"),this._mouseDestroy()},_mouseStart:function(e){var i=this,s=this.options;this.opos=[e.pageX,e.pageY],this.elementPos=t(this.element[0]).offset(),this.options.disabled||(this.selectees=t(s.filter,this.element[0]),this._trigger("start",e),t(s.appendTo).append(this.helper),this.helper.css({left:e.pageX,top:e.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=t.data(this,"selectable-item");s.startselected=!0,e.metaKey||e.ctrlKey||(i._removeClass(s.$element,"ui-selected"),s.selected=!1,i._addClass(s.$element,"ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",e,{unselecting:s.element}))}),t(e.target).parents().addBack().each(function(){var s,n=t.data(this,"selectable-item");return n?(s=!e.metaKey&&!e.ctrlKey||!n.$element.hasClass("ui-selected"),i._removeClass(n.$element,s?"ui-unselecting":"ui-selected")._addClass(n.$element,s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",e,{selecting:n.element}):i._trigger("unselecting",e,{unselecting:n.element}),!1):void 0}))},_mouseDrag:function(e){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,o=this.opos[0],a=this.opos[1],r=e.pageX,h=e.pageY;return o>r&&(i=r,r=o,o=i),a>h&&(i=h,h=a,a=i),this.helper.css({left:o,top:a,width:r-o,height:h-a}),this.selectees.each(function(){var i=t.data(this,"selectable-item"),l=!1,c={};i&&i.element!==s.element[0]&&(c.left=i.left+s.elementPos.left,c.right=i.right+s.elementPos.left,c.top=i.top+s.elementPos.top,c.bottom=i.bottom+s.elementPos.top,"touch"===n.tolerance?l=!(c.left>r||o>c.right||c.top>h||a>c.bottom):"fit"===n.tolerance&&(l=c.left>o&&r>c.right&&c.top>a&&h>c.bottom),l?(i.selected&&(s._removeClass(i.$element,"ui-selected"),i.selected=!1),i.unselecting&&(s._removeClass(i.$element,"ui-unselecting"),i.unselecting=!1),i.selecting||(s._addClass(i.$element,"ui-selecting"),i.selecting=!0,s._trigger("selecting",e,{selecting:i.element}))):(i.selecting&&((e.metaKey||e.ctrlKey)&&i.startselected?(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,s._addClass(i.$element,"ui-selected"),i.selected=!0):(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,i.startselected&&(s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",e,{unselecting:i.element}))),i.selected&&(e.metaKey||e.ctrlKey||i.startselected||(s._removeClass(i.$element,"ui-selected"),i.selected=!1,s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",e,{unselecting:i.element})))))}),!1}},_mouseStop:function(e){var i=this;return this.dragged=!1,t(".ui-unselecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",e,{unselected:s.element})}),t(".ui-selecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-selecting")._addClass(s.$element,"ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",e,{selected:s.element})}),this._trigger("stop",e),this.helper.remove(),!1}}),t.widget("ui.selectmenu",[t.ui.formResetMixin,{version:"1.12.1",defaultElement:"<select>",options:{appendTo:null,classes:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"},disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:!1,change:null,close:null,focus:null,open:null,select:null},_create:function(){var e=this.element.uniqueId().attr("id");this.ids={element:e,button:e+"-button",menu:e+"-menu"},this._drawButton(),this._drawMenu(),this._bindFormResetHandler(),this._rendered=!1,this.menuItems=t()},_drawButton:function(){var e,i=this,s=this._parseOption(this.element.find("option:selected"),this.element[0].selectedIndex);this.labels=this.element.labels().attr("for",this.ids.button),this._on(this.labels,{click:function(t){this.button.focus(),t.preventDefault()}}),this.element.hide(),this.button=t("<span>",{tabindex:this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true",title:this.element.attr("title")}).insertAfter(this.element),this._addClass(this.button,"ui-selectmenu-button ui-selectmenu-button-closed","ui-button ui-widget"),e=t("<span>").appendTo(this.button),this._addClass(e,"ui-selectmenu-icon","ui-icon "+this.options.icons.button),this.buttonItem=this._renderButtonItem(s).appendTo(this.button),this.options.width!==!1&&this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){i._rendered||i._refreshMenu()})},_drawMenu:function(){var e=this;this.menu=t("<ul>",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=t("<div>").append(this.menu),this._addClass(this.menuWrap,"ui-selectmenu-menu","ui-front"),this.menuWrap.appendTo(this._appendTo()),this.menuInstance=this.menu.menu({classes:{"ui-menu":"ui-corner-bottom"},role:"listbox",select:function(t,i){t.preventDefault(),e._setSelection(),e._select(i.item.data("ui-selectmenu-item"),t)},focus:function(t,i){var s=i.item.data("ui-selectmenu-item");null!=e.focusIndex&&s.index!==e.focusIndex&&(e._trigger("focus",t,{item:s}),e.isOpen||e._select(s,t)),e.focusIndex=s.index,e.button.attr("aria-activedescendant",e.menuItems.eq(s.index).attr("id"))}}).menu("instance"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(this._getSelectedItem().data("ui-selectmenu-item")||{})),null===this.options.width&&this._resizeButton()},_refreshMenu:function(){var t,e=this.element.find("option");this.menu.empty(),this._parseOptions(e),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup").find(".ui-menu-item-wrapper"),this._rendered=!0,e.length&&(t=this._getSelectedItem(),this.menuInstance.focus(null,t),this._setAria(t.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(t){this.options.disabled||(this._rendered?(this._removeClass(this.menu.find(".ui-state-active"),null,"ui-state-active"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.menuItems.length&&(this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",t)))},_position:function(){this.menuWrap.position(t.extend({of:this.button},this.options.position))},close:function(t){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger("close",t))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderButtonItem:function(e){var i=t("<span>");return this._setText(i,e.label),this._addClass(i,"ui-selectmenu-text"),i},_renderMenu:function(e,i){var s=this,n="";t.each(i,function(i,o){var a;o.optgroup!==n&&(a=t("<li>",{text:o.optgroup}),s._addClass(a,"ui-selectmenu-optgroup","ui-menu-divider"+(o.element.parent("optgroup").prop("disabled")?" ui-state-disabled":"")),a.appendTo(e),n=o.optgroup),s._renderItemData(e,o)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-selectmenu-item",e)},_renderItem:function(e,i){var s=t("<li>"),n=t("<div>",{title:i.element.attr("title")});return i.disabled&&this._addClass(s,null,"ui-state-disabled"),this._setText(n,i.label),s.append(n).appendTo(e)},_setText:function(t,e){e?t.text(e):t.html(" ")},_move:function(t,e){var i,s,n=".ui-menu-item";this.isOpen?i=this.menuItems.eq(this.focusIndex).parent("li"):(i=this.menuItems.eq(this.element[0].selectedIndex).parent("li"),n+=":not(.ui-state-disabled)"),s="first"===t||"last"===t?i["first"===t?"prevAll":"nextAll"](n).eq(-1):i[t+"All"](n).eq(0),s.length&&this.menuInstance.focus(e,s)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex).parent("li")},_toggle:function(t){this[this.isOpen?"close":"open"](t)},_setSelection:function(){var t;this.range&&(window.getSelection?(t=window.getSelection(),t.removeAllRanges(),t.addRange(this.range)):this.range.select(),this.button.focus())},_documentClick:{mousedown:function(e){this.isOpen&&(t(e.target).closest(".ui-selectmenu-menu, #"+t.ui.escapeSelector(this.ids.button)).length||this.close(e))}},_buttonEvents:{mousedown:function(){var t;window.getSelection?(t=window.getSelection(),t.rangeCount&&(this.range=t.getRangeAt(0))):this.range=document.selection.createRange()},click:function(t){this._setSelection(),this._toggle(t)},keydown:function(e){var i=!0;switch(e.keyCode){case t.ui.keyCode.TAB:case t.ui.keyCode.ESCAPE:this.close(e),i=!1;break;case t.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(e);break;case t.ui.keyCode.UP:e.altKey?this._toggle(e):this._move("prev",e);break;case t.ui.keyCode.DOWN:e.altKey?this._toggle(e):this._move("next",e);break;case t.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(e):this._toggle(e);break;case t.ui.keyCode.LEFT:this._move("prev",e);break;case t.ui.keyCode.RIGHT:this._move("next",e);break;case t.ui.keyCode.HOME:case t.ui.keyCode.PAGE_UP:this._move("first",e);break;case t.ui.keyCode.END:case t.ui.keyCode.PAGE_DOWN:this._move("last",e);break;default:this.menu.trigger(e),i=!1}i&&e.preventDefault()}},_selectFocusedItem:function(t){var e=this.menuItems.eq(this.focusIndex).parent("li");e.hasClass("ui-state-disabled")||this._select(e.data("ui-selectmenu-item"),t)},_select:function(t,e){var i=this.element[0].selectedIndex;this.element[0].selectedIndex=t.index,this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(t)),this._setAria(t),this._trigger("select",e,{item:t}),t.index!==i&&this._trigger("change",e,{item:t}),this.close(e)},_setAria:function(t){var e=this.menuItems.eq(t.index).attr("id");this.button.attr({"aria-labelledby":e,"aria-activedescendant":e}),this.menu.attr("aria-activedescendant",e)},_setOption:function(t,e){if("icons"===t){var i=this.button.find("span.ui-icon");this._removeClass(i,null,this.options.icons.button)._addClass(i,null,e.button)}this._super(t,e),"appendTo"===t&&this.menuWrap.appendTo(this._appendTo()),"width"===t&&this._resizeButton()},_setOptionDisabled:function(t){this._super(t),this.menuInstance.option("disabled",t),this.button.attr("aria-disabled",t),this._toggleClass(this.button,null,"ui-state-disabled",t),this.element.prop("disabled",t),t?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_toggleAttr:function(){this.button.attr("aria-expanded",this.isOpen),this._removeClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"closed":"open"))._addClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"open":"closed"))._toggleClass(this.menuWrap,"ui-selectmenu-open",null,this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var t=this.options.width;return t===!1?(this.button.css("width",""),void 0):(null===t&&(t=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(t),void 0)},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){var t=this._super();return t.disabled=this.element.prop("disabled"),t},_parseOptions:function(e){var i=this,s=[];e.each(function(e,n){s.push(i._parseOption(t(n),e))}),this.items=s},_parseOption:function(t,e){var i=t.parent("optgroup");return{element:t,index:e,value:t.val(),label:t.text(),optgroup:i.attr("label")||"",disabled:i.prop("disabled")||t.prop("disabled")}},_destroy:function(){this._unbindFormResetHandler(),this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.labels.attr("for",this.ids.element)}}]),t.widget("ui.slider",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"slide",options:{animate:!1,classes:{"ui-slider":"ui-corner-all","ui-slider-handle":"ui-corner-all","ui-slider-range":"ui-corner-all ui-widget-header"},distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this._addClass("ui-slider ui-slider-"+this.orientation,"ui-widget ui-widget-content"),this._refresh(),this._animateOff=!1 +},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var e,i,s=this.options,n=this.element.find(".ui-slider-handle"),o="<span tabindex='0'></span>",a=[];for(i=s.values&&s.values.length||1,n.length>i&&(n.slice(i).remove(),n=n.slice(0,i)),e=n.length;i>e;e++)a.push(o);this.handles=n.add(t(a.join("")).appendTo(this.element)),this._addClass(this.handles,"ui-slider-handle","ui-state-default"),this.handle=this.handles.eq(0),this.handles.each(function(e){t(this).data("ui-slider-handle-index",e).attr("tabIndex",0)})},_createRange:function(){var e=this.options;e.range?(e.range===!0&&(e.values?e.values.length&&2!==e.values.length?e.values=[e.values[0],e.values[0]]:t.isArray(e.values)&&(e.values=e.values.slice(0)):e.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?(this._removeClass(this.range,"ui-slider-range-min ui-slider-range-max"),this.range.css({left:"",bottom:""})):(this.range=t("<div>").appendTo(this.element),this._addClass(this.range,"ui-slider-range")),("min"===e.range||"max"===e.range)&&this._addClass(this.range,"ui-slider-range-"+e.range)):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this._mouseDestroy()},_mouseCapture:function(e){var i,s,n,o,a,r,h,l,c=this,u=this.options;return u.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),i={x:e.pageX,y:e.pageY},s=this._normValueFromMouse(i),n=this._valueMax()-this._valueMin()+1,this.handles.each(function(e){var i=Math.abs(s-c.values(e));(n>i||n===i&&(e===c._lastChangedValue||c.values(e)===u.min))&&(n=i,o=t(this),a=e)}),r=this._start(e,a),r===!1?!1:(this._mouseSliding=!0,this._handleIndex=a,this._addClass(o,null,"ui-state-active"),o.trigger("focus"),h=o.offset(),l=!t(e.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:e.pageX-h.left-o.width()/2,top:e.pageY-h.top-o.height()/2-(parseInt(o.css("borderTopWidth"),10)||0)-(parseInt(o.css("borderBottomWidth"),10)||0)+(parseInt(o.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(e,a,s),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(t){var e={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(e);return this._slide(t,this._handleIndex,i),!1},_mouseStop:function(t){return this._removeClass(this.handles,null,"ui-state-active"),this._mouseSliding=!1,this._stop(t,this._handleIndex),this._change(t,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(t){var e,i,s,n,o;return"horizontal"===this.orientation?(e=this.elementSize.width,i=t.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(e=this.elementSize.height,i=t.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),s=i/e,s>1&&(s=1),0>s&&(s=0),"vertical"===this.orientation&&(s=1-s),n=this._valueMax()-this._valueMin(),o=this._valueMin()+s*n,this._trimAlignValue(o)},_uiHash:function(t,e,i){var s={handle:this.handles[t],handleIndex:t,value:void 0!==e?e:this.value()};return this._hasMultipleValues()&&(s.value=void 0!==e?e:this.values(t),s.values=i||this.values()),s},_hasMultipleValues:function(){return this.options.values&&this.options.values.length},_start:function(t,e){return this._trigger("start",t,this._uiHash(e))},_slide:function(t,e,i){var s,n,o=this.value(),a=this.values();this._hasMultipleValues()&&(n=this.values(e?0:1),o=this.values(e),2===this.options.values.length&&this.options.range===!0&&(i=0===e?Math.min(n,i):Math.max(n,i)),a[e]=i),i!==o&&(s=this._trigger("slide",t,this._uiHash(e,i,a)),s!==!1&&(this._hasMultipleValues()?this.values(e,i):this.value(i)))},_stop:function(t,e){this._trigger("stop",t,this._uiHash(e))},_change:function(t,e){this._keySliding||this._mouseSliding||(this._lastChangedValue=e,this._trigger("change",t,this._uiHash(e)))},value:function(t){return arguments.length?(this.options.value=this._trimAlignValue(t),this._refreshValue(),this._change(null,0),void 0):this._value()},values:function(e,i){var s,n,o;if(arguments.length>1)return this.options.values[e]=this._trimAlignValue(i),this._refreshValue(),this._change(null,e),void 0;if(!arguments.length)return this._values();if(!t.isArray(arguments[0]))return this._hasMultipleValues()?this._values(e):this.value();for(s=this.options.values,n=arguments[0],o=0;s.length>o;o+=1)s[o]=this._trimAlignValue(n[o]),this._change(null,o);this._refreshValue()},_setOption:function(e,i){var s,n=0;switch("range"===e&&this.options.range===!0&&("min"===i?(this.options.value=this._values(0),this.options.values=null):"max"===i&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),t.isArray(this.options.values)&&(n=this.options.values.length),this._super(e,i),e){case"orientation":this._detectOrientation(),this._removeClass("ui-slider-horizontal ui-slider-vertical")._addClass("ui-slider-"+this.orientation),this._refreshValue(),this.options.range&&this._refreshRange(i),this.handles.css("horizontal"===i?"bottom":"left","");break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),s=n-1;s>=0;s--)this._change(null,s);this._animateOff=!1;break;case"step":case"min":case"max":this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_setOptionDisabled:function(t){this._super(t),this._toggleClass(null,"ui-state-disabled",!!t)},_value:function(){var t=this.options.value;return t=this._trimAlignValue(t)},_values:function(t){var e,i,s;if(arguments.length)return e=this.options.values[t],e=this._trimAlignValue(e);if(this._hasMultipleValues()){for(i=this.options.values.slice(),s=0;i.length>s;s+=1)i[s]=this._trimAlignValue(i[s]);return i}return[]},_trimAlignValue:function(t){if(this._valueMin()>=t)return this._valueMin();if(t>=this._valueMax())return this._valueMax();var e=this.options.step>0?this.options.step:1,i=(t-this._valueMin())%e,s=t-i;return 2*Math.abs(i)>=e&&(s+=i>0?e:-e),parseFloat(s.toFixed(5))},_calculateNewMax:function(){var t=this.options.max,e=this._valueMin(),i=this.options.step,s=Math.round((t-e)/i)*i;t=s+e,t>this.options.max&&(t-=i),this.max=parseFloat(t.toFixed(this._precision()))},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshRange:function(t){"vertical"===t&&this.range.css({width:"",left:""}),"horizontal"===t&&this.range.css({height:"",bottom:""})},_refreshValue:function(){var e,i,s,n,o,a=this.options.range,r=this.options,h=this,l=this._animateOff?!1:r.animate,c={};this._hasMultipleValues()?this.handles.each(function(s){i=100*((h.values(s)-h._valueMin())/(h._valueMax()-h._valueMin())),c["horizontal"===h.orientation?"left":"bottom"]=i+"%",t(this).stop(1,1)[l?"animate":"css"](c,r.animate),h.options.range===!0&&("horizontal"===h.orientation?(0===s&&h.range.stop(1,1)[l?"animate":"css"]({left:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({width:i-e+"%"},{queue:!1,duration:r.animate})):(0===s&&h.range.stop(1,1)[l?"animate":"css"]({bottom:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({height:i-e+"%"},{queue:!1,duration:r.animate}))),e=i}):(s=this.value(),n=this._valueMin(),o=this._valueMax(),i=o!==n?100*((s-n)/(o-n)):0,c["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[l?"animate":"css"](c,r.animate),"min"===a&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:i+"%"},r.animate),"max"===a&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:100-i+"%"},r.animate),"min"===a&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:i+"%"},r.animate),"max"===a&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:100-i+"%"},r.animate))},_handleEvents:{keydown:function(e){var i,s,n,o,a=t(e.target).data("ui-slider-handle-index");switch(e.keyCode){case t.ui.keyCode.HOME:case t.ui.keyCode.END:case t.ui.keyCode.PAGE_UP:case t.ui.keyCode.PAGE_DOWN:case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(e.preventDefault(),!this._keySliding&&(this._keySliding=!0,this._addClass(t(e.target),null,"ui-state-active"),i=this._start(e,a),i===!1))return}switch(o=this.options.step,s=n=this._hasMultipleValues()?this.values(a):this.value(),e.keyCode){case t.ui.keyCode.HOME:n=this._valueMin();break;case t.ui.keyCode.END:n=this._valueMax();break;case t.ui.keyCode.PAGE_UP:n=this._trimAlignValue(s+(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.PAGE_DOWN:n=this._trimAlignValue(s-(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:if(s===this._valueMax())return;n=this._trimAlignValue(s+o);break;case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(s===this._valueMin())return;n=this._trimAlignValue(s-o)}this._slide(e,a,n)},keyup:function(e){var i=t(e.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(e,i),this._change(e,i),this._removeClass(t(e.target),null,"ui-state-active"))}}}),t.widget("ui.sortable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,i){return t>=e&&e+i>t},_isFloating:function(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))},_create:function(){this.containerCache={},this._addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(t,e){this._super(t,e),"handle"===t&&this._setHandleClassName()},_setHandleClassName:function(){var e=this;this._removeClass(this.element.find(".ui-sortable-handle"),"ui-sortable-handle"),t.each(this.items,function(){e._addClass(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item,"ui-sortable-handle")})},_destroy:function(){this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(e,i){var s=null,n=!1,o=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(e),t(e.target).parents().each(function(){return t.data(this,o.widgetName+"-item")===o?(s=t(this),!1):void 0}),t.data(e.target,o.widgetName+"-item")===o&&(s=t(e.target)),s?!this.options.handle||i||(t(this.options.handle,s).find("*").addBack().each(function(){this===e.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(e,i,s){var n,o,a=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,a.cursorAt&&this._adjustOffsetFromHelper(a.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),a.containment&&this._setContainment(),a.cursor&&"auto"!==a.cursor&&(o=this.document.find("body"),this.storedCursor=o.css("cursor"),o.css("cursor",a.cursor),this.storedStylesheet=t("<style>*{ cursor: "+a.cursor+" !important; }</style>").appendTo(o)),a.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",a.opacity)),a.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",a.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",e,this._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this._addClass(this.helper,"ui-sortable-helper"),this._mouseDrag(e),!0},_mouseDrag:function(e){var i,s,n,o,a=this.options,r=!1;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY<a.scrollSensitivity?this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop+a.scrollSpeed:e.pageY-this.overflowOffset.top<a.scrollSensitivity&&(this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop-a.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-e.pageX<a.scrollSensitivity?this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft+a.scrollSpeed:e.pageX-this.overflowOffset.left<a.scrollSensitivity&&(this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft-a.scrollSpeed)):(e.pageY-this.document.scrollTop()<a.scrollSensitivity?r=this.document.scrollTop(this.document.scrollTop()-a.scrollSpeed):this.window.height()-(e.pageY-this.document.scrollTop())<a.scrollSensitivity&&(r=this.document.scrollTop(this.document.scrollTop()+a.scrollSpeed)),e.pageX-this.document.scrollLeft()<a.scrollSensitivity?r=this.document.scrollLeft(this.document.scrollLeft()-a.scrollSpeed):this.window.width()-(e.pageX-this.document.scrollLeft())<a.scrollSensitivity&&(r=this.document.scrollLeft(this.document.scrollLeft()+a.scrollSpeed))),r!==!1&&t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),i=this.items.length-1;i>=0;i--)if(s=this.items[i],n=s.item[0],o=this._intersectsWithPointer(s),o&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===o?"next":"prev"]()[0]!==n&&!t.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!t.contains(this.element[0],n):!0)){if(this.direction=1===o?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(e,s),this._trigger("change",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger("sort",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,i){if(e){if(t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert){var s=this,n=this.placeholder.offset(),o=this.options.axis,a={};o&&"x"!==o||(a.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),o&&"y"!==o||(a.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,t(this.helper).animate(a,parseInt(this.options.revert,10)||500,function(){s._clear(e)})}else this._clear(e,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp(new t.Event("mouseup",{target:null})),"original"===this.options.helper?(this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")):this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("deactivate",null,this._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",null,this._uiHash(this)),this.containers[e].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},t(i).each(function(){var i=(t(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);i&&s.push((e.key||i[1]+"[]")+"="+(e.key&&e.expression?i[1]:i[2]))}),!s.length&&e.key&&s.push(e.key+"="),s.join("&")},toArray:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},i.each(function(){s.push(t(e.item||this).attr(e.attribute||"id")||"")}),s},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,o=t.left,a=o+t.width,r=t.top,h=r+t.height,l=this.offset.click.top,c=this.offset.click.left,u="x"===this.options.axis||s+l>r&&h>s+l,d="y"===this.options.axis||e+c>o&&a>e+c,p=u&&d;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?p:e+this.helperProportions.width/2>o&&a>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(t){var e,i,s="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top,t.height),n="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left,t.width),o=s&&n;return o?(e=this._getDragVerticalDirection(),i=this._getDragHorizontalDirection(),this.floating?"right"===i||"down"===e?2:1:e&&("down"===e?2:1)):!1},_intersectsWithSides:function(t){var e=this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&i||"left"===n&&!i:s&&("down"===s&&e||"up"===s&&!e)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(t>0?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(t>0?"right":"left")},refresh:function(t){return this._refreshItems(t),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(e){function i(){r.push(this)}var s,n,o,a,r=[],h=[],l=this._connectWith();if(l&&e)for(s=l.length-1;s>=0;s--)for(o=t(l[s],this.document[0]),n=o.length-1;n>=0;n--)a=t.data(o[n],this.widgetFullName),a&&a!==this&&!a.options.disabled&&h.push([t.isFunction(a.options.items)?a.options.items.call(a.element):t(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a]);for(h.push([t.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),s=h.length-1;s>=0;s--)h[s][0].each(i);return t(r)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=t.grep(this.items,function(t){for(var i=0;e.length>i;i++)if(e[i]===t.item[0])return!1;return!0})},_refreshItems:function(e){this.items=[],this.containers=[this];var i,s,n,o,a,r,h,l,c=this.items,u=[[t.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(i=d.length-1;i>=0;i--)for(n=t(d[i],this.document[0]),s=n.length-1;s>=0;s--)o=t.data(n[s],this.widgetFullName),o&&o!==this&&!o.options.disabled&&(u.push([t.isFunction(o.options.items)?o.options.items.call(o.element[0],e,{item:this.currentItem}):t(o.options.items,o.element),o]),this.containers.push(o));for(i=u.length-1;i>=0;i--)for(a=u[i][1],r=u[i][0],s=0,l=r.length;l>s;s++)h=t(r[s]),h.data(this.widgetName+"-item",a),c.push({item:h,instance:a,width:0,height:0,left:0,top:0})},refreshPositions:function(e){this.floating=this.items.length?"x"===this.options.axis||this._isFloating(this.items[0].item):!1,this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,o;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?t(this.options.toleranceElement,s.item):s.item,e||(s.width=n.outerWidth(),s.height=n.outerHeight()),o=n.offset(),s.left=o.left,s.top=o.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)o=this.containers[i].element.offset(),this.containers[i].containerCache.left=o.left,this.containers[i].containerCache.top=o.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(e){e=e||this;var i,s=e.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=e.currentItem[0].nodeName.toLowerCase(),n=t("<"+s+">",e.document[0]);return e._addClass(n,"ui-sortable-placeholder",i||e.currentItem[0].className)._removeClass(n,"ui-sortable-helper"),"tbody"===s?e._createTrPlaceholder(e.currentItem.find("tr").eq(0),t("<tr>",e.document[0]).appendTo(n)):"tr"===s?e._createTrPlaceholder(e.currentItem,n):"img"===s&&n.attr("src",e.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(t,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10)))}}),e.placeholder=t(s.placeholder.element.call(e.element,e.currentItem)),e.currentItem.after(e.placeholder),s.placeholder.update(e,e.placeholder)},_createTrPlaceholder:function(e,i){var s=this;e.children().each(function(){t("<td> </td>",s.document[0]).attr("colspan",t(this).attr("colspan")||1).appendTo(i)})},_contactContainers:function(e){var i,s,n,o,a,r,h,l,c,u,d=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!t.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(d&&t.contains(this.containers[i].element[0],d.element[0]))continue;d=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",e,this._uiHash(this)),this.containers[i].containerCache.over=0);if(d)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(n=1e4,o=null,c=d.floating||this._isFloating(this.currentItem),a=c?"left":"top",r=c?"width":"height",u=c?"pageX":"pageY",s=this.items.length-1;s>=0;s--)t.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(h=this.items[s].item.offset()[a],l=!1,e[u]-h>this.items[s][r]/2&&(l=!0),n>Math.abs(e[u]-h)&&(n=Math.abs(e[u]-h),o=this.items[s],this.direction=l?"up":"down"));if(!o&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash()),this.currentContainer.containerCache.over=1),void 0;o?this._rearrange(e,o,null,!0):this._rearrange(e,null,this.containers[p].element,!0),this._trigger("change",e,this._uiHash()),this.containers[p]._trigger("change",e,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||t("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===n.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===n.containment?this.document.height()||document.body.parentNode.scrollHeight:this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(e=t(n.containment)[0],i=t(n.containment).offset(),s="hidden"!==t(e).css("overflow"),this.containment=[i.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,i){i||(i=this.position);var s="absolute"===e?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())*s}},_generatePosition:function(e){var i,s,n=this.options,o=e.pageX,a=e.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.left<this.containment[0]&&(o=this.containment[0]+this.offset.click.left),e.pageY-this.offset.click.top<this.containment[1]&&(a=this.containment[1]+this.offset.click.top),e.pageX-this.offset.click.left>this.containment[2]&&(o=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(a=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((a-this.originalPageY)/n.grid[1])*n.grid[1],a=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((o-this.originalPageX)/n.grid[0])*n.grid[0],o=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter; +this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(t,e){function i(t,e,i){return function(s){i._trigger(t,s,e._uiHash(e))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!e&&n.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||n.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(n.push(function(t){this._trigger("remove",t,this._uiHash())}),n.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)e||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(s=0;n.length>s;s++)n[s].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){t.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(e){var i=e||this;return{helper:i.helper,placeholder:i.placeholder||t([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:e?e.element:null}}}),t.widget("ui.spinner",{version:"1.12.1",defaultElement:"<input>",widgetEventPrefix:"spin",options:{classes:{"ui-spinner":"ui-corner-all","ui-spinner-down":"ui-corner-br","ui-spinner-up":"ui-corner-tr"},culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var e=this._super(),i=this.element;return t.each(["min","max","step"],function(t,s){var n=i.attr(s);null!=n&&n.length&&(e[s]=n)}),e},_events:{keydown:function(t){this._start(t)&&this._keydown(t)&&t.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",t),void 0)},mousewheel:function(t,e){if(e){if(!this.spinning&&!this._start(t))return!1;this._spin((e>0?1:-1)*this.options.step,t),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(t)},100),t.preventDefault()}},"mousedown .ui-spinner-button":function(e){function i(){var e=this.element[0]===t.ui.safeActiveElement(this.document[0]);e||(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s}))}var s;s=this.element[0]===t.ui.safeActiveElement(this.document[0])?this.previous:this.element.val(),e.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),this._start(e)!==!1&&this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(e){return t(e.currentTarget).hasClass("ui-state-active")?this._start(e)===!1?!1:(this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e),void 0):void 0},"mouseleave .ui-spinner-button":"_stop"},_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap("<span>").parent().append("<a></a><a></a>")},_draw:function(){this._enhance(),this._addClass(this.uiSpinner,"ui-spinner","ui-widget ui-widget-content"),this._addClass("ui-spinner-input"),this.element.attr("role","spinbutton"),this.buttons=this.uiSpinner.children("a").attr("tabIndex",-1).attr("aria-hidden",!0).button({classes:{"ui-button":""}}),this._removeClass(this.buttons,"ui-corner-all"),this._addClass(this.buttons.first(),"ui-spinner-button ui-spinner-up"),this._addClass(this.buttons.last(),"ui-spinner-button ui-spinner-down"),this.buttons.first().button({icon:this.options.icons.up,showLabel:!1}),this.buttons.last().button({icon:this.options.icons.down,showLabel:!1}),this.buttons.height()>Math.ceil(.5*this.uiSpinner.height())&&this.uiSpinner.height()>0&&this.uiSpinner.height(this.uiSpinner.height())},_keydown:function(e){var i=this.options,s=t.ui.keyCode;switch(e.keyCode){case s.UP:return this._repeat(null,1,e),!0;case s.DOWN:return this._repeat(null,-1,e),!0;case s.PAGE_UP:return this._repeat(null,i.page,e),!0;case s.PAGE_DOWN:return this._repeat(null,-i.page,e),!0}return!1},_start:function(t){return this.spinning||this._trigger("start",t)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(t,e,i){t=t||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,e,i)},t),this._spin(e*this.options.step,i)},_spin:function(t,e){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+t*this._increment(this.counter)),this.spinning&&this._trigger("spin",e,{value:i})===!1||(this._value(i),this.counter++)},_increment:function(e){var i=this.options.incremental;return i?t.isFunction(i)?i(e):Math.floor(e*e*e/5e4-e*e/500+17*e/200+1):1},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_adjustValue:function(t){var e,i,s=this.options;return e=null!==s.min?s.min:0,i=t-e,i=Math.round(i/s.step)*s.step,t=e+i,t=parseFloat(t.toFixed(this._precision())),null!==s.max&&t>s.max?s.max:null!==s.min&&s.min>t?s.min:t},_stop:function(t){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",t))},_setOption:function(t,e){var i,s,n;return"culture"===t||"numberFormat"===t?(i=this._parse(this.element.val()),this.options[t]=e,this.element.val(this._format(i)),void 0):(("max"===t||"min"===t||"step"===t)&&"string"==typeof e&&(e=this._parse(e)),"icons"===t&&(s=this.buttons.first().find(".ui-icon"),this._removeClass(s,null,this.options.icons.up),this._addClass(s,null,e.up),n=this.buttons.last().find(".ui-icon"),this._removeClass(n,null,this.options.icons.down),this._addClass(n,null,e.down)),this._super(t,e),void 0)},_setOptionDisabled:function(t){this._super(t),this._toggleClass(this.uiSpinner,null,"ui-state-disabled",!!t),this.element.prop("disabled",!!t),this.buttons.button(t?"disable":"enable")},_setOptions:r(function(t){this._super(t)}),_parse:function(t){return"string"==typeof t&&""!==t&&(t=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(t,10,this.options.culture):+t),""===t||isNaN(t)?null:t},_format:function(t){return""===t?"":window.Globalize&&this.options.numberFormat?Globalize.format(t,this.options.numberFormat,this.options.culture):t},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var t=this.value();return null===t?!1:t===this._adjustValue(t)},_value:function(t,e){var i;""!==t&&(i=this._parse(t),null!==i&&(e||(i=this._adjustValue(i)),t=this._format(i))),this.element.val(t),this._refresh()},_destroy:function(){this.element.prop("disabled",!1).removeAttr("autocomplete role aria-valuemin aria-valuemax aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:r(function(t){this._stepUp(t)}),_stepUp:function(t){this._start()&&(this._spin((t||1)*this.options.step),this._stop())},stepDown:r(function(t){this._stepDown(t)}),_stepDown:function(t){this._start()&&(this._spin((t||1)*-this.options.step),this._stop())},pageUp:r(function(t){this._stepUp((t||1)*this.options.page)}),pageDown:r(function(t){this._stepDown((t||1)*this.options.page)}),value:function(t){return arguments.length?(r(this._value).call(this,t),void 0):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),t.uiBackCompat!==!1&&t.widget("ui.spinner",t.ui.spinner,{_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml())},_uiSpinnerHtml:function(){return"<span>"},_buttonHtml:function(){return"<a></a><a></a>"}}),t.ui.spinner,t.widget("ui.tabs",{version:"1.12.1",delay:300,options:{active:null,classes:{"ui-tabs":"ui-corner-all","ui-tabs-nav":"ui-corner-all","ui-tabs-panel":"ui-corner-bottom","ui-tabs-tab":"ui-corner-top"},collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var t=/#.*$/;return function(e){var i,s;i=e.href.replace(t,""),s=location.href.replace(t,"");try{i=decodeURIComponent(i)}catch(n){}try{s=decodeURIComponent(s)}catch(n){}return e.hash.length>1&&i===s}}(),_create:function(){var e=this,i=this.options;this.running=!1,this._addClass("ui-tabs","ui-widget ui-widget-content"),this._toggleClass("ui-tabs-collapsible",null,i.collapsible),this._processTabs(),i.active=this._initialActive(),t.isArray(i.disabled)&&(i.disabled=t.unique(i.disabled.concat(t.map(this.tabs.filter(".ui-state-disabled"),function(t){return e.tabs.index(t)}))).sort()),this.active=this.options.active!==!1&&this.anchors.length?this._findActive(i.active):t(),this._refresh(),this.active.length&&this.load(i.active)},_initialActive:function(){var e=this.options.active,i=this.options.collapsible,s=location.hash.substring(1);return null===e&&(s&&this.tabs.each(function(i,n){return t(n).attr("aria-controls")===s?(e=i,!1):void 0}),null===e&&(e=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===e||-1===e)&&(e=this.tabs.length?0:!1)),e!==!1&&(e=this.tabs.index(this.tabs.eq(e)),-1===e&&(e=i?!1:0)),!i&&e===!1&&this.anchors.length&&(e=0),e},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):t()}},_tabKeydown:function(e){var i=t(t.ui.safeActiveElement(this.document[0])).closest("li"),s=this.tabs.index(i),n=!0;if(!this._handlePageNav(e)){switch(e.keyCode){case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:s++;break;case t.ui.keyCode.UP:case t.ui.keyCode.LEFT:n=!1,s--;break;case t.ui.keyCode.END:s=this.anchors.length-1;break;case t.ui.keyCode.HOME:s=0;break;case t.ui.keyCode.SPACE:return e.preventDefault(),clearTimeout(this.activating),this._activate(s),void 0;case t.ui.keyCode.ENTER:return e.preventDefault(),clearTimeout(this.activating),this._activate(s===this.options.active?!1:s),void 0;default:return}e.preventDefault(),clearTimeout(this.activating),s=this._focusNextTab(s,n),e.ctrlKey||e.metaKey||(i.attr("aria-selected","false"),this.tabs.eq(s).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",s)},this.delay))}},_panelKeydown:function(e){this._handlePageNav(e)||e.ctrlKey&&e.keyCode===t.ui.keyCode.UP&&(e.preventDefault(),this.active.trigger("focus"))},_handlePageNav:function(e){return e.altKey&&e.keyCode===t.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):e.altKey&&e.keyCode===t.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(e,i){function s(){return e>n&&(e=0),0>e&&(e=n),e}for(var n=this.tabs.length-1;-1!==t.inArray(s(),this.options.disabled);)e=i?e+1:e-1;return e},_focusNextTab:function(t,e){return t=this._findNextTab(t,e),this.tabs.eq(t).trigger("focus"),t},_setOption:function(t,e){return"active"===t?(this._activate(e),void 0):(this._super(t,e),"collapsible"===t&&(this._toggleClass("ui-tabs-collapsible",null,e),e||this.options.active!==!1||this._activate(0)),"event"===t&&this._setupEvents(e),"heightStyle"===t&&this._setupHeightStyle(e),void 0)},_sanitizeSelector:function(t){return t?t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var e=this.options,i=this.tablist.children(":has(a[href])");e.disabled=t.map(i.filter(".ui-state-disabled"),function(t){return i.index(t)}),this._processTabs(),e.active!==!1&&this.anchors.length?this.active.length&&!t.contains(this.tablist[0],this.active[0])?this.tabs.length===e.disabled.length?(e.active=!1,this.active=t()):this._activate(this._findNextTab(Math.max(0,e.active-1),!1)):e.active=this.tabs.index(this.active):(e.active=!1,this.active=t()),this._refresh()},_refresh:function(){this._setOptionDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._addClass(this.active,"ui-tabs-active","ui-state-active"),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var e=this,i=this.tabs,s=this.anchors,n=this.panels;this.tablist=this._getList().attr("role","tablist"),this._addClass(this.tablist,"ui-tabs-nav","ui-helper-reset ui-helper-clearfix ui-widget-header"),this.tablist.on("mousedown"+this.eventNamespace,"> li",function(e){t(this).is(".ui-state-disabled")&&e.preventDefault()}).on("focus"+this.eventNamespace,".ui-tabs-anchor",function(){t(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").attr({role:"tab",tabIndex:-1}),this._addClass(this.tabs,"ui-tabs-tab","ui-state-default"),this.anchors=this.tabs.map(function(){return t("a",this)[0]}).attr({role:"presentation",tabIndex:-1}),this._addClass(this.anchors,"ui-tabs-anchor"),this.panels=t(),this.anchors.each(function(i,s){var n,o,a,r=t(s).uniqueId().attr("id"),h=t(s).closest("li"),l=h.attr("aria-controls");e._isLocal(s)?(n=s.hash,a=n.substring(1),o=e.element.find(e._sanitizeSelector(n))):(a=h.attr("aria-controls")||t({}).uniqueId()[0].id,n="#"+a,o=e.element.find(n),o.length||(o=e._createPanel(a),o.insertAfter(e.panels[i-1]||e.tablist)),o.attr("aria-live","polite")),o.length&&(e.panels=e.panels.add(o)),l&&h.data("ui-tabs-aria-controls",l),h.attr({"aria-controls":a,"aria-labelledby":r}),o.attr("aria-labelledby",r)}),this.panels.attr("role","tabpanel"),this._addClass(this.panels,"ui-tabs-panel","ui-widget-content"),i&&(this._off(i.not(this.tabs)),this._off(s.not(this.anchors)),this._off(n.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol, ul").eq(0)},_createPanel:function(e){return t("<div>").attr("id",e).data("ui-tabs-destroy",!0)},_setOptionDisabled:function(e){var i,s,n;for(t.isArray(e)&&(e.length?e.length===this.anchors.length&&(e=!0):e=!1),n=0;s=this.tabs[n];n++)i=t(s),e===!0||-1!==t.inArray(n,e)?(i.attr("aria-disabled","true"),this._addClass(i,null,"ui-state-disabled")):(i.removeAttr("aria-disabled"),this._removeClass(i,null,"ui-state-disabled"));this.options.disabled=e,this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,e===!0)},_setupEvents:function(e){var i={};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(t){t.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(e){var i,s=this.element.parent();"fill"===e?(i=s.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var e=t(this),s=e.css("position");"absolute"!==s&&"fixed"!==s&&(i-=e.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=t(this).outerHeight(!0)}),this.panels.each(function(){t(this).height(Math.max(0,i-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.panels.each(function(){i=Math.max(i,t(this).height("").height())}).height(i))},_eventHandler:function(e){var i=this.options,s=this.active,n=t(e.currentTarget),o=n.closest("li"),a=o[0]===s[0],r=a&&i.collapsible,h=r?t():this._getPanelForTab(o),l=s.length?this._getPanelForTab(s):t(),c={oldTab:s,oldPanel:l,newTab:r?t():o,newPanel:h};e.preventDefault(),o.hasClass("ui-state-disabled")||o.hasClass("ui-tabs-loading")||this.running||a&&!i.collapsible||this._trigger("beforeActivate",e,c)===!1||(i.active=r?!1:this.tabs.index(o),this.active=a?t():o,this.xhr&&this.xhr.abort(),l.length||h.length||t.error("jQuery UI Tabs: Mismatching fragment identifier."),h.length&&this.load(this.tabs.index(o),e),this._toggle(e,c))},_toggle:function(e,i){function s(){o.running=!1,o._trigger("activate",e,i)}function n(){o._addClass(i.newTab.closest("li"),"ui-tabs-active","ui-state-active"),a.length&&o.options.show?o._show(a,o.options.show,s):(a.show(),s())}var o=this,a=i.newPanel,r=i.oldPanel;this.running=!0,r.length&&this.options.hide?this._hide(r,this.options.hide,function(){o._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),n()}):(this._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),r.hide(),n()),r.attr("aria-hidden","true"),i.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),a.length&&r.length?i.oldTab.attr("tabIndex",-1):a.length&&this.tabs.filter(function(){return 0===t(this).attr("tabIndex")}).attr("tabIndex",-1),a.attr("aria-hidden","false"),i.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(e){var i,s=this._findActive(e);s[0]!==this.active[0]&&(s.length||(s=this.active),i=s.find(".ui-tabs-anchor")[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return e===!1?t():this.tabs.eq(e)},_getIndex:function(e){return"string"==typeof e&&(e=this.anchors.index(this.anchors.filter("[href$='"+t.ui.escapeSelector(e)+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.tablist.removeAttr("role").off(this.eventNamespace),this.anchors.removeAttr("role tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){t.data(this,"ui-tabs-destroy")?t(this).remove():t(this).removeAttr("role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded")}),this.tabs.each(function(){var e=t(this),i=e.data("ui-tabs-aria-controls");i?e.attr("aria-controls",i).removeData("ui-tabs-aria-controls"):e.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(e){var i=this.options.disabled;i!==!1&&(void 0===e?i=!1:(e=this._getIndex(e),i=t.isArray(i)?t.map(i,function(t){return t!==e?t:null}):t.map(this.tabs,function(t,i){return i!==e?i:null})),this._setOptionDisabled(i))},disable:function(e){var i=this.options.disabled;if(i!==!0){if(void 0===e)i=!0;else{if(e=this._getIndex(e),-1!==t.inArray(e,i))return;i=t.isArray(i)?t.merge([e],i).sort():[e]}this._setOptionDisabled(i)}},load:function(e,i){e=this._getIndex(e);var s=this,n=this.tabs.eq(e),o=n.find(".ui-tabs-anchor"),a=this._getPanelForTab(n),r={tab:n,panel:a},h=function(t,e){"abort"===e&&s.panels.stop(!1,!0),s._removeClass(n,"ui-tabs-loading"),a.removeAttr("aria-busy"),t===s.xhr&&delete s.xhr};this._isLocal(o[0])||(this.xhr=t.ajax(this._ajaxSettings(o,i,r)),this.xhr&&"canceled"!==this.xhr.statusText&&(this._addClass(n,"ui-tabs-loading"),a.attr("aria-busy","true"),this.xhr.done(function(t,e,n){setTimeout(function(){a.html(t),s._trigger("load",i,r),h(n,e)},1)}).fail(function(t,e){setTimeout(function(){h(t,e)},1)})))},_ajaxSettings:function(e,i,s){var n=this;return{url:e.attr("href").replace(/#.*$/,""),beforeSend:function(e,o){return n._trigger("beforeLoad",i,t.extend({jqXHR:e,ajaxSettings:o},s))}}},_getPanelForTab:function(e){var i=t(e).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+i))}}),t.uiBackCompat!==!1&&t.widget("ui.tabs",t.ui.tabs,{_processTabs:function(){this._superApply(arguments),this._addClass(this.tabs,"ui-tab")}}),t.ui.tabs,t.widget("ui.tooltip",{version:"1.12.1",options:{classes:{"ui-tooltip":"ui-corner-all ui-widget-shadow"},content:function(){var e=t(this).attr("title")||"";return t("<a>").text(e).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,track:!1,close:null,open:null},_addDescribedBy:function(e,i){var s=(e.attr("aria-describedby")||"").split(/\s+/);s.push(i),e.data("ui-tooltip-id",i).attr("aria-describedby",t.trim(s.join(" ")))},_removeDescribedBy:function(e){var i=e.data("ui-tooltip-id"),s=(e.attr("aria-describedby")||"").split(/\s+/),n=t.inArray(i,s);-1!==n&&s.splice(n,1),e.removeData("ui-tooltip-id"),s=t.trim(s.join(" ")),s?e.attr("aria-describedby",s):e.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.liveRegion=t("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this.disabledTitles=t([])},_setOption:function(e,i){var s=this;this._super(e,i),"content"===e&&t.each(this.tooltips,function(t,e){s._updateContent(e.element)})},_setOptionDisabled:function(t){this[t?"_disable":"_enable"]()},_disable:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur");n.target=n.currentTarget=s.element[0],e.close(n,!0)}),this.disabledTitles=this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function(){var e=t(this);return e.is("[title]")?e.data("ui-tooltip-title",e.attr("title")).removeAttr("title"):void 0}))},_enable:function(){this.disabledTitles.each(function(){var e=t(this);e.data("ui-tooltip-title")&&e.attr("title",e.data("ui-tooltip-title"))}),this.disabledTitles=t([])},open:function(e){var i=this,s=t(e?e.target:this.element).closest(this.options.items);s.length&&!s.data("ui-tooltip-id")&&(s.attr("title")&&s.data("ui-tooltip-title",s.attr("title")),s.data("ui-tooltip-open",!0),e&&"mouseover"===e.type&&s.parents().each(function(){var e,s=t(this);s.data("ui-tooltip-open")&&(e=t.Event("blur"),e.target=e.currentTarget=this,i.close(e,!0)),s.attr("title")&&(s.uniqueId(),i.parents[this.id]={element:this,title:s.attr("title")},s.attr("title",""))}),this._registerCloseHandlers(e,s),this._updateContent(s,e))},_updateContent:function(t,e){var i,s=this.options.content,n=this,o=e?e.type:null;return"string"==typeof s||s.nodeType||s.jquery?this._open(e,t,s):(i=s.call(t[0],function(i){n._delay(function(){t.data("ui-tooltip-open")&&(e&&(e.type=o),this._open(e,t,i))})}),i&&this._open(e,t,i),void 0)},_open:function(e,i,s){function n(t){l.of=t,a.is(":hidden")||a.position(l)}var o,a,r,h,l=t.extend({},this.options.position);if(s){if(o=this._find(i))return o.tooltip.find(".ui-tooltip-content").html(s),void 0;i.is("[title]")&&(e&&"mouseover"===e.type?i.attr("title",""):i.removeAttr("title")),o=this._tooltip(i),a=o.tooltip,this._addDescribedBy(i,a.attr("id")),a.find(".ui-tooltip-content").html(s),this.liveRegion.children().hide(),h=t("<div>").html(a.find(".ui-tooltip-content").html()),h.removeAttr("name").find("[name]").removeAttr("name"),h.removeAttr("id").find("[id]").removeAttr("id"),h.appendTo(this.liveRegion),this.options.track&&e&&/^mouse/.test(e.type)?(this._on(this.document,{mousemove:n}),n(e)):a.position(t.extend({of:i},this.options.position)),a.hide(),this._show(a,this.options.show),this.options.track&&this.options.show&&this.options.show.delay&&(r=this.delayedShow=setInterval(function(){a.is(":visible")&&(n(l.of),clearInterval(r))},t.fx.interval)),this._trigger("open",e,{tooltip:a})}},_registerCloseHandlers:function(e,i){var s={keyup:function(e){if(e.keyCode===t.ui.keyCode.ESCAPE){var s=t.Event(e);s.currentTarget=i[0],this.close(s,!0)}}};i[0]!==this.element[0]&&(s.remove=function(){this._removeTooltip(this._find(i).tooltip)}),e&&"mouseover"!==e.type||(s.mouseleave="close"),e&&"focusin"!==e.type||(s.focusout="close"),this._on(!0,i,s)},close:function(e){var i,s=this,n=t(e?e.currentTarget:this.element),o=this._find(n);return o?(i=o.tooltip,o.closing||(clearInterval(this.delayedShow),n.data("ui-tooltip-title")&&!n.attr("title")&&n.attr("title",n.data("ui-tooltip-title")),this._removeDescribedBy(n),o.hiding=!0,i.stop(!0),this._hide(i,this.options.hide,function(){s._removeTooltip(t(this))}),n.removeData("ui-tooltip-open"),this._off(n,"mouseleave focusout keyup"),n[0]!==this.element[0]&&this._off(n,"remove"),this._off(this.document,"mousemove"),e&&"mouseleave"===e.type&&t.each(this.parents,function(e,i){t(i.element).attr("title",i.title),delete s.parents[e]}),o.closing=!0,this._trigger("close",e,{tooltip:i}),o.hiding||(o.closing=!1)),void 0):(n.removeData("ui-tooltip-open"),void 0)},_tooltip:function(e){var i=t("<div>").attr("role","tooltip"),s=t("<div>").appendTo(i),n=i.uniqueId().attr("id");return this._addClass(s,"ui-tooltip-content"),this._addClass(i,"ui-tooltip","ui-widget ui-widget-content"),i.appendTo(this._appendTo(e)),this.tooltips[n]={element:e,tooltip:i}},_find:function(t){var e=t.data("ui-tooltip-id");return e?this.tooltips[e]:null},_removeTooltip:function(t){t.remove(),delete this.tooltips[t.attr("id")]},_appendTo:function(t){var e=t.closest(".ui-front, dialog");return e.length||(e=this.document[0].body),e},_destroy:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur"),o=s.element;n.target=n.currentTarget=o[0],e.close(n,!0),t("#"+i).remove(),o.data("ui-tooltip-title")&&(o.attr("title")||o.attr("title",o.data("ui-tooltip-title")),o.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}}),t.uiBackCompat!==!1&&t.widget("ui.tooltip",t.ui.tooltip,{options:{tooltipClass:null},_tooltip:function(){var t=this._superApply(arguments);return this.options.tooltipClass&&t.tooltip.addClass(this.options.tooltipClass),t}}),t.ui.tooltip}); \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/registry.edit.php b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/registry.edit.php index a367c482050addb0af428e566bcdc40a6b1564bc..00fddbcb9603b1b063c27d74e1d55f8065d4ceb3 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/registry.edit.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/registry.edit.php @@ -19,7 +19,10 @@ $userid = $attributes[$useridattr][0]; } else { $as = \SimpleSAML\Auth\Source::getById($authsource); - $as->initLogin(\SimpleSAML\Utils\HTTP::getSelfURL()); + if (!is_null($as)) { + $as->initLogin(\SimpleSAML\Utils\HTTP::getSelfURL()); + } + throw new \Exception('Invalid authentication source: '.$authsource); } if (array_key_exists('editkey', $_REQUEST)) { @@ -55,5 +58,4 @@ $template = new \SimpleSAML\XHTML\Template($config, 'oauth:registry.edit.tpl.php'); $template->data['form'] = $form; -$template->data['jquery'] = ['core' => false, 'ui' => true, 'css' => true]; $template->show(); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/registry.php b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/registry.php index 4431835a63786095977605465fdb10254b097940..b3be64f64657720f9f5cb46eaa6eab3bc56198ba 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/registry.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/oauth/www/registry.php @@ -18,7 +18,10 @@ $userid = $attributes[$useridattr][0]; } else { $as = \SimpleSAML\Auth\Source::getById($authsource); - $as->initLogin(\SimpleSAML\Utils\HTTP::getSelfURL()); + if (!is_null($as)) { + $as->initLogin(\SimpleSAML\Utils\HTTP::getSelfURL()); + } + throw new \Exception('Invalid authentication source: '.$authsource); } if (isset($_REQUEST['delete'])) { @@ -40,8 +43,8 @@ continue; } } + $slist['others'][] = $listitem; } - $slist['others'][] = $listitem; } $template = new \SimpleSAML\XHTML\Template($config, 'oauth:registry.list.php'); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/portal/hooks/hook_htmlinject.php b/vendor/simplesamlphp/simplesamlphp/modules/portal/hooks/hook_htmlinject.php index efa1984a32aa37402255535297c245325658deef..7939763eee71a042a4c7cf68e5b3dc6ad1249393 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/portal/hooks/hook_htmlinject.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/portal/hooks/hook_htmlinject.php @@ -4,6 +4,7 @@ * Hook to inject HTML content into all pages... * * @param array &$hookinfo hookinfo + * @return void */ function portal_hook_htmlinject(&$hookinfo) { @@ -15,6 +16,8 @@ function portal_hook_htmlinject(&$hookinfo) $links = ['links' => []]; \SimpleSAML\Module::callHooks('frontpage', $links); + assert(is_array($links)); + $portalConfig = \SimpleSAML\Configuration::getOptionalConfig('module_portal.php'); $allLinks = []; @@ -36,8 +39,8 @@ function portal_hook_htmlinject(&$hookinfo) $hookinfo['jquery']['css'] = true; // Header - $hookinfo['pre'][] = '<div id="portalmenu" class="ui-tabs ui-widget ui-widget-content ui-corner-all">'. - $portal->getMenu($hookinfo['page']). + $hookinfo['pre'][] = '<div id="portalmenu" class="ui-tabs ui-widget ui-widget-content ui-corner-all">' . + $portal->getMenu($hookinfo['page']) . '<div id="portalcontent" class="ui-tabs-panel ui-widget-content ui-corner-bottom">'; // Footer diff --git a/vendor/simplesamlphp/simplesamlphp/modules/portal/lib/Portal.php b/vendor/simplesamlphp/simplesamlphp/modules/portal/lib/Portal.php index 517ce2edfa4a75bf7afa0798f0d3b9c8fa0f5fbc..e7308758f5deda9052c067511433424211a750c1 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/portal/lib/Portal.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/portal/lib/Portal.php @@ -2,17 +2,34 @@ namespace SimpleSAML\Module\portal; +use SimpleSAML\Configuration; +use SimpleSAML\Module; +use SimpleSAML\Locale\Translate; + class Portal { + /** @var array */ private $pages; + + /** @var array|null */ private $config; + + /** + * @param array $pages + * @param array|null $config + */ public function __construct($pages, $config = null) { $this->pages = $pages; $this->config = $config; } + + /** + * @param string $thispage + * @return array|null + */ public function getTabset($thispage) { if (!isset($this->config)) { @@ -26,8 +43,16 @@ public function getTabset($thispage) return null; } + + /** + * @param string $thispage + * @return bool + */ public function isPortalized($thispage) { + if (!isset($this->config)) { + return false; + } foreach ($this->config as $set) { if (in_array($thispage, $set, true)) { return true; @@ -36,21 +61,32 @@ public function isPortalized($thispage) return false; } + + /** + * @param \SimpleSAML\Locale\Translate $translator + * @param string $thispage + * @return string + */ public function getLoginInfo($translator, $thispage) { $info = ['info' => '', 'translator' => $translator, 'thispage' => $thispage]; - \SimpleSAML\Module::callHooks('portalLoginInfo', $info); + Module::callHooks('portalLoginInfo', $info); return $info['info']; } + + /** + * @param string $thispage + * @return string + */ public function getMenu($thispage) { - $config = \SimpleSAML\Configuration::getInstance(); - $t = new \SimpleSAML\Locale\Translate($config); + $config = Configuration::getInstance(); + $t = new Translate($config); $tabset = $this->getTabset($thispage); $logininfo = $this->getLoginInfo($t, $thispage); $classes = 'tabset_tabs ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all'; - $text = '<ul class="'.$classes.'">'; + $text = '<ul class="' . $classes . '">'; foreach ($this->pages as $pageid => $page) { if (isset($tabset) && !in_array($pageid, $tabset, true)) { continue; @@ -62,20 +98,24 @@ public function getMenu($thispage) if (isset($page['shorttext'])) { $name = $page['shorttext']; } + + /** @var string $name */ + $name = $t->t($name); + if (!isset($page['href'])) { - $text .= '<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a href="#">'. - $t->t($name).'</a></li>'; + $text .= '<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a href="#">' . + $name . '</a></li>'; } elseif ($pageid === $thispage) { - $text .= '<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a href="#">'. - $t->t($name).'</a></li>'; + $text .= '<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a href="#">' . + $name . '</a></li>'; } else { - $text .= '<li class="ui-state-default ui-corner-top"><a href="'.$page['href'].'">'. - $t->t($name).'</a></li>'; + $text .= '<li class="ui-state-default ui-corner-top"><a href="' . $page['href'] . '">' . + $name . '</a></li>'; } } $text .= '</ul>'; if (!empty($logininfo)) { - $text .= '<p class="logininfo" style="text-align: right; margin: 0px">'.$logininfo.'</p>'; + $text .= '<p class="logininfo" style="text-align: right; margin: 0px">' . $logininfo . '</p>'; } return $text; } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..59267ee96c7911780c11de4d2e1c4db1838d8752 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/.php_cs.dist @@ -0,0 +1,17 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/lib', + __DIR__ . '/templates', + __DIR__ . '/tests', + __DIR__ . '/www', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..1261f5fd2a4539ccc4e77e062cb10d2756116bf6 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/.travis.yml @@ -0,0 +1,35 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +matrix: + allow_failures: + - php: 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then composer require --dev vimeo/psalm:1.1.9; fi + +script: + - bin/check-syntax.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi +# - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/LICENSE b/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..a345e48d049f9c6756e9364e908b3f26e36c9df1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/LICENSE @@ -0,0 +1,459 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/bin/check-syntax.sh b/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/bin/check-syntax.sh new file mode 100755 index 0000000000000000000000000000000000000000..53830b50b2a78b6d9e7bb40e6fc9392831560bcf --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/bin/check-syntax.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +PHP='/usr/bin/env php' +RETURN=0 + +# check PHP files +for FILE in `find lib tests templates www -name "*.php"`; do + $PHP -l $FILE > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Syntax check failed for ${FILE}" + RETURN=`expr ${RETURN} + 1` + fi +done + +exit $RETURN diff --git a/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..20f77a7d585d454429d99cc70fe888ef49bf8b5a --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/composer.json @@ -0,0 +1,42 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-preprodwarning", + "description": "Display a warning when using a pre-production environment", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "preprodwarning"], + "license": "LGPL-2.1-or-later", + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\preprodwarning\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17", + "webmozart/assert": "^1.4" + }, + "support": { + "issues": "https://github.com/simplesamlphp/simplesamlphp-module-preprodwarning/issues", + "source": "https://github.com/simplesamlphp/simplesamlphp-module-preprodwarning" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/dictionaries/warning.translation.json b/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/dictionaries/warning.translation.json index 206f63fd8c6b40d9d33f9d7532c0c98ed01f6981..b41c698c0c95d93fd6cc198fd94040602fbcef95 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/dictionaries/warning.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/dictionaries/warning.translation.json @@ -32,7 +32,8 @@ "ro": "\u00cen acest moment accesa\u021bi un sistem pre-produc\u021bie. Acest sistem de autentificare este realizat doar pentru testare \u0219i verificare. Dac\u0103 a\u021bi primit de la cineva acest link \u0219i nu sunte\u021bi <i>tester<\/i>, atunci probabil a\u021bi primit un link gre\u0219it \u0219i <b>nu<\/b> ar fi trebuit s\u0103 ajunge\u021bi aici.", "eu": "Aurre-produzkio batean sartzen ari zara. Konfigurazio hau aurre-produkzioko sistemaren frogak egin eta egiaztatzeko bakarrik da. Hona iristeko norbaitek bidali dizun lotura bat jarraitu baduzu eta <i>frogatzaile<\/i> bat ez bazara, ziurrenik errore bat izango da, eta zuk <b>ez zenuke hemen egon behar<\/b>.", "af": "Jy het nou toegang gekry tot 'n pre-produksie stelsel. Di\u00e9 verifikasie opstel is vir die toets en pre-produksie verifikasie aleen. Indien iemand vir jou 'n skakel gestuur wat na hier verwys en jy is nie <i> 'n toets persoon nie <\/i> het jy waarskynlik die verkeerde skakel en moet <b> jy nie hier <\/b> wees nie.", - "el": "\u0395\u03b9\u03c3\u03ad\u03c1\u03c7\u03b5\u03c3\u03c4\u03b5 \u03c3\u03b5 \u03c0\u03b5\u03c1\u03b9\u03b2\u03ac\u03bb\u03bb\u03bf\u03bd \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2 \u03c7\u03c1\u03b7\u03c3\u03c4\u03ce\u03bd \u03c0\u03bf\u03c5 \u03b5\u03be\u03c5\u03c0\u03b7\u03c1\u03b5\u03c4\u03b5\u03af \u03b1\u03c0\u03bf\u03ba\u03bb\u03b5\u03b9\u03c3\u03c4\u03b9\u03ba\u03ac \u03b4\u03bf\u03ba\u03b9\u03bc\u03b1\u03c3\u03c4\u03b9\u03ba\u03bf\u03cd\u03c2 \u03c3\u03ba\u03bf\u03c0\u03bf\u03cd\u03c2. \u0391\u03bd \u03bf\u03b4\u03b7\u03b3\u03b7\u03b8\u03ae\u03ba\u03b1\u03c4\u03b5 \u03b5\u03b4\u03ce \u03bc\u03ad\u03c3\u03c9 \u03ba\u03ac\u03c0\u03bf\u03b9\u03bf\u03c5 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03bc\u03bf\u03c5 \u03b5\u03bd\u03ce \u03b4\u03b5\u03bd \u03b5\u03af\u03c3\u03c4\u03b5 <i>\u03b4\u03bf\u03ba\u03b9\u03bc\u03b1\u03c3\u03c4\u03ae\u03c2 (tester)<\/i>, \u03c4\u03cc\u03c4\u03b5 \u03c0\u03c1\u03cc\u03ba\u03b5\u03b9\u03c4\u03b1\u03b9 \u03c0\u03b5\u03c1\u03af \u03bb\u03ac\u03b8\u03bf\u03c5\u03c2 \u03ba\u03b1\u03b9 <b>\u03b4\u03b5\u03bd \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b2\u03c1\u03af\u03c3\u03ba\u03b5\u03c3\u03c4\u03b5 \u03b5\u03b4\u03ce<\/b>." + "el": "\u0395\u03b9\u03c3\u03ad\u03c1\u03c7\u03b5\u03c3\u03c4\u03b5 \u03c3\u03b5 \u03c0\u03b5\u03c1\u03b9\u03b2\u03ac\u03bb\u03bb\u03bf\u03bd \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2 \u03c7\u03c1\u03b7\u03c3\u03c4\u03ce\u03bd \u03c0\u03bf\u03c5 \u03b5\u03be\u03c5\u03c0\u03b7\u03c1\u03b5\u03c4\u03b5\u03af \u03b1\u03c0\u03bf\u03ba\u03bb\u03b5\u03b9\u03c3\u03c4\u03b9\u03ba\u03ac \u03b4\u03bf\u03ba\u03b9\u03bc\u03b1\u03c3\u03c4\u03b9\u03ba\u03bf\u03cd\u03c2 \u03c3\u03ba\u03bf\u03c0\u03bf\u03cd\u03c2. \u0391\u03bd \u03bf\u03b4\u03b7\u03b3\u03b7\u03b8\u03ae\u03ba\u03b1\u03c4\u03b5 \u03b5\u03b4\u03ce \u03bc\u03ad\u03c3\u03c9 \u03ba\u03ac\u03c0\u03bf\u03b9\u03bf\u03c5 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03bc\u03bf\u03c5 \u03b5\u03bd\u03ce \u03b4\u03b5\u03bd \u03b5\u03af\u03c3\u03c4\u03b5 <i>\u03b4\u03bf\u03ba\u03b9\u03bc\u03b1\u03c3\u03c4\u03ae\u03c2 (tester)<\/i>, \u03c4\u03cc\u03c4\u03b5 \u03c0\u03c1\u03cc\u03ba\u03b5\u03b9\u03c4\u03b1\u03b9 \u03c0\u03b5\u03c1\u03af \u03bb\u03ac\u03b8\u03bf\u03c5\u03c2 \u03ba\u03b1\u03b9 <b>\u03b4\u03b5\u03bd \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b2\u03c1\u03af\u03c3\u03ba\u03b5\u03c3\u03c4\u03b5 \u03b5\u03b4\u03ce<\/b>.", + "ca": "Ara teniu accés a un sistema de preproducció. Aquesta configuració d’autenticació és només per a comprovacions de proves i preproducció. Si algú us ha enviat un enllaç que us porta aquí, i no ets <i>un provador<\/i> segurament tens un enllaç incorrecte, i <b>hauries d'estar aquí<\/b>." }, "warning_header": { "no": "Advarsel om at dette er et test oppsett", @@ -67,7 +68,8 @@ "sr": "Upozorenje o pristupanju pred-produkcionom sistemu", "ro": "Aten\u021bionare privind accesarea unui sistem pre-produc\u021bie", "af": "Waarskuwing oor toegang na 'n pre-produksie stelsel", - "el": "\u03a0\u03c1\u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03c3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ac \u03bc\u03b5 \u03c4\u03b7\u03bd \u03b5\u03af\u03c3\u03bf\u03b4\u03bf \u03c3\u03b5 \u03b4\u03bf\u03ba\u03b9\u03bc\u03b1\u03c3\u03c4\u03b9\u03ba\u03cc \u03c0\u03b5\u03c1\u03b9\u03b2\u03ac\u03bb\u03bb\u03bf\u03bd" + "el": "\u03a0\u03c1\u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03c3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ac \u03bc\u03b5 \u03c4\u03b7\u03bd \u03b5\u03af\u03c3\u03bf\u03b4\u03bf \u03c3\u03b5 \u03b4\u03bf\u03ba\u03b9\u03bc\u03b1\u03c3\u03c4\u03b9\u03ba\u03cc \u03c0\u03b5\u03c1\u03b9\u03b2\u03ac\u03bb\u03bb\u03bf\u03bd", + "ca": "Avís sobre l'accés a un sistema de preproducció" }, "yes": { "no": "Ja, jeg holder p\u00e5 \u00e5 teste innlogging, og vet dette er et test-system.", @@ -102,6 +104,7 @@ "sr": "Da, znam da pristupam sistemu koji je u pred-produkcionoj fazi", "ro": "Da, \u00een\u021beleg c\u0103 accesez un sistem pre-produc\u021bie", "af": "Ja, ek weet ek verkry toegang tot 'n pre-produksie stelsel", - "el": "\u039d\u03b1\u03b9\u002c \u03b3\u03bd\u03c9\u03c1\u03af\u03b6\u03c9 \u03cc\u03c4\u03b9 \u03b5\u03b9\u03c3\u03ad\u03c1\u03c7\u03bf\u03bc\u03b1\u03b9 \u03c3\u03b5 \u03b4\u03bf\u03ba\u03b9\u03bc\u03b1\u03c3\u03c4\u03b9\u03ba\u03cc \u03c0\u03b5\u03c1\u03b9\u03b2\u03ac\u03bb\u03bb\u03bf\u03bd" + "el": "\u039d\u03b1\u03b9\u002c \u03b3\u03bd\u03c9\u03c1\u03af\u03b6\u03c9 \u03cc\u03c4\u03b9 \u03b5\u03b9\u03c3\u03ad\u03c1\u03c7\u03bf\u03bc\u03b1\u03b9 \u03c3\u03b5 \u03b4\u03bf\u03ba\u03b9\u03bc\u03b1\u03c3\u03c4\u03b9\u03ba\u03cc \u03c0\u03b5\u03c1\u03b9\u03b2\u03ac\u03bb\u03bb\u03bf\u03bd", + "ca": "Sí, sé que estic accedint a un sistema de preproducció" } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/lib/Auth/Process/Warning.php b/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/lib/Auth/Process/Warning.php index bbc6fdadb2d20f684c75db19e17f5e7419dce5bf..6a7c7925d100c0b3393981993b8318e1fd0f5dd5 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/lib/Auth/Process/Warning.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/lib/Auth/Process/Warning.php @@ -17,6 +17,7 @@ class Warning extends \SimpleSAML\Auth\ProcessingFilter * can authorize the release of the attributes. * * @param array $state The state of the response. + * @return void */ public function process(&$state) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/locales/nl/LC_MESSAGES/preprodwarning.po b/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/locales/nl/LC_MESSAGES/preprodwarning.po index e282707afd6f332ed43cb1c91097d324b2b6630d..5e9588b4411864ed725dbb1b10dcf793a2902509 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/locales/nl/LC_MESSAGES/preprodwarning.po +++ b/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/locales/nl/LC_MESSAGES/preprodwarning.po @@ -21,7 +21,7 @@ msgstr "Waarschuwing: dit is een pre-productiesysteem" msgid "{preprodwarning:warning:warning}" msgstr "" "Je gaat nu een pre-productiesysteem gebruiken. Deze authenticatie is " -"uitsluitend opgezet voor testen en pre-productie-verfificatie. Als iemand" +"uitsluitend opgezet voor testen en pre-productie-verificatie. Als iemand" " je een link hierheen stuurde, en je bent geen <i>tester</i>, dan is dit " "waarschijnlijk een vergissing en zou je <b>niet hier moeten zijn</b>." diff --git a/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0985fdd804b18d8d9179ecd956d63582c189e95 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/phpunit.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..3ec2e3d6ca162fd964e7b6cb37b58ff5802068b2 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/psalm.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<psalm + name="The SimpleSAMLphp preprodwarning module" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="lib" /> + <directory name="templates" /> + <directory name="www" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..28efee11df1f5b3ff515ddffd584f632b7d78c83 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/preprodwarning/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot.'/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot.'/vendor/simplesamlphp/simplesamlphp/modules/sqlauth'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/radius/.codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/radius/.codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/radius/.codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/radius/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/radius/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..e7d314696c7e461b645c3d603f3a5d3034082ba5 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/radius/.php_cs.dist @@ -0,0 +1,15 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/lib', + __DIR__ . '/tests', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/radius/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/radius/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..4f0285088cd31fca1e20bc2912b669c459080839 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/radius/.travis.yml @@ -0,0 +1,35 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +matrix: + allow_failures: + - php: 7.3 + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then composer require --dev vimeo/psalm; fi + +script: + - vendor/simplesamlphp/simplesamlphp-test-framework/bin/check-syntax-php.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi +# - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/radius/LICENSE b/vendor/simplesamlphp/simplesamlphp/modules/radius/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..0a041280bd00a9d068f503b8ee7ce35214bd24a1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/radius/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/radius/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/radius/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..f3da12a435fd8889eb1915e78942bba82a890a4d --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/radius/composer.json @@ -0,0 +1,42 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-radius", + "description": "A module that is able perform authentication against a RADIUS server", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "radius"], + "license": "LGPL-3.0-or-later", + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\radius\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.7", + "phpunit/phpunit": "~5.7" + }, + "support": { + "issues": "https://github.com/tvdijen/simplesamlphp-module-radius/issues", + "source": "https://github.com/tvdijen/simplesamlphp-module-radius" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/radius/lib/Auth/Source/Radius.php b/vendor/simplesamlphp/simplesamlphp/modules/radius/lib/Auth/Source/Radius.php index 70a192b4136b913ff5bbfbfc4479a4cf3602fe79..e6e7c032ab8407f49246b8f07a9a572a9027a8e7 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/radius/lib/Auth/Source/Radius.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/radius/lib/Auth/Source/Radius.php @@ -9,64 +9,64 @@ * * @package SimpleSAMLphp */ - class Radius extends \SimpleSAML\Module\core\Auth\UserPassBase { /** - * The list of radius servers to use. + * @var array The list of radius servers to use. */ private $servers; /** - * The hostname of the radius server. + * @var string The hostname of the radius server. */ private $hostname; /** - * The port of the radius server. + * @var int The port of the radius server. */ private $port; /** - * The secret used when communicating with the radius server. + * @var string The secret used when communicating with the radius server. */ private $secret; /** - * The timeout for contacting the radius server. + * @var int The timeout for contacting the radius server. */ private $timeout; /** - * The number of retries which should be attempted. + * @var int The number of retries which should be attempted. */ private $retries; /** - * The realm to be added to the entered username. + * Var string The realm to be added to the entered username. */ private $realm; /** - * The attribute name where the username should be stored. + * @var string|null The attribute name where the username should be stored. */ - private $usernameAttribute; + private $usernameAttribute = null; /** - * The vendor for the RADIUS attributes we are interrested in. + * @var string|null The vendor for the RADIUS attributes we are interrested in. */ - private $vendor; + private $vendor = null; /** - * The vendor-specific attribute for the RADIUS attributes we are - * interrested in. + * @var string The vendor-specific attribute for the RADIUS attributes we are + * interrested in. */ private $vendorType; /** - * The NAS-Identifier that should be set in Access-Request packets. + * @var string|null The NAS-Identifier that should be set in Access-Request packets. */ - private $nasIdentifier; + private $nasIdentifier = null; + /** * Constructor for this authentication source. @@ -83,35 +83,35 @@ public function __construct($info, $config) parent::__construct($info, $config); // Parse configuration. - $config = \SimpleSAML\Configuration::loadFromArray( + $cfg = \SimpleSAML\Configuration::loadFromArray( $config, - 'Authentication source '.var_export($this->authId, true) + 'Authentication source ' . var_export($this->authId, true) ); - $this->servers = $config->getArray('servers', []); + $this->servers = $cfg->getArray('servers', []); // For backwards compatibility if (empty($this->servers)) { - $this->hostname = $config->getString('hostname'); - $this->port = $config->getIntegerRange('port', 1, 65535, 1812); - $this->secret = $config->getString('secret'); + $this->hostname = $cfg->getString('hostname'); + $this->port = $cfg->getIntegerRange('port', 1, 65535, 1812); + $this->secret = $cfg->getString('secret'); $this->servers[] = [ 'hostname' => $this->hostname, 'port' => $this->port, 'secret' => $this->secret ]; } - $this->timeout = $config->getInteger('timeout', 5); - $this->retries = $config->getInteger('retries', 3); - $this->realm = $config->getString('realm', null); - $this->usernameAttribute = $config->getString('username_attribute', null); - $this->nasIdentifier = $config->getString( + $this->timeout = $cfg->getInteger('timeout', 5); + $this->retries = $cfg->getInteger('retries', 3); + $this->realm = $cfg->getString('realm', null); + $this->usernameAttribute = $cfg->getString('username_attribute', null); + $this->nasIdentifier = $cfg->getString( 'nas_identifier', \SimpleSAML\Utils\HTTP::getSelfHost() ); - $this->vendor = $config->getInteger('attribute_vendor', null); + $this->vendor = $cfg->getInteger('attribute_vendor', null); if ($this->vendor !== null) { - $this->vendorType = $config->getInteger('attribute_vendor_type'); + $this->vendorType = $cfg->getInteger('attribute_vendor_type'); } } @@ -121,7 +121,7 @@ public function __construct($info, $config) * * @param string $username The username the user wrote. * @param string $password The password the user wrote. - * @return array Associative array with the user's attributes. + * @return array[] Associative array with the user's attributes. */ protected function login($username, $password) { @@ -129,6 +129,9 @@ protected function login($username, $password) assert(is_string($password)); $radius = radius_auth_open(); + if (!is_resource($radius)) { + throw new \Exception("Insufficient memory available to create handle."); + } // Try to add all radius servers, trigger a failure if no one works $success = false; @@ -136,16 +139,18 @@ protected function login($username, $password) if (!isset($server['port'])) { $server['port'] = 1812; } - if (!radius_add_server( - $radius, - $server['hostname'], - $server['port'], - $server['secret'], - $this->timeout, - $this->retries - )) { + if ( + !radius_add_server( + $radius, + $server['hostname'], + $server['port'], + $server['secret'], + $this->timeout, + $this->retries + ) + ) { \SimpleSAML\Logger::info( - "Could not add radius server: ".radius_strerror($radius) + "Could not add radius server: " . radius_strerror($radius) ); continue; } @@ -157,14 +162,14 @@ protected function login($username, $password) if (!radius_create_request($radius, \RADIUS_ACCESS_REQUEST)) { throw new \Exception( - 'Error creating radius request: '.radius_strerror($radius) + 'Error creating radius request: ' . radius_strerror($radius) ); } if ($this->realm === null) { radius_put_attr($radius, \RADIUS_USER_NAME, $username); } else { - radius_put_attr($radius, \RADIUS_USER_NAME, $username.'@'.$this->realm); + radius_put_attr($radius, \RADIUS_USER_NAME, $username . '@' . $this->realm); } radius_put_attr($radius, \RADIUS_USER_PASSWORD, $password); @@ -182,7 +187,7 @@ protected function login($username, $password) throw new \Exception('Radius authentication error: Challenge requested, but not supported.'); default: throw new \Exception( - 'Error during radius authentication: '.radius_strerror($radius) + 'Error during radius authentication: ' . radius_strerror($radius) ); } } @@ -190,9 +195,10 @@ protected function login($username, $password) // If we get this far, we have a valid login $attributes = []; + $usernameAttribute = $this->usernameAttribute; - if ($this->usernameAttribute !== null) { - $attributes[$this->usernameAttribute] = [$username]; + if ($usernameAttribute !== null) { + $attributes[$usernameAttribute] = [$username]; } if ($this->vendor === null) { @@ -207,13 +213,13 @@ protected function login($username, $password) while ($resa = radius_get_attr($radius)) { if (!is_array($resa)) { throw new \Exception( - 'Error getting radius attributes: '.radius_strerror($radius) + 'Error getting radius attributes: ' . radius_strerror($radius) ); } // Use the received user name - if ($resa['attr'] == \RADIUS_USER_NAME) { - $attributes[$this->usernameAttribute] = [$resa['data']]; + if ($resa['attr'] === \RADIUS_USER_NAME && $usernameAttribute !== null) { + $attributes[$usernameAttribute] = [$resa['data']]; continue; } @@ -222,9 +228,9 @@ protected function login($username, $password) } $resv = radius_get_vendor_attr($resa['data']); - if (!is_array($resv)) { + if ($resv === false) { throw new \Exception( - 'Error getting vendor specific attribute: '.radius_strerror($radius) + 'Error getting vendor specific attribute: ' . radius_strerror($radius) ); } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/radius/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/radius/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0985fdd804b18d8d9179ecd956d63582c189e95 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/radius/phpunit.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/radius/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/radius/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..b533aeaa54bb5409535560afea4170aeb4eb8f32 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/radius/psalm.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp Radius authsource" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="lib" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> + + <stubs> + <file name="vendor/simplesamlphp/simplesamlphp-test-framework/stubs/radius.php" /> + </stubs> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/radius/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/radius/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..9cb3177a2c6554142717db4837636487e390754b --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/radius/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot . '/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot . '/vendor/simplesamlphp/simplesamlphp/modules/radius'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/riak/.codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/riak/.codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/riak/.codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/riak/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/riak/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..88f0c20358084b7082cfa925993ee61f7d810af0 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/riak/.php_cs.dist @@ -0,0 +1,17 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/lib', + __DIR__ . '/hooks', + __DIR__ . '/tests', + __DIR__ . '/config-templates', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/riak/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/riak/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..fec43ab41a5a3b2129c6a4b00802c56325717fe9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/riak/.travis.yml @@ -0,0 +1,31 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then composer require --dev vimeo/psalm:1.1.9; fi + +script: + - bin/check-syntax.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi +# - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/riak/LICENSE b/vendor/simplesamlphp/simplesamlphp/modules/riak/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..f288702d2fa16d3cdf0035b15a9fcbc552cd88e7 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/riak/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + <program> Copyright (C) <year> <name of author> + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +<https://www.gnu.org/licenses/>. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +<https://www.gnu.org/licenses/why-not-lgpl.html>. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/riak/README.md b/vendor/simplesamlphp/simplesamlphp/modules/riak/README.md new file mode 100644 index 0000000000000000000000000000000000000000..08083ca31a2eab5330c6f772fa5b9aadd5555c40 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/riak/README.md @@ -0,0 +1,2 @@ +# simplesamlphp-module-riak +This module implements the Riak session store diff --git a/vendor/simplesamlphp/simplesamlphp/modules/riak/bin/check-syntax.sh b/vendor/simplesamlphp/simplesamlphp/modules/riak/bin/check-syntax.sh new file mode 100755 index 0000000000000000000000000000000000000000..6938306b365213de303e7b9cab6cedcad45c8021 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/riak/bin/check-syntax.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +PHP='/usr/bin/env php' +RETURN=0 + +# check PHP files +for FILE in `find config-templates hooks lib tests -name "*.php"`; do + $PHP -l $FILE > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Syntax check failed for ${FILE}" + RETURN=`expr ${RETURN} + 1` + fi +done + +exit $RETURN diff --git a/vendor/simplesamlphp/simplesamlphp/modules/riak/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/riak/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..10fc58404c345a80f4a49f68dcf746e1811a3db9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/riak/composer.json @@ -0,0 +1,42 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-riak", + "description": "A module that is able to store key/value pairs in a Riak store", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "riak"], + "license": "LGPL-3.0-or-later", + "authors": [ + { + "name": "Tim van Dijen", + "email": "tvdijen@gmail.com" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\riak\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "phpfastcache/riak-client": "^3.4" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "phpunit/phpunit": "~5.7" + }, + "support": { + "issues": "https://github.com/tvdijen/simplesamlphp-module-riak/issues", + "source": "https://github.com/tvdijen/simplesamlphp-module-riak" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/riak/config-templates/module_riak.php b/vendor/simplesamlphp/simplesamlphp/modules/riak/config-templates/module_riak.php index 99f535fee579d461b295c9bfcc90234f3d4cf099..355711794fa593b0dbcb48bd8c2ce2e491487f44 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/riak/config-templates/module_riak.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/riak/config-templates/module_riak.php @@ -1,16 +1,14 @@ <?php -/* + +/** * The configuration of the riak Store module * */ $config = [ - /* - * This module has the following config options and defaults. - * - * 'path' => 'riak-php-client/riak.php', - * 'host' => 'localhost', - * 'port' => 8098, - * 'bucket' => 'SimpleSAMLphp', - */ + 'host' => 'localhost', + 'port' => 8098, + + // The name of the store + 'bucket' => 'SimpleSAMLphp', ]; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/riak/docs/simplesamlphp-riak.md b/vendor/simplesamlphp/simplesamlphp/modules/riak/docs/simplesamlphp-riak.md index c5e13a721098f14ba275690acd0ffbe6c4722129..1598d8a4e47141397d0129f9993536b84cb8be55 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/riak/docs/simplesamlphp-riak.md +++ b/vendor/simplesamlphp/simplesamlphp/modules/riak/docs/simplesamlphp-riak.md @@ -29,10 +29,7 @@ indexes. Refer to the Riak documentation on how to enable an appropriate backend for use by this module. Currently the only storage backend that supports secondary indexes is leveldb. -Next, you will need to install the Riak PHP Client library, available -from https://github.com/basho/riak-php-client. - -Finally, you need to config SimpleSAMLphp to for the riak Store by +Finally, you need to config SimpleSAMLphp to use the riak Store by enabling the following modules: 1. cron @@ -103,15 +100,14 @@ Configuring the riak module The riak module uses the following configuration options specified in `config/module_riak.php`. The defaults are listed: - $config = array( - 'path' => 'riak-php-client/riak.php', + $config = [ 'host' => 'localhost', 'port' => 8098, 'bucket' => 'SimpleSAMLphp', - ); + ]; Finally, the module can be specified as the Store in `config/config.php` with the following setting: - 'store.type' => 'riak:Store', + 'store.type' => 'riak:Riak', diff --git a/vendor/simplesamlphp/simplesamlphp/modules/riak/hooks/hook_cron.php b/vendor/simplesamlphp/simplesamlphp/modules/riak/hooks/hook_cron.php index c42d2c313e75b66cb6855a2b353e7033e1ebdff9..63d7099808d0975ee5a8109cbbf0fa31a279987e 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/riak/hooks/hook_cron.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/riak/hooks/hook_cron.php @@ -1,7 +1,5 @@ <?php -namespace SimpleSAML\Module\riak; - /* * Copyright (c) 2012 The University of Queensland * @@ -28,6 +26,7 @@ * Hook to run a cron job. * * @param array &$croninfo Output + * @return void */ function riak_hook_cron(&$croninfo) { @@ -40,17 +39,22 @@ function riak_hook_cron(&$croninfo) } try { - $store = new \SimpleSAML\Module\riak\Store\Store(); - $result = $store->bucket->indexSearch('expires', 'int', 1, time() - 30); - foreach ($result as $link) { - $link->getBinary()->delete(); + $store = new \SimpleSAML\Module\riak\Store\Riak(); + $result = $store->getExpired(); + + if ($result === null) { + $result = []; + } else { + foreach ($result as $key) { + $store->delete('session', $key); + } } \SimpleSAML\Logger::info( sprintf("deleted %s riak key%s", sizeof($result), sizeof($result) == 1 ? '' : 's') ); } catch (\Exception $e) { - $message = 'riak threw exception: '.$e->getMessage(); + $message = 'riak threw exception: ' . $e->getMessage(); \SimpleSAML\Logger::warning($message); $croninfo['summary'][] = $message; } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/riak/lib/Store/Riak.php b/vendor/simplesamlphp/simplesamlphp/modules/riak/lib/Store/Riak.php new file mode 100644 index 0000000000000000000000000000000000000000..94aa1c63fcec8765fcb0b6674ab9c8aaf9c1d060 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/riak/lib/Store/Riak.php @@ -0,0 +1,175 @@ +<?php + +/* + * Copyright (c) 2012 The University of Queensland + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Written by David Gwynne <dlg@uq.edu.au> as part of the IT + * Infrastructure Group in the Faculty of Engineering, Architecture + * and Information Technology. + * + * @package SimpleSAMLphp + * Rewriten by Tim van Dijen for SimpleSAMLphp + */ + +namespace SimpleSAML\Module\riak\Store; + +use Basho\Riak\Bucket; +use Basho\Riak\Command\Builder\DeleteObject; +use Basho\Riak\Command\Builder\FetchObject; +use Basho\Riak\Command\Builder\StoreObject; +use Basho\Riak\Command\Builder\QueryIndex; +use Basho\Riak\Location; +use Basho\Riak\Node; +use Basho\Riak\DataObject; +use Basho\Riak as RiakClient; +use SimpleSAML\Configuration; +use SimpleSAML\Error\CriticalConfigurationError; +use Webmozart\Assert\Assert; + +class Riak extends \SimpleSAML\Store +{ + /** @var \Basho\Riak */ + protected $client; + + /** @var string */ + protected $bucket_name; + + /** @var \Basho\Riak\Bucket */ + protected $bucket; + + /** @var \Basho\Riak\Location|null */ + protected $location = null; + + + public function __construct() + { + $config = Configuration::getConfig('module_riak.php'); + + $host = $config->getString('host', 'localhost'); + $port = $config->getInteger('port', 8098); + + $node = (new Node\Builder()) + ->atHost($host) + ->onPort($port) + ->build(); + + $this->client = new RiakClient([$node]); + $this->bucket_name = $config->getString('bucket', 'simpleSAMLphp'); + + $this->bucket = new Bucket($this->bucket_name); + } + + + /** + * Retrieve a value from the datastore. + * + * @param string $type The datatype. + * @param string $key The key. + * @return mixed|null The value. + */ + public function get($type, $key) + { + assert(is_string($type)); + assert(is_string($key)); + + $key = 'key_' . $key; + $this->location = new Location($key, $this->bucket); + + $response = (new FetchObject($this->client)) + ->atLocation($this->location) + ->build() + ->execute(); + + if ($response->getObject() === null) { + return null; + } + + $data = $response->getObject()->getData(); + $data_decoded = unserialize(json_decode($data, true)); + + return $data_decoded[$key]; + } + + + /** + * Save a value to the datastore. + * + * @param string $type The datatype. + * @param string $key The key. + * @param mixed $value The value. + * @param int|null $expire The expiration time (unix timestamp), or NULL if it never expires. + * @return void + */ + public function set($type, $key, $value, $expire = null) + { + assert(is_string($type)); + assert(is_string($key)); + assert(is_null($expire) || is_int($expire)); + assert($expire > 2592000); + + $key = 'key_' . $key; + $this->location = new Location($key, $this->bucket); + + $data = serialize([$key => $value]); + if (is_null($expire)) { + $object = new DataObject(json_encode($data), ['Content-type' => 'application/json']); + } else { + $object = (new DataObject(json_encode($data), ['Content-type' => 'application/json'])) + ->addValueToIndex('expire_int', time() + $expire); + } + + $storecmd = (new StoreObject($this->client)) + ->withObject($object) + ->atLocation($this->location) + ->build(); + $storecmd->execute(); + } + + + /** + * @return array|null + */ + public function getExpired() + { + $results = (new QueryIndex($this->client)) + ->inBucket($this->bucket) + ->withIndexName('expire_int') + ->withRangeValue(0, time()) + ->build() + ->execute() + ->getResults(); + + return $results; + } + + + /** + * Delete a value from the datastore. + * + * @param string $type The datatype. + * @param string $key The key. + * @return void + */ + public function delete($type, $key) + { + assert(is_string($type)); + assert(is_string($key)); + + $key = 'key_' . $key; + $this->location = new Location($key, $this->bucket); + + (new DeleteObject($this->client))->atLocation($this->location)->build()->execute(); + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/riak/lib/Store/Store.php b/vendor/simplesamlphp/simplesamlphp/modules/riak/lib/Store/Store.php deleted file mode 100644 index c44f599502e9bea7073e5ce84d164ebd4f782ee8..0000000000000000000000000000000000000000 --- a/vendor/simplesamlphp/simplesamlphp/modules/riak/lib/Store/Store.php +++ /dev/null @@ -1,111 +0,0 @@ -<?php - -namespace SimpleSAML\Module\riak\Store; - -/* - * Copyright (c) 2012 The University of Queensland - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/* - * Written by David Gwynne <dlg@uq.edu.au> as part of the IT - * Infrastructure Group in the Faculty of Engineering, Architecture - * and Information Technology. - */ - -class Store extends \SimpleSAML\Store -{ - public $client; - public $bucket; - - protected function __construct() - { - $config = \SimpleSAML\Configuration::getConfig('module_riak.php'); - - $path = $config->getString('path', 'riak-php-client/riak.php'); - $host = $config->getString('host', 'localhost'); - $port = $config->getString('port', 8098); - $bucket = $config->getString('bucket', 'simpleSAMLphp'); - - require_once($path); - $this->client = new \RiakClient($host, $port); - $this->bucket = $this->client->bucket($bucket); - } - - /** - * Retrieve a value from the datastore. - * - * @param string $type The datatype. - * @param string $key The key. - * @return mixed|NULL The value. - */ - public function get($type, $key) - { - assert(is_string($type)); - assert(is_string($key)); - - $v = $this->bucket->getBinary("$type.$key"); - if (!$v->exists()) { - return null; - } - - $expires = $v->getIndex('Expires', 'int'); - if (sizeof($expires) && (int) array_shift($expires) <= time()) { - $v->delete(); - return null; - } - - return (unserialize($v->getData())); - } - - /** - * Save a value to the datastore. - * - * @param string $type The datatype. - * @param string $key The key. - * @param mixed $value The value. - * @param int|NULL $expire The expiration time (unix timestamp), or NULL if it never expires. - */ - public function set($type, $key, $value, $expire = null) - { - assert(is_string($type)); - assert(is_string($key)); - assert($expire === null || (is_int($expire) && $expire > 2592000)); - - $v = $this->bucket->newBinary("$type.$key", serialize($value), 'application/php'); - if (!is_null($expire)) { - $v->addIndex("Expires", "int", $expire); - } - - $v->store(); - } - - /** - * Delete a value from the datastore. - * - * @param string $type The datatype. - * @param string $key The key. - */ - public function delete($type, $key) - { - assert(is_string($type)); - assert(is_string($key)); - - $v = $this->bucket->getBinary("$type.$key"); - if (!$v->exists()) { - return; - } - $v->delete(); - } -} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/riak/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/riak/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0985fdd804b18d8d9179ecd956d63582c189e95 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/riak/phpunit.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/riak/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/riak/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..84f09c7494aebfdc7b331406fe0fab93bac1f06e --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/riak/psalm.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp Riak" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="config-templates" /> + <directory name="lib" /> + <directory name="hooks" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/riak/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/riak/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..2e7ccd2f95ed133a57511d8289e2130326aa889b --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/riak/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot . '/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot . '/vendor/simplesamlphp/simplesamlphp/modules/riak'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/dictionaries/proxy.translation.json b/vendor/simplesamlphp/simplesamlphp/modules/saml/dictionaries/proxy.translation.json index bf80ff4caf5e6ee8900d4e50739765599afebf06..040f7ee3b205b33b36f0d11cf738a08c948d24f8 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/dictionaries/proxy.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/dictionaries/proxy.translation.json @@ -3,12 +3,14 @@ "zh-tw": "\u7121\u6548\u7684\u9a57\u8b49\u63d0\u4f9b\u8005", "es": "Proveedor de Identidad inválido", "zu": "Umhlinzeki Kamazisi Ongalungile", - "xh": "Isiboneleli Sesazisi Esingasebenziyo" + "xh": "Isiboneleli Sesazisi Esingasebenziyo", + "ca": "Proveïdor d’identitat no vàlid" }, "invalid_idp_description": { "zh-tw": "\u60a8\u5df2\u7d93\u64c1\u6709\u4e00\u500b\u9a57\u8b49\u63d0\u4f9b\u8005 (<em>%IDP%</em>) \u7684\u6709\u6548\u7684\u9023\u7dda\uff0c\u4f46\u8a72\u9023\u7dda\u7121\u6cd5\u88ab <em>%SP%</em> \u6240\u63a5\u53d7\u3002\u60a8\u662f\u5426\u60f3\u8981\u767b\u51fa\u65e2\u6709\u7684\u9023\u7dda\u4e26\u91cd\u65b0\u7531\u5176\u4ed6\u9a57\u8b49\u63d0\u4f9b\u8005\u9032\u884c\u767b\u5165\uff1f", "es": "Ya existe una sesión válida con un proveedor de identidad (<em>%IDP%</em>) que <em>%SP%</em> no acepta. ¿Desea cerrar su sesión actual e iniciar una nueva con otro proveedor de identidad?", "zu": "Kakade uneseshini evumelekile nomhlinzeki kamazisi (<em>%IDP%</em>) engamukelwa okuthi <em>%SP%</em>. Ungathanda ukuphuma kuseshini yakho ekhona kakade futhi uphinde ungene ngomunye umhlinzeki kamazisi?", - "xh": "Sele unayo iseshoni esebenzayo nomboneleli wesazisi (<em>%IDP%</em>) engamkelwanga yi-<em>%SP%</em>. Ingaba ungathanda ukuphuma kwiseshoni yakho esele ikho uze ungene kwakhona ngomnye umboneleli wesazisi?" + "xh": "Sele unayo iseshoni esebenzayo nomboneleli wesazisi (<em>%IDP%</em>) engamkelwanga yi-<em>%SP%</em>. Ingaba ungathanda ukuphuma kwiseshoni yakho esele ikho uze ungene kwakhona ngomnye umboneleli wesazisi?", + "ca": "Ja teniu una sessió vàlida amb un proveïdor d’identitats (<em>%IDP%</em>) que no es acceptada per <em>%SP%</em>. Voleu sortir de la sessió existent i tornar a iniciar sessió amb un altre proveïdor d’identitat?" } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/dictionaries/wrong_authncontextclassref.translation.json b/vendor/simplesamlphp/simplesamlphp/modules/saml/dictionaries/wrong_authncontextclassref.translation.json index 9cb912f457fabcba491c0cf109556599ff41e3f3..a9aafd28dcd4692686791907d99ac09721bfb078 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/dictionaries/wrong_authncontextclassref.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/dictionaries/wrong_authncontextclassref.translation.json @@ -22,7 +22,8 @@ "id": "Konteks otentikasi keliru", "zh-tw": "\u932f\u8aa4\u7684\u9a57\u8b49\u5167\u5bb9", "af": "Verkeerde verifikasie konteks", - "el": "\u0395\u03c3\u03c6\u03b1\u03bb\u03bc\u03ad\u03bd\u03b7 \u03bc\u03ad\u03b8\u03bf\u03b4\u03bf\u03c2 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2" + "el": "\u0395\u03c3\u03c6\u03b1\u03bb\u03bc\u03ad\u03bd\u03b7 \u03bc\u03ad\u03b8\u03bf\u03b4\u03bf\u03c2 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2", + "ca": "Context d’autenticació incorrecte" }, "description": { "hu": "A m\u00f3d, ahogyan azonos\u00edtott t\u00e9ged a szem\u00e9lyazonoss\u00e1g szolg\u00e1ltat\u00f3d, nem elfogadott enn\u00e9l a szolg\u00e1ltat\u00e1sn\u00e1l. Val\u00f3sz\u00edn\u0171leg t\u00fal gyenge, vagy nem k\u00e9tfaktoros.", @@ -47,6 +48,7 @@ "id": "Konteks otentikasi Anda tidak tersedia pada layanan ini. Mungkin terlalu lemah atau bukan keamanan-ganda.", "zh-tw": "\u60a8\u7684\u9a57\u8b49\u5167\u5bb9\u7121\u6cd5\u88ab\u6b64\u670d\u52d9\u63a5\u53d7\u3002\u53ef\u80fd\u662f\u5f37\u5ea6\u592a\u5f31\u6216\u662f\u672a\u4f7f\u7528\u5169\u6bb5\u5f0f\u9a57\u8b49 (2-factor)\u3002", "af": "Jou verifikasie konteks is nie deur die diens aanvaar nie. Waarskynlik te swak of nie twee-faktor nie.", - "el": "\u0397 \u03bc\u03ad\u03b8\u03bf\u03b4\u03bf\u03c2 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03ae\u03c2 \u03c3\u03b1\u03c2 \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b1\u03c0\u03bf\u03b4\u03b5\u03ba\u03c4\u03ae \u03c3\u03b5 \u03b1\u03c5\u03c4\u03ae \u03c4\u03b7\u03bd \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1. \u03a0\u03b9\u03b8\u03b1\u03bd\u03ce\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c0\u03bf\u03bb\u03cd \u03b1\u03b4\u03cd\u03bd\u03b1\u03bc\u03b7, \u03c0.\u03c7. \u03b4\u03b5\u03bd \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03ae\u03b8\u03b7\u03ba\u03b5 \u03b5\u03c0\u03b1\u03bb\u03ae\u03b8\u03b5\u03c5\u03c3\u03b7 \u03b4\u03cd\u03bf \u03b2\u03b7\u03bc\u03ac\u03c4\u03c9\u03bd." + "el": "\u0397 \u03bc\u03ad\u03b8\u03bf\u03b4\u03bf\u03c2 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03ae\u03c2 \u03c3\u03b1\u03c2 \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b1\u03c0\u03bf\u03b4\u03b5\u03ba\u03c4\u03ae \u03c3\u03b5 \u03b1\u03c5\u03c4\u03ae \u03c4\u03b7\u03bd \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1. \u03a0\u03b9\u03b8\u03b1\u03bd\u03ce\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c0\u03bf\u03bb\u03cd \u03b1\u03b4\u03cd\u03bd\u03b1\u03bc\u03b7, \u03c0.\u03c7. \u03b4\u03b5\u03bd \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03ae\u03b8\u03b7\u03ba\u03b5 \u03b5\u03c0\u03b1\u03bb\u03ae\u03b8\u03b5\u03c5\u03c3\u03b7 \u03b4\u03cd\u03bf \u03b2\u03b7\u03bc\u03ac\u03c4\u03c9\u03bd.", + "ca": "Aquest servei no accepta el vostre context d’autenticació. Probablement és massa feble o sense doble factor." } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/docs/filterscopes.md b/vendor/simplesamlphp/simplesamlphp/modules/saml/docs/filterscopes.md index a3c28fa4faaac8cbc044af73c96b7d47811ab510..e930244d82c13ad339fdbd5663eb1a13c8bbb626 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/docs/filterscopes.md +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/docs/filterscopes.md @@ -36,36 +36,36 @@ Examples -------- Basic configuration: -```php - 'authproc' => array( - 90 => array( +``` + 'authproc' => [ + 90 => [ 'class' => 'saml:FilterScopes', - ), - ), + ], + [, ``` Specify `mail` and `eduPersonPrincipalName` as scoped attributes: -```php - 'authproc' => array( - 90 => array( +``` + 'authproc' => [ + 90 => [ 'class' => 'saml:FilterScopes', - 'attributes' => array( + 'attributes' => [ 'mail', 'eduPersonPrincipalName', - ), - ), - ), + ], + ], + ], ``` Specify the same attributes in OID format: -```php - 'authproc' => array( - 90 => array( +``` + 'authproc' => [ + 90 => [ 'class' => 'saml:FilterScopes', - 'attributes' => array( + 'attributes' => [ 'urn:oid:0.9.2342.19200300.100.1.3', 'urn:oid:1.3.6.1.4.1.5923.1.1.1.6', - ), - ), - ), + ], + ], + ], ``` diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/docs/nameid.md b/vendor/simplesamlphp/simplesamlphp/modules/saml/docs/nameid.md index 2c719552cd108f542f7246636bf7235f940a0910..bf3ae2b848a94f4ba309b3aa2f19c80f84f235d4 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/docs/nameid.md +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/docs/nameid.md @@ -63,10 +63,11 @@ No extra options are available for this filter. `saml:SQLPersistentNameID` -------------------------- -Generates and stores persistent NameIDs in a SQL datastore. +Generates and stores persistent NameIDs in a SQL database. -This filter generates and stores a persistent NameID in a SQL datastore. -To use this filter, SimpleSAMLphp must be configured to use a SQL datastore. +This filter generates and stores a persistent NameID in a SQL database. +To use this filter, either specify the `store` option and a database, +or configure SimpleSAMLphp to use a SQL datastore. See the `store.type` configuration option in `config.php`. ### Options @@ -86,6 +87,10 @@ See the `store.type` configuration option in `config.php`. : Whether to ignore an explicit `AllowCreate="false"` in the authentication request's NameIDPolicy. The default is `FALSE`, which will only create new NameIDs when the SP specifies `AllowCreate="true"` in the authentication request. +`store` +: An array of database options passed to `\SimpleSAML\Database`, keys prefixed with `database.`. + The default is `[]`, which uses the global SQL datastore. + Setting both `allowUnspecified` and `alwaysCreate` to `TRUE` causes `saml:SQLPersistentNameID` to behave like `saml:PersistentNameID` (and other NameID generation filters), at the expense of creating unnecessary entries in the SQL datastore. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/docs/sp.md b/vendor/simplesamlphp/simplesamlphp/modules/saml/docs/sp.md index f03a7478ffc86598d98d8795cafeecf1591a91a8..45da3fb1afd5b382ab3dda1fb015c18cabf3cf09 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/docs/sp.md +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/docs/sp.md @@ -9,11 +9,12 @@ Metadata The metadata for your SP will be available from the federation page on your SimpleSAMLphp installation. -SimpleSAMLphp supports generating metadata with the MDUI and MDRPI metadata extensions. -See the documentation for those extensions for more details: +SimpleSAMLphp supports generating metadata with the MDUI and MDRPI metadata extensions +and with entity attributes. See the documentation for those extensions for more details: * [MDUI extension](./simplesamlphp-metadata-extensions-ui) * [MDRPI extension](./simplesamlphp-metadata-extensions-rpi) + * [Attributes extension](./simplesamlphp-metadata-extensions-attributes) Parameters @@ -120,6 +121,11 @@ Options : *Note*: SAML 2 specific. +`AssertionConsumerService` +: List of Assertion Consumer Services in the generated metadata. Specified in the array of + arrays format as seen in the [Metadata endpoints](./simplesamlphp-metadata-endpoints) + documentation. + `attributes` : List of attributes this SP requests from the IdP. This list will be added to the generated metadata. @@ -212,9 +218,9 @@ Options When set to `TRUE`, no scoping elements will be sent. This does not comply with the SAML2 specification, but allows interoperability with ADFS which [does not support Scoping elements](https://docs.microsoft.com/en-za/azure/active-directory/develop/active-directory-single-sign-on-protocol-reference#scoping). -: Note that this option also exists in the IdP remote configuration. An - entry in the the IdP-remote metadata overrides this the option in the - SP configuration. +: Note that this option also exists in the IdP remote configuration. An entry + in the IdP-remote metadata overrides this the option in the SP + configuration. `discoURL` : Set which IdP discovery service this SP should use. @@ -410,6 +416,9 @@ Options * `urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST` * `urn:oasis:names:tc:SAML:2.0:bindings:SOAP` +`SingleLogoutServiceLocation` +: The Single Logout Service URL published in the generated metadata. + `url` : A URL to your service provider. Will be added as an OrganizationURL-element in the metadata. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/hooks/hook_metadata_hosted.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/hooks/hook_metadata_hosted.php index e1dc65c36f81892947e651fc296020ad3bfb7090..569a6803197881b9239b48738956ac9a6b58b0a2 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/hooks/hook_metadata_hosted.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/hooks/hook_metadata_hosted.php @@ -4,8 +4,8 @@ * Hook to add the metadata for hosted entities to the frontpage. * * @param array &$metadataHosted The metadata links for hosted metadata on the frontpage. + * @return void */ - function saml_hook_metadata_hosted(&$metadataHosted) { assert(is_array($metadataHosted)); @@ -13,6 +13,7 @@ function saml_hook_metadata_hosted(&$metadataHosted) $sources = \SimpleSAML\Auth\Source::getSourcesOfType('saml:SP'); foreach ($sources as $source) { + /** @var \SimpleSAML\Module\saml\Auth\Source\SP $source */ $metadata = $source->getMetadata(); $name = $metadata->getValue('name', null); @@ -27,7 +28,7 @@ function saml_hook_metadata_hosted(&$metadataHosted) 'entityid' => $source->getEntityId(), 'metadata-index' => $source->getEntityId(), 'metadata-set' => 'saml20-sp-hosted', - 'metadata-url' => $source->getMetadataURL().'?output=xhtml', + 'metadata-url' => $source->getMetadataURL() . '?output=xhtml', 'name' => $name, ]; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/AttributeNameID.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/AttributeNameID.php index fbb5669a80e3a4ca04503f729151d8262b69b6a0..d0b4393bf0ddf844ac1a94053a681bcdbace68d2 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/AttributeNameID.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/AttributeNameID.php @@ -2,6 +2,9 @@ namespace SimpleSAML\Module\saml\Auth\Process; +use SimpleSAML\Error; +use SimpleSAML\Logger; + /** * Authentication processing filter to create a NameID from an attribute. * @@ -24,7 +27,7 @@ class AttributeNameID extends \SimpleSAML\Module\saml\BaseNameIDGenerator * @param array $config Configuration information about this filter. * @param mixed $reserved For future use. * - * @throws \SimpleSAMLError\Exception If the required options 'Format' or 'attribute' are missing. + * @throws \SimpleSAML\Error\Exception If the required options 'Format' or 'attribute' are missing. */ public function __construct($config, $reserved) { @@ -32,12 +35,12 @@ public function __construct($config, $reserved) assert(is_array($config)); if (!isset($config['Format'])) { - throw new \SimpleSAML\Error\Exception("AttributeNameID: Missing required option 'Format'."); + throw new Error\Exception("AttributeNameID: Missing required option 'Format'."); } $this->format = (string) $config['Format']; if (!isset($config['attribute'])) { - throw new \SimpleSAML\Error\Exception("AttributeNameID: Missing required option 'attribute'."); + throw new Error\Exception("AttributeNameID: Missing required option 'attribute'."); } $this->attribute = (string) $config['attribute']; } @@ -51,28 +54,27 @@ public function __construct($config, $reserved) */ protected function getValue(array &$state) { - if (!isset($state['Attributes'][$this->attribute]) || count($state['Attributes'][$this->attribute]) === 0) { - \SimpleSAML\Logger::warning( - 'Missing attribute '.var_export($this->attribute, true). + Logger::warning( + 'Missing attribute ' . var_export($this->attribute, true) . ' on user - not generating attribute NameID.' ); return null; } if (count($state['Attributes'][$this->attribute]) > 1) { - \SimpleSAML\Logger::warning( - 'More than one value in attribute '.var_export($this->attribute, true). + Logger::warning( + 'More than one value in attribute ' . var_export($this->attribute, true) . ' on user - not generating attribute NameID.' ); return null; } $value = array_values($state['Attributes'][$this->attribute]); // just in case the first index is no longer 0 - $value = $value[0]; + $value = strval($value[0]); if (empty($value)) { - \SimpleSAML\Logger::warning( - 'Empty value in attribute '.var_export($this->attribute, true). - ' on user - not generating persistent NameID.' + Logger::warning( + 'Empty value in attribute ' . var_export($this->attribute, true) . + ' on user - not generating attribute NameID.' ); return null; } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/AuthnContextClassRef.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/AuthnContextClassRef.php index 106d7b51f06f7472ece5bc013f6f38e3fa938958..b2e6eb35880575b3d492bc9c79ce6fcdad94f277 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/AuthnContextClassRef.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/AuthnContextClassRef.php @@ -2,20 +2,21 @@ namespace SimpleSAML\Module\saml\Auth\Process; +use SimpleSAML\Error; + /** * Filter for setting the AuthnContextClassRef in the response. * * @package SimpleSAMLphp */ - class AuthnContextClassRef extends \SimpleSAML\Auth\ProcessingFilter { /** * The URI we should set as the AuthnContextClassRef in the login response. * - * @var string + * @var string|null */ - private $authnContextClassRef; + private $authnContextClassRef = null; /** @@ -24,7 +25,7 @@ class AuthnContextClassRef extends \SimpleSAML\Auth\ProcessingFilter * @param array $config Configuration information about this filter. * @param mixed $reserved For future use. * - * @throws \SimpleSAML\Error\_Exception if the mandatory 'AuthnContextClassRef' option is missing. + * @throws \SimpleSAML\Error\Exception if the mandatory 'AuthnContextClassRef' option is missing. */ public function __construct($config, $reserved) { @@ -32,7 +33,7 @@ public function __construct($config, $reserved) assert(is_array($config)); if (!isset($config['AuthnContextClassRef'])) { - throw new \SimpleSAML\Error\Exception('Missing AuthnContextClassRef option in processing filter.'); + throw new Error\Exception('Missing AuthnContextClassRef option in processing filter.'); } $this->authnContextClassRef = (string) $config['AuthnContextClassRef']; @@ -43,6 +44,7 @@ public function __construct($config, $reserved) * Set the AuthnContextClassRef in the SAML 2 response. * * @param array &$state The state array for this request. + * @return void */ public function process(&$state) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/ExpectedAuthnContextClassRef.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/ExpectedAuthnContextClassRef.php index fd6277732326b7bfad1cc82bce053b7f3d217b85..7e6259c5892f769af03dd689a01371fe281b0eb1 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/ExpectedAuthnContextClassRef.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/ExpectedAuthnContextClassRef.php @@ -2,6 +2,12 @@ namespace SimpleSAML\Module\saml\Auth\Process; +use SimpleSAML\Auth; +use SimpleSAML\Error; +use SimpleSAML\Logger; +use SimpleSAML\Module; +use SimpleSAML\Utils; + /** * Attribute filter to validate AuthnContextClassRef values. * @@ -29,9 +35,9 @@ class ExpectedAuthnContextClassRef extends \SimpleSAML\Auth\ProcessingFilter /** * AuthnContextClassRef of the assertion - * @var string + * @var string|null */ - private $AuthnContextClassRef; + private $AuthnContextClassRef = null; /** @@ -48,10 +54,10 @@ public function __construct($config, $reserved) assert(is_array($config)); if (empty($config['accepted'])) { - \SimpleSAML\Logger::error( + Logger::error( 'ExpectedAuthnContextClassRef: Configuration error. There is no accepted AuthnContextClassRef.' ); - throw new \SimpleSAML\Error\Exception( + throw new Error\Exception( 'ExpectedAuthnContextClassRef: Configuration error. There is no accepted AuthnContextClassRef.' ); } @@ -62,11 +68,12 @@ public function __construct($config, $reserved) /** * * @param array &$request The current request + * @return void */ public function process(&$request) { assert(is_array($request)); - assert(array_key_exists('Attributes', $request)); + assert(array_key_exists('saml:sp:State', $request)); $this->AuthnContextClassRef = $request['saml:sp:State']['saml:sp:AuthnContext']; @@ -87,18 +94,19 @@ public function process(&$request) * permission logic. * * @param array $request + * @return void */ protected function unauthorized(&$request) { - \SimpleSAML\Logger::error( - 'ExpectedAuthnContextClassRef: Invalid authentication context: '.$this->AuthnContextClassRef. - '. Accepted values are: '.var_export($this->accepted, true) + Logger::error( + 'ExpectedAuthnContextClassRef: Invalid authentication context: ' . strval($this->AuthnContextClassRef) . + '. Accepted values are: ' . var_export($this->accepted, true) ); - $id = \SimpleSAML\Auth\State::saveState($request, 'saml:ExpectedAuthnContextClassRef:unauthorized'); - $url = \SimpleSAML\Module::getModuleURL( + $id = Auth\State::saveState($request, 'saml:ExpectedAuthnContextClassRef:unauthorized'); + $url = Module::getModuleURL( 'saml/sp/wrong_authncontextclassref.php' ); - \SimpleSAML\Utils\HTTP::redirectTrustedURL($url, ['StateId' => $id]); + Utils\HTTP::redirectTrustedURL($url, ['StateId' => $id]); } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/FilterScopes.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/FilterScopes.php index 67ef886df09e4dec683df2fbced1bf02d6c1ca44..fd4089b925fba011e24b3de0010848d2b2129ba5 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/FilterScopes.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/FilterScopes.php @@ -3,6 +3,7 @@ namespace SimpleSAML\Module\saml\Auth\Process; use SimpleSAML\Logger; +use SimpleSAML\Utils; /** * Filter to remove attribute values which are not properly scoped. @@ -15,7 +16,7 @@ class FilterScopes extends \SimpleSAML\Auth\ProcessingFilter { /** - * Stores any pre-configured scoped attributes which come from the filter configuration. + * @var array Stores any pre-configured scoped attributes which come from the filter configuration. */ private $scopedAttributes = [ 'eduPersonScopedAffiliation', @@ -44,6 +45,7 @@ public function __construct(&$config, $reserved) * This method applies the filter, removing any values * * @param array &$request the current request + * @return void */ public function process(&$request) { @@ -58,41 +60,43 @@ public function process(&$request) $validScopes = $src['scope']; } - foreach ($this->scopedAttributes as $attribute) { - if (!isset($request['Attributes'][$attribute])) { - continue; - } - - $values = $request['Attributes'][$attribute]; - $newValues = []; - foreach ($values as $value) { - $ep = \SimpleSAML\Utils\Config\Metadata::getDefaultEndpoint($request['Source']['SingleSignOnService']); - $loc = $ep['Location']; - $host = parse_url($loc, PHP_URL_HOST); - if ($host === null) { - $host = ''; + $ep = Utils\Config\Metadata::getDefaultEndpoint($request['Source']['SingleSignOnService']); + if ($ep !== null) { + foreach ($this->scopedAttributes as $attribute) { + if (!isset($request['Attributes'][$attribute])) { + continue; } - $value_a = explode('@', $value, 2); - if (count($value_a) < 2) { - $newValues[] = $value; - continue; // there's no scope + + $values = $request['Attributes'][$attribute]; + $newValues = []; + foreach ($values as $value) { + $loc = $ep['Location']; + $host = parse_url($loc, PHP_URL_HOST); + if ($host === null) { + $host = ''; + } + $value_a = explode('@', $value, 2); + if (count($value_a) < 2) { + $newValues[] = $value; + continue; // there's no scope + } + $scope = $value_a[1]; + if (in_array($scope, $validScopes, true)) { + $newValues[] = $value; + } elseif (strpos($host, $scope) === strlen($host) - strlen($scope)) { + $newValues[] = $value; + } else { + Logger::warning("Removing value '$value' for attribute '$attribute'. Undeclared scope."); + } } - $scope = $value_a[1]; - if (in_array($scope, $validScopes, true)) { - $newValues[] = $value; - } elseif (strpos($host, $scope) === strlen($host) - strlen($scope)) { - $newValues[] = $value; + + if (empty($newValues)) { + Logger::warning("No suitable values for attribute '$attribute', removing it."); + unset($request['Attributes'][$attribute]); // remove empty attributes } else { - Logger::warning("Removing value '$value' for attribute '$attribute'. Undeclared scope."); + $request['Attributes'][$attribute] = $newValues; } } - - if (empty($newValues)) { - Logger::warning("No suitable values for attribute '$attribute', removing it."); - unset($request['Attributes'][$attribute]); // remove empty attributes - } else { - $request['Attributes'][$attribute] = $newValues; - } } } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/NameIDAttribute.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/NameIDAttribute.php index e8c27dba78416342ff436bb0b6e73b64b6cb33a5..f8fd748b78028b314126de3baa6f566a486a45c0 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/NameIDAttribute.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/NameIDAttribute.php @@ -2,6 +2,9 @@ namespace SimpleSAML\Module\saml\Auth\Process; +use SAML2\Constants; +use SimpleSAML\Error; + /** * Authentication processing filter to create an attribute from a NameID. * @@ -38,13 +41,13 @@ public function __construct($config, $reserved) assert(is_array($config)); if (isset($config['attribute'])) { - $this->attribute = (string) $config['attribute']; + $this->attribute = strval($config['attribute']); } else { $this->attribute = 'nameid'; } if (isset($config['format'])) { - $format = (string) $config['format']; + $format = strval($config['format']); } else { $format = '%I!%S!%V'; } @@ -88,7 +91,7 @@ private static function parseFormat($format) $ret[] = '%'; break; default: - throw new \SimpleSAML\Error\Exception('NameIDAttribute: Invalid replacement: "%'.$replacement.'"'); + throw new Error\Exception('NameIDAttribute: Invalid replacement: "%' . $replacement . '"'); } $pos = $next + 2; @@ -103,6 +106,7 @@ private static function parseFormat($format) * Convert NameID to attribute. * * @param array &$state The request state. + * @return void */ public function process(&$state) { @@ -116,15 +120,15 @@ public function process(&$state) $rep = $state['saml:sp:NameID']; assert(!is_null($rep->getValue())); - $rep->{'%'} = '%'; - if ($rep->getFormat() !== null) { - $rep->setFormat(\SAML2\Constants::NAMEID_UNSPECIFIED); + + if ($rep->getFormat() === null) { + $rep->setFormat(Constants::NAMEID_UNSPECIFIED); } - if ($rep->getNameQualifier() !== null) { - $rep->setNameQualifier($state['Source']['entityid']); + if ($rep->getSPNameQualifier() === null) { + $rep->setSPNameQualifier($state['Source']['entityid']); } - if ($rep->getSPNameQualifier() !== null) { - $rep->setSPNameQualifier($state['Destination']['entityid']); + if ($rep->getNameQualifier() === null) { + $rep->setNameQualifier($state['Destination']['entityid']); } $value = ''; @@ -132,8 +136,10 @@ public function process(&$state) foreach ($this->format as $element) { if ($isString) { $value .= $element; + } elseif ($element === '%') { + $value .= '%'; } else { - $value .= call_user_func([$rep, 'get'.$element]); + $value .= call_user_func([$rep, 'get' . $element]); } $isString = !$isString; } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/PersistentNameID.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/PersistentNameID.php index a70c7493291050a32e215c20e888017d3ad4748b..a98a0212ace8789fbe4146716e0bcf9a79132fa7 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/PersistentNameID.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/PersistentNameID.php @@ -2,6 +2,11 @@ namespace SimpleSAML\Module\saml\Auth\Process; +use SAML2\Constants; +use SimpleSAML\Error; +use SimpleSAML\Logger; +use SimpleSAML\Utils; + /** * Authentication processing filter to generate a persistent NameID. * @@ -31,10 +36,10 @@ public function __construct($config, $reserved) parent::__construct($config, $reserved); assert(is_array($config)); - $this->format = \SAML2\Constants::NAMEID_PERSISTENT; + $this->format = Constants::NAMEID_PERSISTENT; if (!isset($config['attribute'])) { - throw new \SimpleSAML\Error\Exception("PersistentNameID: Missing required option 'attribute'."); + throw new Error\Exception("PersistentNameID: Missing required option 'attribute'."); } $this->attribute = $config['attribute']; } @@ -49,27 +54,27 @@ public function __construct($config, $reserved) protected function getValue(array &$state) { if (!isset($state['Destination']['entityid'])) { - \SimpleSAML\Logger::warning('No SP entity ID - not generating persistent NameID.'); + Logger::warning('No SP entity ID - not generating persistent NameID.'); return null; } $spEntityId = $state['Destination']['entityid']; if (!isset($state['Source']['entityid'])) { - \SimpleSAML\Logger::warning('No IdP entity ID - not generating persistent NameID.'); + Logger::warning('No IdP entity ID - not generating persistent NameID.'); return null; } $idpEntityId = $state['Source']['entityid']; if (!isset($state['Attributes'][$this->attribute]) || count($state['Attributes'][$this->attribute]) === 0) { - \SimpleSAML\Logger::warning( - 'Missing attribute '.var_export($this->attribute, true). + Logger::warning( + 'Missing attribute ' . var_export($this->attribute, true) . ' on user - not generating persistent NameID.' ); return null; } if (count($state['Attributes'][$this->attribute]) > 1) { - \SimpleSAML\Logger::warning( - 'More than one value in attribute '.var_export($this->attribute, true). + Logger::warning( + 'More than one value in attribute ' . var_export($this->attribute, true) . ' on user - not generating persistent NameID.' ); return null; @@ -78,19 +83,19 @@ protected function getValue(array &$state) $uid = $uid[0]; if (empty($uid)) { - \SimpleSAML\Logger::warning( - 'Empty value in attribute '.var_export($this->attribute, true). + Logger::warning( + 'Empty value in attribute ' . var_export($this->attribute, true) . ' on user - not generating persistent NameID.' ); return null; } - $secretSalt = \SimpleSAML\Utils\Config::getSecretSalt(); + $secretSalt = Utils\Config::getSecretSalt(); - $uidData = 'uidhashbase'.$secretSalt; - $uidData .= strlen($idpEntityId).':'.$idpEntityId; - $uidData .= strlen($spEntityId).':'.$spEntityId; - $uidData .= strlen($uid).':'.$uid; + $uidData = 'uidhashbase' . $secretSalt; + $uidData .= strlen($idpEntityId) . ':' . $idpEntityId; + $uidData .= strlen($spEntityId) . ':' . $spEntityId; + $uidData .= strlen($uid) . ':' . $uid; $uidData .= $secretSalt; return sha1($uidData); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/PersistentNameID2TargetedID.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/PersistentNameID2TargetedID.php index f627f164e777314b908164d3081e6510cba26a75..284162462684075bf7a86533b71bd04fa15f2dd4 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/PersistentNameID2TargetedID.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/PersistentNameID2TargetedID.php @@ -2,6 +2,9 @@ namespace SimpleSAML\Module\saml\Auth\Process; +use SAML2\Constants; +use SimpleSAML\Logger; + /** * Authentication processing filter to create the eduPersonTargetedID attribute from the persistent NameID. * @@ -21,7 +24,7 @@ class PersistentNameID2TargetedID extends \SimpleSAML\Auth\ProcessingFilter /** * Whether we should insert it as an saml:NameID element. * - * @var boolean + * @var bool */ private $nameId; @@ -55,20 +58,19 @@ public function __construct($config, $reserved) * Store a NameID to attribute. * * @param array &$state The request state. + * @return void */ public function process(&$state) { assert(is_array($state)); - - if (!isset($state['saml:NameID'][\SAML2\Constants::NAMEID_PERSISTENT])) { - \SimpleSAML\Logger::warning( + if (!isset($state['saml:NameID'][Constants::NAMEID_PERSISTENT])) { + Logger::warning( 'Unable to generate eduPersonTargetedID because no persistent NameID was available.' ); return; } - /** @var \SAML2\XML\saml\NameID $nameID */ - $nameID = $state['saml:NameID'][\SAML2\Constants::NAMEID_PERSISTENT]; + $nameID = $state['saml:NameID'][Constants::NAMEID_PERSISTENT]; $state['Attributes'][$this->attribute] = [(!$this->nameId) ? $nameID->getValue() : $nameID]; } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/SQLPersistentNameID.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/SQLPersistentNameID.php index 172aace1c243957996a2c5677b49f49d7a1aff1b..b6c0f48cdcbe908a3809572fcee8e4f635739225 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/SQLPersistentNameID.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/SQLPersistentNameID.php @@ -2,6 +2,10 @@ namespace SimpleSAML\Module\saml\Auth\Process; +use SAML2\Constants; +use SimpleSAML\Error; +use SimpleSAML\Logger; + /** * Authentication processing filter to generate a persistent NameID. * @@ -38,6 +42,13 @@ class SQLPersistentNameID extends \SimpleSAML\Module\saml\BaseNameIDGenerator */ private $alwaysCreate = false; + /** + * Database store configuration. + * + * @var array + */ + private $storeConfig = []; + /** * Initialize this filter, parse configuration. @@ -52,10 +63,10 @@ public function __construct($config, $reserved) parent::__construct($config, $reserved); assert(is_array($config)); - $this->format = \SAML2\Constants::NAMEID_PERSISTENT; + $this->format = Constants::NAMEID_PERSISTENT; if (!isset($config['attribute'])) { - throw new \SimpleSAML\Error\Exception("PersistentNameID: Missing required option 'attribute'."); + throw new Error\Exception("PersistentNameID: Missing required option 'attribute'."); } $this->attribute = $config['attribute']; @@ -70,6 +81,10 @@ public function __construct($config, $reserved) if (isset($config['alwaysCreate'])) { $this->alwaysCreate = (bool) $config['alwaysCreate']; } + + if (isset($config['store'])) { + $this->storeConfig = (array) $config['store']; + } } @@ -83,10 +98,9 @@ public function __construct($config, $reserved) */ protected function getValue(array &$state) { - if (!isset($state['saml:NameIDFormat']) && !$this->allowUnspecified) { - \SimpleSAML\Logger::debug( - 'SQLPersistentNameID: Request did not specify persistent NameID format, '. + Logger::debug( + 'SQLPersistentNameID: Request did not specify persistent NameID format, ' . 'not generating persistent NameID.' ); return null; @@ -96,38 +110,40 @@ protected function getValue(array &$state) $state['saml:NameIDFormat'], $state['SPMetadata']['NameIDFormat'] ]); - if (count($validNameIdFormats) && !in_array($this->format, $validNameIdFormats, true) && - !$this->allowDifferent + if ( + count($validNameIdFormats) + && !in_array($this->format, $validNameIdFormats, true) + && !$this->allowDifferent ) { - \SimpleSAML\Logger::debug( - 'SQLPersistentNameID: SP expects different NameID format ('. - implode(', ', $validNameIdFormats).'), not generating persistent NameID.' + Logger::debug( + 'SQLPersistentNameID: SP expects different NameID format (' . + implode(', ', $validNameIdFormats) . '), not generating persistent NameID.' ); return null; } if (!isset($state['Destination']['entityid'])) { - \SimpleSAML\Logger::warning('SQLPersistentNameID: No SP entity ID - not generating persistent NameID.'); + Logger::warning('SQLPersistentNameID: No SP entity ID - not generating persistent NameID.'); return null; } $spEntityId = $state['Destination']['entityid']; if (!isset($state['Source']['entityid'])) { - \SimpleSAML\Logger::warning('SQLPersistentNameID: No IdP entity ID - not generating persistent NameID.'); + Logger::warning('SQLPersistentNameID: No IdP entity ID - not generating persistent NameID.'); return null; } $idpEntityId = $state['Source']['entityid']; if (!isset($state['Attributes'][$this->attribute]) || count($state['Attributes'][$this->attribute]) === 0) { - \SimpleSAML\Logger::warning( - 'SQLPersistentNameID: Missing attribute '.var_export($this->attribute, true). + Logger::warning( + 'SQLPersistentNameID: Missing attribute ' . var_export($this->attribute, true) . ' on user - not generating persistent NameID.' ); return null; } if (count($state['Attributes'][$this->attribute]) > 1) { - \SimpleSAML\Logger::warning( - 'SQLPersistentNameID: More than one value in attribute '.var_export($this->attribute, true). + Logger::warning( + 'SQLPersistentNameID: More than one value in attribute ' . var_export($this->attribute, true) . ' on user - not generating persistent NameID.' ); return null; @@ -136,38 +152,38 @@ protected function getValue(array &$state) $uid = $uid[0]; if (empty($uid)) { - \SimpleSAML\Logger::warning( - 'Empty value in attribute '.var_export($this->attribute, true). + Logger::warning( + 'Empty value in attribute ' . var_export($this->attribute, true) . ' on user - not generating persistent NameID.' ); return null; } - $value = \SimpleSAML\Module\saml\IdP\SQLNameID::get($idpEntityId, $spEntityId, $uid); + $value = \SimpleSAML\Module\saml\IdP\SQLNameID::get($idpEntityId, $spEntityId, $uid, $this->storeConfig); if ($value !== null) { - \SimpleSAML\Logger::debug( - 'SQLPersistentNameID: Found persistent NameID '.var_export($value, true).' for user '. - var_export($uid, true).'.' + Logger::debug( + 'SQLPersistentNameID: Found persistent NameID ' . var_export($value, true) . ' for user ' . + var_export($uid, true) . '.' ); return $value; } if ((!isset($state['saml:AllowCreate']) || !$state['saml:AllowCreate']) && !$this->alwaysCreate) { - \SimpleSAML\Logger::warning( + Logger::warning( 'SQLPersistentNameID: Did not find persistent NameID for user, and not allowed to create new NameID.' ); throw new \SimpleSAML\Module\saml\Error( - \SAML2\Constants::STATUS_RESPONDER, - 'urn:oasis:names:tc:SAML:2.0:status:InvalidNameIDPolicy' + Constants::STATUS_RESPONDER, + Constants::STATUS_INVALID_NAMEID_POLICY ); } $value = bin2hex(openssl_random_pseudo_bytes(20)); - \SimpleSAML\Logger::debug( - 'SQLPersistentNameID: Created persistent NameID '.var_export($value, true).' for user '. - var_export($uid, true).'.' + Logger::debug( + 'SQLPersistentNameID: Created persistent NameID ' . var_export($value, true) . ' for user ' . + var_export($uid, true) . '.' ); - \SimpleSAML\Module\saml\IdP\SQLNameID::add($idpEntityId, $spEntityId, $uid, $value); + \SimpleSAML\Module\saml\IdP\SQLNameID::add($idpEntityId, $spEntityId, $uid, $value, $this->storeConfig); return $value; } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/TransientNameID.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/TransientNameID.php index b4a24de5ecc08fa5d1cc41d1561460f107c5a28b..8b069f491435f8412cb78f5acfb2d4577d18f334 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/TransientNameID.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Process/TransientNameID.php @@ -2,6 +2,9 @@ namespace SimpleSAML\Module\saml\Auth\Process; +use SAML2\Constants; +use SimpleSAML\Utils; + /** * Authentication processing filter to generate a transient NameID. * @@ -21,7 +24,7 @@ public function __construct($config, $reserved) parent::__construct($config, $reserved); assert(is_array($config)); - $this->format = \SAML2\Constants::NAMEID_TRANSIENT; + $this->format = Constants::NAMEID_TRANSIENT; } @@ -33,6 +36,6 @@ public function __construct($config, $reserved) */ protected function getValue(array &$state) { - return \SimpleSAML\Utils\Random::generateID(); + return Utils\Random::generateID(); } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Source/SP.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Source/SP.php index 5caae4f97bace716a10784db7149b68946ceca10..4dd06c044dd70d429a350fce090ac9a29ae77e40 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Source/SP.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Auth/Source/SP.php @@ -2,10 +2,23 @@ namespace SimpleSAML\Module\saml\Auth\Source; -use SimpleSAML\Auth\Source; -use SimpleSAML\Auth\State; - -class SP extends Source +use SAML2\AuthnRequest; +use SAML2\Binding; +use SAML2\Constants; +use SAML2\XML\saml\NameID; +use SimpleSAML\Auth; +use SimpleSAML\Configuration; +use SimpleSAML\Error; +use SimpleSAML\IdP; +use SimpleSAML\Logger; +use SimpleSAML\Metadata\MetaDataStorageHandler; +use SimpleSAML\Module; +use SimpleSAML\Session; +use SimpleSAML\Store; +use SimpleSAML\Utils; +use SimpleSAML\XML\Shib13; + +class SP extends \SimpleSAML\Auth\Source { /** * The entity ID of this SP. @@ -38,7 +51,7 @@ class SP extends Source /** * Flag to indicate whether to disable sending the Scoping element. * - * @var boolean|FALSE + * @var bool */ private $disable_scoping; @@ -72,20 +85,21 @@ public function __construct($info, $config) * gives the entity id. */ $config['entityid'] = $config['entityID']; - $this->metadata = \SimpleSAML\Configuration::loadFromArray( + $this->metadata = Configuration::loadFromArray( $config, - 'authsources['.var_export($this->authId, true).']' + 'authsources[' . var_export($this->authId, true) . ']' ); $this->entityId = $this->metadata->getString('entityID'); $this->idp = $this->metadata->getString('idp', null); $this->discoURL = $this->metadata->getString('discoURL', null); $this->disable_scoping = $this->metadata->getBoolean('disable_scoping', false); - if (empty($this->discoURL) && \SimpleSAML\Module::isModuleEnabled('discojuice')) { - $this->discoURL = \SimpleSAML\Module::getModuleURL('discojuice/central.php'); + if (empty($this->discoURL) && Module::isModuleEnabled('discojuice')) { + $this->discoURL = Module::getModuleURL('discojuice/central.php'); } } + /** * Retrieve the URL to the metadata of this SP. * @@ -93,9 +107,10 @@ public function __construct($info, $config) */ public function getMetadataURL() { - return \SimpleSAML\Module::getModuleURL('saml/sp/metadata.php/'.urlencode($this->authId)); + return Module::getModuleURL('saml/sp/metadata.php/' . urlencode($this->authId)); } + /** * Retrieve the entity id of this SP. * @@ -117,7 +132,7 @@ public function getHostedMetadata() $entityid = $this->getEntityId(); $metadata = [ 'entityid' => $entityid, - 'metadata-set' => 'smal20-sp-remote', + 'metadata-set' => 'saml20-sp-remote', 'SingleLogoutService' => $this->getSLOEndpoints(), 'AssertionConsumerService' => $this->getACSEndpoints(), ]; @@ -126,9 +141,9 @@ public function getHostedMetadata() if ($this->metadata->hasValue('NameIDValue')) { $format = $this->metadata->getValue('NameIDPolicy'); if (is_array($format)) { - $metadata['NameIDFormat'] = \SimpleSAML\Configuration::loadFromArray($format)->getString( + $metadata['NameIDFormat'] = Configuration::loadFromArray($format)->getString( 'Format', - \SAML2\Constants::NAMEID_TRANSIENT + Constants::NAMEID_TRANSIENT ); } elseif (is_string($format)) { $metadata['NameIDFormat'] = $format; @@ -167,7 +182,7 @@ public function getHostedMetadata() $metadata['OrganizationDisplayName'] = $this->metadata->getLocalizedString('OrganizationDisplayName', $org); $metadata['OrganizationURL'] = $this->metadata->getLocalizedString('OrganizationURL', null); if ($metadata['OrganizationURL'] === null) { - throw new \SimpleSAML\Error\Exception( + throw new Error\Exception( 'If OrganizationName is set, OrganizationURL must also be set.' ); } @@ -176,11 +191,11 @@ public function getHostedMetadata() // add contacts $contacts = $this->metadata->getArray('contact', []); foreach ($contacts as $contact) { - $metadata['contacts'][] = \SimpleSAML\Utils\Config\Metadata::getContact($contact); + $metadata['contacts'][] = Utils\Config\Metadata::getContact($contact); } // add technical contact - $globalConfig = \SimpleSAML\Configuration::getInstance(); + $globalConfig = Configuration::getInstance(); $email = $globalConfig->getString('technicalcontact_email', 'na@example.org'); if ($email && $email !== 'na@example.org') { $contact = [ @@ -188,11 +203,11 @@ public function getHostedMetadata() 'name' => $globalConfig->getString('technicalcontact_name', null), 'contactType' => 'technical', ]; - $metadata['contacts'][] = \SimpleSAML\Utils\Config\Metadata::getContact($contact); + $metadata['contacts'][] = Utils\Config\Metadata::getContact($contact); } // add certificate(s) - $certInfo = \SimpleSAML\Utils\Crypto::loadPublicKey($this->metadata, false, 'new_'); + $certInfo = Utils\Crypto::loadPublicKey($this->metadata, false, 'new_'); $hasNewCert = false; if ($certInfo !== null && array_key_exists('certData', $certInfo)) { $hasNewCert = true; @@ -202,10 +217,11 @@ public function getHostedMetadata() 'encryption' => true, 'X509Certificate' => $certInfo['certData'], 'prefix' => 'new_', - 'url' => \SimpleSAML\Module::getModuleURL( - 'admin/cert', + 'url' => Module::getModuleURL( + 'admin/federation/cert', [ - 'sp' => $this->getAuthId(), + 'set' => 'saml20-sp-hosted', + 'source' => $this->getAuthId(), 'prefix' => 'new_' ] ), @@ -213,7 +229,7 @@ public function getHostedMetadata() ]; } - $certInfo = \SimpleSAML\Utils\Crypto::loadPublicKey($this->metadata); + $certInfo = Utils\Crypto::loadPublicKey($this->metadata); if ($certInfo !== null && array_key_exists('certData', $certInfo)) { $metadata['keys'][] = [ 'type' => 'X509Certificate', @@ -221,10 +237,11 @@ public function getHostedMetadata() 'encryption' => $hasNewCert ? false : true, 'X509Certificate' => $certInfo['certData'], 'prefix' => '', - 'url' => \SimpleSAML\Module::getModuleURL( - 'admin/cert', + 'url' => Module::getModuleURL( + 'admin/federation/cert', [ - 'sp' => $this->getAuthId(), + 'set' => 'saml20-sp-hosted', + 'source' => $this->getAuthId(), 'prefix' => '' ] ), @@ -272,18 +289,18 @@ public function getIdPMetadata($entityId) assert(is_string($entityId)); if ($this->idp !== null && $this->idp !== $entityId) { - throw new \SimpleSAML\Error\Exception('Cannot retrieve metadata for IdP '. - var_export($entityId, true).' because it isn\'t a valid IdP for this SP.'); + throw new Error\Exception('Cannot retrieve metadata for IdP ' . + var_export($entityId, true) . ' because it isn\'t a valid IdP for this SP.'); } - $metadataHandler = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); + $metadataHandler = MetaDataStorageHandler::getMetadataHandler(); // First, look in saml20-idp-remote. try { return $metadataHandler->getMetaDataConfig($entityId, 'saml20-idp-remote'); } catch (\Exception $e) { // Metadata wasn't found - \SimpleSAML\Logger::debug('getIdpMetadata: '.$e->getMessage()); + Logger::debug('getIdpMetadata: ' . $e->getMessage()); } // Not found in saml20-idp-remote, look in shib13-idp-remote @@ -291,11 +308,11 @@ public function getIdPMetadata($entityId) return $metadataHandler->getMetaDataConfig($entityId, 'shib13-idp-remote'); } catch (\Exception $e) { // Metadata wasn't found - \SimpleSAML\Logger::debug('getIdpMetadata: '.$e->getMessage()); + Logger::debug('getIdpMetadata: ' . $e->getMessage()); } // Not found - throw new \SimpleSAML\Error\Exception('Could not find the metadata of an IdP with entity ID '. + throw new Error\Exception('Could not find the metadata of an IdP with entity ID ' . var_export($entityId, true)); } @@ -332,67 +349,69 @@ private function getACSEndpoints() { $endpoints = []; $default = [ - \SAML2\Constants::BINDING_HTTP_POST, + Constants::BINDING_HTTP_POST, 'urn:oasis:names:tc:SAML:1.0:profiles:browser-post', - \SAML2\Constants::BINDING_HTTP_ARTIFACT, + Constants::BINDING_HTTP_ARTIFACT, 'urn:oasis:names:tc:SAML:1.0:profiles:artifact-01', ]; - if ($this->metadata->getString('ProtocolBinding', '') === \SAML2\Constants::BINDING_HOK_SSO) { - $default[] = \SAML2\Constants::BINDING_HOK_SSO; + if ($this->metadata->getString('ProtocolBinding', '') === Constants::BINDING_HOK_SSO) { + $default[] = Constants::BINDING_HOK_SSO; } $bindings = $this->metadata->getArray('acs.Bindings', $default); $index = 0; foreach ($bindings as $service) { switch ($service) { - case \SAML2\Constants::BINDING_HTTP_POST: + case Constants::BINDING_HTTP_POST: $acs = [ - 'Binding' => \SAML2\Constants::BINDING_HTTP_POST, - 'Location' => \SimpleSAML\Module::getModuleURL('saml/sp/saml2-acs.php/'.$this->getAuthId()), + 'Binding' => Constants::BINDING_HTTP_POST, + 'Location' => Module::getModuleURL('saml/sp/saml2-acs.php/' . $this->getAuthId()), ]; - if (!in_array(\SAML2\Constants::NS_SAMLP, $this->protocols, true)) { - $this->protocols[] = \SAML2\Constants::NS_SAMLP; + if (!in_array(Constants::NS_SAMLP, $this->protocols, true)) { + $this->protocols[] = Constants::NS_SAMLP; } break; case 'urn:oasis:names:tc:SAML:1.0:profiles:browser-post': $acs = [ 'Binding' => 'urn:oasis:names:tc:SAML:1.0:profiles:browser-post', - 'Location' => \SimpleSAML\Module::getModuleURL('saml/sp/saml1-acs.php/'.$this->getAuthId()), + 'Location' => Module::getModuleURL('saml/sp/saml1-acs.php/' . $this->getAuthId()), ]; if (!in_array('urn:oasis:names:tc:SAML:1.0:profiles:browser-post', $this->protocols, true)) { $this->protocols[] = 'urn:oasis:names:tc:SAML:1.1:protocol'; } break; - case \SAML2\Constants::BINDING_HTTP_ARTIFACT: + case Constants::BINDING_HTTP_ARTIFACT: $acs = [ - 'Binding' => \SAML2\Constants::BINDING_HTTP_ARTIFACT, - 'Location' => \SimpleSAML\Module::getModuleURL('saml/sp/saml2-acs.php/'.$this->getAuthId()), + 'Binding' => Constants::BINDING_HTTP_ARTIFACT, + 'Location' => Module::getModuleURL('saml/sp/saml2-acs.php/' . $this->getAuthId()), ]; - if (!in_array(\SAML2\Constants::NS_SAMLP, $this->protocols, true)) { - $this->protocols[] = \SAML2\Constants::NS_SAMLP; + if (!in_array(Constants::NS_SAMLP, $this->protocols, true)) { + $this->protocols[] = Constants::NS_SAMLP; } break; case 'urn:oasis:names:tc:SAML:1.0:profiles:artifact-01': $acs = [ 'Binding' => 'urn:oasis:names:tc:SAML:1.0:profiles:artifact-01', - 'Location' => \SimpleSAML\Module::getModuleURL( - 'saml/sp/saml1-acs.php/'.$this->getAuthId().'/artifact' + 'Location' => Module::getModuleURL( + 'saml/sp/saml1-acs.php/' . $this->getAuthId() . '/artifact' ), ]; if (!in_array('urn:oasis:names:tc:SAML:1.1:protocol', $this->protocols, true)) { $this->protocols[] = 'urn:oasis:names:tc:SAML:1.1:protocol'; } break; - case \SAML2\Constants::BINDING_HOK_SSO: + case Constants::BINDING_HOK_SSO: $acs = [ - 'Binding' => \SAML2\Constants::BINDING_HOK_SSO, - 'Location' => \SimpleSAML\Module::getModuleURL('saml/sp/saml2-acs.php/'.$this->getAuthId()), - 'hoksso:ProtocolBinding' => \SAML2\Constants::BINDING_HTTP_REDIRECT, + 'Binding' => Constants::BINDING_HOK_SSO, + 'Location' => Module::getModuleURL('saml/sp/saml2-acs.php/' . $this->getAuthId()), + 'hoksso:ProtocolBinding' => Constants::BINDING_HTTP_REDIRECT, ]; - if (!in_array(\SAML2\Constants::NS_SAMLP, $this->protocols, true)) { - $this->protocols[] = \SAML2\Constants::NS_SAMLP; + if (!in_array(Constants::NS_SAMLP, $this->protocols, true)) { + $this->protocols[] = Constants::NS_SAMLP; } break; + default: + $acs = []; } $acs['index'] = $index; $endpoints[] = $acs; @@ -410,19 +429,19 @@ private function getACSEndpoints() */ private function getSLOEndpoints() { - $store = \SimpleSAML\Store::getInstance(); + $store = Store::getInstance(); $bindings = $this->metadata->getArray( 'SingleLogoutServiceBinding', [ - \SAML2\Constants::BINDING_HTTP_REDIRECT, - \SAML2\Constants::BINDING_SOAP, + Constants::BINDING_HTTP_REDIRECT, + Constants::BINDING_SOAP, ] ); - $location = \SimpleSAML\Module::getModuleURL('saml/sp/saml2-logout.php/'.$this->getAuthId()); + $location = Module::getModuleURL('saml/sp/saml2-logout.php/' . $this->getAuthId()); $endpoints = []; foreach ($bindings as $binding) { - if ($binding == \SAML2\Constants::BINDING_SOAP && !($store instanceof \SimpleSAML\Store\SQL)) { + if ($binding == Constants::BINDING_SOAP && !($store instanceof Store\SQL)) { // we cannot properly support SOAP logout continue; } @@ -440,17 +459,19 @@ private function getSLOEndpoints() * * @param \SimpleSAML\Configuration $idpMetadata The metadata of the IdP. * @param array $state The state array for the current authentication. + * @return void + * @deprecated will be removed in a future version */ - private function startSSO1(\SimpleSAML\Configuration $idpMetadata, array $state) + private function startSSO1(Configuration $idpMetadata, array $state) { $idpEntityId = $idpMetadata->getString('entityid'); $state['saml:idp'] = $idpEntityId; - $ar = new \SimpleSAML\XML\Shib13\AuthnRequest(); + $ar = new Shib13\AuthnRequest(); $ar->setIssuer($this->entityId); - $id = State::saveState($state, 'saml:sp:sso'); + $id = Auth\State::saveState($state, 'saml:sp:sso'); $ar->setRelayState($id); $useArtifact = $idpMetadata->getBoolean('saml1.useartifact', null); @@ -459,51 +480,63 @@ private function startSSO1(\SimpleSAML\Configuration $idpMetadata, array $state) } if ($useArtifact) { - $shire = \SimpleSAML\Module::getModuleURL('saml/sp/saml1-acs.php/'.$this->authId.'/artifact'); + $shire = Module::getModuleURL('saml/sp/saml1-acs.php/' . $this->authId . '/artifact'); } else { - $shire = \SimpleSAML\Module::getModuleURL('saml/sp/saml1-acs.php/'.$this->authId); + $shire = Module::getModuleURL('saml/sp/saml1-acs.php/' . $this->authId); } $url = $ar->createRedirect($idpEntityId, $shire); - \SimpleSAML\Logger::debug('Starting SAML 1 SSO to '.var_export($idpEntityId, true). - ' from '.var_export($this->entityId, true).'.'); - \SimpleSAML\Utils\HTTP::redirectTrustedURL($url); + Logger::debug('Starting SAML 1 SSO to ' . var_export($idpEntityId, true) . + ' from ' . var_export($this->entityId, true) . '.'); + Utils\HTTP::redirectTrustedURL($url); } + /** * Send a SAML2 SSO request to an IdP * * @param \SimpleSAML\Configuration $idpMetadata The metadata of the IdP. * @param array $state The state array for the current authentication. + * @return void */ - private function startSSO2(\SimpleSAML\Configuration $idpMetadata, array $state) + private function startSSO2(Configuration $idpMetadata, array $state) { if (isset($state['saml:ProxyCount']) && $state['saml:ProxyCount'] < 0) { - State::throwException( + Auth\State::throwException( $state, - new \SimpleSAML\Module\saml\Error\ProxyCountExceeded(\SAML2\Constants::STATUS_RESPONDER) + new Module\saml\Error\ProxyCountExceeded(Constants::STATUS_RESPONDER) ); } - $ar = \SimpleSAML\Module\saml\Message::buildAuthnRequest($this->metadata, $idpMetadata); + $ar = Module\saml\Message::buildAuthnRequest($this->metadata, $idpMetadata); - $ar->setAssertionConsumerServiceURL(\SimpleSAML\Module::getModuleURL('saml/sp/saml2-acs.php/'.$this->authId)); + $ar->setAssertionConsumerServiceURL(Module::getModuleURL('saml/sp/saml2-acs.php/' . $this->authId)); if (isset($state['\SimpleSAML\Auth\Source.ReturnURL'])) { $ar->setRelayState($state['\SimpleSAML\Auth\Source.ReturnURL']); } - if (isset($state['saml:AuthnContextClassRef'])) { - $accr = \SimpleSAML\Utils\Arrays::arrayize($state['saml:AuthnContextClassRef']); - $comp = \SAML2\Constants::COMPARISON_EXACT; - if (isset($state['saml:AuthnContextComparison']) - && in_array($state['AuthnContextComparison'], [ - \SAML2\Constants::COMPARISON_EXACT, - \SAML2\Constants::COMPARISON_MINIMUM, - \SAML2\Constants::COMPARISON_MAXIMUM, - \SAML2\Constants::COMPARISON_BETTER, - ], true)) { + $accr = null; + if ($idpMetadata->getString('AuthnContextClassRef', false)) { + $accr = Utils\Arrays::arrayize($idpMetadata->getString('AuthnContextClassRef')); + } elseif (isset($state['saml:AuthnContextClassRef'])) { + $accr = Utils\Arrays::arrayize($state['saml:AuthnContextClassRef']); + } + + if ($accr !== null) { + $comp = Constants::COMPARISON_EXACT; + if ($idpMetadata->getString('AuthnContextComparison', false)) { + $comp = $idpMetadata->getString('AuthnContextComparison'); + } elseif ( + isset($state['saml:AuthnContextComparison']) + && in_array($state['saml:AuthnContextComparison'], [ + Constants::COMPARISON_EXACT, + Constants::COMPARISON_MINIMUM, + Constants::COMPARISON_MAXIMUM, + Constants::COMPARISON_BETTER, + ], true) + ) { $comp = $state['saml:AuthnContextComparison']; } $ar->setRequestedAuthnContext(['AuthnContextClassRef' => $accr, 'Comparison' => $comp]); @@ -522,15 +555,15 @@ private function startSSO2(\SimpleSAML\Configuration $idpMetadata, array $state) } if (isset($state['saml:NameID'])) { - if (!is_array($state['saml:NameID']) && !is_a($state['saml:NameID'], '\SAML2\XML\saml\NameID')) { - throw new \SimpleSAML\Error\Exception('Invalid value of $state[\'saml:NameID\'].'); + if (!is_array($state['saml:NameID']) && !is_a($state['saml:NameID'], NameID::class)) { + throw new Error\Exception('Invalid value of $state[\'saml:NameID\'].'); } $nameId = $state['saml:NameID']; if (is_array($nameId)) { // Must be an array > convert to object - $nid = new \SAML2\XML\saml\NameID(); + $nid = new NameID(); if (!array_key_exists('Value', $nameId)) { throw new \InvalidArgumentException('Missing "Value" in array, cannot create NameID from it.'); } @@ -565,7 +598,7 @@ private function startSSO2(\SimpleSAML\Configuration $idpMetadata, array $state) } elseif (is_array($state['saml:NameIDPolicy'])) { $policy = $state['saml:NameIDPolicy']; } elseif ($state['saml:NameIDPolicy'] === null) { - $policy = ['Format' => \SAML2\Constants::NAMEID_TRANSIENT]; + $policy = ['Format' => Constants::NAMEID_TRANSIENT]; } if ($policy !== null) { $ar->setNameIdPolicy($policy); @@ -598,7 +631,7 @@ private function startSSO2(\SimpleSAML\Configuration $idpMetadata, array $state) $requesterID[] = $state['core:SP']; } } else { - \SimpleSAML\Logger::debug('Disabling samlp:Scoping for '.var_export($idpMetadata->getString('entityid'), true)); + Logger::debug('Disabling samlp:Scoping for ' . var_export($idpMetadata->getString('entityid'), true)); } $ar->setIDPList( @@ -620,39 +653,42 @@ private function startSSO2(\SimpleSAML\Configuration $idpMetadata, array $state) // save IdP entity ID as part of the state $state['ExpectedIssuer'] = $idpMetadata->getString('entityid'); - $id = State::saveState($state, 'saml:sp:sso', true); + $id = Auth\State::saveState($state, 'saml:sp:sso', true); $ar->setId($id); - \SimpleSAML\Logger::debug( - 'Sending SAML 2 AuthnRequest to '.var_export($idpMetadata->getString('entityid'), true) + Logger::debug( + 'Sending SAML 2 AuthnRequest to ' . var_export($idpMetadata->getString('entityid'), true) ); // Select appropriate SSO endpoint - if ($ar->getProtocolBinding() === \SAML2\Constants::BINDING_HOK_SSO) { + if ($ar->getProtocolBinding() === Constants::BINDING_HOK_SSO) { + /** @var array $dst */ $dst = $idpMetadata->getDefaultEndpoint( 'SingleSignOnService', [ - \SAML2\Constants::BINDING_HOK_SSO + Constants::BINDING_HOK_SSO ] ); } else { + /** @var array $dst */ $dst = $idpMetadata->getEndpointPrioritizedByBinding( 'SingleSignOnService', [ - \SAML2\Constants::BINDING_HTTP_REDIRECT, - \SAML2\Constants::BINDING_HTTP_POST, + Constants::BINDING_HTTP_REDIRECT, + Constants::BINDING_HTTP_POST, ] ); } $ar->setDestination($dst['Location']); - $b = \SAML2\Binding::getBinding($dst['Binding']); + $b = Binding::getBinding($dst['Binding']); $this->sendSAML2AuthnRequest($state, $b, $ar); assert(false); } + /** * Function to actually send the authentication request. * @@ -661,18 +697,21 @@ private function startSSO2(\SimpleSAML\Configuration $idpMetadata, array $state) * @param array &$state The state array. * @param \SAML2\Binding $binding The binding. * @param \SAML2\AuthnRequest $ar The authentication request. + * @return void */ - public function sendSAML2AuthnRequest(array &$state, \SAML2\Binding $binding, \SAML2\AuthnRequest $ar) + public function sendSAML2AuthnRequest(array &$state, Binding $binding, AuthnRequest $ar) { $binding->send($ar); assert(false); } + /** * Send a SSO request to an IdP. * * @param string $idp The entity ID of the IdP. * @param array $state The state array for the current authentication. + * @return void */ public function startSSO($idp, array $state) { @@ -694,22 +733,24 @@ public function startSSO($idp, array $state) } } + /** * Start an IdP discovery service operation. * * @param array $state The state array. + * @return void */ private function startDisco(array $state) { - $id = State::saveState($state, 'saml:sp:sso'); + $id = Auth\State::saveState($state, 'saml:sp:sso'); $discoURL = $this->discoURL; if ($discoURL === null) { // Fallback to internal discovery service - $discoURL = \SimpleSAML\Module::getModuleURL('saml/disco.php'); + $discoURL = Module::getModuleURL('saml/disco.php'); } - $returnTo = \SimpleSAML\Module::getModuleURL('saml/sp/discoresp.php', ['AuthID' => $id]); + $returnTo = Module::getModuleURL('saml/sp/discoresp.php', ['AuthID' => $id]); $params = [ 'entityID' => $this->entityId, @@ -725,15 +766,17 @@ private function startDisco(array $state) $params['isPassive'] = 'true'; } - \SimpleSAML\Utils\HTTP::redirectTrustedURL($discoURL, $params); + Utils\HTTP::redirectTrustedURL($discoURL, $params); } + /** * Start login. * * This function saves the information about the login, and redirects to the IdP. * * @param array &$state Information about the current authentication. + * @return void */ public function authenticate(&$state) { @@ -750,29 +793,28 @@ public function authenticate(&$state) if (isset($state['saml:IDPList']) && sizeof($state['saml:IDPList']) > 0) { // we have a SAML IDPList (we are a proxy): filter the list of IdPs available - $mdh = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); - $known_idps = $mdh->getList(); - $intersection = array_intersect($state['saml:IDPList'], array_keys($known_idps)); + $mdh = MetaDataStorageHandler::getMetadataHandler(); + $matchedEntities = $mdh->getMetaDataForEntities($state['saml:IDPList'], 'saml20-idp-remote'); - if (empty($intersection)) { + if (empty($matchedEntities)) { // all requested IdPs are unknown - throw new \SimpleSAML\Module\saml\Error\NoSupportedIDP( - \SAML2\Constants::STATUS_REQUESTER, + throw new Module\saml\Error\NoSupportedIDP( + Constants::STATUS_REQUESTER, 'None of the IdPs requested are supported by this proxy.' ); } - if (!is_null($idp) && !in_array($idp, $intersection, true)) { + if (!is_null($idp) && !array_key_exists($idp, $matchedEntities)) { // the IdP is enforced but not in the IDPList - throw new \SimpleSAML\Module\saml\Error\NoAvailableIDP( - \SAML2\Constants::STATUS_REQUESTER, + throw new Module\saml\Error\NoAvailableIDP( + Constants::STATUS_REQUESTER, 'None of the IdPs requested are available to this proxy.' ); } - if (is_null($idp) && sizeof($intersection) === 1) { + if (is_null($idp) && sizeof($matchedEntities) === 1) { // only one IdP requested or valid - $idp = current($state['saml:IDPList']); + $idp = key($matchedEntities); } } @@ -785,6 +827,7 @@ public function authenticate(&$state) assert(false); } + /** * Re-authenticate an user. * @@ -792,20 +835,26 @@ public function authenticate(&$state) * interact with the user even in the case when the user is already authenticated. * * @param array &$state Information about the current authentication. + * @return void */ public function reauthenticate(array &$state) { - assert(is_array($state)); - - $session = \SimpleSAML\Session::getSessionFromRequest(); + $session = Session::getSessionFromRequest(); $data = $session->getAuthState($this->authId); + if ($data === null) { + throw new Error\NoState(); + } + foreach ($data as $k => $v) { $state[$k] = $v; } // check if we have an IDPList specified in the request - if (isset($state['saml:IDPList']) && sizeof($state['saml:IDPList']) > 0 && - !in_array($state['saml:sp:IdP'], $state['saml:IDPList'], true)) { + if ( + isset($state['saml:IDPList']) + && sizeof($state['saml:IDPList']) > 0 + && !in_array($state['saml:sp:IdP'], $state['saml:IDPList'], true) + ) { /* * The user has an existing, valid session. However, the SP * provided a list of IdPs it accepts for authentication, and @@ -814,14 +863,14 @@ public function reauthenticate(array &$state) * First, check if we recognize any of the IdPs requested. */ - $mdh = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); + $mdh = MetaDataStorageHandler::getMetadataHandler(); $known_idps = $mdh->getList(); $intersection = array_intersect($state['saml:IDPList'], array_keys($known_idps)); if (empty($intersection)) { // all requested IdPs are unknown - throw new \SimpleSAML\Module\saml\Error\NoSupportedIDP( - \SAML2\Constants::STATUS_REQUESTER, + throw new Module\saml\Error\NoSupportedIDP( + Constants::STATUS_REQUESTER, 'None of the IdPs requested are supported by this proxy.' ); } @@ -833,8 +882,8 @@ public function reauthenticate(array &$state) */ if (!is_null($this->idp) && !in_array($this->idp, $intersection, true)) { // an IdP is enforced but not requested - throw new \SimpleSAML\Module\saml\Error\NoAvailableIDP( - \SAML2\Constants::STATUS_REQUESTER, + throw new Module\saml\Error\NoAvailableIDP( + Constants::STATUS_REQUESTER, 'None of the IdPs requested are available to this proxy.' ); } @@ -844,8 +893,8 @@ public function reauthenticate(array &$state) * starting the authentication process again with a different IdP, or * cancel the current SSO attempt. */ - \SimpleSAML\Logger::warning( - "Reauthentication after logout is needed. The IdP '${state['saml:sp:IdP']}' is not in the IDPList ". + Logger::warning( + "Reauthentication after logout is needed. The IdP '${state['saml:sp:IdP']}' is not in the IDPList " . "provided by the Service Provider '${state['core:SP']}'." ); @@ -873,6 +922,7 @@ public function reauthenticate(array &$state) * - 'core:IdP': the identifier of the local IdP. * - 'SPMetadata': an array with the metadata of this local SP. * + * @return void * @throws \SimpleSAML\Error\NoPassive In case the authentication request was passive. */ public static function askForIdPChange(array &$state) @@ -884,59 +934,64 @@ public static function askForIdPChange(array &$state) if (isset($state['isPassive']) && (bool) $state['isPassive']) { // passive request, we cannot authenticate the user - throw new \SimpleSAML\Module\saml\Error\NoPassive( - \SAML2\Constants::STATUS_REQUESTER, + throw new Module\saml\Error\NoPassive( + Constants::STATUS_REQUESTER, 'Reauthentication required' ); } // save the state WITHOUT a restart URL, so that we don't try an IdP-initiated login if something goes wrong - $id = State::saveState($state, 'saml:proxy:invalid_idp', true); - $url = \SimpleSAML\Module::getModuleURL('saml/proxy/invalid_session.php'); - \SimpleSAML\Utils\HTTP::redirectTrustedURL($url, ['AuthState' => $id]); + $id = Auth\State::saveState($state, 'saml:proxy:invalid_idp', true); + $url = Module::getModuleURL('saml/proxy/invalid_session.php'); + Utils\HTTP::redirectTrustedURL($url, ['AuthState' => $id]); assert(false); } + /** * Log the user out before logging in again. * * This method will never return. * * @param array $state The state array. + * @return void */ public static function reauthLogout(array $state) { - \SimpleSAML\Logger::debug('Proxy: logging the user out before re-authentication.'); + Logger::debug('Proxy: logging the user out before re-authentication.'); if (isset($state['Responder'])) { $state['saml:proxy:reauthLogout:PrevResponder'] = $state['Responder']; } - $state['Responder'] = ['\SimpleSAML\Module\saml\Auth\Source\SP', 'reauthPostLogout']; + $state['Responder'] = [SP::class, 'reauthPostLogout']; - $idp = \SimpleSAML\IdP::getByState($state); + $idp = IdP::getByState($state); $idp->handleLogoutRequest($state, null); assert(false); } + /** * Complete login operation after re-authenticating the user on another IdP. * * @param array $state The authentication state. + * @return void */ public static function reauthPostLogin(array $state) { assert(isset($state['ReturnCallback'])); // Update session state - $session = \SimpleSAML\Session::getSessionFromRequest(); + $session = Session::getSessionFromRequest(); $authId = $state['saml:sp:AuthId']; - $session->doLogin($authId, State::getPersistentAuthData($state)); + $session->doLogin($authId, Auth\State::getPersistentAuthData($state)); // resume the login process call_user_func($state['ReturnCallback'], $state); assert(false); } + /** * Post-logout handler for re-authentication. * @@ -944,28 +999,32 @@ public static function reauthPostLogin(array $state) * * @param \SimpleSAML\IdP $idp The IdP we are logging out from. * @param array &$state The state array with the state during logout. + * @return void */ - public static function reauthPostLogout(\SimpleSAML\IdP $idp, array $state) + public static function reauthPostLogout(IdP $idp, array $state) { assert(isset($state['saml:sp:AuthId'])); - \SimpleSAML\Logger::debug('Proxy: logout completed.'); + Logger::debug('Proxy: logout completed.'); if (isset($state['saml:proxy:reauthLogout:PrevResponder'])) { $state['Responder'] = $state['saml:proxy:reauthLogout:PrevResponder']; } - $sp = Source::getById($state['saml:sp:AuthId'], '\SimpleSAML\Module\saml\Auth\Source\SP'); - /** @var \SimpleSAML\Module\saml\Auth\Source\SP $authSource */ - \SimpleSAML\Logger::debug('Proxy: logging in again.'); + /** @var \SimpleSAML\Module\saml\Auth\Source\SP $sp */ + $sp = Auth\Source::getById($state['saml:sp:AuthId'], Module\saml\Auth\Source\SP::class); + + Logger::debug('Proxy: logging in again.'); $sp->authenticate($state); assert(false); } + /** * Start a SAML 2 logout operation. * * @param array $state The logout state. + * @return void */ public function startSLO2(&$state) { @@ -974,7 +1033,7 @@ public function startSLO2(&$state) assert(array_key_exists('saml:logout:NameID', $state)); assert(array_key_exists('saml:logout:SessionIndex', $state)); - $id = State::saveState($state, 'saml:slosent'); + $id = Auth\State::saveState($state, 'saml:slosent'); $idp = $state['saml:logout:IdP']; $nameId = $state['saml:logout:NameID']; @@ -982,15 +1041,21 @@ public function startSLO2(&$state) $idpMetadata = $this->getIdPMetadata($idp); - $endpoint = $idpMetadata->getEndpointPrioritizedByBinding('SingleLogoutService', [ - \SAML2\Constants::BINDING_HTTP_REDIRECT, - \SAML2\Constants::BINDING_HTTP_POST], false); + /** @var array $endpoint */ + $endpoint = $idpMetadata->getEndpointPrioritizedByBinding( + 'SingleLogoutService', + [ + Constants::BINDING_HTTP_REDIRECT, + Constants::BINDING_HTTP_POST + ], + false + ); if ($endpoint === false) { - \SimpleSAML\Logger::info('No logout endpoint for IdP '.var_export($idp, true).'.'); + Logger::info('No logout endpoint for IdP ' . var_export($idp, true) . '.'); return; } - $lr = \SimpleSAML\Module\saml\Message::buildLogoutRequest($this->metadata, $idpMetadata); + $lr = Module\saml\Message::buildLogoutRequest($this->metadata, $idpMetadata); $lr->setNameId($nameId); $lr->setSessionIndex($sessionIndex); $lr->setRelayState($id); @@ -1001,19 +1066,21 @@ public function startSLO2(&$state) $encryptNameId = $this->metadata->getBoolean('nameid.encryption', false); } if ($encryptNameId) { - $lr->encryptNameId(\SimpleSAML\Module\saml\Message::getEncryptionKey($idpMetadata)); + $lr->encryptNameId(Module\saml\Message::getEncryptionKey($idpMetadata)); } - $b = \SAML2\Binding::getBinding($endpoint['Binding']); + $b = Binding::getBinding($endpoint['Binding']); $b->send($lr); assert(false); } + /** * Start logout operation. * * @param array $state The logout state. + * @return void */ public function logout(&$state) { @@ -1034,12 +1101,14 @@ public function logout(&$state) } } + /** * Handle a response from a SSO operation. * * @param array $state The authentication state. * @param string $idp The entity id of the IdP. * @param array $attributes The attributes. + * @return void */ public function handleResponse(array $state, $idp, array $attributes) { @@ -1059,7 +1128,7 @@ public function handleResponse(array $state, $idp, array $attributes) $authProcState = [ 'saml:sp:IdP' => $idp, 'saml:sp:State' => $state, - 'ReturnCall' => ['\SimpleSAML\Module\saml\Auth\Source\SP', 'onProcessingCompleted'], + 'ReturnCall' => [SP::class, 'onProcessingCompleted'], 'Attributes' => $attributes, 'Destination' => $spMetadataArray, @@ -1073,16 +1142,18 @@ public function handleResponse(array $state, $idp, array $attributes) $authProcState['saml:sp:SessionIndex'] = $state['saml:sp:SessionIndex']; } - $pc = new \SimpleSAML\Auth\ProcessingChain($idpMetadataArray, $spMetadataArray, 'sp'); + $pc = new Auth\ProcessingChain($idpMetadataArray, $spMetadataArray, 'sp'); $pc->processState($authProcState); self::onProcessingCompleted($authProcState); } + /** * Handle a logout request from an IdP. * * @param string $idpEntityId The entity ID of the IdP. + * @return void */ public function handleLogout($idpEntityId) { @@ -1092,6 +1163,7 @@ public function handleLogout($idpEntityId) $this->callLogoutCallback($idpEntityId); } + /** * Handle an unsolicited login operations. * @@ -1105,22 +1177,25 @@ public function handleLogout($idpEntityId) * the session. The function will check if the URL is allowed, so there is no need to * manually check the URL on beforehand. Please refer to the 'trusted.url.domains' * configuration directive for more information about allowing (or disallowing) URLs. + * @return void */ public static function handleUnsolicitedAuth($authId, array $state, $redirectTo) { assert(is_string($authId)); assert(is_string($redirectTo)); - $session = \SimpleSAML\Session::getSessionFromRequest(); - $session->doLogin($authId, State::getPersistentAuthData($state)); + $session = Session::getSessionFromRequest(); + $session->doLogin($authId, Auth\State::getPersistentAuthData($state)); - \SimpleSAML\Utils\HTTP::redirectUntrustedURL($redirectTo); + Utils\HTTP::redirectUntrustedURL($redirectTo); } + /** * Called when we have completed the procssing chain. * * @param array $authProcState The processing chain state. + * @return void */ public static function onProcessingCompleted(array $authProcState) { @@ -1132,9 +1207,11 @@ public static function onProcessingCompleted(array $authProcState) $state = $authProcState['saml:sp:State']; $sourceId = $state['saml:sp:AuthId']; - $source = Source::getById($sourceId); + + /** @var \SimpleSAML\Module\saml\Auth\Source\SP $source */ + $source = Auth\Source::getById($sourceId); if ($source === null) { - throw new \Exception('Could not find authentication source with id '.$sourceId); + throw new \Exception('Could not find authentication source with id ' . $sourceId); } // Register a callback that we can call if we receive a logout request from the IdP @@ -1151,6 +1228,6 @@ public static function onProcessingCompleted(array $authProcState) self::handleUnsolicitedAuth($sourceId, $state, $redirectTo); } - Source::completeAuth($state); + Auth\Source::completeAuth($state); } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/BaseNameIDGenerator.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/BaseNameIDGenerator.php index 5ff64f3e3d7bb37c628f1b6b0cf7acebb5a64181..d199f28f97dd6918b5fbc73dd0995716ebd9ac61 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/BaseNameIDGenerator.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/BaseNameIDGenerator.php @@ -2,12 +2,14 @@ namespace SimpleSAML\Module\saml; +use SAML2\XML\saml\NameID; +use SimpleSAML\Logger; + /** * Base filter for generating NameID values. * * @package SimpleSAMLphp */ - abstract class BaseNameIDGenerator extends \SimpleSAML\Auth\ProcessingFilter { /** @@ -37,11 +39,11 @@ abstract class BaseNameIDGenerator extends \SimpleSAML\Auth\ProcessingFilter /** * The format of this NameID. * - * This property must be initialized the subclass. + * This property must be set by the subclass. * - * @var string + * @var string|null */ - protected $format; + protected $format = null; /** @@ -81,6 +83,7 @@ abstract protected function getValue(array &$state); * Generate transient NameID. * * @param array &$state The request state. + * @return void */ public function process(&$state) { @@ -92,7 +95,7 @@ public function process(&$state) return; } - $nameId = new \SAML2\XML\saml\NameID(); + $nameId = new NameID(); $nameId->setValue($value); $nameId->setFormat($this->format); @@ -100,7 +103,7 @@ public function process(&$state) if (isset($state['IdPMetadata']['entityid'])) { $nameId->setNameQualifier($state['IdPMetadata']['entityid']); } else { - \SimpleSAML\Logger::warning('No IdP entity ID, unable to set NameQualifier.'); + Logger::warning('No IdP entity ID, unable to set NameQualifier.'); } } elseif (is_string($this->nameQualifier)) { $nameId->setNameQualifier($this->nameQualifier); @@ -110,7 +113,7 @@ public function process(&$state) if (isset($state['SPMetadata']['entityid'])) { $nameId->setSPNameQualifier($state['SPMetadata']['entityid']); } else { - \SimpleSAML\Logger::warning('No SP entity ID, unable to set SPNameQualifier.'); + Logger::warning('No SP entity ID, unable to set SPNameQualifier.'); } } elseif (is_string($this->spNameQualifier)) { $nameId->setSPNameQualifier($this->spNameQualifier); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Error.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Error.php index e45b846ff89c99987927d99907da775750c7a43d..50604b39ffbe82300be17666ba8c41792ddf2111 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Error.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Error.php @@ -2,6 +2,8 @@ namespace SimpleSAML\Module\saml; +use SAML2\Constants; + /** * Class for representing a SAML 2 error. * @@ -50,10 +52,10 @@ public function __construct($status, $subStatus = null, $statusMessage = null, \ $st = self::shortStatus($status); if ($subStatus !== null) { - $st .= '/'.self::shortStatus($subStatus); + $st .= '/' . self::shortStatus($subStatus); } if ($statusMessage !== null) { - $st .= ': '.$statusMessage; + $st .= ': ' . $statusMessage; } parent::__construct($st, 0, $cause); @@ -114,16 +116,16 @@ public static function fromException(\Exception $exception) // TODO: remove this branch in 2.0 } elseif ($exception instanceof \SimpleSAML\Error\NoPassive) { $e = new self( - \SAML2\Constants::STATUS_RESPONDER, - \SAML2\Constants::STATUS_NO_PASSIVE, + Constants::STATUS_RESPONDER, + Constants::STATUS_NO_PASSIVE, $exception->getMessage(), $exception ); // TODO: remove this branch in 2.0 } elseif ($exception instanceof \SimpleSAML\Error\ProxyCountExceeded) { $e = new self( - \SAML2\Constants::STATUS_RESPONDER, - \SAML2\Constants::STATUS_PROXY_COUNT_EXCEEDED, + Constants::STATUS_RESPONDER, + Constants::STATUS_PROXY_COUNT_EXCEEDED, $exception->getMessage(), $exception ); @@ -131,7 +133,7 @@ public static function fromException(\Exception $exception) $e = new self( \SAML2\Constants::STATUS_RESPONDER, null, - get_class($exception).': '.$exception->getMessage(), + get_class($exception) . ': ' . $exception->getMessage(), $exception ); } @@ -156,11 +158,11 @@ public function toException() $e = null; switch ($this->status) { - case \SAML2\Constants::STATUS_RESPONDER: + case Constants::STATUS_RESPONDER: switch ($this->subStatus) { - case \SAML2\Constants::STATUS_NO_PASSIVE: + case Constants::STATUS_NO_PASSIVE: $e = new \SimpleSAML\Module\saml\Error\NoPassive( - \SAML2\Constants::STATUS_RESPONDER, + Constants::STATUS_RESPONDER, $this->statusMessage ); break; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Error/NoAuthnContext.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Error/NoAuthnContext.php index 54a147463ba3dca10f7ac8eeb15c702b3a92257a..c1b47f88cc6939d7ebcf51a2ca857269b0d53040 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Error/NoAuthnContext.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Error/NoAuthnContext.php @@ -1,7 +1,5 @@ <?php -namespace SimpleSAML\Module\saml\Error; - /** * A SAML error indicating that none of the requested Authentication Contexts can be used. * @@ -9,6 +7,8 @@ * @package SimpleSAMLphp */ +namespace SimpleSAML\Module\saml\Error; + use SAML2\Constants; class NoAuthnContext extends \SimpleSAML\Module\saml\Error diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Error/NoAvailableIDP.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Error/NoAvailableIDP.php index 92f78d00b539c5208e978bed6f9d9a3c2d94c41f..3f024c0d0ef57a1985aebfdb7c16b6e778dbb2c2 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Error/NoAvailableIDP.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Error/NoAvailableIDP.php @@ -1,7 +1,5 @@ <?php -namespace SimpleSAML\Module\saml\Error; - /** * A SAML error indicating that none of the requested IdPs can be used. * @@ -9,6 +7,8 @@ * @package SimpleSAMLphp */ +namespace SimpleSAML\Module\saml\Error; + use SAML2\Constants; class NoAvailableIDP extends \SimpleSAML\Module\saml\Error diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Error/NoPassive.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Error/NoPassive.php index 8602bce1fc30db10426bb1d5de5557a3412f9baa..1a5a8d5c18be534dc708207dbd471f604778ee2a 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Error/NoPassive.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Error/NoPassive.php @@ -1,7 +1,5 @@ <?php -namespace SimpleSAML\Module\saml\Error; - /** * A SAML error indicating that passive authentication cannot be used. * @@ -9,6 +7,8 @@ * @package SimpleSAMLphp */ +namespace SimpleSAML\Module\saml\Error; + use SAML2\Constants; class NoPassive extends \SimpleSAML\Module\saml\Error diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Error/NoSupportedIDP.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Error/NoSupportedIDP.php index 5eedd1d27ae13a3e10c84af65fc67da117ec385c..429ddf538ca888175978eb5caa1cf5ab313b9fe0 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Error/NoSupportedIDP.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Error/NoSupportedIDP.php @@ -1,7 +1,5 @@ <?php -namespace SimpleSAML\Module\saml\Error; - /** * A SAML error indicating that none of the IdPs requested are supported. * @@ -9,6 +7,8 @@ * @package SimpleSAMLphp */ +namespace SimpleSAML\Module\saml\Error; + use SAML2\Constants; class NoSupportedIDP extends \SimpleSAML\Module\saml\Error diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Error/ProxyCountExceeded.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Error/ProxyCountExceeded.php index f85216d82298252dd4a7b9f3154bd5ae2c3702a2..99e40182c1fc0df2de25415e47bc22682e865b92 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Error/ProxyCountExceeded.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Error/ProxyCountExceeded.php @@ -1,7 +1,5 @@ <?php -namespace SimpleSAML\Module\saml\Error; - /** * A SAML error indicating that the maximum amount of proxies traversed has been reached. * @@ -9,6 +7,8 @@ * @package SimpleSAMLphp */ +namespace SimpleSAML\Module\saml\Error; + use SAML2\Constants; class ProxyCountExceeded extends \SimpleSAML\Module\saml\Error diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/IdP/SAML1.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/IdP/SAML1.php index e158a666b590f08c8b7add6e289ce48a4cd2b324..d0a3d8c9ace90abc1afef4cb6c24de88c8869b55 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/IdP/SAML1.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/IdP/SAML1.php @@ -2,20 +2,25 @@ namespace SimpleSAML\Module\saml\IdP; +use SimpleSAML\Auth; use SimpleSAML\Bindings\Shib13\HTTPPost; -use SimpleSAML\Utils\Config\Metadata; -use SimpleSAML\Utils\Crypto; -use SimpleSAML\Utils\HTTP; +use SimpleSAML\Configuration; +use SimpleSAML\Error; +use SimpleSAML\IdP; +use SimpleSAML\Logger; +use SimpleSAML\Metadata\MetaDataStorageHandler; +use SimpleSAML\Stats; +use SimpleSAML\Utils; +use SimpleSAML\XML\Shib13\AuthnResponse; /** * IdP implementation for SAML 1.1 protocol. * * @package SimpleSAMLphp + * @deprecated This class will be removed in a future release */ - class SAML1 { - /** * Retrieve the metadata of a hosted SAML 1.1 IdP. * @@ -24,11 +29,11 @@ class SAML1 * @return array * @throws \SimpleSAML\Error\Exception * @throws \SimpleSAML\Error\MetadataNotFound - * @throws \SimpleSAML_Error_Exception + * @throws \SimpleSAML\Error\Exception */ public static function getHostedMetadata($entityid) { - $handler = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); + $handler = MetaDataStorageHandler::getMetadataHandler(); $config = $handler->getMetaDataConfig($entityid, 'shib13-idp-hosted'); $metadata = [ @@ -41,7 +46,7 @@ public static function getHostedMetadata($entityid) // add certificates $keys = []; - $certInfo = Crypto::loadPublicKey($config, false, 'new_'); + $certInfo = Utils\Crypto::loadPublicKey($config, false, 'new_'); $hasNewCert = false; if ($certInfo !== null) { $keys[] = [ @@ -54,7 +59,8 @@ public static function getHostedMetadata($entityid) $hasNewCert = true; } - $certInfo = Crypto::loadPublicKey($config, true); + /** @var array $certInfo */ + $certInfo = Utils\Crypto::loadPublicKey($config, true); $keys[] = [ 'type' => 'X509Certificate', 'signing' => true, @@ -73,7 +79,7 @@ public static function getHostedMetadata($entityid) ); if (!$config->hasValue('OrganizationURL')) { - throw new \SimpleSAMl\Error\Exception('If OrganizationName is set, OrganizationURL must also be set.'); + throw new Error\Exception('If OrganizationName is set, OrganizationURL must also be set.'); } $metadata['OrganizationURL'] = $config->getLocalizedString('OrganizationURL'); } @@ -88,7 +94,7 @@ public static function getHostedMetadata($entityid) $metadata['EntityAttributes'] = $config->getArray('EntityAttributes'); // check for entity categories - if (Metadata::isHiddenFromDiscovery($metadata)) { + if (Utils\Config\Metadata::isHiddenFromDiscovery($metadata)) { $metadata['hide.from.discovery'] = true; } } @@ -106,7 +112,7 @@ public static function getHostedMetadata($entityid) } // add contact information - $globalConfig = \SimpleSAML\Configuration::getInstance(); + $globalConfig = Configuration::getInstance(); $email = $globalConfig->getString('technicalcontact_email', false); if ($email && $email !== 'na@example.org') { $contact = [ @@ -114,7 +120,7 @@ public static function getHostedMetadata($entityid) 'name' => $globalConfig->getString('technicalcontact_name', null), 'contactType' => 'technical', ]; - $metadata['contacts'][] = Metadata::getContact($contact); + $metadata['contacts'][] = Utils\Config\Metadata::getContact($contact); } return $metadata; @@ -125,6 +131,7 @@ public static function getHostedMetadata($entityid) * Send a response to the SP. * * @param array $state The authentication state. + * @return void */ public static function sendResponse(array $state) { @@ -135,23 +142,23 @@ public static function sendResponse(array $state) $spMetadata = $state["SPMetadata"]; $spEntityId = $spMetadata['entityid']; - $spMetadata = \SimpleSAML\Configuration::loadFromArray( + $spMetadata = Configuration::loadFromArray( $spMetadata, '$metadata['.var_export($spEntityId, true).']' ); - \SimpleSAML\Logger::info('Sending SAML 1.1 Response to '.var_export($spEntityId, true)); + Logger::info('Sending SAML 1.1 Response to '.var_export($spEntityId, true)); $attributes = $state['Attributes']; $shire = $state['saml:shire']; $target = $state['saml:target']; - $idp = \SimpleSAML\IdP::getByState($state); + $idp = IdP::getByState($state); $idpMetadata = $idp->getConfig(); - $config = \SimpleSAML\Configuration::getInstance(); - $metadata = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); + $config = Configuration::getInstance(); + $metadata = MetaDataStorageHandler::getMetadataHandler(); $statsData = [ 'spEntityID' => $spEntityId, @@ -161,10 +168,10 @@ public static function sendResponse(array $state) if (isset($state['saml:AuthnRequestReceivedAt'])) { $statsData['logintime'] = microtime(true) - $state['saml:AuthnRequestReceivedAt']; } - \SimpleSAML\Stats::log('saml:idp:Response', $statsData); + Stats::log('saml:idp:Response', $statsData); // Generate and send response. - $ar = new \SimpleSAML\XML\Shib13\AuthnResponse(); + $ar = new AuthnResponse(); $authnResponseXML = $ar->generate($idpMetadata, $spMetadata, $shire, $attributes); $httppost = new HTTPPost($config, $metadata); @@ -176,8 +183,9 @@ public static function sendResponse(array $state) * Receive an authentication request. * * @param \SimpleSAML\IdP $idp The IdP we are receiving it for. + * @return void */ - public static function receiveAuthnRequest(\SimpleSAML\IdP $idp) + public static function receiveAuthnRequest(IdP $idp) { if (isset($_REQUEST['cookieTime'])) { $cookieTime = (int) $_REQUEST['cookieTime']; @@ -186,17 +194,17 @@ public static function receiveAuthnRequest(\SimpleSAML\IdP $idp) * Less than five seconds has passed since we were * here the last time. Cookies are probably disabled. */ - HTTP::checkSessionCookie(HTTP::getSelfURL()); + Utils\HTTP::checkSessionCookie(Utils\HTTP::getSelfURL()); } } if (!isset($_REQUEST['providerId'])) { - throw new \SimpleSAML\Error\BadRequest('Missing providerId parameter.'); + throw new Error\BadRequest('Missing providerId parameter.'); } $spEntityId = (string) $_REQUEST['providerId']; if (!isset($_REQUEST['shire'])) { - throw new \SimpleSAML\Error\BadRequest('Missing shire parameter.'); + throw new Error\BadRequest('Missing shire parameter.'); } $shire = (string) $_REQUEST['shire']; @@ -206,11 +214,11 @@ public static function receiveAuthnRequest(\SimpleSAML\IdP $idp) $target = null; } - \SimpleSAML\Logger::info( + Logger::info( 'Shib1.3 - IdP.SSOService: Got incoming Shib authnRequest from '.var_export($spEntityId, true).'.' ); - $metadata = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); + $metadata = MetaDataStorageHandler::getMetadataHandler(); $spMetadata = $metadata->getMetaDataConfig($spEntityId, 'shib13-sp-remote'); $found = false; @@ -230,7 +238,7 @@ public static function receiveAuthnRequest(\SimpleSAML\IdP $idp) ); } - \SimpleSAML\Stats::log( + Stats::log( 'saml:idp:AuthnRequest', [ 'spEntityID' => $spEntityId, @@ -238,15 +246,15 @@ public static function receiveAuthnRequest(\SimpleSAML\IdP $idp) ] ); - $sessionLostURL = HTTP::addURLParameters( - HTTP::getSelfURL(), + $sessionLostURL = Utils\HTTP::addURLParameters( + Utils\HTTP::getSelfURL(), ['cookieTime' => time()] ); $state = [ 'Responder' => ['\SimpleSAML\Module\saml\IdP\SAML1', 'sendResponse'], 'SPMetadata' => $spMetadata->toArray(), - \SimpleSAML\Auth\State::RESTART => $sessionLostURL, + Auth\State::RESTART => $sessionLostURL, 'saml:shire' => $shire, 'saml:target' => $target, 'saml:AuthnRequestReceivedAt' => microtime(true), diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/IdP/SAML2.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/IdP/SAML2.php index 3d4d255b4dae119a92a8a9b650331ef775da7f75..eca7ad6e8949d38dcb516956829eec04eab87714 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/IdP/SAML2.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/IdP/SAML2.php @@ -2,28 +2,48 @@ namespace SimpleSAML\Module\saml\IdP; +use DOMNodeList; use RobRichards\XMLSecLibs\XMLSecurityKey; +use SAML2\Assertion; +use SAML2\AuthnRequest; +use SAML2\Binding; use SAML2\Constants; +use SAML2\DOMDocumentFactory; +use SAML2\EncryptedAssertion; +use SAML2\HTTPRedirect; +use SAML2\LogoutRequest; +use SAML2\LogoutResponse; +use SAML2\SOAP; +use SAML2\XML\ds\X509Certificate; +use SAML2\XML\ds\X509Data; +use SAML2\XML\ds\KeyInfo; +use SAML2\XML\saml\AttributeValue; use SAML2\XML\saml\Issuer; +use SAML2\XML\saml\NameID; +use SAML2\XML\saml\SubjectConfirmation; +use SAML2\XML\saml\SubjectConfirmationData; +use SimpleSAML\Auth; use SimpleSAML\Configuration; +use SimpleSAML\Error; +use SimpleSAML\IdP; use SimpleSAML\Logger; -use SAML2\SOAP; -use SimpleSAML\Utils\Config\Metadata; -use SimpleSAML\Utils\Crypto; -use SimpleSAML\Utils\HTTP; +use SimpleSAML\Metadata\MetaDataStorageHandler; +use SimpleSAML\Module; +use SimpleSAML\Stats; +use SimpleSAML\Utils; /** * IdP implementation for SAML 2.0 protocol. * * @package SimpleSAMLphp */ - class SAML2 { /** * Send a response to the SP. * * @param array $state The authentication state. + * @return void */ public static function sendResponse(array $state) { @@ -37,17 +57,17 @@ public static function sendResponse(array $state) $spEntityId = $spMetadata['entityid']; $spMetadata = Configuration::loadFromArray( $spMetadata, - '$metadata['.var_export($spEntityId, true).']' + '$metadata[' . var_export($spEntityId, true) . ']' ); - Logger::info('Sending SAML 2.0 Response to '.var_export($spEntityId, true)); + Logger::info('Sending SAML 2.0 Response to ' . var_export($spEntityId, true)); $requestId = $state['saml:RequestId']; $relayState = $state['saml:RelayState']; $consumerURL = $state['saml:ConsumerURL']; $protocolBinding = $state['saml:Binding']; - $idp = \SimpleSAML\IdP::getByState($state); + $idp = IdP::getByState($state); $idpMetadata = $idp->getConfig(); @@ -59,7 +79,7 @@ public static function sendResponse(array $state) // create the session association (for logout) $association = [ - 'id' => 'saml:'.$spEntityId, + 'id' => 'saml:' . $spEntityId, 'Handler' => '\SimpleSAML\Module\saml\IdP\SAML2', 'Expires' => $assertion->getSessionNotOnOrAfter(), 'saml:entityID' => $spEntityId, @@ -87,10 +107,10 @@ public static function sendResponse(array $state) if (isset($state['saml:AuthnRequestReceivedAt'])) { $statsData['logintime'] = microtime(true) - $state['saml:AuthnRequestReceivedAt']; } - \SimpleSAML\Stats::log('saml:idp:Response', $statsData); + Stats::log('saml:idp:Response', $statsData); // send the response - $binding = \SAML2\Binding::getBinding($protocolBinding); + $binding = Binding::getBinding($protocolBinding); $binding->send($ar); } @@ -101,6 +121,7 @@ public static function sendResponse(array $state) * \SimpleSAML\Error\Exception $exception The exception. * * @param array $state The error state. + * @return void */ public static function handleAuthError(\SimpleSAML\Error\Exception $exception, array $state) { @@ -113,7 +134,7 @@ public static function handleAuthError(\SimpleSAML\Error\Exception $exception, a $spEntityId = $spMetadata['entityid']; $spMetadata = Configuration::loadFromArray( $spMetadata, - '$metadata['.var_export($spEntityId, true).']' + '$metadata[' . var_export($spEntityId, true) . ']' ); $requestId = $state['saml:RequestId']; @@ -121,13 +142,13 @@ public static function handleAuthError(\SimpleSAML\Error\Exception $exception, a $consumerURL = $state['saml:ConsumerURL']; $protocolBinding = $state['saml:Binding']; - $idp = \SimpleSAML\IdP::getByState($state); + $idp = IdP::getByState($state); $idpMetadata = $idp->getConfig(); $error = \SimpleSAML\Module\saml\Error::fromException($exception); - Logger::warning("Returning error to SP with entity ID '".var_export($spEntityId, true)."'."); + Logger::warning("Returning error to SP with entity ID '" . var_export($spEntityId, true) . "'."); $exception->log(Logger::WARNING); $ar = self::buildResponse($idpMetadata, $spMetadata, $consumerURL); @@ -150,9 +171,9 @@ public static function handleAuthError(\SimpleSAML\Error\Exception $exception, a if (isset($state['saml:AuthnRequestReceivedAt'])) { $statsData['logintime'] = microtime(true) - $state['saml:AuthnRequestReceivedAt']; } - \SimpleSAML\Stats::log('saml:idp:Response:error', $statsData); + Stats::log('saml:idp:Response:error', $statsData); - $binding = \SAML2\Binding::getBinding($protocolBinding); + $binding = Binding::getBinding($protocolBinding); $binding->send($ar); } @@ -162,15 +183,15 @@ public static function handleAuthError(\SimpleSAML\Error\Exception $exception, a * * @param array $supportedBindings The bindings we allow for the response. * @param \SimpleSAML\Configuration $spMetadata The metadata for the SP. - * @param string|NULL $AssertionConsumerServiceURL AssertionConsumerServiceURL from request. - * @param string|NULL $ProtocolBinding ProtocolBinding from request. - * @param int|NULL $AssertionConsumerServiceIndex AssertionConsumerServiceIndex from request. + * @param string|null $AssertionConsumerServiceURL AssertionConsumerServiceURL from request. + * @param string|null $ProtocolBinding ProtocolBinding from request. + * @param int|null $AssertionConsumerServiceIndex AssertionConsumerServiceIndex from request. * - * @return array Array with the Location and Binding we should use for the response. + * @return array|null Array with the Location and Binding we should use for the response. */ private static function getAssertionConsumerService( array $supportedBindings, - \SimpleSAML\Configuration $spMetadata, + Configuration $spMetadata, $AssertionConsumerServiceURL, $ProtocolBinding, $AssertionConsumerServiceIndex @@ -232,14 +253,14 @@ private static function getAssertionConsumerService( Logger::warning('Authentication request specifies invalid AssertionConsumerService:'); if ($AssertionConsumerServiceURL !== null) { - Logger::warning('AssertionConsumerServiceURL: '.var_export($AssertionConsumerServiceURL, true)); + Logger::warning('AssertionConsumerServiceURL: ' . var_export($AssertionConsumerServiceURL, true)); } if ($ProtocolBinding !== null) { - Logger::warning('ProtocolBinding: '.var_export($ProtocolBinding, true)); + Logger::warning('ProtocolBinding: ' . var_export($ProtocolBinding, true)); } if ($AssertionConsumerServiceIndex !== null) { Logger::warning( - 'AssertionConsumerServiceIndex: '.var_export($AssertionConsumerServiceIndex, true) + 'AssertionConsumerServiceIndex: ' . var_export($AssertionConsumerServiceIndex, true) ); } @@ -252,22 +273,23 @@ private static function getAssertionConsumerService( * Receive an authentication request. * * @param \SimpleSAML\IdP $idp The IdP we are receiving it for. + * @return void * @throws \SimpleSAML\Error\BadRequest In case an error occurs when trying to receive the request. */ public static function receiveAuthnRequest(\SimpleSAML\IdP $idp) { - $metadata = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); + $metadata = MetaDataStorageHandler::getMetadataHandler(); $idpMetadata = $idp->getConfig(); - $supportedBindings = [\SAML2\Constants::BINDING_HTTP_POST]; + $supportedBindings = [Constants::BINDING_HTTP_POST]; if ($idpMetadata->getBoolean('saml20.sendartifact', false)) { - $supportedBindings[] = \SAML2\Constants::BINDING_HTTP_ARTIFACT; + $supportedBindings[] = Constants::BINDING_HTTP_ARTIFACT; } if ($idpMetadata->getBoolean('saml20.hok.assertion', false)) { - $supportedBindings[] = \SAML2\Constants::BINDING_HOK_SSO; + $supportedBindings[] = Constants::BINDING_HOK_SSO; } if ($idpMetadata->getBoolean('saml20.ecp', false)) { - $supportedBindings[] = \SAML2\Constants::BINDING_PAOS; + $supportedBindings[] = Constants::BINDING_PAOS; } if (isset($_REQUEST['spentityid']) || isset($_REQUEST['providerId'])) { @@ -280,7 +302,7 @@ public static function receiveAuthnRequest(\SimpleSAML\IdP $idp) * Less than five seconds has passed since we were * here the last time. Cookies are probably disabled. */ - \SimpleSAML\Utils\HTTP::checkSessionCookie(\SimpleSAML\Utils\HTTP::getSelfURL()); + Utils\HTTP::checkSessionCookie(Utils\HTTP::getSelfURL()); } } @@ -325,30 +347,33 @@ public static function receiveAuthnRequest(\SimpleSAML\IdP $idp) $extensions = null; $allowCreate = true; $authnContext = null; - $binding = null; $idpInit = true; Logger::info( - 'SAML2.0 - IdP.SSOService: IdP initiated authentication: '.var_export($spEntityId, true) + 'SAML2.0 - IdP.SSOService: IdP initiated authentication: ' . var_export($spEntityId, true) ); } else { - $binding = \SAML2\Binding::getCurrentBinding(); + $binding = Binding::getCurrentBinding(); $request = $binding->receive(); - if (!($request instanceof \SAML2\AuthnRequest)) { - throw new \SimpleSAML\Error\BadRequest( + if (!($request instanceof AuthnRequest)) { + throw new Error\BadRequest( 'Message received on authentication request endpoint wasn\'t an authentication request.' ); } $issuer = $request->getIssuer(); if ($issuer === null) { - throw new \SimpleSAML\Error\BadRequest( + throw new Error\BadRequest( 'Received message on authentication request endpoint without issuer.' ); } elseif ($issuer instanceof Issuer) { $spEntityId = $issuer->getValue(); + if ($spEntityId === null) { + /* Without an issuer we have no way to respond to the message. */ + throw new Error\BadRequest('Received message on logout endpoint without issuer.'); + } } else { // we got a string, old case $spEntityId = $issuer; } @@ -388,11 +413,11 @@ public static function receiveAuthnRequest(\SimpleSAML\IdP $idp) $idpInit = false; Logger::info( - 'SAML2.0 - IdP.SSOService: incoming authentication request: '.var_export($spEntityId, true) + 'SAML2.0 - IdP.SSOService: incoming authentication request: ' . var_export($spEntityId, true) ); } - \SimpleSAML\Stats::log('saml:idp:AuthnRequest', [ + Stats::log('saml:idp:AuthnRequest', [ 'spEntityID' => $spEntityId, 'idpEntityID' => $idpMetadata->getString('entityid'), 'forceAuthn' => $forceAuthn, @@ -408,6 +433,9 @@ public static function receiveAuthnRequest(\SimpleSAML\IdP $idp) $protocolBinding, $consumerIndex ); + if ($acsEndpoint === null) { + throw new \Exception('Unable to use any of the ACS endpoints found for SP \'' . $spEntityId . '\''); + } $IDPList = array_unique(array_merge($IDPList, $spMetadata->getArrayizeString('IDPList', []))); if ($ProxyCount === null) { @@ -430,18 +458,18 @@ public static function receiveAuthnRequest(\SimpleSAML\IdP $idp) */ $sessionLostParams['cookieTime'] = time(); - $sessionLostURL = \SimpleSAML\Utils\HTTP::addURLParameters( - \SimpleSAML\Utils\HTTP::getSelfURLNoQuery(), + $sessionLostURL = Utils\HTTP::addURLParameters( + Utils\HTTP::getSelfURLNoQuery(), $sessionLostParams ); $state = [ - 'Responder' => ['\SimpleSAML\Module\saml\IdP\SAML2', 'sendResponse'], - \SimpleSAML\Auth\State::EXCEPTION_HANDLER_FUNC => [ + 'Responder' => ['\SimpleSAML\Module\saml\IdP\SAML2', 'sendResponse'], + Auth\State::EXCEPTION_HANDLER_FUNC => [ '\SimpleSAML\Module\saml\IdP\SAML2', 'handleAuthError' ], - \SimpleSAML\Auth\State::RESTART => $sessionLostURL, + Auth\State::RESTART => $sessionLostURL, 'SPMetadata' => $spMetadata->toArray(), 'saml:RelayState' => $relayState, @@ -463,36 +491,39 @@ public static function receiveAuthnRequest(\SimpleSAML\IdP $idp) $idp->handleAuthenticationRequest($state); } + /** * Send a logout request to a given association. * * @param \SimpleSAML\IdP $idp The IdP we are sending a logout request from. * @param array $association The association that should be terminated. - * @param string|NULL $relayState An id that should be carried across the logout. + * @param string|null $relayState An id that should be carried across the logout. + * @return void */ - public static function sendLogoutRequest(\SimpleSAML\IdP $idp, array $association, $relayState) + public static function sendLogoutRequest(IdP $idp, array $association, $relayState) { assert(is_string($relayState) || $relayState === null); - Logger::info('Sending SAML 2.0 LogoutRequest to: '.var_export($association['saml:entityID'], true)); + Logger::info('Sending SAML 2.0 LogoutRequest to: ' . var_export($association['saml:entityID'], true)); - $metadata = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); + $metadata = MetaDataStorageHandler::getMetadataHandler(); $idpMetadata = $idp->getConfig(); $spMetadata = $metadata->getMetaDataConfig($association['saml:entityID'], 'saml20-sp-remote'); - \SimpleSAML\Stats::log('saml:idp:LogoutRequest:sent', [ + Stats::log('saml:idp:LogoutRequest:sent', [ 'spEntityID' => $association['saml:entityID'], 'idpEntityID' => $idpMetadata->getString('entityid'), ]); + /** @var array $dst */ $dst = $spMetadata->getEndpointPrioritizedByBinding( 'SingleLogoutService', [ - \SAML2\Constants::BINDING_HTTP_REDIRECT, - \SAML2\Constants::BINDING_HTTP_POST + Constants::BINDING_HTTP_REDIRECT, + Constants::BINDING_HTTP_POST ] ); - $binding = \SAML2\Binding::getBinding($dst['Binding']); + $binding = Binding::getBinding($dst['Binding']); $lr = self::buildLogoutRequest($idpMetadata, $spMetadata, $association, $relayState); $lr->setDestination($dst['Location']); @@ -505,8 +536,9 @@ public static function sendLogoutRequest(\SimpleSAML\IdP $idp, array $associatio * * @param \SimpleSAML\IdP $idp The IdP we are sending a logout request from. * @param array &$state The logout state array. + * @return void */ - public static function sendLogoutResponse(\SimpleSAML\IdP $idp, array $state) + public static function sendLogoutResponse(IdP $idp, array $state) { assert(isset($state['saml:SPEntityId'])); assert(isset($state['saml:RequestId'])); @@ -514,7 +546,7 @@ public static function sendLogoutResponse(\SimpleSAML\IdP $idp, array $state) $spEntityId = $state['saml:SPEntityId']; - $metadata = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); + $metadata = MetaDataStorageHandler::getMetadataHandler(); $idpMetadata = $idp->getConfig(); $spMetadata = $metadata->getMetaDataConfig($spEntityId, 'saml20-sp-remote'); @@ -525,28 +557,30 @@ public static function sendLogoutResponse(\SimpleSAML\IdP $idp, array $state) if (isset($state['core:Failed']) && $state['core:Failed']) { $partial = true; $lr->setStatus([ - 'Code' => \SAML2\Constants::STATUS_SUCCESS, - 'SubCode' => \SAML2\Constants::STATUS_PARTIAL_LOGOUT, + 'Code' => Constants::STATUS_SUCCESS, + 'SubCode' => Constants::STATUS_PARTIAL_LOGOUT, ]); - Logger::info('Sending logout response for partial logout to SP '.var_export($spEntityId, true)); + Logger::info('Sending logout response for partial logout to SP ' . var_export($spEntityId, true)); } else { $partial = false; - Logger::debug('Sending logout response to SP '.var_export($spEntityId, true)); + Logger::debug('Sending logout response to SP ' . var_export($spEntityId, true)); } - \SimpleSAML\Stats::log('saml:idp:LogoutResponse:sent', [ + Stats::log('saml:idp:LogoutResponse:sent', [ 'spEntityID' => $spEntityId, 'idpEntityID' => $idpMetadata->getString('entityid'), 'partial' => $partial ]); + + /** @var array $dst */ $dst = $spMetadata->getEndpointPrioritizedByBinding( 'SingleLogoutService', [ - \SAML2\Constants::BINDING_HTTP_REDIRECT, - \SAML2\Constants::BINDING_HTTP_POST + Constants::BINDING_HTTP_REDIRECT, + Constants::BINDING_HTTP_POST ] ); - $binding = \SAML2\Binding::getBinding($dst['Binding']); + $binding = Binding::getBinding($dst['Binding']); if (isset($dst['ResponseLocation'])) { $dst = $dst['ResponseLocation']; } else { @@ -562,31 +596,36 @@ public static function sendLogoutResponse(\SimpleSAML\IdP $idp, array $state) * Receive a logout message. * * @param \SimpleSAML\IdP $idp The IdP we are receiving it for. + * @return void * @throws \SimpleSAML\Error\BadRequest In case an error occurs while trying to receive the logout message. */ - public static function receiveLogoutMessage(\SimpleSAML\IdP $idp) + public static function receiveLogoutMessage(IdP $idp) { - $binding = \SAML2\Binding::getCurrentBinding(); + $binding = Binding::getCurrentBinding(); $message = $binding->receive(); $issuer = $message->getIssuer(); if ($issuer === null) { /* Without an issuer we have no way to respond to the message. */ - throw new \SimpleSAML\Error\BadRequest('Received message on logout endpoint without issuer.'); + throw new Error\BadRequest('Received message on logout endpoint without issuer.'); } elseif ($issuer instanceof Issuer) { $spEntityId = $issuer->getValue(); + if ($spEntityId === null) { + /* Without an issuer we have no way to respond to the message. */ + throw new Error\BadRequest('Received message on logout endpoint without issuer.'); + } } else { $spEntityId = $issuer; } - $metadata = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); + $metadata = MetaDataStorageHandler::getMetadataHandler(); $idpMetadata = $idp->getConfig(); $spMetadata = $metadata->getMetaDataConfig($spEntityId, 'saml20-sp-remote'); \SimpleSAML\Module\saml\Message::validateMessage($spMetadata, $idpMetadata, $message); - if ($message instanceof \SAML2\LogoutResponse) { - Logger::info('Received SAML 2.0 LogoutResponse from: '.var_export($spEntityId, true)); + if ($message instanceof LogoutResponse) { + Logger::info('Received SAML 2.0 LogoutResponse from: ' . var_export($spEntityId, true)); $statsData = [ 'spEntityID' => $spEntityId, 'idpEntityID' => $idpMetadata->getString('entityid'), @@ -594,29 +633,29 @@ public static function receiveLogoutMessage(\SimpleSAML\IdP $idp) if (!$message->isSuccess()) { $statsData['error'] = $message->getStatus(); } - \SimpleSAML\Stats::log('saml:idp:LogoutResponse:recv', $statsData); + Stats::log('saml:idp:LogoutResponse:recv', $statsData); $relayState = $message->getRelayState(); if (!$message->isSuccess()) { $logoutError = \SimpleSAML\Module\saml\Message::getResponseError($message); - Logger::warning('Unsuccessful logout. Status was: '.$logoutError); + Logger::warning('Unsuccessful logout. Status was: ' . $logoutError); } else { $logoutError = null; } - $assocId = 'saml:'.$spEntityId; + $assocId = 'saml:' . $spEntityId; $idp->handleLogoutResponse($assocId, $relayState, $logoutError); - } elseif ($message instanceof \SAML2\LogoutRequest) { - Logger::info('Received SAML 2.0 LogoutRequest from: '.var_export($spEntityId, true)); - \SimpleSAML\Stats::log('saml:idp:LogoutRequest:recv', [ + } elseif ($message instanceof LogoutRequest) { + Logger::info('Received SAML 2.0 LogoutRequest from: ' . var_export($spEntityId, true)); + Stats::log('saml:idp:LogoutRequest:recv', [ 'spEntityID' => $spEntityId, 'idpEntityID' => $idpMetadata->getString('entityid'), ]); $spStatsId = $spMetadata->getString('core:statistics-id', $spEntityId); - Logger::stats('saml20-idp-SLO spinit '.$spStatsId.' '.$idpMetadata->getString('entityid')); + Logger::stats('saml20-idp-SLO spinit ' . $spStatsId . ' ' . $idpMetadata->getString('entityid')); $state = [ 'Responder' => ['\SimpleSAML\Module\saml\IdP\SAML2', 'sendLogoutResponse'], @@ -625,10 +664,10 @@ public static function receiveLogoutMessage(\SimpleSAML\IdP $idp) 'saml:RequestId' => $message->getId(), ]; - $assocId = 'saml:'.$spEntityId; + $assocId = 'saml:' . $spEntityId; $idp->handleLogoutRequest($state, $assocId); } else { - throw new \SimpleSAML\Error\BadRequest('Unknown message received on logout endpoint: '.get_class($message)); + throw new Error\BadRequest('Unknown message received on logout endpoint: ' . get_class($message)); } } @@ -642,34 +681,36 @@ public static function receiveLogoutMessage(\SimpleSAML\IdP $idp) * * @return string The logout URL. */ - public static function getLogoutURL(\SimpleSAML\IdP $idp, array $association, $relayState) + public static function getLogoutURL(IdP $idp, array $association, $relayState) { assert(is_string($relayState) || $relayState === null); - Logger::info('Sending SAML 2.0 LogoutRequest to: '.var_export($association['saml:entityID'], true)); + Logger::info('Sending SAML 2.0 LogoutRequest to: ' . var_export($association['saml:entityID'], true)); - $metadata = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); + $metadata = MetaDataStorageHandler::getMetadataHandler(); $idpMetadata = $idp->getConfig(); $spMetadata = $metadata->getMetaDataConfig($association['saml:entityID'], 'saml20-sp-remote'); $bindings = [ - \SAML2\Constants::BINDING_HTTP_REDIRECT, - \SAML2\Constants::BINDING_HTTP_POST + Constants::BINDING_HTTP_REDIRECT, + Constants::BINDING_HTTP_POST ]; + + /** @var array $dst */ $dst = $spMetadata->getEndpointPrioritizedByBinding('SingleLogoutService', $bindings); - if ($dst['Binding'] === \SAML2\Constants::BINDING_HTTP_POST) { + if ($dst['Binding'] === Constants::BINDING_HTTP_POST) { $params = ['association' => $association['id'], 'idp' => $idp->getId()]; if ($relayState !== null) { $params['RelayState'] = $relayState; } - return \SimpleSAML\Module::getModuleURL('core/idp/logout-iframe-post.php', $params); + return Module::getModuleURL('core/idp/logout-iframe-post.php', $params); } $lr = self::buildLogoutRequest($idpMetadata, $spMetadata, $association, $relayState); $lr->setDestination($dst['Location']); - $binding = new \SAML2\HTTPRedirect(); + $binding = new HTTPRedirect(); return $binding->getRedirectURL($lr); } @@ -682,9 +723,9 @@ public static function getLogoutURL(\SimpleSAML\IdP $idp, array $association, $r * * @return \SimpleSAML\Configuration Configuration object for the SP metadata. */ - public static function getAssociationConfig(\SimpleSAML\IdP $idp, array $association) + public static function getAssociationConfig(IdP $idp, array $association) { - $metadata = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); + $metadata = MetaDataStorageHandler::getMetadataHandler(); try { return $metadata->getMetaDataConfig($association['saml:entityID'], 'saml20-sp-remote'); } catch (\Exception $e) { @@ -705,7 +746,7 @@ public static function getAssociationConfig(\SimpleSAML\IdP $idp, array $associa */ public static function getHostedMetadata($entityid) { - $handler = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); + $handler = MetaDataStorageHandler::getMetadataHandler(); $config = $handler->getMetaDataConfig($entityid, 'saml20-idp-hosted'); // configure endpoints @@ -754,7 +795,7 @@ public static function getHostedMetadata($entityid) // add certificates $keys = []; - $certInfo = Crypto::loadPublicKey($config, false, 'new_'); + $certInfo = Utils\Crypto::loadPublicKey($config, false, 'new_'); $hasNewCert = false; if ($certInfo !== null) { $keys[] = [ @@ -767,7 +808,8 @@ public static function getHostedMetadata($entityid) $hasNewCert = true; } - $certInfo = Crypto::loadPublicKey($config, true); + /** @var array $certInfo */ + $certInfo = Utils\Crypto::loadPublicKey($config, true); $keys[] = [ 'type' => 'X509Certificate', 'signing' => true, @@ -777,7 +819,8 @@ public static function getHostedMetadata($entityid) ]; if ($config->hasValue('https.certificate')) { - $httpsCert = Crypto::loadPublicKey($config, true, 'https.'); + /** @var array $httpsCert */ + $httpsCert = Utils\Crypto::loadPublicKey($config, true, 'https.'); $keys[] = [ 'type' => 'X509Certificate', 'signing' => true, @@ -793,7 +836,7 @@ public static function getHostedMetadata($entityid) $metadata['ArtifactResolutionService'][] = [ 'index' => 0, 'Binding' => Constants::BINDING_SOAP, - 'Location' => HTTP::getBaseURL().'saml2/idp/ArtifactResolutionService.php' + 'Location' => Utils\HTTP::getBaseURL() . 'saml2/idp/ArtifactResolutionService.php' ]; } @@ -804,7 +847,7 @@ public static function getHostedMetadata($entityid) [ 'hoksso:ProtocolBinding' => Constants::BINDING_HTTP_REDIRECT, 'Binding' => Constants::BINDING_HOK_SSO, - 'Location' => HTTP::getBaseURL().'saml2/idp/SSOService.php', + 'Location' => Utils\HTTP::getBaseURL() . 'saml2/idp/SSOService.php', ] ); } @@ -814,7 +857,7 @@ public static function getHostedMetadata($entityid) $metadata['SingleSignOnService'][] = [ 'index' => 0, 'Binding' => Constants::BINDING_SOAP, - 'Location' => HTTP::getBaseURL().'saml2/idp/SSOService.php', + 'Location' => Utils\HTTP::getBaseURL() . 'saml2/idp/SSOService.php', ]; } @@ -827,7 +870,7 @@ public static function getHostedMetadata($entityid) ); if (!$config->hasValue('OrganizationURL')) { - throw new \SimpleSAML\Error\Exception('If OrganizationName is set, OrganizationURL must also be set.'); + throw new Error\Exception('If OrganizationName is set, OrganizationURL must also be set.'); } $metadata['OrganizationURL'] = $config->getLocalizedString('OrganizationURL'); } @@ -842,7 +885,7 @@ public static function getHostedMetadata($entityid) $metadata['EntityAttributes'] = $config->getArray('EntityAttributes'); // check for entity categories - if (Metadata::isHiddenFromDiscovery($metadata)) { + if (Utils\Config\Metadata::isHiddenFromDiscovery($metadata)) { $metadata['hide.from.discovery'] = true; } } @@ -872,11 +915,11 @@ public static function getHostedMetadata($entityid) if ($config->hasValue('contacts')) { $contacts = $config->getArray('contacts'); foreach ($contacts as $contact) { - $metadata['contacts'][] = Metadata::getContact($contact); + $metadata['contacts'][] = Utils\Config\Metadata::getContact($contact); } } - $globalConfig = \SimpleSAML\Configuration::getInstance(); + $globalConfig = Configuration::getInstance(); $email = $globalConfig->getString('technicalcontact_email', false); if ($email && $email !== 'na@example.org') { $contact = [ @@ -884,7 +927,7 @@ public static function getHostedMetadata($entityid) 'name' => $globalConfig->getString('technicalcontact_name', null), 'contactType' => 'technical', ]; - $metadata['contacts'][] = Metadata::getContact($contact); + $metadata['contacts'][] = Utils\Config\Metadata::getContact($contact); } return $metadata; @@ -918,12 +961,12 @@ private static function generateNameIdValue( $idpEntityId = $idpMetadata->getString('entityid'); $spEntityId = $spMetadata->getString('entityid'); - $secretSalt = \SimpleSAML\Utils\Config::getSecretSalt(); + $secretSalt = Utils\Config::getSecretSalt(); - $uidData = 'uidhashbase'.$secretSalt; - $uidData .= strlen($idpEntityId).':'.$idpEntityId; - $uidData .= strlen($spEntityId).':'.$spEntityId; - $uidData .= strlen($attributeValue).':'.$attributeValue; + $uidData = 'uidhashbase' . $secretSalt; + $uidData .= strlen($idpEntityId) . ':' . $idpEntityId; + $uidData .= strlen($spEntityId) . ':' . $spEntityId; + $uidData .= strlen($attributeValue) . ':' . $attributeValue; $uidData .= $secretSalt; return hash('sha1', $uidData); @@ -932,7 +975,7 @@ private static function generateNameIdValue( $attributes = $state['Attributes']; if (!array_key_exists($attribute, $attributes)) { - Logger::error('Unable to add NameID: Missing '.var_export($attribute, true). + Logger::error('Unable to add NameID: Missing ' . var_export($attribute, true) . ' in the attributes of the user.'); return null; } @@ -994,8 +1037,8 @@ private static function encodeAttributes( } $attrval = $value; - if ($value instanceof \DOMNodeList) { - $attrval = new \SAML2\XML\saml\AttributeValue($value->item(0)->parentNode); + if ($value instanceof DOMNodeList) { + $attrval = new AttributeValue($value->item(0)->parentNode); } switch ($encoding) { @@ -1007,14 +1050,14 @@ private static function encodeAttributes( break; case 'raw': if (is_string($value)) { - $doc = \SAML2\DOMDocumentFactory::fromString('<root>'.$value.'</root>'); + $doc = DOMDocumentFactory::fromString('<root>' . $value . '</root>'); $value = $doc->firstChild->childNodes; } - assert($value instanceof \DOMNodeList || $value instanceof \SAML2\XML\saml\NameID); + assert($value instanceof DOMNodeList || $value instanceof NameID); break; default: - throw new \SimpleSAML\Error\Exception('Invalid encoding for attribute '. - var_export($name, true).': '.var_export($encoding, true)); + throw new Error\Exception('Invalid encoding for attribute ' . + var_export($name, true) . ': ' . var_export($encoding, true)); } $ret[$name][] = $value; } @@ -1057,7 +1100,7 @@ private static function getAttributeNameFormat( } // default - return 'urn:oasis:names:tc:SAML:2.0:attrname-format:basic'; + return Constants::NAMEFORMAT_BASIC; } @@ -1089,7 +1132,7 @@ private static function buildAssertion( $config = Configuration::getInstance(); - $a = new \SAML2\Assertion(); + $a = new Assertion(); if ($signAssertion) { \SimpleSAML\Module\saml\Message::addSign($idpMetadata, $spMetadata, $a); } @@ -1110,10 +1153,10 @@ private static function buildAssertion( if (isset($state['saml:AuthnContextClassRef'])) { $a->setAuthnContextClassRef($state['saml:AuthnContextClassRef']); - } elseif (\SimpleSAML\Utils\HTTP::isHTTPS()) { - $a->setAuthnContextClassRef(\SAML2\Constants::AC_PASSWORD_PROTECTED_TRANSPORT); + } elseif (Utils\HTTP::isHTTPS()) { + $a->setAuthnContextClassRef(Constants::AC_PASSWORD_PROTECTED_TRANSPORT); } else { - $a->setAuthnContextClassRef(\SAML2\Constants::AC_PASSWORD); + $a->setAuthnContextClassRef(Constants::AC_PASSWORD); } $sessionStart = $now; @@ -1125,10 +1168,10 @@ private static function buildAssertion( $sessionLifetime = $config->getInteger('session.duration', 8 * 60 * 60); $a->setSessionNotOnOrAfter($sessionStart + $sessionLifetime); - $a->setSessionIndex(\SimpleSAML\Utils\Random::generateID()); + $a->setSessionIndex(Utils\Random::generateID()); - $sc = new \SAML2\XML\saml\SubjectConfirmation(); - $scd = new \SAML2\XML\saml\SubjectConfirmationData(); + $sc = new SubjectConfirmation(); + $scd = new SubjectConfirmationData(); $scd->setNotOnOrAfter($now + $assertionLifetime); $scd->setRecipient($state['saml:ConsumerURL']); $scd->setInResponseTo($state['saml:RequestId']); @@ -1136,7 +1179,7 @@ private static function buildAssertion( // ProtcolBinding of SP's <AuthnRequest> overwrites IdP hosted metadata configuration $hokAssertion = null; - if ($state['saml:Binding'] === \SAML2\Constants::BINDING_HOK_SSO) { + if ($state['saml:Binding'] === Constants::BINDING_HOK_SSO) { $hokAssertion = true; } if ($hokAssertion === null) { @@ -1145,43 +1188,43 @@ private static function buildAssertion( if ($hokAssertion) { // Holder-of-Key - $sc->setMethod(\SAML2\Constants::CM_HOK); - if (\SimpleSAML\Utils\HTTP::isHTTPS()) { + $sc->setMethod(Constants::CM_HOK); + if (Utils\HTTP::isHTTPS()) { if (isset($_SERVER['SSL_CLIENT_CERT']) && !empty($_SERVER['SSL_CLIENT_CERT'])) { // extract certificate data (if this is a certificate) $clientCert = $_SERVER['SSL_CLIENT_CERT']; $pattern = '/^-----BEGIN CERTIFICATE-----([^-]*)^-----END CERTIFICATE-----/m'; if (preg_match($pattern, $clientCert, $matches)) { // we have a client certificate from the browser which we add to the HoK assertion - $x509Certificate = new \SAML2\XML\ds\X509Certificate(); + $x509Certificate = new X509Certificate(); $x509Certificate->setCertificate(str_replace(["\r", "\n", " "], '', $matches[1])); - $x509Data = new \SAML2\XML\ds\X509Data(); + $x509Data = new X509Data(); $x509Data->addData($x509Certificate); - $keyInfo = new \SAML2\XML\ds\KeyInfo(); + $keyInfo = new KeyInfo(); $keyInfo->addInfo($x509Data); $scd->addInfo($keyInfo); } else { - throw new \SimpleSAML\Error\Exception( - 'Error creating HoK assertion: No valid client certificate provided during TLS handshake '. - 'with IdP' + throw new Error\Exception( + 'Error creating HoK assertion: No valid client certificate provided during ' + . 'TLS handshake with IdP' ); } } else { - throw new \SimpleSAML\Error\Exception( + throw new Error\Exception( 'Error creating HoK assertion: No client certificate provided during TLS handshake with IdP' ); } } else { - throw new \SimpleSAML\Error\Exception( + throw new Error\Exception( 'Error creating HoK assertion: No HTTPS connection to IdP, but required for Holder-of-Key SSO' ); } } else { // Bearer - $sc->setMethod(\SAML2\Constants::CM_BEARER); + $sc->setMethod(Constants::CM_BEARER); } $sc->setSubjectConfirmationData($scd); $a->setSubjectConfirmation([$sc]); @@ -1205,7 +1248,7 @@ private static function buildAssertion( // either not set in request, or not set to a format we supply. Fall back to old generation method $nameIdFormat = current($spMetadata->getArrayizeString('NameIDFormat', [])); if ($nameIdFormat === false) { - $nameIdFormat = current($idpMetadata->getArrayizeString('NameIDFormat', [\SAML2\Constants::NAMEID_TRANSIENT])); + $nameIdFormat = current($idpMetadata->getArrayizeString('NameIDFormat', [Constants::NAMEID_TRANSIENT])); } } @@ -1218,21 +1261,21 @@ private static function buildAssertion( $spNameQualifier = $spMetadata->getString('entityid'); } - if ($nameIdFormat === \SAML2\Constants::NAMEID_TRANSIENT) { + if ($nameIdFormat === Constants::NAMEID_TRANSIENT) { // generate a random id - $nameIdValue = \SimpleSAML\Utils\Random::generateID(); + $nameIdValue = Utils\Random::generateID(); } else { /* this code will end up generating either a fixed assigned id (via nameid.attribute) or random id if not assigned/configured */ $nameIdValue = self::generateNameIdValue($idpMetadata, $spMetadata, $state); if ($nameIdValue === null) { Logger::warning('Falling back to transient NameID.'); - $nameIdFormat = \SAML2\Constants::NAMEID_TRANSIENT; - $nameIdValue = \SimpleSAML\Utils\Random::generateID(); + $nameIdFormat = Constants::NAMEID_TRANSIENT; + $nameIdValue = Utils\Random::generateID(); } } - $nameId = new \SAML2\XML\saml\NameID(); + $nameId = new NameID(); $nameId->setFormat($nameIdFormat); $nameId->setValue($nameIdValue); $nameId->setSPNameQualifier($spNameQualifier); @@ -1271,7 +1314,7 @@ private static function buildAssertion( private static function encryptAssertion( Configuration $idpMetadata, Configuration $spMetadata, - \SAML2\Assertion $assertion + Assertion $assertion ) { $encryptAssertion = $spMetadata->getBoolean('assertion.encryption', null); if ($encryptAssertion === null) { @@ -1293,27 +1336,27 @@ private static function encryptAssertion( $key = $keys[0]; switch ($key['type']) { case 'X509Certificate': - $pemKey = "-----BEGIN CERTIFICATE-----\n". - chunk_split($key['X509Certificate'], 64). + $pemKey = "-----BEGIN CERTIFICATE-----\n" . + chunk_split($key['X509Certificate'], 64) . "-----END CERTIFICATE-----\n"; break; default: - throw new \SimpleSAML\Error\Exception('Unsupported encryption key type: '.$key['type']); + throw new Error\Exception('Unsupported encryption key type: ' . $key['type']); } // extract the public key from the certificate for encryption $key = new XMLSecurityKey(XMLSecurityKey::RSA_OAEP_MGF1P, ['type' => 'public']); $key->loadKey($pemKey); } else { - throw new \SimpleSAML\Error\ConfigurationError( - 'Missing encryption key for entity `'.$spMetadata->getString('entityid').'`', - $spMetadata->getString('metadata-set').'.php', + throw new Error\ConfigurationError( + 'Missing encryption key for entity `' . $spMetadata->getString('entityid') . '`', + $spMetadata->getString('metadata-set') . '.php', null ); } } - $ea = new \SAML2\EncryptedAssertion(); + $ea = new EncryptedAssertion(); $ea->setAssertion($assertion, $key); return $ea; } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/IdP/SQLNameID.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/IdP/SQLNameID.php index 95d5712df26a64a808b072144af9e397b905acee..d4f91d9d3f3d0528bdbda5b3cdfd4d6162cc3fc2 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/IdP/SQLNameID.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/IdP/SQLNameID.php @@ -2,60 +2,164 @@ namespace SimpleSAML\Module\saml\IdP; +use PDO; +use SimpleSAML\Error; +use SimpleSAML\Store; +use SimpleSAML\Database; +use SimpleSAML\Configuration; + /** * Helper class for working with persistent NameIDs stored in SQL datastore. * * @package SimpleSAMLphp */ - class SQLNameID { + const TABLE_VERSION = 1; + const DEFAULT_TABLE_PREFIX = ''; + const TABLE_SUFFIX = '_saml_PersistentNameID'; + + /** - * Create NameID table in SQL, if it is missing. - * - * @param \SimpleSAML\Store\SQL $store The datastore. + * @param string $query + * @param array $params Parameters + * @param array $config + * @return \PDOStatement object + */ + private static function read($query, array $params = [], array $config = []) + { + if (!empty($config)) { + $database = Database::getInstance(Configuration::loadFromArray($config)); + $stmt = $database->read($query, $params); + } else { + $store = self::getStore(); + $stmt = $store->pdo->prepare($query); + $stmt->execute($params); + } + return $stmt; + } + + + /** + * @param string $query + * @param array $params Parameters + * @param array $config + * @return int|false The number of rows affected by the query or false on error. + */ + private static function write($query, array $params = [], array $config = []) + { + if (!empty($config)) { + $database = Database::getInstance(Configuration::loadFromArray($config)); + $res = $database->write($query, $params); + } else { + $store = self::getStore(); + $query = $store->pdo->prepare($query); + $res = $query->execute($params); + if ($res) { + $res = $query->rowCount(); + } + } + return $res; + } + + + /** + * @param array $config + * @return string + */ + private static function tableName(array $config = []) + { + $store = empty($config) ? self::getStore() : null; + $prefix = $store === null ? self::DEFAULT_TABLE_PREFIX : $store->prefix; + $table = $prefix . self::TABLE_SUFFIX; + return $table; + } + + /** + * @param array $config + * @return void */ - private static function createTable(\SimpleSAML\Store\SQL $store) + private static function create(array $config = []) { - if ($store->getTableVersion('saml_PersistentNameID') === 1) { - return; + $store = empty($config) ? self::getStore() : null; + $table = self::tableName($config); + if ($store === null) { + try { + self::createTable($table, $config); + } catch (\Exception $e) { + \SimpleSAML\Logger::debug('SQL persistent NameID table already exists.'); + } + } elseif ($store->getTableVersion('saml_PersistentNameID') !== self::TABLE_VERSION) { + self::createTable($table); + $store->setTableVersion('saml_PersistentNameID', self::TABLE_VERSION); } + } + + + /** + * @param string $query + * @param array $params + * @param array $config + * @return \PDOStatement + */ + private static function createAndRead($query, array $params = [], array $config = []) + { + self::create($config); + return self::read($query, $params, $config); + } + + + /** + * @param string $query + * @param array $params + * @param array $config + * @return int|false The number of rows affected by the query or false on error. + */ + private static function createAndWrite($query, array $params = [], array $config = []) + { + self::create($config); + return self::write($query, $params, $config); + } - $query = 'CREATE TABLE '.$store->prefix.'_saml_PersistentNameID ( + + /** + * Create NameID table in SQL. + * + * @param string $table The table name. + * @param array $config + * @return void + */ + private static function createTable($table, array $config = []) + { + $query = 'CREATE TABLE ' . $table . ' ( _idp VARCHAR(256) NOT NULL, _sp VARCHAR(256) NOT NULL, _user VARCHAR(256) NOT NULL, _value VARCHAR(40) NOT NULL, UNIQUE (_idp, _sp, _user) )'; - $store->pdo->exec($query); - - $query = 'CREATE INDEX '.$store->prefix.'_saml_PersistentNameID_idp_sp ON '; - $query .= $store->prefix.'_saml_PersistentNameID (_idp, _sp)'; - $store->pdo->exec($query); + self::write($query, [], $config); - $store->setTableVersion('saml_PersistentNameID', 1); + $query = 'CREATE INDEX ' . $table . '_idp_sp ON '; + $query .= $table . ' (_idp, _sp)'; + self::write($query, [], $config); } /** * Retrieve the SQL datastore. * - * Will also ensure that the NameID table is present. - * * @return \SimpleSAML\Store\SQL SQL datastore. */ private static function getStore() { - $store = \SimpleSAML\Store::getInstance(); - if (!($store instanceof \SimpleSAML\Store\SQL)) { - throw new \SimpleSAML\Error\Exception( + $store = Store::getInstance(); + if (!($store instanceof Store\SQL)) { + throw new Error\Exception( 'SQL NameID store requires SimpleSAMLphp to be configured with a SQL datastore.' ); } - self::createTable($store); - return $store; } @@ -63,21 +167,20 @@ private static function getStore() /** * Add a NameID into the database. * - * @param \SimpleSAML\Store\SQL $store The data store. * @param string $idpEntityId The IdP entityID. * @param string $spEntityId The SP entityID. * @param string $user The user's unique identificator (e.g. username). * @param string $value The NameID value. + * @param array $config + * @return void */ - public static function add($idpEntityId, $spEntityId, $user, $value) + public static function add($idpEntityId, $spEntityId, $user, $value, array $config = []) { assert(is_string($idpEntityId)); assert(is_string($spEntityId)); assert(is_string($user)); assert(is_string($value)); - $store = self::getStore(); - $params = [ '_idp' => $idpEntityId, '_sp' => $spEntityId, @@ -85,10 +188,9 @@ public static function add($idpEntityId, $spEntityId, $user, $value) '_value' => $value, ]; - $query = 'INSERT INTO '.$store->prefix; - $query .= '_saml_PersistentNameID (_idp, _sp, _user, _value) VALUES(:_idp, :_sp, :_user, :_value)'; - $query = $store->pdo->prepare($query); - $query->execute($params); + $query = 'INSERT INTO ' . self::tableName($config); + $query .= ' (_idp, _sp, _user, _value) VALUES(:_idp, :_sp, :_user, :_value)'; + self::createAndWrite($query, $params, $config); } @@ -98,28 +200,26 @@ public static function add($idpEntityId, $spEntityId, $user, $value) * @param string $idpEntityId The IdP entityID. * @param string $spEntityId The SP entityID. * @param string $user The user's unique identificator (e.g. username). - * @return string|NULL $value The NameID value, or NULL of no NameID value was found. + * @param array $config + * @return string|null $value The NameID value, or NULL of no NameID value was found. */ - public static function get($idpEntityId, $spEntityId, $user) + public static function get($idpEntityId, $spEntityId, $user, array $config = []) { assert(is_string($idpEntityId)); assert(is_string($spEntityId)); assert(is_string($user)); - $store = self::getStore(); - $params = [ '_idp' => $idpEntityId, '_sp' => $spEntityId, '_user' => $user, ]; - $query = 'SELECT _value FROM '.$store->prefix; - $query .= '_saml_PersistentNameID WHERE _idp = :_idp AND _sp = :_sp AND _user = :_user'; - $query = $store->pdo->prepare($query); - $query->execute($params); + $query = 'SELECT _value FROM ' . self::tableName($config); + $query .= ' WHERE _idp = :_idp AND _sp = :_sp AND _user = :_user'; + $query = self::createAndRead($query, $params, $config); - $row = $query->fetch(\PDO::FETCH_ASSOC); + $row = $query->fetch(PDO::FETCH_ASSOC); if ($row === false) { // No NameID found return null; @@ -135,25 +235,24 @@ public static function get($idpEntityId, $spEntityId, $user) * @param string $idpEntityId The IdP entityID. * @param string $spEntityId The SP entityID. * @param string $user The user's unique identificator (e.g. username). + * @param array $config + * @return void */ - public static function delete($idpEntityId, $spEntityId, $user) + public static function delete($idpEntityId, $spEntityId, $user, array $config = []) { assert(is_string($idpEntityId)); assert(is_string($spEntityId)); assert(is_string($user)); - $store = self::getStore(); - $params = [ '_idp' => $idpEntityId, '_sp' => $spEntityId, '_user' => $user, ]; - $query = 'DELETE FROM '.$store->prefix; - $query .= '_saml_PersistentNameID WHERE _idp = :_idp AND _sp = :_sp AND _user = :_user'; - $query = $store->pdo->prepare($query); - $query->execute($params); + $query = 'DELETE FROM ' . self::tableName($config); + $query .= ' WHERE _idp = :_idp AND _sp = :_sp AND _user = :_user'; + self::createAndWrite($query, $params, $config); } @@ -162,27 +261,25 @@ public static function delete($idpEntityId, $spEntityId, $user) * * @param string $idpEntityId The IdP entityID. * @param string $spEntityId The SP entityID. + * @param array $config * @return array Array of userid => NameID. */ - public static function getIdentities($idpEntityId, $spEntityId) + public static function getIdentities($idpEntityId, $spEntityId, array $config = []) { assert(is_string($idpEntityId)); assert(is_string($spEntityId)); - $store = self::getStore(); - $params = [ '_idp' => $idpEntityId, '_sp' => $spEntityId, ]; - $query = 'SELECT _user, _value FROM '.$store->prefix; - $query .= '_saml_PersistentNameID WHERE _idp = :_idp AND _sp = :_sp'; - $query = $store->pdo->prepare($query); - $query->execute($params); + $query = 'SELECT _user, _value FROM ' . self::tableName($config); + $query .= ' WHERE _idp = :_idp AND _sp = :_sp'; + $query = self::createAndRead($query, $params, $config); $res = []; - while (($row = $query->fetch(\PDO::FETCH_ASSOC)) !== false) { + while (($row = $query->fetch(PDO::FETCH_ASSOC)) !== false) { $res[$row['_user']] = $row['_value']; } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Message.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Message.php index a0f71931047530360fb41d4168301d57d6b14393..ca15e50130b8089b1e65c4a5e35cf3e5c0f4bb23 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Message.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/Message.php @@ -3,8 +3,23 @@ namespace SimpleSAML\Module\saml; use RobRichards\XMLSecLibs\XMLSecurityKey; +use SAML2\Assertion; +use SAML2\AuthnRequest; use SAML2\Constants; +use SAML2\EncryptedAssertion; +use SAML2\LogoutRequest; +use SAML2\LogoutResponse; +use SAML2\Response; +use SAML2\SignedElement; +use SAML2\StatusResponse; +use SAML2\XML\ds\KeyInfo; +use SAML2\XML\ds\X509Certificate; +use SAML2\XML\ds\X509Data; use SAML2\XML\saml\Issuer; +use SimpleSAML\Configuration; +use SimpleSAML\Error as SSP_Error; +use SimpleSAML\Logger; +use SimpleSAML\Utils; /** * Common code for building SAML 2 messages based on the available metadata. @@ -19,20 +34,23 @@ class Message * @param \SimpleSAML\Configuration $srcMetadata The metadata of the sender. * @param \SimpleSAML\Configuration $dstMetadata The metadata of the recipient. * @param \SAML2\SignedElement $element The element we should add the data to. + * @return void */ public static function addSign( - \SimpleSAML\Configuration $srcMetadata, - \SimpleSAML\Configuration $dstMetadata, - \SAML2\SignedElement $element + Configuration $srcMetadata, + Configuration $dstMetadata, + SignedElement $element ) { $dstPrivateKey = $dstMetadata->getString('signature.privatekey', null); if ($dstPrivateKey !== null) { - $keyArray = \SimpleSAML\Utils\Crypto::loadPrivateKey($dstMetadata, true, 'signature.'); - $certArray = \SimpleSAML\Utils\Crypto::loadPublicKey($dstMetadata, false, 'signature.'); + /** @var array $keyArray */ + $keyArray = Utils\Crypto::loadPrivateKey($dstMetadata, true, 'signature.'); + $certArray = Utils\Crypto::loadPublicKey($dstMetadata, false, 'signature.'); } else { - $keyArray = \SimpleSAML\Utils\Crypto::loadPrivateKey($srcMetadata, true); - $certArray = \SimpleSAML\Utils\Crypto::loadPublicKey($srcMetadata, false); + /** @var array $keyArray */ + $keyArray = Utils\Crypto::loadPrivateKey($srcMetadata, true); + $certArray = Utils\Crypto::loadPublicKey($srcMetadata, false); } $algo = $dstMetadata->getString('signature.algorithm', null); @@ -68,20 +86,21 @@ public static function addSign( * @param \SimpleSAML\Configuration $srcMetadata The metadata of the sender. * @param \SimpleSAML\Configuration $dstMetadata The metadata of the recipient. * @param \SAML2\Message $message The message we should add the data to. + * @return void */ private static function addRedirectSign( - \SimpleSAML\Configuration $srcMetadata, - \SimpleSAML\Configuration $dstMetadata, + Configuration $srcMetadata, + Configuration $dstMetadata, \SAML2\Message $message ) { $signingEnabled = null; - if ($message instanceof \SAML2\LogoutRequest || $message instanceof \SAML2\LogoutResponse) { + if ($message instanceof LogoutRequest || $message instanceof LogoutResponse) { $signingEnabled = $srcMetadata->getBoolean('sign.logout', null); if ($signingEnabled === null) { $signingEnabled = $dstMetadata->getBoolean('sign.logout', null); } - } elseif ($message instanceof \SAML2\AuthnRequest) { + } elseif ($message instanceof AuthnRequest) { $signingEnabled = $srcMetadata->getBoolean('sign.authnrequest', null); if ($signingEnabled === null) { $signingEnabled = $dstMetadata->getBoolean('sign.authnrequest', null); @@ -126,16 +145,16 @@ private static function findCertificate(array $certFingerprints, array $certific } /* We have found a matching fingerprint. */ - $pem = "-----BEGIN CERTIFICATE-----\n". - chunk_split($cert, 64). + $pem = "-----BEGIN CERTIFICATE-----\n" . + chunk_split($cert, 64) . "-----END CERTIFICATE-----\n"; return $pem; } - $candidates = "'".implode("', '", $candidates)."'"; - $fps = "'".implode("', '", $certFingerprints)."'"; - throw new \SimpleSAML\Error\Exception('Unable to find a certificate matching the configured '. - 'fingerprint. Candidates: '.$candidates.'; certFingerprint: '.$fps.'.'); + $candidates = "'" . implode("', '", $candidates) . "'"; + $fps = "'" . implode("', '", $certFingerprints) . "'"; + throw new SSP_Error\Exception('Unable to find a certificate matching the configured ' . + 'fingerprint. Candidates: ' . $candidates . '; certFingerprint: ' . $fps . '.'); } @@ -144,12 +163,12 @@ private static function findCertificate(array $certFingerprints, array $certific * * @param \SimpleSAML\Configuration $srcMetadata The metadata of the sender. * @param \SAML2\SignedElement $element Either a \SAML2\Response or a \SAML2\Assertion. - * @return boolean True if the signature is correct, false otherwise. + * @return bool True if the signature is correct, false otherwise. * * @throws \SimpleSAML\Error\Exception if there is not certificate in the metadata for the entity. * @throws \Exception if the signature validation fails with an exception. */ - public static function checkSign(\SimpleSAML\Configuration $srcMetadata, \SAML2\SignedElement $element) + public static function checkSign(Configuration $srcMetadata, SignedElement $element) { // find the public key that should verify signatures by this entity $keys = $srcMetadata->getPublicKeys('signing'); @@ -158,17 +177,17 @@ public static function checkSign(\SimpleSAML\Configuration $srcMetadata, \SAML2\ foreach ($keys as $key) { switch ($key['type']) { case 'X509Certificate': - $pemKeys[] = "-----BEGIN CERTIFICATE-----\n". - chunk_split($key['X509Certificate'], 64). + $pemKeys[] = "-----BEGIN CERTIFICATE-----\n" . + chunk_split($key['X509Certificate'], 64) . "-----END CERTIFICATE-----\n"; break; default: - \SimpleSAML\Logger::debug('Skipping unknown key type: '.$key['type']); + Logger::debug('Skipping unknown key type: ' . $key['type']); } } } elseif ($srcMetadata->hasValue('certFingerprint')) { - \SimpleSAML\Logger::notice( - "Validating certificates by fingerprint is deprecated. Please use ". + Logger::notice( + "Validating certificates by fingerprint is deprecated. Please use " . "certData or certificate options in your remote metadata configuration." ); @@ -182,22 +201,22 @@ public static function checkSign(\SimpleSAML\Configuration $srcMetadata, \SAML2\ // we don't have the full certificate stored. Try to find it in the message or the assertion instead if (count($certificates) === 0) { /* We need the full certificate in order to match it against the fingerprint. */ - \SimpleSAML\Logger::debug('No certificate in message when validating against fingerprint.'); + Logger::debug('No certificate in message when validating against fingerprint.'); return false; } else { - \SimpleSAML\Logger::debug('Found '.count($certificates).' certificates in '.get_class($element)); + Logger::debug('Found ' . count($certificates) . ' certificates in ' . get_class($element)); } $pemCert = self::findCertificate($certFingerprint, $certificates); $pemKeys = [$pemCert]; } else { - throw new \SimpleSAML\Error\Exception( - 'Missing certificate in metadata for '. + throw new SSP_Error\Exception( + 'Missing certificate in metadata for ' . var_export($srcMetadata->getString('entityid'), true) ); } - \SimpleSAML\Logger::debug('Has '.count($pemKeys).' candidate keys for validation.'); + Logger::debug('Has ' . count($pemKeys) . ' candidate keys for validation.'); $lastException = null; foreach ($pemKeys as $i => $pem) { @@ -208,12 +227,12 @@ public static function checkSign(\SimpleSAML\Configuration $srcMetadata, \SAML2\ // make sure that we have a valid signature on either the response or the assertion $res = $element->validate($key); if ($res) { - \SimpleSAML\Logger::debug('Validation with key #'.$i.' succeeded.'); + Logger::debug('Validation with key #' . $i . ' succeeded.'); return true; } - \SimpleSAML\Logger::debug('Validation with key #'.$i.' failed without exception.'); + Logger::debug('Validation with key #' . $i . ' failed without exception.'); } catch (\Exception $e) { - \SimpleSAML\Logger::debug('Validation with key #'.$i.' failed with exception: '.$e->getMessage()); + Logger::debug('Validation with key #' . $i . ' failed with exception: ' . $e->getMessage()); $lastException = $e; } } @@ -233,21 +252,22 @@ public static function checkSign(\SimpleSAML\Configuration $srcMetadata, \SAML2\ * @param \SimpleSAML\Configuration $srcMetadata The metadata of the sender. * @param \SimpleSAML\Configuration $dstMetadata The metadata of the recipient. * @param \SAML2\Message $message The message we should check the signature on. + * @return void * * @throws \SimpleSAML\Error\Exception if message validation is enabled, but there is no signature in the message. */ public static function validateMessage( - \SimpleSAML\Configuration $srcMetadata, - \SimpleSAML\Configuration $dstMetadata, + Configuration $srcMetadata, + Configuration $dstMetadata, \SAML2\Message $message ) { $enabled = null; - if ($message instanceof \SAML2\LogoutRequest || $message instanceof \SAML2\LogoutResponse) { + if ($message instanceof LogoutRequest || $message instanceof LogoutResponse) { $enabled = $srcMetadata->getBoolean('validate.logout', null); if ($enabled === null) { $enabled = $dstMetadata->getBoolean('validate.logout', null); } - } elseif ($message instanceof \SAML2\AuthnRequest) { + } elseif ($message instanceof AuthnRequest) { $enabled = $srcMetadata->getBoolean('validate.authnrequest', null); if ($enabled === null) { $enabled = $dstMetadata->getBoolean('validate.authnrequest', null); @@ -266,7 +286,7 @@ public static function validateMessage( } if (!self::checkSign($srcMetadata, $message)) { - throw new \SimpleSAML\Error\Exception( + throw new SSP_Error\Exception( 'Validation of received messages enabled, but no signature found on message.' ); } @@ -282,8 +302,8 @@ public static function validateMessage( * @return array Array of decryption keys. */ public static function getDecryptionKeys( - \SimpleSAML\Configuration $srcMetadata, - \SimpleSAML\Configuration $dstMetadata + Configuration $srcMetadata, + Configuration $dstMetadata ) { $sharedKey = $srcMetadata->getString('sharedkey', null); if ($sharedKey !== null) { @@ -295,7 +315,7 @@ public static function getDecryptionKeys( $keys = []; // load the new private key if it exists - $keyArray = \SimpleSAML\Utils\Crypto::loadPrivateKey($dstMetadata, false, 'new_'); + $keyArray = Utils\Crypto::loadPrivateKey($dstMetadata, false, 'new_'); if ($keyArray !== null) { assert(isset($keyArray['PEM'])); @@ -308,7 +328,7 @@ public static function getDecryptionKeys( } // find the existing private key - $keyArray = \SimpleSAML\Utils\Crypto::loadPrivateKey($dstMetadata, true); + $keyArray = Utils\Crypto::loadPrivateKey($dstMetadata, true); assert(isset($keyArray['PEM'])); $key = new XMLSecurityKey(XMLSecurityKey::RSA_1_5, ['type' => 'private']); @@ -333,8 +353,8 @@ public static function getDecryptionKeys( * @return array Array of blacklisted algorithms. */ public static function getBlacklistedAlgorithms( - \SimpleSAML\Configuration $srcMetadata, - \SimpleSAML\Configuration $dstMetadata + Configuration $srcMetadata, + Configuration $dstMetadata ) { $blacklist = $srcMetadata->getArray('encryption.blacklisted-algorithms', null); if ($blacklist === null) { @@ -358,13 +378,13 @@ public static function getBlacklistedAlgorithms( * @throws \Exception if decryption fails for whatever reason. */ private static function decryptAssertion( - \SimpleSAML\Configuration $srcMetadata, - \SimpleSAML\Configuration $dstMetadata, + Configuration $srcMetadata, + Configuration $dstMetadata, $assertion ) { - assert($assertion instanceof \SAML2\Assertion || $assertion instanceof \SAML2\EncryptedAssertion); + assert($assertion instanceof Assertion || $assertion instanceof EncryptedAssertion); - if ($assertion instanceof \SAML2\Assertion) { + if ($assertion instanceof Assertion) { $encryptAssertion = $srcMetadata->getBoolean('assertion.encryption', null); if ($encryptAssertion === null) { $encryptAssertion = $dstMetadata->getBoolean('assertion.encryption', false); @@ -380,7 +400,7 @@ private static function decryptAssertion( try { $keys = self::getDecryptionKeys($srcMetadata, $dstMetadata); } catch (\Exception $e) { - throw new \SimpleSAML\Error\Exception('Error decrypting assertion: '.$e->getMessage()); + throw new SSP_Error\Exception('Error decrypting assertion: ' . $e->getMessage()); } $blacklist = self::getBlacklistedAlgorithms($srcMetadata, $dstMetadata); @@ -389,13 +409,19 @@ private static function decryptAssertion( foreach ($keys as $i => $key) { try { $ret = $assertion->getAssertion($key, $blacklist); - \SimpleSAML\Logger::debug('Decryption with key #'.$i.' succeeded.'); + Logger::debug('Decryption with key #' . $i . ' succeeded.'); return $ret; } catch (\Exception $e) { - \SimpleSAML\Logger::debug('Decryption with key #'.$i.' failed with exception: '.$e->getMessage()); + Logger::debug('Decryption with key #' . $i . ' failed with exception: ' . $e->getMessage()); $lastException = $e; } } + + /** + * The annotation below is not working - See vimeo/psalm#1909 + * @psalm-suppress InvalidThrow + * @var \Exception $lastException + */ throw $lastException; } @@ -412,9 +438,9 @@ private static function decryptAssertion( * @throws \SimpleSAML\Error\Exception if we cannot get the decryption keys or decryption fails. */ private static function decryptAttributes( - \SimpleSAML\Configuration $srcMetadata, - \SimpleSAML\Configuration $dstMetadata, - \SAML2\Assertion &$assertion + Configuration $srcMetadata, + Configuration $dstMetadata, + Assertion &$assertion ) { if (!$assertion->hasEncryptedAttributes()) { return; @@ -423,7 +449,7 @@ private static function decryptAttributes( try { $keys = self::getDecryptionKeys($srcMetadata, $dstMetadata); } catch (\Exception $e) { - throw new \SimpleSAML\Error\Exception('Error decrypting attributes: '.$e->getMessage()); + throw new SSP_Error\Exception('Error decrypting attributes: ' . $e->getMessage()); } $blacklist = self::getBlacklistedAlgorithms($srcMetadata, $dstMetadata); @@ -432,15 +458,15 @@ private static function decryptAttributes( foreach ($keys as $i => $key) { try { $assertion->decryptAttributes($key, $blacklist); - \SimpleSAML\Logger::debug('Attribute decryption with key #'.$i.' succeeded.'); + Logger::debug('Attribute decryption with key #' . $i . ' succeeded.'); $error = false; break; } catch (\Exception $e) { - \SimpleSAML\Logger::debug('Attribute decryption failed with exception: '.$e->getMessage()); + Logger::debug('Attribute decryption failed with exception: ' . $e->getMessage()); } } if ($error) { - throw new \SimpleSAML\Error\Exception('Could not decrypt the attributes'); + throw new SSP_Error\Exception('Could not decrypt the attributes'); } } @@ -452,7 +478,7 @@ private static function decryptAttributes( * * @return \SimpleSAML\Module\saml\Error The error. */ - public static function getResponseError(\SAML2\StatusResponse $response) + public static function getResponseError(StatusResponse $response) { $status = $response->getStatus(); return new \SimpleSAML\Module\saml\Error($status['Code'], $status['SubCode'], $status['Message']); @@ -467,10 +493,10 @@ public static function getResponseError(\SAML2\StatusResponse $response) * @return \SAML2\AuthnRequest An authentication request object. */ public static function buildAuthnRequest( - \SimpleSAML\Configuration $spMetadata, - \SimpleSAML\Configuration $idpMetadata + Configuration $spMetadata, + Configuration $idpMetadata ) { - $ar = new \SAML2\AuthnRequest(); + $ar = new AuthnRequest(); // get the NameIDPolicy to apply. IdP metadata has precedence. $nameIdPolicy = null; @@ -480,7 +506,7 @@ public static function buildAuthnRequest( $nameIdPolicy = $spMetadata->getValue('NameIDPolicy'); } - $policy = \SimpleSAML\Utils\Config\Metadata::parseNameIdPolicy($nameIdPolicy); + $policy = Utils\Config\Metadata::parseNameIdPolicy($nameIdPolicy); if ($policy !== null) { // either we have a policy set, or we used the transient default $ar->setNameIdPolicy($policy); @@ -490,15 +516,15 @@ public static function buildAuthnRequest( $ar->setIsPassive($spMetadata->getBoolean('IsPassive', false)); $protbind = $spMetadata->getValueValidate('ProtocolBinding', [ - \SAML2\Constants::BINDING_HTTP_POST, - \SAML2\Constants::BINDING_HOK_SSO, - \SAML2\Constants::BINDING_HTTP_ARTIFACT, - \SAML2\Constants::BINDING_HTTP_REDIRECT, - ], \SAML2\Constants::BINDING_HTTP_POST); + Constants::BINDING_HTTP_POST, + Constants::BINDING_HOK_SSO, + Constants::BINDING_HTTP_ARTIFACT, + Constants::BINDING_HTTP_REDIRECT, + ], Constants::BINDING_HTTP_POST); // Shoaib: setting the appropriate binding based on parameter in sp-metadata defaults to HTTP_POST $ar->setProtocolBinding($protbind); - $issuer = new \SAML2\XML\saml\Issuer(); + $issuer = new Issuer(); $issuer->setValue($spMetadata->getString('entityid')); $ar->setIssuer($issuer); $ar->setAssertionConsumerServiceIndex($spMetadata->getInteger('AssertionConsumerServiceIndex', null)); @@ -507,11 +533,11 @@ public static function buildAuthnRequest( if ($spMetadata->hasValue('AuthnContextClassRef')) { $accr = $spMetadata->getArrayizeString('AuthnContextClassRef'); $comp = $spMetadata->getValueValidate('AuthnContextComparison', [ - \SAML2\Constants::COMPARISON_EXACT, - \SAML2\Constants::COMPARISON_MINIMUM, - \SAML2\Constants::COMPARISON_MAXIMUM, - \SAML2\Constants::COMPARISON_BETTER, - ], \SAML2\Constants::COMPARISON_EXACT); + Constants::COMPARISON_EXACT, + Constants::COMPARISON_MINIMUM, + Constants::COMPARISON_MAXIMUM, + Constants::COMPARISON_BETTER, + ], Constants::COMPARISON_EXACT); $ar->setRequestedAuthnContext(['AuthnContextClassRef' => $accr, 'Comparison' => $comp]); } @@ -529,10 +555,10 @@ public static function buildAuthnRequest( * @return \SAML2\LogoutRequest A logout request object. */ public static function buildLogoutRequest( - \SimpleSAML\Configuration $srcMetadata, - \SimpleSAML\Configuration $dstMetadata + Configuration $srcMetadata, + Configuration $dstMetadata ) { - $lr = new \SAML2\LogoutRequest(); + $lr = new LogoutRequest(); $issuer = new Issuer(); $issuer->setValue($srcMetadata->getString('entityid')); $issuer->setFormat(Constants::NAMEID_ENTITY); @@ -552,10 +578,10 @@ public static function buildLogoutRequest( * @return \SAML2\LogoutResponse A logout response object. */ public static function buildLogoutResponse( - \SimpleSAML\Configuration $srcMetadata, - \SimpleSAML\Configuration $dstMetadata + Configuration $srcMetadata, + Configuration $dstMetadata ) { - $lr = new \SAML2\LogoutResponse(); + $lr = new LogoutResponse(); $issuer = new Issuer(); $issuer->setValue($srcMetadata->getString('entityid')); $issuer->setFormat(Constants::NAMEID_ENTITY); @@ -582,20 +608,20 @@ public static function buildLogoutResponse( * @throws \Exception if the destination of the response does not match the current URL. */ public static function processResponse( - \SimpleSAML\Configuration $spMetadata, - \SimpleSAML\Configuration $idpMetadata, - \SAML2\Response $response + Configuration $spMetadata, + Configuration $idpMetadata, + Response $response ) { if (!$response->isSuccess()) { throw self::getResponseError($response); } // validate Response-element destination - $currentURL = \SimpleSAML\Utils\HTTP::getSelfURLNoQuery(); + $currentURL = Utils\HTTP::getSelfURLNoQuery(); $msgDestination = $response->getDestination(); if ($msgDestination !== null && $msgDestination !== $currentURL) { - throw new \Exception('Destination in response doesn\'t match the current URL. Destination is "'. - $msgDestination.'", current URL is "'.$currentURL.'".'); + throw new \Exception('Destination in response doesn\'t match the current URL. Destination is "' . + $msgDestination . '", current URL is "' . $currentURL . '".'); } $responseSigned = self::checkSign($idpMetadata, $response); @@ -606,7 +632,7 @@ public static function processResponse( */ $assertion = $response->getAssertions(); if (empty($assertion)) { - throw new \SimpleSAML\Error\Exception('No assertions found in response from IdP.'); + throw new SSP_Error\Exception('No assertions found in response from IdP.'); } $ret = []; @@ -635,13 +661,13 @@ public static function processResponse( * @throws \Exception if we couldn't decrypt the NameID for unexpected reasons. */ private static function processAssertion( - \SimpleSAML\Configuration $spMetadata, - \SimpleSAML\Configuration $idpMetadata, - \SAML2\Response $response, + Configuration $spMetadata, + Configuration $idpMetadata, + Response $response, $assertion, $responseSigned ) { - assert($assertion instanceof \SAML2\Assertion || $assertion instanceof \SAML2\EncryptedAssertion); + assert($assertion instanceof Assertion || $assertion instanceof EncryptedAssertion); assert(is_bool($responseSigned)); $assertion = self::decryptAssertion($idpMetadata, $spMetadata, $assertion); @@ -649,14 +675,14 @@ private static function processAssertion( if (!self::checkSign($idpMetadata, $assertion)) { if (!$responseSigned) { - throw new \SimpleSAML\Error\Exception('Neither the assertion nor the response was signed.'); + throw new SSP_Error\Exception('Neither the assertion nor the response was signed.'); } } // at least one valid signature found - $currentURL = \SimpleSAML\Utils\HTTP::getSelfURLNoQuery(); + $currentURL = Utils\HTTP::getSelfURLNoQuery(); // check various properties of the assertion - $config = \SimpleSAML\Configuration::getInstance(); + $config = Configuration::getInstance(); $allowed_clock_skew = $config->getInteger('assertion.allowed_clock_skew', 180); $options = [ 'options' => [ @@ -668,19 +694,19 @@ private static function processAssertion( $allowed_clock_skew = filter_var($allowed_clock_skew, FILTER_VALIDATE_INT, $options); $notBefore = $assertion->getNotBefore(); if ($notBefore !== null && $notBefore > time() + $allowed_clock_skew) { - throw new \SimpleSAML\Error\Exception( + throw new SSP_Error\Exception( 'Received an assertion that is valid in the future. Check clock synchronization on IdP and SP.' ); } $notOnOrAfter = $assertion->getNotOnOrAfter(); if ($notOnOrAfter !== null && $notOnOrAfter <= time() - $allowed_clock_skew) { - throw new \SimpleSAML\Error\Exception( + throw new SSP_Error\Exception( 'Received an assertion that has expired. Check clock synchronization on IdP and SP.' ); } $sessionNotOnOrAfter = $assertion->getSessionNotOnOrAfter(); if ($sessionNotOnOrAfter !== null && $sessionNotOnOrAfter <= time() - $allowed_clock_skew) { - throw new \SimpleSAML\Error\Exception( + throw new SSP_Error\Exception( 'Received an assertion with a session that has expired. Check clock synchronization on IdP and SP.' ); } @@ -688,19 +714,21 @@ private static function processAssertion( if ($validAudiences !== null) { $spEntityId = $spMetadata->getString('entityid'); if (!in_array($spEntityId, $validAudiences, true)) { - $candidates = '['.implode('], [', $validAudiences).']'; - throw new \SimpleSAML\Error\Exception('This SP ['.$spEntityId. - '] is not a valid audience for the assertion. Candidates were: '.$candidates); + $candidates = '[' . implode('], [', $validAudiences) . ']'; + throw new SSP_Error\Exception( + 'This SP [' . $spEntityId . + '] is not a valid audience for the assertion. Candidates were: ' . $candidates + ); } } $found = false; $lastError = 'No SubjectConfirmation element in Subject.'; - $validSCMethods = [\SAML2\Constants::CM_BEARER, \SAML2\Constants::CM_HOK, \SAML2\Constants::CM_VOUCHES]; + $validSCMethods = [Constants::CM_BEARER, Constants::CM_HOK, Constants::CM_VOUCHES]; foreach ($assertion->getSubjectConfirmation() as $sc) { $method = $sc->getMethod(); if (!in_array($method, $validSCMethods, true)) { - $lastError = 'Invalid Method on SubjectConfirmation: '.var_export($method, true); + $lastError = 'Invalid Method on SubjectConfirmation: ' . var_export($method, true); continue; } @@ -709,20 +737,20 @@ private static function processAssertion( if ($hok === null) { $hok = $spMetadata->getBoolean('saml20.hok.assertion', false); } - if ($method === \SAML2\Constants::CM_BEARER && $hok) { + if ($method === Constants::CM_BEARER && $hok) { $lastError = 'Bearer SubjectConfirmation received, but Holder-of-Key SubjectConfirmation needed'; continue; } - if ($method === \SAML2\Constants::CM_HOK && !$hok) { - $lastError = 'Holder-of-Key SubjectConfirmation received, '. + if ($method === Constants::CM_HOK && !$hok) { + $lastError = 'Holder-of-Key SubjectConfirmation received, ' . 'but the Holder-of-Key profile is not enabled.'; continue; } $scd = $sc->getSubjectConfirmationData(); - if ($method === \SAML2\Constants::CM_HOK) { + if ($method === Constants::CM_HOK) { // check HoK Assertion - if (\SimpleSAML\Utils\HTTP::isHTTPS() === false) { + if (Utils\HTTP::isHTTPS() === false) { $lastError = 'No HTTPS connection, but required for Holder-of-Key SSO'; continue; } @@ -734,52 +762,52 @@ private static function processAssertion( $clientCert = $_SERVER['SSL_CLIENT_CERT']; $pattern = '/^-----BEGIN CERTIFICATE-----([^-]*)^-----END CERTIFICATE-----/m'; if (!preg_match($pattern, $clientCert, $matches)) { - $lastError = 'Error while looking for client certificate during TLS handshake with SP, the client '. - 'certificate does not have the expected structure'; + $lastError = 'Error while looking for client certificate during TLS handshake with SP, ' . + 'the client certificate does not have the expected structure'; continue; } // we have a valid client certificate from the browser $clientCert = str_replace(["\r", "\n", " "], '', $matches[1]); $keyInfo = []; - foreach ($scd->info as $thing) { - if ($thing instanceof \SAML2\XML\ds\KeyInfo) { + foreach ($scd->getInfo() as $thing) { + if ($thing instanceof KeyInfo) { $keyInfo[] = $thing; } } if (count($keyInfo) != 1) { - $lastError = 'Error validating Holder-of-Key assertion: Only one <ds:KeyInfo> element in '. + $lastError = 'Error validating Holder-of-Key assertion: Only one <ds:KeyInfo> element in ' . '<SubjectConfirmationData> allowed'; continue; } $x509data = []; - foreach ($keyInfo[0]->info as $thing) { - if ($thing instanceof \SAML2\XML\ds\X509Data) { + foreach ($keyInfo[0]->getInfo() as $thing) { + if ($thing instanceof X509Data) { $x509data[] = $thing; } } if (count($x509data) != 1) { - $lastError = 'Error validating Holder-of-Key assertion: Only one <ds:X509Data> element in '. + $lastError = 'Error validating Holder-of-Key assertion: Only one <ds:X509Data> element in ' . '<ds:KeyInfo> within <SubjectConfirmationData> allowed'; continue; } $x509cert = []; - foreach ($x509data[0]->data as $thing) { - if ($thing instanceof \SAML2\XML\ds\X509Certificate) { + foreach ($x509data[0]->getData() as $thing) { + if ($thing instanceof X509Certificate) { $x509cert[] = $thing; } } if (count($x509cert) != 1) { - $lastError = 'Error validating Holder-of-Key assertion: Only one <ds:X509Certificate> element in '. + $lastError = 'Error validating Holder-of-Key assertion: Only one <ds:X509Certificate> element in ' . '<ds:X509Data> within <SubjectConfirmationData> allowed'; continue; } - $HoKCertificate = $x509cert[0]->certificate; + $HoKCertificate = $x509cert[0]->getCertificate(); if ($HoKCertificate !== $clientCert) { - $lastError = 'Provided client certificate does not match the certificate bound to the '. + $lastError = 'Provided client certificate does not match the certificate bound to the ' . 'Holder-of-Key assertion'; continue; } @@ -792,36 +820,39 @@ private static function processAssertion( } $notBefore = $scd->getNotBefore(); - if ($notBefore && $notBefore > time() + 60) { - $lastError = 'NotBefore in SubjectConfirmationData is in the future: '.$notBefore; + if (is_int($notBefore) && $notBefore > time() + 60) { + $lastError = 'NotBefore in SubjectConfirmationData is in the future: ' . $notBefore; continue; } $notOnOrAfter = $scd->getNotOnOrAfter(); - if ($notOnOrAfter && $notOnOrAfter <= time() - 60) { - $lastError = 'NotOnOrAfter in SubjectConfirmationData is in the past: '.$notOnOrAfter; + if (is_int($notOnOrAfter) && $notOnOrAfter <= time() - 60) { + $lastError = 'NotOnOrAfter in SubjectConfirmationData is in the past: ' . $notOnOrAfter; continue; } $recipient = $scd->getRecipient(); if ($recipient !== null && $recipient !== $currentURL) { - $lastError = 'Recipient in SubjectConfirmationData does not match the current URL. Recipient is '. - var_export($recipient, true).', current URL is '.var_export($currentURL, true).'.'; + $lastError = 'Recipient in SubjectConfirmationData does not match the current URL. Recipient is ' . + var_export($recipient, true) . ', current URL is ' . var_export($currentURL, true) . '.'; continue; } $inResponseTo = $scd->getInResponseTo(); - if ($inResponseTo !== null && $response->getInResponseTo() !== null && - $inResponseTo !== $response->getInResponseTo() + if ( + $inResponseTo !== null + && $response->getInResponseTo() !== null + && $inResponseTo !== $response->getInResponseTo() ) { - $lastError = 'InResponseTo in SubjectConfirmationData does not match the Response. Response has '. - var_export($response->getInResponseTo(), true). - ', SubjectConfirmationData has '.var_export($inResponseTo, true).'.'; + $lastError = 'InResponseTo in SubjectConfirmationData does not match the Response. Response has ' . + var_export($response->getInResponseTo(), true) . + ', SubjectConfirmationData has ' . var_export($inResponseTo, true) . '.'; continue; } $found = true; break; } if (!$found) { - throw new \SimpleSAML\Error\Exception('Error validating SubjectConfirmation in Assertion: '.$lastError); - } // as far as we can tell, the assertion is valid + throw new SSP_Error\Exception('Error validating SubjectConfirmation in Assertion: ' . $lastError); + } + // as far as we can tell, the assertion is valid // maybe we need to base64 decode the attributes in the assertion? if ($idpMetadata->getBoolean('base64attributes', false)) { @@ -843,7 +874,7 @@ private static function processAssertion( try { $keys = self::getDecryptionKeys($idpMetadata, $spMetadata); } catch (\Exception $e) { - throw new \SimpleSAML\Error\Exception('Error decrypting NameID: '.$e->getMessage()); + throw new SSP_Error\Exception('Error decrypting NameID: ' . $e->getMessage()); } $blacklist = self::getBlacklistedAlgorithms($idpMetadata, $spMetadata); @@ -852,11 +883,11 @@ private static function processAssertion( foreach ($keys as $i => $key) { try { $assertion->decryptNameId($key, $blacklist); - \SimpleSAML\Logger::debug('Decryption with key #'.$i.' succeeded.'); + Logger::debug('Decryption with key #' . $i . ' succeeded.'); $lastException = null; break; } catch (\Exception $e) { - \SimpleSAML\Logger::debug('Decryption with key #'.$i.' failed with exception: '.$e->getMessage()); + Logger::debug('Decryption with key #' . $i . ' failed with exception: ' . $e->getMessage()); $lastException = $e; } } @@ -878,7 +909,7 @@ private static function processAssertion( * * @throws \SimpleSAML\Error\Exception if there is no supported encryption key in the metadata of this entity. */ - public static function getEncryptionKey(\SimpleSAML\Configuration $metadata) + public static function getEncryptionKey(Configuration $metadata) { $sharedKey = $metadata->getString('sharedkey', null); @@ -892,8 +923,8 @@ public static function getEncryptionKey(\SimpleSAML\Configuration $metadata) foreach ($keys as $key) { switch ($key['type']) { case 'X509Certificate': - $pemKey = "-----BEGIN CERTIFICATE-----\n". - chunk_split($key['X509Certificate'], 64). + $pemKey = "-----BEGIN CERTIFICATE-----\n" . + chunk_split($key['X509Certificate'], 64) . "-----END CERTIFICATE-----\n"; $key = new XMLSecurityKey(XMLSecurityKey::RSA_OAEP_MGF1P, ['type' => 'public']); $key->loadKey($pemKey); @@ -901,7 +932,7 @@ public static function getEncryptionKey(\SimpleSAML\Configuration $metadata) } } - throw new \SimpleSAML\Error\Exception('No supported encryption key in '. + throw new SSP_Error\Exception('No supported encryption key in ' . var_export($metadata->getString('entityid'), true)); } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/SP/LogoutStore.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/SP/LogoutStore.php index 6142654ac02c3c8f91eb0913f7d1c68eff1b4ad5..b29b5040ee101ea8dbdc74f91b053afa447c2b9c 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/SP/LogoutStore.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/lib/SP/LogoutStore.php @@ -36,10 +36,11 @@ private static function createLogoutTable(Store\SQL $store) switch ($store->driver) { case 'pgsql': // This does not affect the NOT NULL constraint - $update = ['ALTER TABLE '.$store->prefix. - '_saml_LogoutStore ALTER COLUMN _expire DATETIME']; + $update = [ + 'ALTER TABLE ' . $store->prefix . '_saml_LogoutStore ALTER COLUMN _expire TYPE TIMESTAMP' + ]; break; - case 'sqlite': + case 'sqlite': /** * Because SQLite does not support field alterations, the approach is to: * Create a new table without the proper column size @@ -49,19 +50,25 @@ private static function createLogoutTable(Store\SQL $store) * Read the index */ $update = [ - 'CREATE TABLE '.$store->prefix.'_saml_LogoutStore_new (_authSource VARCHAR(255) NOT NULL,'. - '_nameId VARCHAR(40) NOT NULL, _sessionIndex VARCHAR(50) NOT NULL, _expire DATETIME NOT NULL,'. + 'CREATE TABLE ' . $store->prefix . '_saml_LogoutStore_new (' . + '_authSource VARCHAR(255) NOT NULL, _nameId VARCHAR(40) NOT NULL' . + ', _sessionIndex VARCHAR(50) NOT NULL, _expire DATETIME NOT NULL,' . '_sessionId VARCHAR(50) NOT NULL, UNIQUE (_authSource, _nameID, _sessionIndex))', - 'INSERT INTO '.$store->prefix.'_saml_LogoutStore_new SELECT * FROM '.$store->prefix.'_saml_LogoutStore', - 'DROP TABLE '.$store->prefix.'_saml_LogoutStore', - 'ALTER TABLE '.$store->prefix.'_saml_LogoutStore_new RENAME TO '.$store->prefix.'_saml_LogoutStore', - 'CREATE INDEX '.$store->prefix.'_saml_LogoutStore_expire ON '.$store->prefix.'_saml_LogoutStore (_expire)', - 'CREATE INDEX '.$store->prefix.'_saml_LogoutStore_nameId ON '.$store->prefix.'_saml_LogoutStore (_authSource, _nameId)' + 'INSERT INTO ' . $store->prefix . '_saml_LogoutStore_new SELECT * FROM ' . + $store->prefix . '_saml_LogoutStore', + 'DROP TABLE ' . $store->prefix . '_saml_LogoutStore', + 'ALTER TABLE ' . $store->prefix . '_saml_LogoutStore_new RENAME TO ' . + $store->prefix . '_saml_LogoutStore', + 'CREATE INDEX ' . $store->prefix . '_saml_LogoutStore_expire ON ' . + $store->prefix . '_saml_LogoutStore (_expire)', + 'CREATE INDEX ' . $store->prefix . '_saml_LogoutStore_nameId ON ' . + $store->prefix . '_saml_LogoutStore (_authSource, _nameId)' ]; break; default: - $update = ['ALTER TABLE '.$store->prefix. - '_saml_LogoutStore MODIFY _expire DATETIME NOT NULL']; + $update = [ + 'ALTER TABLE ' . $store->prefix . '_saml_LogoutStore MODIFY _expire DATETIME NOT NULL' + ]; break; } @@ -70,28 +77,32 @@ private static function createLogoutTable(Store\SQL $store) $store->pdo->exec($query); } } catch (\Exception $e) { - Logger::warning('Database error: '.var_export($store->pdo->errorInfo(), true)); + Logger::warning('Database error: ' . var_export($store->pdo->errorInfo(), true)); return; } $store->setTableVersion('saml_LogoutStore', 4); return; - } elseif ($tableVer === 2) { - // TableVersion 3 fixes the indexes that were set to 255 in version 2; they cannot be larger than 191 on MySQL + /** + * TableVersion 3 fixes the indexes that were set to 255 in version 2; + * they cannot be larger than 191 on MySQL + */ if ($store->driver === 'mysql') { // Drop old indexes - $query = 'ALTER TABLE '.$store->prefix.'_saml_LogoutStore DROP INDEX '.$store->prefix.'_saml_LogoutStore_nameId'; + $query = 'ALTER TABLE ' . $store->prefix . '_saml_LogoutStore DROP INDEX ' . + $store->prefix . '_saml_LogoutStore_nameId'; $store->pdo->exec($query); - $query = 'ALTER TABLE '.$store->prefix.'_saml_LogoutStore DROP INDEX _authSource'; + $query = 'ALTER TABLE ' . $store->prefix . '_saml_LogoutStore DROP INDEX _authSource'; $store->pdo->exec($query); // Create new indexes - $query = 'CREATE INDEX '.$store->prefix.'_saml_LogoutStore_nameId ON '; - $query .= $store->prefix.'_saml_LogoutStore (_authSource(191), _nameId)'; + $query = 'CREATE INDEX ' . $store->prefix . '_saml_LogoutStore_nameId ON '; + $query .= $store->prefix . '_saml_LogoutStore (_authSource(191), _nameId)'; $store->pdo->exec($query); - $query = 'ALTER TABLE '.$store->prefix.'_saml_LogoutStore ADD UNIQUE KEY (_authSource(191), _nameID, _sessionIndex)'; + $query = 'ALTER TABLE ' . $store->prefix . + '_saml_LogoutStore ADD UNIQUE KEY (_authSource(191), _nameID, _sessionIndex)'; $store->pdo->exec($query); } @@ -102,10 +113,11 @@ private static function createLogoutTable(Store\SQL $store) switch ($store->driver) { case 'pgsql': // This does not affect the NOT NULL constraint - $update = ['ALTER TABLE '.$store->prefix. + $update = [ + 'ALTER TABLE ' . $store->prefix . '_saml_LogoutStore ALTER COLUMN _authSource TYPE VARCHAR(255)']; break; - case 'sqlite': + case 'sqlite': /** * Because SQLite does not support field alterations, the approach is to: * Create a new table without the proper column size @@ -115,23 +127,33 @@ private static function createLogoutTable(Store\SQL $store) * Read the index */ $update = [ - 'CREATE TABLE '.$store->prefix.'_saml_LogoutStore_new (_authSource VARCHAR(255) NOT NULL,'. - '_nameId VARCHAR(40) NOT NULL, _sessionIndex VARCHAR(50) NOT NULL, _expire TIMESTAMP NOT NULL,'. - '_sessionId VARCHAR(50) NOT NULL, UNIQUE (_authSource, _nameID, _sessionIndex))', - 'INSERT INTO '.$store->prefix.'_saml_LogoutStore_new SELECT * FROM '.$store->prefix.'_saml_LogoutStore', - 'DROP TABLE '.$store->prefix.'_saml_LogoutStore', - 'ALTER TABLE '.$store->prefix.'_saml_LogoutStore_new RENAME TO '.$store->prefix.'_saml_LogoutStore', - 'CREATE INDEX '.$store->prefix.'_saml_LogoutStore_expire ON '.$store->prefix.'_saml_LogoutStore (_expire)', - 'CREATE INDEX '.$store->prefix.'_saml_LogoutStore_nameId ON '.$store->prefix.'_saml_LogoutStore (_authSource, _nameId)' + 'CREATE TABLE ' . $store->prefix . + '_saml_LogoutStore_new (_authSource VARCHAR(255) NOT NULL,' . + '_nameId VARCHAR(40) NOT NULL, _sessionIndex VARCHAR(50) NOT NULL, ' . + '_expire TIMESTAMP NOT NULL, _sessionId VARCHAR(50) NOT NULL, UNIQUE ' . + '(_authSource, _nameID, _sessionIndex))', + 'INSERT INTO ' . $store->prefix . '_saml_LogoutStore_new SELECT * FROM ' . + $store->prefix . '_saml_LogoutStore', + 'DROP TABLE ' . $store->prefix . '_saml_LogoutStore', + 'ALTER TABLE ' . $store->prefix . '_saml_LogoutStore_new RENAME TO ' . + $store->prefix . '_saml_LogoutStore', + 'CREATE INDEX ' . $store->prefix . '_saml_LogoutStore_expire ON ' . + $store->prefix . '_saml_LogoutStore (_expire)', + 'CREATE INDEX ' . $store->prefix . '_saml_LogoutStore_nameId ON ' . + $store->prefix . '_saml_LogoutStore (_authSource, _nameId)' ]; break; case 'mysql': - $update = ['ALTER TABLE '.$store->prefix. - '_saml_LogoutStore MODIFY _authSource VARCHAR(191) NOT NULL']; + $update = [ + 'ALTER TABLE ' . $store->prefix . + '_saml_LogoutStore MODIFY _authSource VARCHAR(191) NOT NULL' + ]; break; default: - $update = ['ALTER TABLE '.$store->prefix. - '_saml_LogoutStore MODIFY _authSource VARCHAR(255) NOT NULL']; + $update = [ + 'ALTER TABLE ' . $store->prefix . + '_saml_LogoutStore MODIFY _authSource VARCHAR(255) NOT NULL' + ]; break; } @@ -140,29 +162,30 @@ private static function createLogoutTable(Store\SQL $store) $store->pdo->exec($query); } } catch (\Exception $e) { - Logger::warning('Database error: '.var_export($store->pdo->errorInfo(), true)); + Logger::warning('Database error: ' . var_export($store->pdo->errorInfo(), true)); return; } $store->setTableVersion('saml_LogoutStore', 2); return; } - $query = 'CREATE TABLE '.$store->prefix.'_saml_LogoutStore ( - _authSource VARCHAR('.($store->driver === 'mysql' ? '191' : '255').') NOT NULL, + $query = 'CREATE TABLE ' . $store->prefix . '_saml_LogoutStore ( + _authSource VARCHAR(' . ($store->driver === 'mysql' ? '191' : '255') . ') NOT NULL, _nameId VARCHAR(40) NOT NULL, _sessionIndex VARCHAR(50) NOT NULL, - _expire DATETIME NOT NULL, + _expire ' . ($store->driver === 'pgsql' ? 'TIMESTAMP' : 'DATETIME') . ' NOT NULL, _sessionId VARCHAR(50) NOT NULL, - UNIQUE (_authSource'.($store->driver === 'mysql' ? '(191)' : '').', _nameID, _sessionIndex) + UNIQUE (_authSource' . ($store->driver === 'mysql' ? '(191)' : '') . ', _nameID, _sessionIndex) )'; $store->pdo->exec($query); - $query = 'CREATE INDEX '.$store->prefix.'_saml_LogoutStore_expire ON '; - $query .= $store->prefix.'_saml_LogoutStore (_expire)'; + $query = 'CREATE INDEX ' . $store->prefix . '_saml_LogoutStore_expire ON '; + $query .= $store->prefix . '_saml_LogoutStore (_expire)'; $store->pdo->exec($query); - $query = 'CREATE INDEX '.$store->prefix.'_saml_LogoutStore_nameId ON '; - $query .= $store->prefix.'_saml_LogoutStore (_authSource'.($store->driver === 'mysql' ? '(191)' : '').', _nameId)'; + $query = 'CREATE INDEX ' . $store->prefix . '_saml_LogoutStore_nameId ON '; + $query .= $store->prefix . '_saml_LogoutStore (_authSource' . ($store->driver === 'mysql' ? '(191)' : '') . + ', _nameId)'; $store->pdo->exec($query); $store->setTableVersion('saml_LogoutStore', 4); @@ -179,7 +202,7 @@ private static function cleanLogoutStore(Store\SQL $store) { Logger::debug('saml.LogoutStore: Cleaning logout store.'); - $query = 'DELETE FROM '.$store->prefix.'_saml_LogoutStore WHERE _expire < :now'; + $query = 'DELETE FROM ' . $store->prefix . '_saml_LogoutStore WHERE _expire < :now'; $params = ['now' => gmdate('Y-m-d H:i:s')]; $query = $store->pdo->prepare($query); @@ -226,7 +249,7 @@ private static function addSessionSQL( '_sessionId' => $sessionId, ]; $store->insertOrUpdate( - $store->prefix.'_saml_LogoutStore', + $store->prefix . '_saml_LogoutStore', ['_authSource', '_nameId', '_sessionIndex'], $data ); @@ -255,8 +278,8 @@ private static function getSessionsSQL(Store\SQL $store, $authId, $nameId) ]; // We request the columns in lowercase in order to be compatible with PostgreSQL - $query = 'SELECT _sessionIndex AS _sessionindex, _sessionId AS _sessionid FROM '.$store->prefix; - $query .= '_saml_LogoutStore'.' WHERE _authSource = :_authSource AND _nameId = :_nameId AND _expire >= :now'; + $query = 'SELECT _sessionIndex AS _sessionindex, _sessionId AS _sessionid FROM ' . $store->prefix; + $query .= '_saml_LogoutStore WHERE _authSource = :_authSource AND _nameId = :_nameId AND _expire >= :now'; $query = $store->pdo->prepare($query); $query->execute($params); @@ -285,7 +308,7 @@ private static function getSessionsStore(Store $store, $authId, $nameId, array $ $res = []; foreach ($sessionIndexes as $sessionIndex) { - $sessionId = $store->get('saml.LogoutStore', $nameId.':'.$sessionIndex); + $sessionId = $store->get('saml.LogoutStore', $nameId . ':' . $sessionIndex); if ($sessionId === null) { continue; } @@ -318,6 +341,12 @@ public static function addSession($authId, $nameId, $sessionIndex, $expire) assert(is_string($sessionIndex) || $sessionIndex === null); assert(is_int($expire)); + $session = Session::getSessionFromRequest(); + if ($session->isTransient()) { + // transient sessions are useless for this purpose, nothing to do + return; + } + if ($sessionIndex === null) { /* This IdP apparently did not include a SessionIndex, and thus probably does not * support SLO. We still want to add the session to the data store just in case @@ -346,13 +375,13 @@ public static function addSession($authId, $nameId, $sessionIndex, $expire) $sessionIndex = sha1($sessionIndex); } - $session = Session::getSessionFromRequest(); + /** @var string $sessionId */ $sessionId = $session->getSessionId(); if ($store instanceof Store\SQL) { self::addSessionSQL($store, $authId, $strNameId, $sessionIndex, $expire, $sessionId); } else { - $store->set('saml.LogoutStore', $strNameId.':'.$sessionIndex, $sessionId, $expire); + $store->set('saml.LogoutStore', $strNameId . ':' . $sessionIndex, $sessionId, $expire); } } @@ -431,7 +460,7 @@ public static function logoutSessions($authId, $nameId, array $sessionIndexes) } Logger::info( - 'saml.LogoutStore: Logging out of session with trackId ['.$session->getTrackID().'].' + 'saml.LogoutStore: Logging out of session with trackId [' . $session->getTrackID() . '].' ); $session->doLogout($authId); $numLoggedOut += 1; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/templates/proxy/invalid_session.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/templates/proxy/invalid_session.tpl.php similarity index 100% rename from vendor/simplesamlphp/simplesamlphp/modules/saml/templates/proxy/invalid_session.php rename to vendor/simplesamlphp/simplesamlphp/modules/saml/templates/proxy/invalid_session.tpl.php diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/www/idp/certs.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/www/idp/certs.php index 7a2597519abfc06c5aaf63e31dd4718b98bfca5b..5f11e7461db7d38fccabcf090d65fe5996ecfa35 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/www/idp/certs.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/www/idp/certs.php @@ -18,19 +18,22 @@ switch ($_SERVER['PATH_INFO']) { case '/new_idp.crt': - $certInfo = SimpleSAML\Utils\Crypto::loadPublicKey($idpmeta, false, 'new_'); + /** @var array $certInfo */ + $certInfo = SimpleSAML\Utils\Crypto::loadPublicKey($idpmeta, true, 'new_'); break; case '/idp.crt': + /** @var array $certInfo */ $certInfo = SimpleSAML\Utils\Crypto::loadPublicKey($idpmeta, true); break; case '/https.crt': + /** @var array $certInfo */ $certInfo = SimpleSAML\Utils\Crypto::loadPublicKey($idpmeta, true, 'https.'); break; default: throw new \SimpleSAML\Error\NotFound('Unknown certificate.'); } - -header('Content-Disposition: attachment; filename='.substr($_SERVER['PATH_INFO'], 1)); +header('Content-Disposition: attachment; filename=' . substr($_SERVER['PATH_INFO'], 1)); header('Content-Type: application/x-x509-ca-cert'); + echo $certInfo['PEM']; exit(0); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/www/proxy/invalid_session.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/www/proxy/invalid_session.php index 1afc151ae11fbc928a374f9d8e5062be007077bf..3b9c09610414b1712b7aed1c205a947d22fdcefa 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/www/proxy/invalid_session.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/www/proxy/invalid_session.php @@ -16,9 +16,11 @@ try { // try to get the state + /** @var array $state State can never be null without a third argument */ $state = \SimpleSAML\Auth\State::loadState($_REQUEST['AuthState'], 'saml:proxy:invalid_idp'); } catch (\Exception $e) { // the user probably hit the back button after starting the logout, try to recover the state with another stage + /** @var array $state State can never be null without a third argument */ $state = \SimpleSAML\Auth\State::loadState($_REQUEST['AuthState'], 'core:Logout:afterbridge'); // success! Try to continue with reauthentication, since we no longer have a valid session here @@ -38,14 +40,15 @@ } if (isset($_POST['continue'])) { - // log the user out before being able to login again - $as = \SimpleSAML\Auth\Source::getById($state['saml:sp:AuthId'], '\SimpleSAML\Module\saml\Auth\Source\SP'); /** @var \SimpleSAML\Module\saml\Auth\Source\SP $as */ + $as = \SimpleSAML\Auth\Source::getById($state['saml:sp:AuthId'], '\SimpleSAML\Module\saml\Auth\Source\SP'); + + // log the user out before being able to login again $as->reauthLogout($state); } $cfg = \SimpleSAML\Configuration::getInstance(); -$template = new \SimpleSAML\XHTML\Template($cfg, 'saml:proxy/invalid_session.php'); +$template = new \SimpleSAML\XHTML\Template($cfg, 'saml:proxy/invalid_session.tpl.php'); $translator = $template->getTranslator(); $template->data['AuthState'] = (string) $_REQUEST['AuthState']; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/www/sp/discoresp.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/www/sp/discoresp.php index 94ac7c1d77aad0da838d2b0e61142e4cee7063dd..ec944c3ed8ed6e15bf997f2cf8b2e671980f4fe5 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/www/sp/discoresp.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/www/sp/discoresp.php @@ -11,6 +11,8 @@ if (!array_key_exists('idpentityid', $_REQUEST)) { throw new \SimpleSAML\Error\BadRequest('Missing idpentityid to discovery service response handler'); } + +/** @var array $state */ $state = \SimpleSAML\Auth\State::loadState($_REQUEST['AuthID'], 'saml:sp:sso'); // Find authentication source @@ -19,7 +21,7 @@ $source = \SimpleSAML\Auth\Source::getById($sourceId); if ($source === null) { - throw new Exception('Could not find authentication source with id '.$sourceId); + throw new Exception('Could not find authentication source with id ' . $sourceId); } if (!($source instanceof \SimpleSAML\Module\saml\Auth\Source\SP)) { throw new \SimpleSAML\Error\Exception('Source type changed?'); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/www/sp/metadata.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/www/sp/metadata.php index 1289d31e9880e28f0a9b54b0e3fd4a0ff7ab5575..b13d86fed33df9cadcc69736232f554d5e5b9adb 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/www/sp/metadata.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/www/sp/metadata.php @@ -33,7 +33,7 @@ ]; $slob = $spconfig->getArray('SingleLogoutServiceBinding', $slosvcdefault); -$slol = \SimpleSAML\Module::getModuleURL('saml/sp/saml2-logout.php/'.$sourceId); +$slol = \SimpleSAML\Module::getModuleURL('saml/sp/saml2-logout.php/' . $sourceId); foreach ($slob as $binding) { if ($binding == \SAML2\Constants::BINDING_SOAP && !($store instanceof \SimpleSAML\Store\SQL)) { @@ -42,7 +42,7 @@ } $metaArray20['SingleLogoutService'][] = [ 'Binding' => $binding, - 'Location' => $slol, + 'Location' => $spconfig->getString('SingleLogoutServiceLocation', $slol), ]; } @@ -67,35 +67,37 @@ switch ($services) { case 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST': $acsArray['Binding'] = \SAML2\Constants::BINDING_HTTP_POST; - $acsArray['Location'] = \SimpleSAML\Module::getModuleURL('saml/sp/saml2-acs.php/'.$sourceId); + $acsArray['Location'] = \SimpleSAML\Module::getModuleURL('saml/sp/saml2-acs.php/' . $sourceId); if (!in_array(\SAML2\Constants::NS_SAMLP, $supported_protocols, true)) { $supported_protocols[] = \SAML2\Constants::NS_SAMLP; } break; case 'urn:oasis:names:tc:SAML:1.0:profiles:browser-post': $acsArray['Binding'] = 'urn:oasis:names:tc:SAML:1.0:profiles:browser-post'; - $acsArray['Location'] = \SimpleSAML\Module::getModuleURL('saml/sp/saml1-acs.php/'.$sourceId); + $acsArray['Location'] = \SimpleSAML\Module::getModuleURL('saml/sp/saml1-acs.php/' . $sourceId); if (!in_array('urn:oasis:names:tc:SAML:1.1:protocol', $supported_protocols, true)) { $supported_protocols[] = 'urn:oasis:names:tc:SAML:1.1:protocol'; } break; case 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact': $acsArray['Binding'] = 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact'; - $acsArray['Location'] = \SimpleSAML\Module::getModuleURL('saml/sp/saml2-acs.php/'.$sourceId); + $acsArray['Location'] = \SimpleSAML\Module::getModuleURL('saml/sp/saml2-acs.php/' . $sourceId); if (!in_array(\SAML2\Constants::NS_SAMLP, $supported_protocols, true)) { $supported_protocols[] = \SAML2\Constants::NS_SAMLP; } break; case 'urn:oasis:names:tc:SAML:1.0:profiles:artifact-01': $acsArray['Binding'] = 'urn:oasis:names:tc:SAML:1.0:profiles:artifact-01'; - $acsArray['Location'] = \SimpleSAML\Module::getModuleURL('saml/sp/saml1-acs.php/'.$sourceId.'/artifact'); + $acsArray['Location'] = \SimpleSAML\Module::getModuleURL( + 'saml/sp/saml1-acs.php/' . $sourceId . '/artifact' + ); if (!in_array('urn:oasis:names:tc:SAML:1.1:protocol', $supported_protocols, true)) { $supported_protocols[] = 'urn:oasis:names:tc:SAML:1.1:protocol'; } break; case 'urn:oasis:names:tc:SAML:2.0:profiles:holder-of-key:SSO:browser': $acsArray['Binding'] = 'urn:oasis:names:tc:SAML:2.0:profiles:holder-of-key:SSO:browser'; - $acsArray['Location'] = \SimpleSAML\Module::getModuleURL('saml/sp/saml2-acs.php/'.$sourceId); + $acsArray['Location'] = \SimpleSAML\Module::getModuleURL('saml/sp/saml2-acs.php/' . $sourceId); $acsArray['hoksso:ProtocolBinding'] = \SAML2\Constants::BINDING_HTTP_REDIRECT; if (!in_array(\SAML2\Constants::NS_SAMLP, $supported_protocols, true)) { $supported_protocols[] = \SAML2\Constants::NS_SAMLP; @@ -106,7 +108,7 @@ $index++; } -$metaArray20['AssertionConsumerService'] = $eps; +$metaArray20['AssertionConsumerService'] = $spconfig->getArray('AssertionConsumerService', $eps); $keys = []; $certInfo = \SimpleSAML\Utils\Crypto::loadPublicKey($spconfig, false, 'new_'); @@ -208,9 +210,11 @@ // add technical contact $email = $config->getString('technicalcontact_email', 'na@example.org'); if ($email && $email !== 'na@example.org') { - $techcontact['emailAddress'] = $email; - $techcontact['name'] = $config->getString('technicalcontact_name', null); - $techcontact['contactType'] = 'technical'; + $techcontact = [ + 'emailAddress' => $email, + 'name' => $config->getString('technicalcontact_name', null), + 'contactType' => 'technical' + ]; $metaArray20['contacts'][] = \SimpleSAML\Utils\Config\Metadata::getContact($techcontact); } @@ -268,13 +272,14 @@ $xml = \SimpleSAML\Metadata\Signer::sign($xml, $spconfig->toArray(), 'SAML 2 SP'); if (array_key_exists('output', $_REQUEST) && $_REQUEST['output'] == 'xhtml') { - $t = new \SimpleSAML\XHTML\Template($config, 'metadata.php', 'admin'); + $t = new \SimpleSAML\XHTML\Template($config, 'metadata.tpl.php', 'admin'); $t->data['clipboard.js'] = true; $t->data['header'] = 'saml20-sp'; // TODO: Replace with headerString in 2.0 $t->data['headerString'] = \SimpleSAML\Locale\Translate::noop('metadata_saml20-sp'); $t->data['metadata'] = htmlspecialchars($xml); - $t->data['metadataflat'] = '$metadata['.var_export($entityId, true).'] = '.var_export($metaArray20, true).';'; + $t->data['metadataflat'] = '$metadata[' . var_export($entityId, true) + . '] = ' . var_export($metaArray20, true) . ';'; $t->data['metaurl'] = $source->getMetadataURL(); $t->show(); } else { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/www/sp/saml1-acs.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/www/sp/saml1-acs.php index db18627fd98e37ac800e7609708f392d23cb0057..6b981774ce113d96c7e72748fab7c3c4874f5a83 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/www/sp/saml1-acs.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/www/sp/saml1-acs.php @@ -21,6 +21,7 @@ } $sourceId = substr($sourceId, 1, $end - 1); +/** @var \SimpleSAML\Module\saml\Auth\Source\SP $source */ $source = \SimpleSAML\Auth\Source::getById($sourceId, '\SimpleSAML\Module\saml\Auth\Source\SP'); SimpleSAML\Logger::debug('Received SAML1 response'); @@ -35,6 +36,7 @@ 'saml:sp:RelayState' => \SimpleSAML\Utils\HTTP::checkURLAllowed($target), ]; } else { + /** @var array $state State can never be null without a third argument */ $state = \SimpleSAML\Auth\State::loadState($_REQUEST['TARGET'], 'saml:sp:sso'); // Check that the authentication source is correct @@ -66,7 +68,7 @@ $responseXML = base64_decode($responseXML); $isValidated = false; /* Must check signature on response. */ } else { - assert(false); + throw new \SimpleSAML\Error\BadRequest('Missing SAMLResponse or SAMLart parameter.'); } $response = new \SimpleSAML\XML\Shib13\AuthnResponse(); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/www/sp/saml2-acs.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/www/sp/saml2-acs.php index 34c80bc766a0c4c9f6f19a183548d732269ae669..4d05bf2b8ecf0fe4defa5d0fc2a0598c1c126ced 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/www/sp/saml2-acs.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/www/sp/saml2-acs.php @@ -9,9 +9,11 @@ } $sourceId = substr($_SERVER['PATH_INFO'], 1); + +/** @var \SimpleSAML\Module\saml\Auth\Source\SP $source */ $source = \SimpleSAML\Auth\Source::getById($sourceId, '\SimpleSAML\Module\saml\Auth\Source\SP'); -$spMetadata = $source->getMetadata(); +$spMetadata = $source->getMetadata(); try { $b = \SAML2\Binding::getCurrentBinding(); } catch (Exception $e) { @@ -51,14 +53,17 @@ } } -$idp = $issuer; if ($issuer instanceof \SAML2\XML\saml\Issuer) { - $idp = $idp->getValue(); + $issuer = $issuer->getValue(); + if ($issuer === null) { + // no issuer found in the assertions + throw new Exception('Missing <saml:Issuer> in message delivered to AssertionConsumerService.'); + } } $session = \SimpleSAML\Session::getSessionFromRequest(); $prevAuth = $session->getAuthData($sourceId, 'saml:sp:prevAuth'); -if ($prevAuth !== null && $prevAuth['id'] === $response->getId() && $prevAuth['issuer'] === $idp) { +if ($prevAuth !== null && $prevAuth['id'] === $response->getId() && $prevAuth['issuer'] === $issuer) { /* OK, it looks like this message has the same issuer * and ID as the SP session we already have active. We * therefore assume that the user has somehow triggered @@ -77,17 +82,17 @@ throw new \SimpleSAML\Error\Exception('Duplicate assertion received.'); } -$idpMetadata = []; - +$idpMetadata = null; $state = null; $stateId = $response->getInResponseTo(); + if (!empty($stateId)) { // this should be a response to a request we sent earlier try { $state = \SimpleSAML\Auth\State::loadState($stateId, 'saml:sp:sso'); } catch (Exception $e) { // something went wrong, - SimpleSAML\Logger::warning('Could not load state specified by InResponseTo: '.$e->getMessage(). + SimpleSAML\Logger::warning('Could not load state specified by InResponseTo: ' . $e->getMessage() . ' Processing response as unsolicited.'); } } @@ -103,11 +108,13 @@ // check that the issuer is the one we are expecting assert(array_key_exists('ExpectedIssuer', $state)); - if ($state['ExpectedIssuer'] !== $idp) { - $idpMetadata = $source->getIdPMetadata($idp); + if ($state['ExpectedIssuer'] !== $issuer) { + $idpMetadata = $source->getIdPMetadata($issuer); $idplist = $idpMetadata->getArrayize('IDPList', []); if (!in_array($state['ExpectedIssuer'], $idplist, true)) { - SimpleSAML\Logger::warning('The issuer of the response not match to the identity provider we sent the request to.'); + SimpleSAML\Logger::warning( + 'The issuer of the response not match to the identity provider we sent the request to.' + ); } } } else { @@ -124,10 +131,10 @@ ]; } -SimpleSAML\Logger::debug('Received SAML2 Response from '.var_export($idp, true).'.'); +SimpleSAML\Logger::debug('Received SAML2 Response from ' . var_export($issuer, true) . '.'); -if (empty($idpMetadata)) { - $idpMetadata = $source->getIdPmetadata($idp); +if (is_null($idpMetadata)) { + $idpMetadata = $source->getIdPmetadata($issuer); } try { @@ -138,13 +145,13 @@ \SimpleSAML\Auth\State::throwException($state, $e); } - $authenticatingAuthority = null; $nameId = null; $sessionIndex = null; $expire = null; $attributes = []; $foundAuthnStatement = false; + foreach ($assertions as $assertion) { // check for duplicate assertion (replay attack) $store = \SimpleSAML\Store::getInstance(); @@ -165,7 +172,6 @@ $store->set('saml.AssertionReceived', $aID, true, $notOnOrAfter); } - if ($authenticatingAuthority === null) { $authenticatingAuthority = $assertion->getAuthenticatingAuthority(); } @@ -186,6 +192,7 @@ $foundAuthnStatement = true; } } +$assertion = end($assertions); if (!$foundAuthnStatement) { $e = new \SimpleSAML\Error\Exception('No AuthnStatement found in assertion(s).'); @@ -206,7 +213,7 @@ // we need to save the NameID and SessionIndex for logout $logoutState = [ 'saml:logout:Type' => 'saml2', - 'saml:logout:IdP' => $idp, + 'saml:logout:IdP' => $issuer, 'saml:logout:NameID' => $nameId, 'saml:logout:SessionIndex' => $sessionIndex, ]; @@ -233,7 +240,7 @@ $state['LogoutState'] = $logoutState; $state['saml:AuthenticatingAuthority'] = $authenticatingAuthority; -$state['saml:AuthenticatingAuthority'][] = $idp; +$state['saml:AuthenticatingAuthority'][] = $issuer; $state['PersistentAuthData'][] = 'saml:AuthenticatingAuthority'; $state['saml:AuthnInstant'] = $assertion->getAuthnInstant(); $state['PersistentAuthData'][] = 'saml:AuthnInstant'; @@ -249,7 +256,7 @@ // note some information about the authentication, in case we receive the same response again $state['saml:sp:prevAuth'] = [ 'id' => $response->getId(), - 'issuer' => $idp, + 'issuer' => $issuer, ]; if (isset($state['\SimpleSAML\Auth\Source.ReturnURL'])) { $state['saml:sp:prevAuth']['redirect'] = $state['\SimpleSAML\Auth\Source.ReturnURL']; @@ -258,5 +265,5 @@ } $state['PersistentAuthData'][] = 'saml:sp:prevAuth'; -$source->handleResponse($state, $idp, $attributes); +$source->handleResponse($state, $issuer, $attributes); assert(false); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/saml/www/sp/saml2-logout.php b/vendor/simplesamlphp/simplesamlphp/modules/saml/www/sp/saml2-logout.php index e1814841232a37c915eee7b98721f86781a5a8cd..61950a71e17664bee2945037254192de434040ae 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/saml/www/sp/saml2-logout.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/saml/www/sp/saml2-logout.php @@ -12,11 +12,11 @@ $sourceId = substr($_SERVER['PATH_INFO'], 1); +/** @var \SimpleSAML\Module\saml\Auth\Source\SP $source */ $source = \SimpleSAML\Auth\Source::getById($sourceId); if ($source === null) { - throw new \Exception('Could not find authentication source with id '.$sourceId); -} -if (!($source instanceof \SimpleSAML\Module\saml\Auth\Source\SP)) { + throw new \Exception('Could not find authentication source with id ' . $sourceId); +} elseif (!($source instanceof \SimpleSAML\Module\saml\Auth\Source\SP)) { throw new \SimpleSAML\Error\Exception('Source type changed?'); } @@ -35,15 +35,18 @@ $message = $binding->receive(); $issuer = $message->getIssuer(); -if ($issuer === null) { - // Without an issuer we have no way to respond to the message. - throw new \SimpleSAML\Error\BadRequest('Received message on logout endpoint without issuer.'); -} elseif ($issuer instanceof \SAML2\XML\saml\Issuer) { +if ($issuer instanceof \SAML2\XML\saml\Issuer) { $idpEntityId = $issuer->getValue(); } else { $idpEntityId = $issuer; } +if ($idpEntityId === null) { + // Without an issuer we have no way to respond to the message. + throw new \SimpleSAML\Error\BadRequest('Received message on logout endpoint without issuer.'); +} + +/** @var \SimpleSAML\Module\saml\Auth\Source\SP $source */ $spEntityId = $source->getEntityId(); $metadata = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); @@ -66,7 +69,7 @@ if (!$message->isSuccess()) { \SimpleSAML\Logger::warning( - 'Unsuccessful logout. Status was: '.\SimpleSAML\Module\saml\Message::getResponseError($message) + 'Unsuccessful logout. Status was: ' . \SimpleSAML\Module\saml\Message::getResponseError($message) ); } @@ -74,14 +77,14 @@ $state['saml:sp:LogoutStatus'] = $message->getStatus(); \SimpleSAML\Auth\Source::completeLogout($state); } elseif ($message instanceof \SAML2\LogoutRequest) { - \SimpleSAML\Logger::debug('module/saml2/sp/logout: Request from '.$idpEntityId); - \SimpleSAML\Logger::stats('saml20-idp-SLO idpinit '.$spEntityId.' '.$idpEntityId); + \SimpleSAML\Logger::debug('module/saml2/sp/logout: Request from ' . $idpEntityId); + \SimpleSAML\Logger::stats('saml20-idp-SLO idpinit ' . $spEntityId . ' ' . $idpEntityId); if ($message->isNameIdEncrypted()) { try { $keys = \SimpleSAML\Module\saml\Message::getDecryptionKeys($idpMetadata, $spMetadata); } catch (\Exception $e) { - throw new \SimpleSAML\Error\Exception('Error decrypting NameID: '.$e->getMessage()); + throw new \SimpleSAML\Error\Exception('Error decrypting NameID: ' . $e->getMessage()); } $blacklist = \SimpleSAML\Module\saml\Message::getBlacklistedAlgorithms($idpMetadata, $spMetadata); @@ -90,11 +93,11 @@ foreach ($keys as $i => $key) { try { $message->decryptNameId($key, $blacklist); - \SimpleSAML\Logger::debug('Decryption with key #'.$i.' succeeded.'); + \SimpleSAML\Logger::debug('Decryption with key #' . $i . ' succeeded.'); $lastException = null; break; } catch (\Exception $e) { - \SimpleSAML\Logger::debug('Decryption with key #'.$i.' failed with exception: '.$e->getMessage()); + \SimpleSAML\Logger::debug('Decryption with key #' . $i . ' failed with exception: ' . $e->getMessage()); $lastException = $e; } } @@ -119,9 +122,10 @@ $lr->setInResponseTo($message->getId()); if ($numLoggedOut < count($sessionIndexes)) { - \SimpleSAML\Logger::warning('Logged out of '.$numLoggedOut.' of '.count($sessionIndexes).' sessions.'); + \SimpleSAML\Logger::warning('Logged out of ' . $numLoggedOut . ' of ' . count($sessionIndexes) . ' sessions.'); } + /** @var array $dst */ $dst = $idpMetadata->getEndpointPrioritizedByBinding( 'SingleLogoutService', [ @@ -143,5 +147,5 @@ $binding->send($lr); } else { - throw new \SimpleSAML\Error\BadRequest('Unknown message received on logout endpoint: '.get_class($message)); + throw new \SimpleSAML\Error\BadRequest('Unknown message received on logout endpoint: ' . get_class($message)); } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..084410f1da100a54a5061274f899839a5b3a91e1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/.php_cs.dist @@ -0,0 +1,18 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/config-templates', + __DIR__ . '/hooks', + __DIR__ . '/templates', + __DIR__ . '/tests', + __DIR__ . '/www', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..3c250287a743959883e40e541e22f26fb1dd8635 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/.travis.yml @@ -0,0 +1,35 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +matrix: + allow_failures: + - php: 7.3 + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then composer require --dev vimeo/psalm:1.1.9; fi + +script: + - bin/check-syntax.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi +# - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/LICENSE b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..a345e48d049f9c6756e9364e908b3f26e36c9df1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/LICENSE @@ -0,0 +1,459 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/bin/check-syntax.sh b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/bin/check-syntax.sh new file mode 100755 index 0000000000000000000000000000000000000000..75a810c21842c5c381392a13daa1d742adadd44c --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/bin/check-syntax.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +PHP='/usr/bin/env php' +RETURN=0 + +# check PHP files +for FILE in `find config-templates hooks templates tests www -name "*.php"`; do + $PHP -l $FILE > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Syntax check failed for ${FILE}" + RETURN=`expr ${RETURN} + 1` + fi +done + +exit $RETURN diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..20073b1e75dcddaa275ba2be50a5b2e4ad551ef1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/composer.json @@ -0,0 +1,42 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-sanitycheck", + "description": "Perform sanity checks on configuration", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "sanitycheck"], + "license": "LGPL-2.1-or-later", + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\sanitycheck\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "webmozart/assert": "~1.4" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "phpunit/phpunit": "~5.7" + }, + "support": { + "issues": "https://github.com/tvdijen/simplesamlphp-module-sanitycheck/issues", + "source": "https://github.com/tvdijen/simplesamlphp-module-sanitycheck" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/dictionaries/strings.translation.json b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/dictionaries/strings.translation.json index a3940e048140e4371a2dd139dc7e4960f61738c1..802fe912c7271d1099e12cbb05fb30dbc4f8430f 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/dictionaries/strings.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/dictionaries/strings.translation.json @@ -2,6 +2,7 @@ "link_sanitycheck": { "es": "Comprobaciones básicas de la instalación", "no": "Sjekk din installasjon", - "nn": "Sjekk din installasjon" + "nn": "Sjekk din installasjon", + "ca": "Comprovació de la validesa de la vostra configuració de SimpleSAMLphp" } } \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/hooks/hook_configpage.php b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/hooks/hook_configpage.php index a4db0492e7139c7cdaed3741af3bbf45b0643e55..68856b9305f72040d8c14a372ee18d1fb908a074 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/hooks/hook_configpage.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/hooks/hook_configpage.php @@ -1,8 +1,10 @@ <?php + /** * Hook to add the sanitycheck link to the config page. * * @param \SimpleSAML\XHTML\Template $template The template that we should alter in this hook. + * @return void */ function sanitycheck_hook_configpage(\SimpleSAML\XHTML\Template &$template) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/hooks/hook_cron.php b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/hooks/hook_cron.php index 15e0736ddbdd7c6457dd586b210f7af6ae4295db..0ab1a6604666aaa381e6334644c1fbd40954377d 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/hooks/hook_cron.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/hooks/hook_cron.php @@ -1,10 +1,11 @@ <?php + /** * Hook to run a cron job. * * @param array &$croninfo Output + * @return void */ - function sanitycheck_hook_cron(&$croninfo) { assert(is_array($croninfo)); @@ -35,7 +36,7 @@ function sanitycheck_hook_cron(&$croninfo) $croninfo['summary'][] = 'Sanitycheck error: '.$err; } } - } catch (Exception $e) { + } catch (\Exception $e) { $croninfo['summary'][] = 'Error executing sanity check: '.$e->getMessage(); } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/hooks/hook_frontpage.php b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/hooks/hook_frontpage.php index 1e860e6e68234e8fbca4688fda72ee8e15b216d5..e1b1a126d9c94b0df8816ac3f87d11fe6b03e268 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/hooks/hook_frontpage.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/hooks/hook_frontpage.php @@ -1,8 +1,10 @@ <?php + /** * Hook to add the modinfo module to the frontpage. * * @param array &$links The links on the frontpage, split into sections. + * @return void */ function sanitycheck_hook_frontpage(&$links) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/hooks/hook_moduleinfo.php b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/hooks/hook_moduleinfo.php index 87d014e2ec5a2e0c2098e1fe9aab5a60062d9d26..d0eb684e1f3ab7ba9455a77dbae25a0a4a1a76ab 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/hooks/hook_moduleinfo.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/hooks/hook_moduleinfo.php @@ -1,8 +1,10 @@ <?php + /** * This hook lets the module describe itself. * * @param array &$moduleinfo The links on the frontpage, split into sections. + * @return void */ function sanitycheck_hook_moduleinfo(&$moduleinfo) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/hooks/hook_sanitycheck.php b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/hooks/hook_sanitycheck.php index 8aec6582bff9d6e24d147d8012b4b9cb3264dda3..6288c1be69767b617bec3e5ee13dd9cbf6bade7f 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/hooks/hook_sanitycheck.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/hooks/hook_sanitycheck.php @@ -1,8 +1,10 @@ <?php + /** * Hook to add the modinfo module to the frontpage. * * @param array &$hookinfo hookinfo + * @return void */ function sanitycheck_hook_sanitycheck(&$hookinfo) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0985fdd804b18d8d9179ecd956d63582c189e95 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/phpunit.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..ce1e5b4b8d5ba91c858e191bfb138c847069d3ac --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/psalm.xml @@ -0,0 +1,33 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp sanitycheck module" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="config-templates" /> + <directory name="hooks" /> + <directory name="templates" /> + <directory name="www" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/templates/check.tpl.php b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/templates/check.tpl.php index ba9f69ada602d490a9f01bf6593e81a123f02800..2dba59166b643198863c604c2774eca9629fecba 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/templates/check.tpl.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/templates/check.tpl.php @@ -11,11 +11,9 @@ foreach ($this->data['errors'] as $err) { echo '<li>'.$err.'</li>'; } + echo '</ul></div>'; } -?> - </ul> -</div> -<?php + if (count($this->data['info']) > 0) { echo '<div style="border: 1px solid #ccc; background: #eee; margin: 1em; padding: .5em">'; echo '<p><img class="float-r" src="/'.$this->data['baseurlpath']. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..57fcb7dd392498da7eaea23c370e811186306ccd --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot.'/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot.'/vendor/simplesamlphp/simplesamlphp/modules/sanitycheck'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/.codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/.codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/.codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..e7d314696c7e461b645c3d603f3a5d3034082ba5 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/.php_cs.dist @@ -0,0 +1,15 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/lib', + __DIR__ . '/tests', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..eeeefcda8e6dbbcd760dc3ee13fac9928dadea44 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/.travis.yml @@ -0,0 +1,36 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +matrix: + allow_failures: + - php: 7.3 + +before_script: + - pecl install krb5 + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then composer require --dev vimeo/psalm:1.1.9; fi + +script: + - bin/check-syntax.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi +# - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/LICENSE b/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..0a041280bd00a9d068f503b8ee7ce35214bd24a1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/bin/check-syntax.sh b/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/bin/check-syntax.sh new file mode 100755 index 0000000000000000000000000000000000000000..6938306b365213de303e7b9cab6cedcad45c8021 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/bin/check-syntax.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +PHP='/usr/bin/env php' +RETURN=0 + +# check PHP files +for FILE in `find config-templates hooks lib tests -name "*.php"`; do + $PHP -l $FILE > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Syntax check failed for ${FILE}" + RETURN=`expr ${RETURN} + 1` + fi +done + +exit $RETURN diff --git a/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..6585c7601a836786881612e32d9d672dc0a2c3da --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/composer.json @@ -0,0 +1,42 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-smartattributes", + "description": "The SmartAttributes module provides additional authentication processing filters to manipulate attributes.", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "smartattributes"], + "license": "LGPL-3.0-or-later", + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\smartattributes\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.6", + + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "simplesamlphp/simplesamlphp": "^1.17", + "phpunit/phpunit": "~5.7" + }, + "support": { + "issues": "https://github.com/tvdijen/simplesamlphp-module-smartattributes/issues", + "source": "https://github.com/tvdijen/simplesamlphp-module-smartattributes" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/lib/Auth/Process/SmartID.php b/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/lib/Auth/Process/SmartID.php index 00ca468eae4ff9ce4f4afe09e1de9949577f1ce7..0b9fd78b3921fc4caf97e933614e8961b58bbc51 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/lib/Auth/Process/SmartID.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/lib/Auth/Process/SmartID.php @@ -10,6 +10,8 @@ class SmartID extends \SimpleSAML\Auth\ProcessingFilter * IMPORTANT: If you use the (default) attributemaps (twitter2name, facebook2name, * etc., be sure to comment out the entries that map xxx_targetedID to * eduPersonTargetedID, or there will be no way to see its origin any more. + * + * @var array */ private $candidates = [ 'eduPersonTargetedID', @@ -24,29 +26,29 @@ class SmartID extends \SimpleSAML\Auth\ProcessingFilter ]; /** - * The name of the generated ID attribute. + * @var string The name of the generated ID attribute. */ private $id_attribute = 'smart_id'; /** * Whether to append the AuthenticatingAuthority, separated by '!' * This only works when SSP is used as a gateway. + * @var bool */ private $add_authority = true; /** * Whether to prepend the CandidateID, separated by ':' + * @var bool */ private $add_candidate = true; + /** - * Attributes which should be added/appended. - * - * Associative array of arrays. + * @param array $config + * @param mixed $reserved + * @throws \Exception */ - private $attributes = []; - - public function __construct($config, $reserved) { parent::__construct($config, $reserved); @@ -82,34 +84,43 @@ public function __construct($config, $reserved) } } + + /** + * @param array $attributes + * @param array $request + * @return string + * @throws \SimpleSAML\Error\Exception + */ private function addID($attributes, $request) { $state = $request['saml:sp:State']; foreach ($this->candidates as $idCandidate) { if (isset($attributes[$idCandidate][0])) { if (($this->add_authority) && (isset($state['saml:AuthenticatingAuthority'][0]))) { - return ($this->add_candidate ? $idCandidate.':' : '').$attributes[$idCandidate][0].'!'. + return ($this->add_candidate ? $idCandidate . ':' : '') . $attributes[$idCandidate][0] . '!' . $state['saml:AuthenticatingAuthority'][0]; } else { - return ($this->add_candidate ? $idCandidate.':' : '').$attributes[$idCandidate][0]; + return ($this->add_candidate ? $idCandidate . ':' : '') . $attributes[$idCandidate][0]; } } } /* * At this stage no usable id_candidate has been detected. */ - throw new \SimpleSAML\Error\Exception('This service needs at least one of the following - attributes to identity users: '.implode(', ', $this->candidates).'. Unfortunately not - one of them was detected. Please ask your institution administrator to release one of - them, or try using another identity provider.'); + throw new \SimpleSAML\Error\Exception('This service needs at least one of the following ' . + 'attributes to identity users: '.implode(', ', $this->candidates).'. Unfortunately not '. + 'one of them was detected. Please ask your institution administrator to release one of '. + 'them, or try using another identity provider.'); } + /** * Apply filter to add or replace attributes. * * Add or replace existing attributes with the configured values. * * @param array &$request The current request + * @return void */ public function process(&$request) { @@ -118,7 +129,7 @@ public function process(&$request) $id = $this->addID($request['Attributes'], $request); - if (isset($id)) { + if (!empty($id)) { $request['Attributes'][$this->id_attribute] = [$id]; } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/lib/Auth/Process/SmartName.php b/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/lib/Auth/Process/SmartName.php index 19a69baa6f31d66fc8a15e3bdc1c7d72d3c67bb5..e7251e38bda1224134718c458d65299767c662f6 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/lib/Auth/Process/SmartName.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/lib/Auth/Process/SmartName.php @@ -8,17 +8,12 @@ * @author Andreas Åkre Solberg, UNINETT AS. * @package SimpleSAMLphp */ - class SmartName extends \SimpleSAML\Auth\ProcessingFilter { /** - * Attributes which should be added/appended. - * - * Assiciative array of arrays. + * @param array $attributes + * @return string|null */ - private $attributes = []; - - private function getFullName($attributes) { if (isset($attributes['displayName'])) { @@ -32,7 +27,7 @@ private function getFullName($attributes) } if (isset($attributes['sn']) && isset($attributes['givenName'])) { - return $attributes['givenName'][0].' '.$attributes['sn'][0]; + return $attributes['givenName'][0] . ' ' . $attributes['sn'][0]; } if (isset($attributes['cn'])) { @@ -57,6 +52,11 @@ private function getFullName($attributes) return null; } + + /** + * @param string $userid + * @return string|null + */ private function getLocalUser($userid) { if (strpos($userid, '@') === false) { @@ -69,12 +69,14 @@ private function getLocalUser($userid) return null; } + /** * Apply filter to add or replace attributes. * * Add or replace existing attributes with the configured values. * * @param array &$request The current request + * @return void */ public function process(&$request) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0985fdd804b18d8d9179ecd956d63582c189e95 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/phpunit.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..7da2d51b2b8e6902103c7b92b2702d3afab97ad3 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/psalm.xml @@ -0,0 +1,30 @@ +<?xml version="1.0"?> +<psalm + name="SimpleSAMLphp smartattributes module" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="lib" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..7a5b54ed8d82bd14fe0a3f9c3a3112081fc9bba5 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/smartattributes/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot . '/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot . '/vendor/simplesamlphp/simplesamlphp/modules/negotiate'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/.codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/.codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/.codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..e7d314696c7e461b645c3d603f3a5d3034082ba5 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/.php_cs.dist @@ -0,0 +1,15 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/lib', + __DIR__ . '/tests', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..fec43ab41a5a3b2129c6a4b00802c56325717fe9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/.travis.yml @@ -0,0 +1,31 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then composer require --dev vimeo/psalm:1.1.9; fi + +script: + - bin/check-syntax.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi +# - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/LICENSE b/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..0a041280bd00a9d068f503b8ee7ce35214bd24a1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/bin/check-syntax.sh b/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/bin/check-syntax.sh new file mode 100755 index 0000000000000000000000000000000000000000..db6dc4b0140cb09231c6bf2e756c6a668e8e7cbe --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/bin/check-syntax.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +PHP='/usr/bin/env php' +RETURN=0 + +# check PHP files +for FILE in `find lib tests -name "*.php"`; do + $PHP -l $FILE > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Syntax check failed for ${FILE}" + RETURN=`expr ${RETURN} + 1` + fi +done + +exit $RETURN diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..b4f110242987935f26763ad6963df0bcbf23c585 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/composer.json @@ -0,0 +1,42 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-sqlauth", + "description": "This is a authentication module for authenticating a user against a SQL database", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "sqlauth"], + "license": "LGPL-3.0-or-later", + "authors": [ + { + "name": "Olav Morken", + "email": "olavmrk@gmail.com" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\sqlauth\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17", + "webmozart/assert": "^1.4" + }, + "support": { + "issues": "https://github.com/tvdijen/simplesamlphp-module-sqlauth/issues", + "source": "https://github.com/tvdijen/simplesamlphp-module-sqlauth" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/docs/sql.md b/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/docs/sql.md index 3fb33818daf53690710970c8059e96eeaa9a2424..310b47eb17d971c63a4881e58065c29c25271074 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/docs/sql.md +++ b/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/docs/sql.md @@ -1,7 +1,7 @@ `sqlauth:SQL` ============= -This is a authentication module for authenticating an user against a SQL database. +This is a authentication module for authenticating a user against a SQL database. Options diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0985fdd804b18d8d9179ecd956d63582c189e95 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/phpunit.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..a9cae34101aeb861353a1647059bb37ed40e205a --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/psalm.xml @@ -0,0 +1,30 @@ +<?xml version="1.0"?> +<psalm + name="The SimpleSAMLphp sqlauth module" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="lib" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..28efee11df1f5b3ff515ddffd584f632b7d78c83 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/sqlauth/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot.'/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot.'/vendor/simplesamlphp/simplesamlphp/modules/sqlauth'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/.codecov.yml b/vendor/simplesamlphp/simplesamlphp/modules/statistics/.codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/.codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/.php_cs.dist b/vendor/simplesamlphp/simplesamlphp/modules/statistics/.php_cs.dist new file mode 100644 index 0000000000000000000000000000000000000000..33467ebed8fd85e1f86baae2dc2f5b75cbe7143f --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/.php_cs.dist @@ -0,0 +1,16 @@ +<?php +$finder = PhpCsFixer\Finder::create() + ->in([ + __DIR__ . '/lib', + __DIR__ . '/tests', + __DIR__ . '/www', + ]) +; +return PhpCsFixer\Config::create() + ->setRules([ + '@PSR2' => true, + '@PSR4' => true, + '@PSR5' => true, + ]) + ->setFinder($finder) +; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/.travis.yml b/vendor/simplesamlphp/simplesamlphp/modules/statistics/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..208a6d6c78faaea8f1720aff7a6a2a756d266ab3 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/.travis.yml @@ -0,0 +1,30 @@ +sudo: required + +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + +env: + - SIMPLESAMLPHP_VERSION=1.17.* + +before_script: + - composer require "simplesamlphp/simplesamlphp:${SIMPLESAMLPHP_VERSION}" --no-update + - composer update --no-interaction + +script: + - vendor/simplesamlphp/simplesamlphp-test-framework/bin/check-syntax-php.sh + - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then php vendor/phpunit/phpunit/phpunit; else php vendor/phpunit/phpunit/phpunit --no-coverage; fi + - if [[ "$TRAVIS_PHP_VERSION" == "7.3" ]]; then vendor/bin/psalm; fi + +after_success: + # Codecov, need to edit bash uploader for incorrect TRAVIS_PYTHON_VERSION environment variable matching, at least until codecov/codecov-bash#133 is resolved + - curl -s https://codecov.io/bash > .codecov + - sed -i -e 's/TRAVIS_.*_VERSION/^TRAVIS_.*_VERSION=/' .codecov + - chmod +x .codecov + - if [[ $TRAVIS_PHP_VERSION == "5.6" ]]; then ./.codecov -X gcov; fi +# - if [[ "$TRAVIS_PHP_VERSION" == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/LICENSE b/vendor/simplesamlphp/simplesamlphp/modules/statistics/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..0a041280bd00a9d068f503b8ee7ce35214bd24a1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/bin/loganalyzer.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/bin/loganalyzer.php index 85ae093f3e31ab1dfdde61a1ce1ca304c4f17154..830d0d74be863093b66f378706ee7b409957525c 100755 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/bin/loganalyzer.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/bin/loganalyzer.php @@ -5,7 +5,7 @@ $baseDir = dirname(dirname(dirname(dirname(__FILE__)))); // Add library autoloader. -require_once($baseDir.'/lib/_autoload.php'); +require_once($baseDir . '/lib/_autoload.php'); // Initialize the configuration. $configdir = \SimpleSAML\Utils\Config::getConfigDir(); @@ -44,8 +44,8 @@ $dryrun = true; break; default: - echo 'Unknown option: '.$a."\n"; - echo 'Please run `'.$progName.' --help` for usage information.'."\n"; + echo 'Unknown option: ' . $a . "\n"; + echo 'Please run `' . $progName . ' --help` for usage information.' . "\n"; exit(1); } } @@ -62,7 +62,7 @@ foreach ($results as $slot => $val) { foreach ($val as $sp => $no) { - echo $sp." ".count($no)." - "; + echo $sp . " " . count($no) . " - "; } echo "\n"; } @@ -70,8 +70,8 @@ /** * This function prints the help output. + * @return void */ - function printHelp() { global $progName; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/bin/logcleaner.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/bin/logcleaner.php index b160cdab2780d2806831aa044a0e2655e1812bed..45afa1b09d80264f8f5d7866776bd4f24011c24e 100755 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/bin/logcleaner.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/bin/logcleaner.php @@ -5,7 +5,7 @@ $baseDir = dirname(dirname(dirname(dirname(__FILE__)))); // Add library autoloader. -require_once($baseDir.'/lib/_autoload.php'); +require_once($baseDir . '/lib/_autoload.php'); // Initialize the configuration. $configdir = \SimpleSAML\Utils\Config::getConfigDir(); @@ -52,8 +52,8 @@ $output = $v; break; default: - echo 'Unknown option: '.$a."\n"; - echo 'Please run `'.$progName.' --help` for usage information.'."\n"; + echo 'Unknown option: ' . $a . "\n"; + echo 'Please run `' . $progName . ' --help` for usage information.' . "\n"; exit(1); } } @@ -62,7 +62,7 @@ $cleaner->dumpConfig(); $todelete = $cleaner->clean($debug); -echo "Cleaning these trackIDs: ".join(', ', $todelete)."\n"; +echo "Cleaning these trackIDs: " . join(', ', $todelete) . "\n"; if (!$dryrun) { $cleaner->store($todelete, $output); @@ -70,8 +70,8 @@ /** * This function prints the help output. + * @return void */ - function printHelp() { global $progName; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/composer.json b/vendor/simplesamlphp/simplesamlphp/modules/statistics/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..12d04ffdc0a58f00c21f4f4aeac37fbbbc3d5276 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/composer.json @@ -0,0 +1,43 @@ +{ + "name": "simplesamlphp/simplesamlphp-module-statistics", + "description": "The SimpleSAMLphp statistics module", + "type": "simplesamlphp-module", + "keywords": ["simplesamlphp", "statistics"], + "license": "LGPL-3.0-or-later", + "authors": [ + { + "name": "Andreas Åkre Solberg", + "email": "andreas.solberg@uninett.no" + } + ], + "config": { + "preferred-install": { + "simplesamlphp/simplesamlphp": "source", + "*": "dist" + } + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Module\\statistics\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "SimpleSAML\\Test\\Utils\\": "vendor/simplesamlphp/simplesamlphp/tests/Utils" + } + }, + "require": { + "php": ">=5.6", + "simplesamlphp/composer-module-installer": "~1.1", + "webmozart/assert": "^1.4" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "simplesamlphp/simplesamlphp": "^1.17", + "simplesamlphp/simplesamlphp-test-framework": "^0.0.12" + }, + "support": { + "issues": "https://github.com/simplesamlphp/simplesamlphp-module-statistics/issues", + "source": "https://github.com/simplesamlphp/simplesamlphp-module-statistics" + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/config-templates/module_statistics.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/config-templates/module_statistics.php index 9e186dc2908f65297a74825e8c03e830fee1fe84..ccc119548da5319e4ec5e7fd8adc30d92348047b 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/config-templates/module_statistics.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/config-templates/module_statistics.php @@ -96,7 +96,7 @@ 'statrules' => [ 'sloratio' => [ 'name' => 'SLO to SSO ratio', - 'descr' => 'Comparison of the number of Single Log-Out compared to Single Sign-On.'. + 'descr' => 'Comparison of the number of Single Log-Out compared to Single Sign-On.' . ' Graph shows how many logouts where initiated for each Single Sign-On.', 'type' => 'calculated', 'presenter' => 'statistics:Ratio', @@ -108,7 +108,7 @@ ], 'ssomulti' => [ 'name' => 'Requests per session', - 'descr' => 'Number of SSO request pairs exchanged between IdP and SP within the same IdP session.'. + 'descr' => 'Number of SSO request pairs exchanged between IdP and SP within the same IdP session.' . ' A high number indicates that the session at the SP is timing out faster than at the IdP.', 'type' => 'calculated', 'presenter' => 'statistics:Ratio', @@ -150,7 +150,7 @@ ], 'consent' => [ 'name' => 'Consent', - 'descr' => 'Consent statistics. Everytime a user logs in to a service an entry is logged for'. + 'descr' => 'Consent statistics. Everytime a user logs in to a service an entry is logged for' . ' one of three states: consent was found, consent was not found or consent storage was not available.', 'action' => 'consent', 'col' => 6, @@ -161,7 +161,7 @@ ], 'consentresponse' => [ 'name' => 'Consent response', - 'descr' => 'Consent response statistics. Everytime a user accepts consent,'. + 'descr' => 'Consent response statistics. Everytime a user accepts consent,' . ' it is logged whether the user selected to remember the consent to next time.', 'action' => 'consentResponse', 'col' => 6, diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/dictionaries/statistics.translation.json b/vendor/simplesamlphp/simplesamlphp/modules/statistics/dictionaries/statistics.translation.json index 1f51b3838702c7c63bec80471e460812795d4ce1..7a4adb1eac0e76cc9c663a958a925be135ca316f 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/dictionaries/statistics.translation.json +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/dictionaries/statistics.translation.json @@ -2,11 +2,13 @@ "link_statistics": { "es": "Mostrar estadísticas", "no": "Vis statistikker", - "nn": "Vis statistikkar" + "nn": "Vis statistikkar", + "ca": "Mostra les estadístiques" }, "link_statistics_metadata": { "es": "Mostrar metadatos de las estadísticas", "no": "Vis metadata om statistikker", - "nn": "Vis metadata om statistikkar" + "nn": "Vis metadata om statistikkar", + "ca": "Mostra les estadístiques de les metadades" } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/hooks/hook_configpage.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/hooks/hook_configpage.php index d9c1f1df7898b6b90d8c3f9cf6a869a47c63ff72..36853ed2d1f986e979fced5601c7f01c9c2eada3 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/hooks/hook_configpage.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/hooks/hook_configpage.php @@ -1,8 +1,10 @@ <?php + /** * Hook to add the statistics module to the config page. * * @param \SimpleSAML\XHTML\Template &$template The template that we should alter in this hook. + * @return void */ function statistics_hook_configpage(\SimpleSAML\XHTML\Template &$template) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/hooks/hook_cron.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/hooks/hook_cron.php index a3ee4952cc347d567d4d044f4bbd83b05b7a7b5d..8a22028ee0ff6c41fde3bd86c735a70a3af365ae 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/hooks/hook_cron.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/hooks/hook_cron.php @@ -4,8 +4,8 @@ * Hook to run a cron job. * * @param array &$croninfo Output + * @return void */ - function statistics_hook_cron(&$croninfo) { assert(is_array($croninfo)); @@ -35,7 +35,7 @@ function statistics_hook_cron(&$croninfo) $aggregator->store($results); } } catch (\Exception $e) { - $message = 'Loganalyzer threw exception: '.$e->getMessage(); + $message = 'Loganalyzer threw exception: ' . $e->getMessage(); \SimpleSAML\Logger::warning($message); $croninfo['summary'][] = $message; } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/hooks/hook_frontpage.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/hooks/hook_frontpage.php index 2dade3b2af4c7e9cbf5422819fa44ac18a9d580a..268f06746c1126f7af74982804fd81f2475b642d 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/hooks/hook_frontpage.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/hooks/hook_frontpage.php @@ -1,8 +1,10 @@ <?php + /** * Hook to add the modinfo module to the frontpage. * * @param array &$links The links on the frontpage, split into sections. + * @return void */ function statistics_hook_frontpage(&$links) { @@ -19,4 +21,3 @@ function statistics_hook_frontpage(&$links) 'shorttext' => ['en' => 'Statistics metadata', 'no' => 'Statistikk metadata'], ]; } - diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/hooks/hook_sanitycheck.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/hooks/hook_sanitycheck.php index 879ee3ee784c292f68cd979d66420799b6251085..8450ffa49a61f54ca89cbbfe7171ac3dfdbd43a4 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/hooks/hook_sanitycheck.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/hooks/hook_sanitycheck.php @@ -1,8 +1,10 @@ <?php + /** * Hook to do sanity checks * * @param array &$hookinfo hookinfo + * @return void */ function statistics_hook_sanitycheck(&$hookinfo) { @@ -13,7 +15,7 @@ function statistics_hook_sanitycheck(&$hookinfo) try { $statconfig = \SimpleSAML\Configuration::getConfig('module_statistics.php'); } catch (Exception $e) { - $hookinfo['errors'][] = '[statistics] Could not get configuration: '.$e->getMessage(); + $hookinfo['errors'][] = '[statistics] Could not get configuration: ' . $e->getMessage(); return; } @@ -21,19 +23,19 @@ function statistics_hook_sanitycheck(&$hookinfo) $inputfile = $statconfig->getValue('inputfile'); if (file_exists($statdir)) { - $hookinfo['info'][] = '[statistics] Statistics dir ['.$statdir.'] exists'; + $hookinfo['info'][] = '[statistics] Statistics dir [' . $statdir . '] exists'; if (is_writable($statdir)) { - $hookinfo['info'][] = '[statistics] Statistics dir ['.$statdir.'] is writable'; + $hookinfo['info'][] = '[statistics] Statistics dir [' . $statdir . '] is writable'; } else { - $hookinfo['errors'][] = '[statistics] Statistics dir ['.$statdir.'] is not writable'; + $hookinfo['errors'][] = '[statistics] Statistics dir [' . $statdir . '] is not writable'; } } else { - $hookinfo['errors'][] = '[statistics] Statistics dir ['.$statdir.'] does not exists'; + $hookinfo['errors'][] = '[statistics] Statistics dir [' . $statdir . '] does not exist'; } if (file_exists($inputfile)) { - $hookinfo['info'][] = '[statistics] Input file ['.$inputfile.'] exists'; + $hookinfo['info'][] = '[statistics] Input file [' . $inputfile . '] exists'; } else { - $hookinfo['errors'][] = '[statistics] Input file ['.$inputfile.'] does not exists'; + $hookinfo['errors'][] = '[statistics] Input file [' . $inputfile . '] does not exist'; } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/AccessCheck.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/AccessCheck.php index 750a5d0526e0aa3aa494e6f0ffdba9dc70dbef6c..fb2fbe0cdc3024f0a82e8001a257a662a58202c6 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/AccessCheck.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/AccessCheck.php @@ -2,20 +2,27 @@ namespace SimpleSAML\Module\statistics; +use SimpleSAML\Configuration; +use SimpleSAML\Logger; +use SimpleSAML\Utils\Auth; + /** * Class implementing the access checker function for the statistics module. * * @package SimpleSAMLphp */ - class AccessCheck { /** * Check that the user has access to the statistics. - * * If the user doesn't have access, send the user to the login page. + * + * @param \SimpleSAML\Configuration $statconfig + * @return void + * @throws \Exception + * @throws \SimpleSAML\Error\Exception */ - public static function checkAccess(\SimpleSAML\Configuration $statconfig) + public static function checkAccess(Configuration $statconfig) { $protected = $statconfig->getBoolean('protected', false); $authsource = $statconfig->getString('auth', null); @@ -31,15 +38,15 @@ public static function checkAccess(\SimpleSAML\Configuration $statconfig) return; } - if (\SimpleSAML\Utils\Auth::isAdmin()) { + if (Auth::isAdmin()) { // User logged in as admin. OK. - \SimpleSAML\Logger::debug('Statistics auth - logged in as admin, access granted'); + Logger::debug('Statistics auth - logged in as admin, access granted'); return; } if (!isset($authsource)) { // If authsource is not defined, init admin login. - \SimpleSAML\Utils\Auth::requireAdmin(); + Auth::requireAdmin(); } // We are using an authsource for login. @@ -48,7 +55,7 @@ public static function checkAccess(\SimpleSAML\Configuration $statconfig) $as->requireAuth(); // User logged in with auth source. - \SimpleSAML\Logger::debug('Statistics auth - valid login with auth source ['.$authsource.']'); + Logger::debug('Statistics auth - valid login with auth source [' . $authsource . ']'); // Retrieving attributes $attributes = $as->getAttributes(); @@ -61,27 +68,27 @@ public static function checkAccess(\SimpleSAML\Configuration $statconfig) // Check if userid is allowed access.. if (in_array($attributes[$useridattr][0], $allowedusers, true)) { - \SimpleSAML\Logger::debug( - 'Statistics auth - User granted access by user ID ['.$attributes[$useridattr][0].']' + Logger::debug( + 'Statistics auth - User granted access by user ID [' . $attributes[$useridattr][0] . ']' ); return; } - \SimpleSAML\Logger::debug( - 'Statistics auth - User denied access by user ID ['.$attributes[$useridattr][0].']' + Logger::debug( + 'Statistics auth - User denied access by user ID [' . $attributes[$useridattr][0] . ']' ); } else { - \SimpleSAML\Logger::debug('Statistics auth - no allowedUsers list.'); + Logger::debug('Statistics auth - no allowedUsers list.'); } if (!is_null($acl)) { $acl = new \SimpleSAML\Module\core\ACL($acl); if ($acl->allows($attributes)) { - \SimpleSAML\Logger::debug('Statistics auth - allowed access by ACL.'); + Logger::debug('Statistics auth - allowed access by ACL.'); return; } - \SimpleSAML\Logger::debug('Statistics auth - denied access by ACL.'); + Logger::debug('Statistics auth - denied access by ACL.'); } else { - \SimpleSAML\Logger::debug('Statistics auth - no ACL configured.'); + Logger::debug('Statistics auth - no ACL configured.'); } throw new \SimpleSAML\Error\Exception('Access denied to the current user.'); } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Aggregator.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Aggregator.php index 966012d6399329c6b5f250a3d68e53b9f22197e8..c69090d0bb3e54d72d901edd12bb4740f73889c8 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Aggregator.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Aggregator.php @@ -2,56 +2,89 @@ namespace SimpleSAML\Module\statistics; -/* +use SimpleSAML\Configuration; + +/** * @author Andreas Åkre Solberg <andreas.solberg@uninett.no> * @package SimpleSAMLphp */ - class Aggregator { + /** @var \SimpleSAML\Configuration */ private $statconfig; + + /** @var string */ private $statdir; + + /** @var string */ private $inputfile; + + /** @var array */ private $statrules; + + /** @var int */ private $offset; - private $metadata; + + /** @var array|null */ + private $metadata = null; + + /** @var bool */ private $fromcmdline; + + /** @var int */ private $starttime; + + /** @var array */ private $timeres; + /** * Constructor + * + * @param bool $fromcmdline */ public function __construct($fromcmdline = false) { $this->fromcmdline = $fromcmdline; - $this->statconfig = \SimpleSAML\Configuration::getConfig('module_statistics.php'); + $this->statconfig = Configuration::getConfig('module_statistics.php'); $this->statdir = $this->statconfig->getValue('statdir'); $this->inputfile = $this->statconfig->getValue('inputfile'); $this->statrules = $this->statconfig->getValue('statrules'); $this->timeres = $this->statconfig->getValue('timeres'); $this->offset = $this->statconfig->getValue('offset', 0); - $this->metadata = null; $this->starttime = time(); } + + /** + * @return void + */ public function dumpConfig() { - echo 'Statistics directory : '.$this->statdir."\n"; - echo 'Input file : '.$this->inputfile."\n"; - echo 'Offset : '.$this->offset."\n"; + echo 'Statistics directory : ' . $this->statdir . "\n"; + echo 'Input file : ' . $this->inputfile . "\n"; + echo 'Offset : ' . $this->offset . "\n"; } + + /** + * @return void + */ public function debugInfo() { - echo 'Memory usage : '.number_format(memory_get_usage() / 1048576, 2)." MB\n"; // 1024*1024=1048576 + // 1024*1024=1048576 + echo 'Memory usage : ' . number_format(memory_get_usage() / 1048576, 2) . " MB\n"; } + + /** + * @return void + */ public function loadMetadata() { - $filename = $this->statdir.'/.stat.metadata'; + $filename = $this->statdir . '/.stat.metadata'; $metadata = null; if (file_exists($filename)) { $metadata = unserialize(file_get_contents($filename)); @@ -59,37 +92,51 @@ public function loadMetadata() $this->metadata = $metadata; } + + /** + * @return array|null + */ public function getMetadata() { return $this->metadata; } + + /** + * @return void + */ public function saveMetadata() { $this->metadata['time'] = time() - $this->starttime; $this->metadata['memory'] = memory_get_usage(); $this->metadata['lastrun'] = time(); - $filename = $this->statdir.'/.stat.metadata'; + $filename = $this->statdir . '/.stat.metadata'; file_put_contents($filename, serialize($this->metadata), LOCK_EX); } + + /** + * @param bool $debug + * @return array + * @throws \Exception + */ public function aggregate($debug = false) { $this->loadMetadata(); if (!is_dir($this->statdir)) { - throw new \Exception('Statistics module: output dir do not exists ['.$this->statdir.']'); + throw new \Exception('Statistics module: output dir do not exists [' . $this->statdir . ']'); } if (!file_exists($this->inputfile)) { - throw new \Exception('Statistics module: input file do not exists ['.$this->inputfile.']'); + throw new \Exception('Statistics module: input file do not exists [' . $this->inputfile . ']'); } $file = fopen($this->inputfile, 'r'); if ($file === false) { - throw new \Exception('Statistics module: unable to open file ['.$this->inputfile.']'); + throw new \Exception('Statistics module: unable to open file [' . $this->inputfile . ']'); } $logparser = new LogParser( @@ -134,15 +181,17 @@ public function aggregate($debug = false) $action = trim($content[5]); if ($this->fromcmdline && ($i % 10000) == 0) { - echo "Read line ".$i."\n"; + echo "Read line " . $i . "\n"; } if ($debug) { echo "----------------------------------------\n"; - echo 'Log line: '.$logline."\n"; - echo 'Date parse ['.substr($logline, 0, $this->statconfig->getValue('datelength', 15)). - '] to ['.date(DATE_RFC822, $epoch).']'."\n"; - echo htmlentities(print_r($content, true)); + echo 'Log line: ' . $logline . "\n"; + echo 'Date parse [' . substr($logline, 0, $this->statconfig->getValue('datelength', 15)) . + '] to [' . date(DATE_RFC822, $epoch) . ']' . "\n"; + /** @var string $ret */ + $ret = print_r($content, true); + echo htmlentities($ret); if ($i >= 13) { exit; } @@ -210,6 +259,12 @@ public function aggregate($debug = false) return $results; } + + /** + * @param array $content + * @param mixed $colrule + * @return string + */ private static function getDifCol($content, $colrule) { if (is_int($colrule)) { @@ -225,6 +280,12 @@ private static function getDifCol($content, $colrule) } } + + /** + * @param mixed $previous + * @param array $newdata + * @return array + */ private function cummulateData($previous, $newdata) { $dataset = []; @@ -244,6 +305,11 @@ private function cummulateData($previous, $newdata) return $dataset; } + + /** + * @param array $results + * @return void + */ public function store($results) { $datehandler = [ @@ -295,7 +361,7 @@ public function store($results) } } - $filename = $this->statdir.'/'.$rulename.'-'.$tres.'-'.$fileno.'.stat'; + $filename = $this->statdir . '/' . $rulename . '-' . $tres . '-' . $fileno . '.stat'; if (file_exists($filename)) { $previousData = unserialize(file_get_contents($filename)); $filledresult = $this->cummulateData($previousData, $filledresult); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/DateHandler.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/DateHandler.php index ae9807df9ea6907992b4e25c7aad2921df49fcd2..032ff4ce7c51b6ed59f05d84c421fa2a81429704 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/DateHandler.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/DateHandler.php @@ -2,25 +2,31 @@ namespace SimpleSAML\Module\statistics; -/* +/** * @author Andreas Åkre Solberg <andreas.solberg@uninett.no> * @package SimpleSAMLphp */ - class DateHandler { + /** @var int */ protected $offset; + /** * Constructor * - * @param array $offset Date offset + * @param int $offset Date offset */ public function __construct($offset) { $this->offset = $offset; } + + /** + * @param int $timestamp + * @return int + */ protected function getDST($timestamp) { if (idate('I', $timestamp)) { @@ -29,12 +35,24 @@ protected function getDST($timestamp) return 0; } + + /** + * @param int $epoch + * @param int $slotsize + * @return float + */ public function toSlot($epoch, $slotsize) { $dst = $this->getDST($epoch); return floor(($epoch + $this->offset + $dst) / $slotsize); } + + /** + * @param int $slot + * @param int $slotsize + * @return int + */ public function fromSlot($slot, $slotsize) { $temp = $slot * $slotsize - $this->offset; @@ -42,16 +60,37 @@ public function fromSlot($slot, $slotsize) return $slot * $slotsize - $this->offset - $dst; } + + /** + * @param int $epoch + * @param string $dateformat + * @return string + */ public function prettyDateEpoch($epoch, $dateformat) { return date($dateformat, $epoch); } + + /** + * @param int $slot + * @param int $slotsize + * @param string $dateformat + * @return string + */ public function prettyDateSlot($slot, $slotsize, $dateformat) { return $this->prettyDateEpoch($this->fromSlot($slot, $slotsize), $dateformat); } + + /** + * @param int $from + * @param int $to + * @param int $slotsize + * @param string $dateformat + * @return string + */ public function prettyHeader($from, $to, $slotsize, $dateformat) { $text = $this->prettyDateSlot($from, $slotsize, $dateformat); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/DateHandlerMonth.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/DateHandlerMonth.php index 058795f57b05beb2964ef43fcda96edbac1c81c7..f0168cc43a1ddbbe7c24ca273b75368e2754d9b4 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/DateHandlerMonth.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/DateHandlerMonth.php @@ -2,11 +2,10 @@ namespace SimpleSAML\Module\statistics; -/* +/** * @author Andreas Åkre Solberg <andreas.solberg@uninett.no> * @package SimpleSAMLphp */ - class DateHandlerMonth extends DateHandler { /** @@ -19,6 +18,12 @@ public function __construct($offset) $this->offset = $offset; } + + /** + * @param int $epoch + * @param int $slotsize + * @return int + */ public function toSlot($epoch, $slotsize) { $dsttime = $this->getDST($epoch) + $epoch; @@ -27,6 +32,12 @@ public function toSlot($epoch, $slotsize) return $slot; } + + /** + * @param int $slot + * @param int $slotsize + * @return int + */ public function fromSlot($slot, $slotsize) { $month = ($slot % 12); @@ -34,10 +45,18 @@ public function fromSlot($slot, $slotsize) return mktime(0, 0, 0, $month + 1, 1, $year); } + + /** + * @param int $from + * @param int $to + * @param int $slotsize + * @param string $dateformat + * @return string + */ public function prettyHeader($from, $to, $slotsize, $dateformat) { $month = ($from % 12) + 1; $year = 2000 + intval(floor($from / 12)); - return $year.'-'.$month; + return $year . '-' . $month; } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Graph/GoogleCharts.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Graph/GoogleCharts.php index 129639de50d103e4002b0504e7e3c3a117242141..15d5223f915f81da7e6a3c047fc11ff79f274006 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Graph/GoogleCharts.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Graph/GoogleCharts.php @@ -2,26 +2,22 @@ namespace SimpleSAML\Module\statistics\Graph; -/* +/** * \SimpleSAML\Module\statistics\Graph\GoogleCharts will help you to create a Google Chart * using the Google Charts API. * * @author Andreas Åkre Solberg <andreas.solberg@uninett.no> * @package SimpleSAMLphp */ - class GoogleCharts { - /** - * @var integer - */ + /** @var integer */ private $x; - /** - * @var integer - */ + /** @var integer */ private $y; + /** * Constructor. * @@ -36,27 +32,41 @@ public function __construct($x = 800, $y = 350) $this->y = $y; } - private function encodeaxis($axis) + + /** + * @param array $axis + * @return string + */ + private function encodeaxis(array $axis) { return join('|', $axis); } - // t:10.0,58.0,95.0 - private function encodedata($datasets) + /** + * t:10.0,58.0,95.0 + * @param array $datasets + * @return string + */ + private function encodedata(array $datasets) { $setstr = []; foreach ($datasets as $dataset) { $setstr[] = self::extEncode($dataset); } - return 'e:'.join(',', $setstr); + return 'e:' . join(',', $setstr); } - public static function extEncode($values) // $max = 4095, $min = 0 + + /** + * @param array $values + * @return string + */ + public static function extEncode(array $values) // $max = 4095, $min = 0 { $extended_table = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-.'; $chardata = ''; $delta = 4095; - $size = (strlen($extended_table)); + $size = strlen($extended_table); foreach ($values as $k => $v) { if ($v >= 0 && $v <= 100) { @@ -70,65 +80,74 @@ public static function extEncode($values) // $max = 4095, $min = 0 return $chardata; } + /** * Generate a Google Charts URL which points to a generated image. * More documentation on Google Charts here: * http://code.google.com/apis/chart/ * - * @param string $axis Axis - * @param string $axpis Axis positions + * @param array $axis Axis + * @param array $axispos Axis positions * @param array $datasets Datasets values - * @param integer $max Max value. Will be the topmost value on the Y-axis. + * @param array $maxes Max value. Will be the topmost value on the Y-axis. + * @return string */ - public function show($axis, $axispos, $datasets, $maxes) + public function show(array $axis, array $axispos, array $datasets, array $maxes) { - $labeld = '&chxt=x,y'.'&chxr=0,0,1|1,0,'.$maxes[0]; + $labeld = '&chxt=x,y' . '&chxr=0,0,1|1,0,' . $maxes[0]; if (count($datasets) > 1) { if (count($datasets) !== count($maxes)) { throw new \Exception('Incorrect number of max calculations for graph plotting.'); } - $labeld = '&chxt=x,y,r'.'&chxr=0,0,1|1,0,'.$maxes[0].'|2,0,'.$maxes[1]; + $labeld = '&chxt=x,y,r' . '&chxr=0,0,1|1,0,' . $maxes[0] . '|2,0,' . $maxes[1]; } - $url = 'https://chart.apis.google.com/chart?'. + $url = 'https://chart.apis.google.com/chart?' . // Dimension of graph. Default is 800x350 - 'chs='.$this->x.'x'.$this->y. + 'chs=' . $this->x . 'x' . $this->y . // Dateset values - '&chd='.$this->encodedata($datasets). + '&chd=' . $this->encodedata($datasets) . // Fill area... - '&chco=ff5c00,cca600'. - '&chls=1,1,0|1,6,3'. + '&chco=ff5c00,cca600' . + '&chls=1,1,0|1,6,3' . // chart type is linechart - '&cht=lc'. - $labeld. - '&chxl=0:|'.$this->encodeaxis($axis).#.$'|1:||top'. - '&chxp=0,'.join(',', $axispos). - '&chg='.(2400 / (count($datasets[0]) - 1)).',-1,3,3'; // lines + '&cht=lc' . + $labeld . + '&chxl=0:|' . $this->encodeaxis($axis) . #.$'|1:||top' . + '&chxp=0,' . join(',', $axispos) . + '&chg=' . (2400 / (count($datasets[0]) - 1)) . ',-1,3,3'; // lines return $url; } - public function showPie($axis, $datasets) + + /** + * @param array $axis + * @param array $datasets + * @return string + */ + public function showPie(array $axis, array $datasets) { - $url = 'https://chart.apis.google.com/chart?'. + $url = 'https://chart.apis.google.com/chart?' . // Dimension of graph. Default is 800x350 - 'chs='.$this->x.'x'.$this->y. + 'chs=' . $this->x . 'x' . $this->y . // Dateset values. - '&chd='.$this->encodedata([$datasets]). + '&chd=' . $this->encodedata([$datasets]) . // chart type is linechart - '&cht=p'. + '&cht=p' . - '&chl='.$this->encodeaxis($axis); + '&chl=' . $this->encodeaxis($axis); return $url; } + /** * Takes a input value, and generates a value that suits better as a max * value on the Y-axis. In example 37.6 will not make a good max value, instead @@ -145,7 +164,8 @@ public function showPie($axis, $datasets) * } * </code> * - * @param integer $max Input value. + * @param int $max Input value. + * @return int */ public static function roof($max) { diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/LogCleaner.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/LogCleaner.php index eafb501904e36d7cac8883a3edb1b70da4bca12f..04ce2da4074aac7b02b531ce0457dcc6f9a4e76e 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/LogCleaner.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/LogCleaner.php @@ -2,25 +2,38 @@ namespace SimpleSAML\Module\statistics; -/* +use SimpleSAML\Configuration; + +/** * @author Andreas Åkre Solberg <andreas.solberg@uninett.no> * @package SimpleSAMLphp */ - class LogCleaner { + /** @var \SimpleSAML\Configuration */ private $statconfig; + + /** @var string */ private $statdir; + + /** @var string */ private $inputfile; + + /** @var array */ private $statrules; + + /** @var int */ private $offset; + /** * Constructor + * + * @param string|null $inputfile */ public function __construct($inputfile = null) { - $this->statconfig = \SimpleSAML\Configuration::getConfig('module_statistics.php'); + $this->statconfig = Configuration::getConfig('module_statistics.php'); $this->statdir = $this->statconfig->getValue('statdir'); $this->inputfile = $this->statconfig->getValue('inputfile'); @@ -32,29 +45,31 @@ public function __construct($inputfile = null) } } - /* + + /** * @return void */ public function dumpConfig() { - echo 'Statistics directory : '.$this->statdir."\n"; - echo 'Input file : '.$this->inputfile."\n"; - echo 'Offset : '.$this->offset."\n"; + echo 'Statistics directory : ' . $this->statdir . "\n"; + echo 'Input file : ' . $this->inputfile . "\n"; + echo 'Offset : ' . $this->offset . "\n"; } - /* + /** * @param bool $debug * @return array + * @throws \Exception */ public function clean($debug = false) { if (!is_dir($this->statdir)) { - throw new \Exception('Statistics module: output dir do not exists ['.$this->statdir.']'); + throw new \Exception('Statistics module: output dir do not exists [' . $this->statdir . ']'); } if (!file_exists($this->inputfile)) { - throw new \Exception('Statistics module: input file do not exists ['.$this->inputfile.']'); + throw new \Exception('Statistics module: input file do not exists [' . $this->inputfile . ']'); } $file = fopen($this->inputfile, 'r'); @@ -83,7 +98,7 @@ public function clean($debug = false) $content = $logparser->parseContent($logline); if (($i % 10000) == 0) { - echo "Read line ".$i."\n"; + echo "Read line " . $i . "\n"; } $trackid = $content[4]; @@ -95,10 +110,12 @@ public function clean($debug = false) if ($debug) { echo "----------------------------------------\n"; - echo 'Log line: '.$logline."\n"; - echo 'Date parse ['.substr($logline, 0, $this->statconfig->getValue('datelength', 15)). - '] to ['.date(DATE_RFC822, $epoch).']'."\n"; - echo htmlentities(print_r($content, true)); + echo 'Log line: ' . $logline . "\n"; + echo 'Date parse [' . substr($logline, 0, $this->statconfig->getValue('datelength', 15)) . + '] to [' . date(DATE_RFC822, $epoch) . ']' . "\n"; + /** @var string $ret */ + $ret = print_r($content, true); + echo htmlentities($ret); if ($i >= 13) { exit; } @@ -125,21 +142,22 @@ public function clean($debug = false) } - /* + /** * @param array $todelete * @param string $outputfile * @return void + * @throws \Exceeption */ - public function store($todelete, $outputfile) + public function store(array $todelete, $outputfile) { - echo "Preparing to delete [".count($todelete)."] trackids\n"; + echo "Preparing to delete [" . count($todelete) . "] trackids\n"; if (!is_dir($this->statdir)) { - throw new \Exception('Statistics module: output dir do not exists ['.$this->statdir.']'); + throw new \Exception('Statistics module: output dir do not exists [' . $this->statdir . ']'); } if (!file_exists($this->inputfile)) { - throw new \Exception('Statistics module: input file do not exists ['.$this->inputfile.']'); + throw new \Exception('Statistics module: input file do not exists [' . $this->inputfile . ']'); } $file = fopen($this->inputfile, 'r'); @@ -171,7 +189,7 @@ public function store($todelete, $outputfile) $content = $logparser->parseContent($logline); if (($i % 10000) == 0) { - echo "Read line ".$i."\n"; + echo "Read line " . $i . "\n"; } $trackid = $content[4]; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/LogParser.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/LogParser.php index 0516b7f24934f26afbe23bd8a9682ea0f4232c7a..aeb4fa646c83ce6605e5720315d52993f2759820 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/LogParser.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/LogParser.php @@ -2,28 +2,22 @@ namespace SimpleSAML\Module\statistics; -/* +/** * @author Andreas Åkre Solberg <andreas.solberg@uninett.no> * @package SimpleSAMLphp */ - class LogParser { - /** - * @var integer - */ + /** @var integer */ private $datestart; - /** - * @var integer - */ + /** @var integer */ private $datelength; - /** - * @var integer - */ + /** @var integer */ private $offset; + /** * Constructor * @@ -47,9 +41,8 @@ public function __construct($datestart, $datelength, $offset) public function parseEpoch($line) { $epoch = strtotime(substr($line, 0, $this->datelength)); - if ($epoch > time() + 2678400) { - // 60 * 60 * 24 * 31 = 2678400 - /* + if ($epoch > time() + 2678400) { // 60 * 60 * 24 * 31 = 2678400 + /** * More than a month in the future - probably caused by * the log files missing the year. * We will therefore subtrackt one year. diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/RatioDataset.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/RatioDataset.php index 5449a3fd1797c03c08b9d04d8e530f58d8202be4..810dfcd53676d4b0d840dc9bb1edccfb1f7d5955 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/RatioDataset.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/RatioDataset.php @@ -2,13 +2,32 @@ namespace SimpleSAML\Module\statistics; -/* +use SimpleSAML\Configuration; + +/** * @author Andreas Åkre Solberg <andreas.solberg@uninett.no> * @package SimpleSAMLphp */ - class RatioDataset extends StatDataset { + /** + * Constructor + * + * @param \SimpleSAML\Configuration $statconfig + * @param \SimpleSAML\Configuration $ruleconfig + * @param string $ruleid + * @param string $timeres + * @param int $fileslot + */ + public function __construct(Configuration $statconfig, Configuration $ruleconfig, $ruleid, $timeres, $fileslot) + { + parent::__construct($statconfig, $ruleconfig, $ruleid, $timeres, $fileslot); + } + + + /** + * @return void + */ public function aggregateSummary() { /** @@ -42,7 +61,13 @@ public function aggregateSummary() $this->summary = array_reverse($this->summary, true); } - private function ag($k, $a) + + /** + * @param string $k + * @param array $a + * @return int + */ + private function ag($k, array $a) { if (array_key_exists($k, $a)) { return $a[$k]; @@ -50,6 +75,12 @@ private function ag($k, $a) return 0; } + + /** + * @param int $v1 + * @param int $v2 + * @return int|float + */ private function divide($v1, $v2) { if ($v2 == 0) { @@ -58,7 +89,13 @@ private function divide($v1, $v2) return ($v1 / $v2); } - public function combine($result1, $result2) + + /** + * @param array $result1 + * @param array $result2 + * @return array + */ + public function combine(array $result1, array $result2) { $combined = []; @@ -74,8 +111,12 @@ public function combine($result1, $result2) return $combined; } + + /** + * @return array + */ public function getPieData() { - return null; + return []; } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Ruleset.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Ruleset.php index 935bad407daf2c4d75b1b7b5350c28557b74afda..d392fdacf262b3b4e5e76d3517faa818ae3b379d 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Ruleset.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Ruleset.php @@ -2,27 +2,42 @@ namespace SimpleSAML\Module\statistics; -/* +use SimpleSAML\Configuration; + +/** * @author Andreas Åkre Solberg <andreas.solberg@uninett.no> * @package SimpleSAMLphp */ - class Ruleset { + /** \SimpleSAML\Configuration */ private $statconfig; + + /** @var array */ private $availrulenames; + + /** @var array */ private $availrules; + + /** @var array */ private $available; + /** * Constructor + * + * @param \SimpleSAML\Configuration $statconfig */ - public function __construct($statconfig) + public function __construct(Configuration $statconfig) { $this->statconfig = $statconfig; $this->init(); } + + /** + * @return void + */ private function init() { $statdir = $this->statconfig->getValue('statdir'); @@ -33,7 +48,7 @@ private function init() * Walk through file lists, and get available [rule][fileslot]... */ if (!is_dir($statdir)) { - throw new \Exception('Statisics output directory ['.$statdir.'] does not exists.'); + throw new \Exception('Statisics output directory [' . $statdir . '] does not exist.'); } $filelist = scandir($statdir); $this->available = []; @@ -47,10 +62,10 @@ private function init() } } if (empty($this->available)) { - throw new \Exception('No aggregated statistics files found in ['.$statdir.']'); + throw new \Exception('No aggregated statistics files found in [' . $statdir . ']'); } - /* + /** * Create array with information about available rules.. */ $this->availrules = array_keys($statrules); @@ -61,18 +76,30 @@ private function init() $this->availrulenames = $available_rules; } + + /** + * @return array + */ public function availableRules() { return $this->availrules; } + + /** + * @return array + */ public function availableRulesNames() { return $this->availrulenames; } + /** * Resolve which rule is selected. Taking user preference and checks if it exists. + * + * @param string|null $preferRule + * @return string|null */ private function resolveSelectedRule($preferRule = null) { @@ -85,7 +112,12 @@ private function resolveSelectedRule($preferRule = null) return $rule; } - public function getRule($preferRule) + + /** + * @param string|null $preferRule + * @return \SimpleSAML\Module\statistics\Statistics\Rulesets\BaseRule + */ + public function getRule($preferRule = null) { $rule = $this->resolveSelectedRule($preferRule); $statrulesConfig = $this->statconfig->getConfigItem('statrules'); @@ -95,7 +127,11 @@ public function getRule($preferRule) $statruleConfig->getValue('presenter', 'statistics:BaseRule'), 'Statistics\Rulesets' ); + + /** @psalm-suppress InvalidStringClass */ $statrule = new $presenterClass($this->statconfig, $statruleConfig, $rule, $this->available); + + /** @var \SimpleSAML\Module\statistics\Statistics\Rulesets\BaseRule $statrule */ return $statrule; } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/StatDataset.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/StatDataset.php index 6868d023775dd2126b2532a83434403d9a6bf4c1..1351aa3a3bac395c9d6fd47f1231ae78655d396f 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/StatDataset.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/StatDataset.php @@ -2,37 +2,65 @@ namespace SimpleSAML\Module\statistics; +use SimpleSAML\Configuration; +use SimpleSAML\Module; +use SimpleSAML\Utils\Arrays; +use SimpleSAML\XHTML\Template; + /** * @author Andreas Åkre Solberg <andreas.solberg@uninett.no> * @package SimpleSAMLphp */ - class StatDataset { + /** @var \SimpleSAML\Configuration */ protected $statconfig; + + /** @var \SimpleSAML\Configuration */ protected $ruleconfig; + + /** @var \SimpleSAML\Configuration */ protected $timeresconfig; + + /** @var string */ protected $ruleid; + /** @var int */ protected $fileslot; + + /** @var string */ protected $timeres; + /** @var string */ protected $delimiter; + + /** @var array */ protected $results; + + /** @var array */ protected $summary; + + /** @var int */ protected $max; + /** @var \SimpleSAML\Module\statistics\DateHandler */ protected $datehandlerFile; + + /** @var \SimpleSAML\Module\statistics\DateHandler */ protected $datehandlerTick; /** * Constructor + * + * @param \SimpleSAML\Configuration $statconfig + * @param \SimpleSAML\Configuration $ruleconfig + * @param string $ruleid + * @param string $timeres + * @param int $fileslot */ - public function __construct($statconfig, $ruleconfig, $ruleid, $timeres, $fileslot) + public function __construct(Configuration $statconfig, Configuration $ruleconfig, $ruleid, $timeres, $fileslot) { - assert($statconfig instanceof \SimpleSAML\Configuration); - assert($ruleconfig instanceof \SimpleSAML\Configuration); $this->statconfig = $statconfig; $this->ruleconfig = $ruleconfig; @@ -45,6 +73,8 @@ public function __construct($statconfig, $ruleconfig, $ruleid, $timeres, $filesl $this->delimiter = '_'; $this->max = 0; + $this->results = []; + $this->summary = []; $this->datehandlerTick = new DateHandler($this->statconfig->getValue('offset', 0)); if ($this->timeresconfig->getValue('customDateHandler', 'default') === 'month') { @@ -56,16 +86,29 @@ public function __construct($statconfig, $ruleconfig, $ruleid, $timeres, $filesl $this->loadData(); } + + /** + * @return int + */ public function getFileSlot() { return $this->fileslot; } + + /** + * @return string + */ public function getTimeRes() { return $this->timeres; } + + /** + * @param string $delimiter + * @return void + */ public function setDelimiter($delimiter = '_') { if (empty($delimiter)) { @@ -74,6 +117,10 @@ public function setDelimiter($delimiter = '_') $this->delimiter = $delimiter; } + + /** + * @return string|null + */ public function getDelimiter() { if ($this->delimiter === '_') { @@ -82,6 +129,10 @@ public function getDelimiter() return $this->delimiter; } + + /** + * @return void + */ public function calculateMax() { $maxvalue = 0; @@ -94,6 +145,10 @@ public function calculateMax() $this->max = Graph\GoogleCharts::roof($maxvalue); } + + /** + * @return array + */ public function getDebugData() { $debugdata = []; @@ -110,6 +165,10 @@ public function getDebugData() return $debugdata; } + + /** + * @return void + */ public function aggregateSummary() { // aggregate summary table from dataset. To be used in the table view @@ -127,6 +186,10 @@ public function aggregateSummary() $this->summary = array_reverse($this->summary, true); } + + /** + * @return array + */ public function getTopDelimiters() { // create a list of delimiter keys that has the highest total summary in this period @@ -144,6 +207,10 @@ public function getTopDelimiters() return $topdelimiters; } + + /** + * @return array + */ public function availDelimiters() { $availDelimiters = []; @@ -153,6 +220,10 @@ public function availDelimiters() return array_keys($availDelimiters); } + + /** + * @return array + */ public function getPieData() { $piedata = []; @@ -167,21 +238,37 @@ public function getPieData() return $piedata; } + + /** + * @return int + */ public function getMax() { return $this->max; } + + /** + * @return array + */ public function getSummary() { return $this->summary; } + + /** + * @return array + */ public function getResults() { return $this->results; } + + /** + * @return array + */ public function getAxis() { $slotsize = $this->timeresconfig->getValue('slot'); @@ -195,11 +282,14 @@ public function getAxis() $i = 0; foreach ($this->results as $slot => $res) { + $slot = intval($slot); + // check if there should be an axis here... if ($slot % $axislabelint == 0) { $axis[] = $this->datehandlerTick->prettyDateSlot($slot, $slotsize, $dateformat_intra); $axispos[] = (($i) / ($xentries - 1)); } + $lastslot = $slot; $i++; } @@ -209,8 +299,10 @@ public function getAxis() return ['axis' => $axis, 'axispos' => $axispos]; } - /* + + /** * Walk through dataset to get percent values from max into dataset[]. + * @return array */ public function getPercentValues() { @@ -232,22 +324,27 @@ public function getPercentValues() return $dataset; } + + /** + * @return array + * @throws \Exception + */ public function getDelimiterPresentation() { - $config = \SimpleSAML\Configuration::getInstance(); - $t = new \SimpleSAML\XHTML\Template($config, 'statistics:statistics.tpl.php'); + $config = Configuration::getInstance(); + $t = new Template($config, 'statistics:statistics.tpl.php'); $availdelimiters = $this->availDelimiters(); // create a delimiter presentation filter for this rule... if ($this->ruleconfig->hasValue('fieldPresentation')) { $fieldpresConfig = $this->ruleconfig->getConfigItem('fieldPresentation'); - $classname = \SimpleSAML\Module::resolveClass( + $classname = Module::resolveClass( $fieldpresConfig->getValue('class'), 'Statistics\FieldPresentation' ); if (!class_exists($classname)) { - throw new \Exception('Could not find field presentation plugin ['.$classname.']: No class found'); + throw new \Exception('Could not find field presentation plugin [' . $classname . ']: No class found'); } $presentationHandler = new $classname($availdelimiters, $fieldpresConfig->getValue('config'), $t); @@ -257,6 +354,10 @@ public function getDelimiterPresentation() return []; } + + /** + * @return array + */ public function getDelimiterPresentationPie() { $topdelimiters = $this->getTopDelimiters(); @@ -274,24 +375,28 @@ public function getDelimiterPresentationPie() return $pieaxis; } + + /** + * @return void + */ public function loadData() { $statdir = $this->statconfig->getValue('statdir'); $resarray = []; - $rules = \SimpleSAML\Utils\Arrays::arrayize($this->ruleid); + $rules = Arrays::arrayize($this->ruleid); foreach ($rules as $rule) { // Get file and extract results. - $resultFileName = $statdir.'/'.$rule.'-'.$this->timeres.'-'.$this->fileslot.'.stat'; + $resultFileName = $statdir . '/' . $rule . '-' . $this->timeres . '-' . $this->fileslot . '.stat'; if (!file_exists($resultFileName)) { - throw new \Exception('Aggregated statitics file ['.$resultFileName.'] not found.'); + throw new \Exception('Aggregated statitics file [' . $resultFileName . '] not found.'); } if (!is_readable($resultFileName)) { - throw new \Exception('Could not read statitics file ['.$resultFileName.']. Bad file permissions?'); + throw new \Exception('Could not read statitics file [' . $resultFileName . ']. Bad file permissions?'); } $resultfile = file_get_contents($resultFileName); $newres = unserialize($resultfile); if (empty($newres)) { - throw new \Exception('Aggregated statistics in file ['.$resultFileName.'] was empty.'); + throw new \Exception('Aggregated statistics in file [' . $resultFileName . '] was empty.'); } $resarray[] = $newres; } @@ -305,4 +410,13 @@ public function loadData() } $this->results = $combined; } + + + /** + * @return array + */ + public function combine(array $combined, array $resarray) + { + return array_merge($combined, $resarray); + } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Statistics/FieldPresentation/Base.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Statistics/FieldPresentation/Base.php index bb2568f1d6c8814acf4da00021d22ab7fb0ed8cb..cb102787d205a2e7e0ddb3293ae6d57c5769d5c8 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Statistics/FieldPresentation/Base.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Statistics/FieldPresentation/Base.php @@ -4,17 +4,36 @@ class Base { + /** @var array */ protected $fields; + + /** @var \SimpleSAML\XHTML\Template */ protected $template; + + /** @var \SimpleSAML\Locale\Translate */ + protected $translator; + + /** @var string */ protected $config; - public function __construct($fields, $config, $template) + + /** + * @param array $fields + * @param string $config + * @param \SimpleSAML\XHTML\Template $template + */ + public function __construct(array $fields, $config, $template) { + $this->config = $config; $this->fields = $fields; $this->template = $template; - $this->config = $config; + $this->translator = $template->getTranslator(); } + + /** + * @return array + */ public function getPresentation() { return ['_' => 'Total']; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Statistics/FieldPresentation/Entity.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Statistics/FieldPresentation/Entity.php index 624d215b7936cf16c4ce7fa5327742e08c71557a..e8841c6eef8d15128ae5ffd1d3f69135b73fd0f9 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Statistics/FieldPresentation/Entity.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Statistics/FieldPresentation/Entity.php @@ -2,18 +2,23 @@ namespace SimpleSAML\Module\statistics\Statistics\FieldPresentation; +use SimpleSAML\Metadata\MetaDataStorageHandler; + class Entity extends Base { + /** + * @return array + */ public function getPresentation() { - $mh = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); + $mh = MetaDataStorageHandler::getMetadataHandler(); $metadata = $mh->getList($this->config); $translation = ['_' => 'All services']; foreach ($this->fields as $field) { if (array_key_exists($field, $metadata)) { if (array_key_exists('name', $metadata[$field])) { - $translation[$field] = $this->template->t($metadata[$field]['name']); + $translation[$field] = $this->translator->t($metadata[$field]['name']); } } } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Statistics/Rulesets/BaseRule.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Statistics/Rulesets/BaseRule.php index 875557bc8dab7c8a0896fe196208d9d57abf1e5b..e6eeb77983dd137ead2d075b74a5ed8e96e0f53e 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Statistics/Rulesets/BaseRule.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Statistics/Rulesets/BaseRule.php @@ -2,40 +2,62 @@ namespace SimpleSAML\Module\statistics\Statistics\Rulesets; -/* +use SimpleSAML\Configuration; +use SimpleSAML\Module\statistics\DateHandler; +use SimpleSAML\Module\statistics\DateHandlerMonth; +use SimpleSAML\Module\statistics\StatDataset; + +/** * @author Andreas Åkre Solberg <andreas.solberg@uninett.no> * @package SimpleSAMLphp */ - class BaseRule { + /** @var \SimpleSAML\Configuration */ protected $statconfig; + + /** @var \SimpleSAML\Configuration */ protected $ruleconfig; - protected $ruleid; - protected $available; + + /** @var string */ + protected $ruleid = ''; + + /** @var array */ + protected $available = []; + /** * Constructor + * + * @param \SimpleSAML\Configuration $statconfig + * @param \SimpleSAML\Configuration $ruleconfig + * @param string $ruleid + * @param array $available */ - public function __construct($statconfig, $ruleconfig, $ruleid, $available) + public function __construct(Configuration $statconfig, Configuration $ruleconfig, $ruleid, array $available) { - assert($statconfig instanceof \SimpleSAML\Configuration); - assert($ruleconfig instanceof \SimpleSAML\Configuration); $this->statconfig = $statconfig; $this->ruleconfig = $ruleconfig; $this->ruleid = $ruleid; - $this->available = null; if (array_key_exists($ruleid, $available)) { $this->available = $available[$ruleid]; } } + + /** + * @return string + */ public function getRuleID() { return $this->ruleid; } + + /** + * @return array + */ public function availableTimeRes() { $timeresConfigs = $this->statconfig->getValue('timeres'); @@ -48,15 +70,20 @@ public function availableTimeRes() return $available_times; } + + /** + * @param string $timeres + * @return array + */ public function availableFileSlots($timeres) { $timeresConfigs = $this->statconfig->getValue('timeres'); $timeresConfig = $timeresConfigs[$timeres]; if (isset($timeresConfig['customDateHandler']) && $timeresConfig['customDateHandler'] == 'month') { - $datehandler = new \SimpleSAML\Module\statistics\DateHandlerMonth(0); + $datehandler = new DateHandlerMonth(0); } else { - $datehandler = new \SimpleSAML\Module\statistics\DateHandler($this->statconfig->getValue('offset', 0)); + $datehandler = new DateHandler($this->statconfig->getValue('offset', 0)); } /* @@ -74,6 +101,11 @@ public function availableFileSlots($timeres) return $available_times; } + + /** + * @param string $preferTimeRes + * @return string + */ protected function resolveTimeRes($preferTimeRes) { $timeresavailable = array_keys($this->available); @@ -86,6 +118,12 @@ protected function resolveTimeRes($preferTimeRes) return $timeres; } + + /** + * @param string $timeres + * @param string $preferTime + * @return int + */ protected function resolveFileSlot($timeres, $preferTime) { // Get which time (fileslot) to use.. First get a default, which is the most recent one. @@ -97,6 +135,12 @@ protected function resolveFileSlot($timeres, $preferTime) return $fileslot; } + + /** + * @param string $timeres + * @param string $preferTime + * @return array + */ public function getTimeNavigation($timeres, $preferTime) { $fileslot = $this->resolveFileSlot($timeres, $preferTime); @@ -118,11 +162,17 @@ public function getTimeNavigation($timeres, $preferTime) return ['prev' => $available_times_prev, 'next' => $available_times_next]; } + + /** + * @param string $preferTimeRes + * @param string $preferTime + * @return \SimpleSAML\Module\statistics\StatDataset + */ public function getDataSet($preferTimeRes, $preferTime) { $timeres = $this->resolveTimeRes($preferTimeRes); $fileslot = $this->resolveFileSlot($timeres, $preferTime); - $dataset = new \SimpleSAML\Module\statistics\StatDataset( + $dataset = new StatDataset( $this->statconfig, $this->ruleconfig, $this->ruleid, diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Statistics/Rulesets/Ratio.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Statistics/Rulesets/Ratio.php index 1f76f6b4709791447db69970aafcf7d666e02175..492064331f1be01972dcb8f5bfa83b6f53ec3974 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Statistics/Rulesets/Ratio.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/Statistics/Rulesets/Ratio.php @@ -2,24 +2,32 @@ namespace SimpleSAML\Module\statistics\Statistics\Rulesets; -/* +use SimpleSAML\Configuration; +use SimpleSAML\Module\statistics\RatioDataset; + +/** * @author Andreas Åkre Solberg <andreas.solberg@uninett.no> * @package SimpleSAMLphp */ - class Ratio extends BaseRule { + /** @var \SimpleSAML\Module\statistics\Statistics\Rulesets\BaseRule $refrule1 */ protected $refrule1; + + /** @var \SimpleSAML\Module\statistics\Statistics\Rulesets\BaseRule $refrule2 */ protected $refrule2; + /** * Constructor + * + * @param \SimpleSAML\Configuration $statconfig + * @param \SimpleSAML\Configuration $ruleconfig + * @param string $ruleid + * @param array $available */ - public function __construct($statconfig, $ruleconfig, $ruleid, $available) + public function __construct(Configuration $statconfig, Configuration $ruleconfig, $ruleid, array $available) { - assert($statconfig instanceof \SimpleSAML\Configuration); - assert($ruleconfig instanceof \SimpleSAML\Configuration); - parent::__construct($statconfig, $ruleconfig, $ruleid, $available); $refNames = $this->ruleconfig->getArray('ref'); @@ -33,31 +41,63 @@ public function __construct($statconfig, $ruleconfig, $ruleid, $available) $this->refrule2 = new BaseRule($this->statconfig, $statruleConfig2, $refNames[1], $available); } + + /** + * @return array + */ public function availableTimeRes() { return $this->refrule1->availableTimeRes(); } + + /** + * @param string $timeres + * @return array + */ public function availableFileSlots($timeres) { return $this->refrule1->availableFileSlots($timeres); } + + /** + * @param string $preferTimeRes + * @return string + */ protected function resolveTimeRes($preferTimeRes) { return $this->refrule1->resolveTimeRes($preferTimeRes); } + + /** + * @param string $timeres + * @param string $preferTime + * @return int + */ protected function resolveFileSlot($timeres, $preferTime) { return $this->refrule1->resolveFileSlot($timeres, $preferTime); } + + /** + * @param string $timeres + * @param string $preferTime + * @return array + */ public function getTimeNavigation($timeres, $preferTime) { return $this->refrule1->getTimeNavigation($timeres, $preferTime); } + + /** + * @param string $preferTimeRes + * @param string $preferTime + * @return \SimpleSAML\Module\statistics\RatioDataset + */ public function getDataSet($preferTimeRes, $preferTime) { $timeres = $this->resolveTimeRes($preferTimeRes); @@ -65,7 +105,7 @@ public function getDataSet($preferTimeRes, $preferTime) $refNames = $this->ruleconfig->getArray('ref'); - $dataset = new \SimpleSAML\Module\statistics\RatioDataset( + $dataset = new RatioDataset( $this->statconfig, $this->ruleconfig, $refNames, diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/StatisticsController.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/StatisticsController.php new file mode 100644 index 0000000000000000000000000000000000000000..3de1fd0e18cee3f7cdcd5a00c230c89aebafc85a --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/lib/StatisticsController.php @@ -0,0 +1,244 @@ +<?php + +namespace SimpleSAML\Module\statistics; + +use SimpleSAML\Configuration; +use SimpleSAML\HTTP\RunnableResponse; +use SimpleSAML\Locale\Translate; +use SimpleSAML\Module; +use SimpleSAML\Session; +use SimpleSAML\Utils\HTTP; +use SimpleSAML\XHTML\Template; +use Symfony\Component\HttpFoundation\Request; + +/** + * Controller class for the statistics module. + * + * This class serves the statistics views available in the module. + * + * @package SimpleSAML\Module\admin + */ +class StatisticsController +{ + /** @var \SimpleSAML\Configuration */ + protected $config; + + /** @var \SimpleSAML\Configuration */ + protected $moduleConfig; + + /** @var \SimpleSAML\Session */ + protected $session; + + + /** + * StatisticsController constructor. + * + * @param \SimpleSAML\Configuration $config The configuration to use. + * @param \SimpleSAML\Session $session The current user session. + */ + public function __construct(Configuration $config, Session $session) + { + $this->config = $config; + $this->moduleConfig = Configuration::getConfig('module_statistics.php'); + $this->session = $session; + } + + + /** + * Display statistics metadata. + * + * @param Request $request The current request. + * + * @return \SimpleSAML\XHTML\Template + */ + public function metadata(Request $request) + { + AccessCheck::checkAccess($this->moduleConfig); + + $aggr = new Aggregator(); + $aggr->loadMetadata(); + $metadata = $aggr->getMetadata(); + + if ($metadata !== null) { + if (in_array('lastrun', $metadata, true)) { + $metadata['lastrun'] = date('l jS \of F Y H:i:s', $metadata['lastrun']); + } + if (in_array('notBefore', $metadata, true)) { + $metadata['notBefore'] = date('l jS \of F Y H:i:s', $metadata['notBefore']); + } + if (in_array('memory', $metadata, true)) { + $metadata['memory'] = number_format($metadata['memory'] / (1024 * 1024), 2); + } + } + + $t = new Template($this->config, 'statistics:statmeta.tpl.php'); + $t->data = [ + 'metadata' => $metadata, + ]; + + return $t; + } + + + /** + * Display the main admin page. + * + * @return \SimpleSAML\XHTML\Template + */ + public function main(Request $request) + { + AccessCheck::checkAccess($this->moduleConfig); + + /** + * Check input parameters + */ + $preferRule = $request->query->get('rule'); + $preferRule2 = $request->query->get('rule2'); + if ($preferRule2 === '_') { + $preferRule2 = null; + } + + $preferTime = $request->query->get('time'); + $preferTimeRes = $request->query->get('res'); + $delimiter = $request->query->get('delimiler'); + + /** + * Create statistics data. + */ + $ruleset = new Ruleset($this->moduleConfig); + $statrule = $ruleset->getRule($preferRule); + $rule = $statrule->getRuleID(); + + /** + * Prepare template. + */ + $t = new Template($this->config, 'statistics:statistics.tpl.php'); + $t->data = [ + 'delimiter' => $delimiter, + 'pageid' => 'statistics', + 'header' => 'stat', + 'available_rules' => $ruleset->availableRulesNames(), + 'selected_rule' => $rule, + 'selected_rule2' => $preferRule2, + ]; + + try { + $dataset = $statrule->getDataset($preferTimeRes, $preferTime); + $dataset->setDelimiter($delimiter); + $dataset->aggregateSummary(); + $dataset->calculateMax(); + } catch (\Exception $e) { + $t->data['error'] = "No data available"; + return $t; + } + + $delimiter = $dataset->getDelimiter(); + $timeres = $dataset->getTimeRes(); + $fileslot = $dataset->getFileslot(); + $timeNavigation = $statrule->getTimeNavigation($timeres, $preferTime); + $piedata = $dataset->getPieData(); + $datasets = [$dataset->getPercentValues()]; + $axis = $dataset->getAxis(); + $maxes = [$dataset->getMax()]; + + $t->data['selected_rule'] = $rule; + $t->data['selected_time'] = $fileslot; + $t->data['selected_timeres'] = $timeres; + $t->data['post_d'] = $this->getBaseURL($t, 'post', 'd'); + if (isset($preferRule2)) { + $statrule = $ruleset->getRule($preferRule2); + try { + $dataset2 = $statrule->getDataset($preferTimeRes, $preferTime); + $dataset2->aggregateSummary(); + $dataset2->calculateMax(); + $datasets[] = $dataset2->getPercentValues(); + $maxes[] = $dataset2->getMax(); + + if ($request->query->get('format') === 'csv') { + header('Content-type: text/csv'); + header('Content-Disposition: attachment; filename="simplesamlphp-data.csv"'); + $data = $dataset->getDebugData(); + foreach ($data as $de) { + if (isset($de[1])) { + echo '"' . $de[0] . '",' . $de[1] . "\n"; + } + } + exit; + } else { + $t->data['error'] = 'Export format not supported'; + return $t; + } + } catch (\Exception $e) { + $t->data['error'] = "No data available to compare"; + return $t; + } + } + + $dimx = $this->moduleConfig->getValue('dimension.x', 800); + $dimy = $this->moduleConfig->getValue('dimension.y', 350); + $grapher = new Graph\GoogleCharts($dimx, $dimy); + $t->data['imgurl'] = $grapher->show($axis['axis'], $axis['axispos'], $datasets, $maxes); + + if (!empty($piedata)) { + $t->data['pieimgurl'] = $grapher->showPie($dataset->getDelimiterPresentationPie(), $piedata); + } + + $t->data['available_rules'] = $ruleset->availableRulesNames(); + $t->data['available_times'] = $statrule->availableFileSlots($timeres); + $t->data['available_timeres'] = $statrule->availableTimeRes(); + $t->data['available_times_prev'] = $timeNavigation['prev']; + $t->data['available_times_next'] = $timeNavigation['next']; + $t->data['current_rule'] = $t->data['available_rules'][$rule]; + $t->data['selected_rule2'] = $preferRule2; + $t->data['selected_delimiter'] = $delimiter; + $t->data['debugdata'] = $dataset->getDebugData(); + $t->data['results'] = $dataset->getResults(); + $t->data['summaryDataset'] = $dataset->getSummary(); + $t->data['topdelimiters'] = $dataset->getTopDelimiters(); + $t->data['post_rule'] = $this->getBaseURL($t, 'post', 'rule'); + $t->data['post_rule2'] = $this->getBaseURL($t, 'post', 'rule2'); + $t->data['post_res'] = $this->getBaseURL($t, 'post', 'res'); + $t->data['post_time'] = $this->getBaseURL($t, 'post', 'time'); + $t->data['get_times_prev'] = $this->getBaseURL($t, 'get', 'time', $t->data['available_times_prev']); + $t->data['get_times_next'] = $this->getBaseURL($t, 'get', 'time', $t->data['available_times_next']); + $t->data['availdelimiters'] = $dataset->availDelimiters(); + $t->data['delimiterPresentation'] = $dataset->getDelimiterPresentation(); + + return $t; + } + + + /** + * @param \SimpleSAML\XHTML\Template $t + * @param string $type + * @param string|null $key + * @param string|null $value + * @return string|array + */ + private function getBaseURL(Template $t, $type = 'get', $key = null, $value = null) + { + $vars = [ + 'rule' => $t->data['selected_rule'], + 'time' => $t->data['selected_time'], + 'res' => $t->data['selected_timeres'], + ]; + if (isset($t->data['selected_delimiter'])) { + $vars['d'] = $t->data['selected_delimiter']; + } + if (!empty($t->data['selected_rule2']) && $t->data['selected_rule2'] !== '_') { + $vars['rule2'] = $t->data['selected_rule2']; + } + if (isset($key)) { + if (isset($vars[$key])) { + unset($vars[$key]); + } + if (isset($value)) { + $vars[$key] = $value; + } + } + if ($type === 'get') { + return Module::getModuleURL("statistics/showstats.php") . '?' . http_build_query($vars, '', '&'); + } + return $vars; + } +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/modules/statistics/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..0540658da5d229b7588de0714b999d0aebffe445 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/phpunit.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>./vendor/simplesamlphp/simplesamlphp-test-framework/tests/</directory> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/psalm.xml b/vendor/simplesamlphp/simplesamlphp/modules/statistics/psalm.xml new file mode 100644 index 0000000000000000000000000000000000000000..1dba560190e7d1034eb9d1c3f4a06eeaf96f9c15 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/psalm.xml @@ -0,0 +1,31 @@ +<?xml version="1.0"?> +<psalm + name="The SimpleSAMLphp statistics module" + useDocblockTypes="true" + totallyTyped="false" +> + <projectFiles> + <directory name="lib" /> + <directory name="www" /> + </projectFiles> + + <issueHandlers> + <LessSpecificReturnType errorLevel="info" /> + + <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedMethod errorLevel="info" /> + + <MissingClosureReturnType errorLevel="info" /> + <MissingReturnType errorLevel="info" /> + <MissingPropertyType errorLevel="info" /> + <InvalidDocblock errorLevel="info" /> + <MisplacedRequiredParam errorLevel="info" /> + + <PropertyNotSetInConstructor errorLevel="info" /> + <MissingConstructor errorLevel="info" /> + <MissingClosureParamType errorLevel="info" /> + <MissingParamType errorLevel="info" /> + <UnusedClass errorLevel="info" /> + <PossiblyUnusedMethod errorLevel="info" /> + </issueHandlers> +</psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/routes.yaml b/vendor/simplesamlphp/simplesamlphp/modules/statistics/routes.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e0fa51ae9eb9da5b20f34cd9c79824bad3d14bf1 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/routes.yaml @@ -0,0 +1,6 @@ +statistics-main: + path: / + defaults: { _controller: 'SimpleSAML\Module\statistics\StatisticsController::main' } +statistics-metadata: + path: /metadata + defaults: { _controller: 'SimpleSAML\Module\statistics\StatisticsController::metadata' } diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/templates/statistics.tpl.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/templates/statistics.tpl.php index 7abe9bb7e10c0c1419d72def205596a0b7c8aeff..c0f975be8a61a46fd2cf2fbe4c7ad28dc6e8ac94 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/templates/statistics.tpl.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/templates/statistics.tpl.php @@ -1,17 +1,22 @@ <?php $this->data['header'] = 'SimpleSAMLphp Statistics'; -$this->data['jquery'] = ['core' => true, 'ui' => true, 'css' => true]; - $this->data['head'] = '<link rel="stylesheet" type="text/css" href="'. SimpleSAML\Module::getModuleURL("statistics/assets/css/statistics.css").'" />'."\n"; -$this->data['head'] .= '<script type="text/javascript" src="'. - SimpleSAML\Module::getModuleURL("statistics/assets/js/statistics.js").'"></script>'."\n"; +$this->data['head'] .= '<link rel="stylesheet" media="screen" href="'. + SimpleSAML\Module::getModuleURL("statistics/assets/css/uitheme1.12.1/jquery-ui.min.css").'" />'."\n"; $this->includeAtTemplateBase('includes/header.php'); -echo '<h1>'.$this->data['available.rules'][$this->data['selected.rule']]['name'].'</h1>'; -echo '<p>'.$this->data['available.rules'][$this->data['selected.rule']]['descr'].'</p>'; +$this->data['htmlinject']['htmlContentPost'][] = '<script src="'. + SimpleSAML\Module::getModuleURL("statistics/assets/js/jquery-1.12.4.min.js").'"></script>'."\n"; +$this->data['htmlinject']['htmlContentPost'][] = '<script src="'. + SimpleSAML\Module::getModuleURL("statistics/assets/js/jquery-ui-1.12.1.min.js").'"></script>'."\n"; +$this->data['htmlinject']['htmlContentPost'][] = '<script type="text/javascript" src="'. + SimpleSAML\Module::getModuleURL("statistics/assets/js/statistics.js").'"></script>'."\n"; + +echo '<h1>'.$this->data['available_rules'][$this->data['selected_rule']]['name'].'</h1>'; +echo '<p>'.$this->data['available_rules'][$this->data['selected_rule']]['descr'].'</p>'; // Report settings echo '<table class="selecttime">'; diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/templates/statistics.twig b/vendor/simplesamlphp/simplesamlphp/modules/statistics/templates/statistics.twig index bcd02a049d0af5e508ac703ffb4413631700a13c..8369448160827ada601d63038ca10d69c1587cd3 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/templates/statistics.twig +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/templates/statistics.twig @@ -2,14 +2,13 @@ {% extends "base.twig" %} {% block preload %} - <link href="{{ baseurlpath }}assets/css/statistics.css" rel="stylesheet" /> - <link rel="stylesheet" media="screen" type="text/css" href="/resources/uitheme1.8/jquery-ui.css" /> + <link href="/{{ baseurlpath }}module.php/statistics/assets/css/statistics.css" rel="stylesheet"> + <link rel="stylesheet" media="screen" href="/{{ baseurlpath }}module.php/statistics/assets/css/uitheme1.12.1/jquery-ui.min.css"> {% endblock %} {% block postload %} -<script type="text/javascript" src="/resources/jquery-1.8.js"></script> -<script type="text/javascript" src="/resources/jquery-ui-1.8.js"></script> -<script type="text/javascript" src="{{ baseurlpath }}assets/js/statistics.js"></script> +<script src="/{{ baseurlpath }}module.php/statistics/assets/js/jquery-ui-1.12.1.min.js"></script> +<script src="/{{ baseurlpath }}module.php/statistics/assets/js/statistics.js"></script> {% endblock %} {% block content %} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/templates/statmeta.twig b/vendor/simplesamlphp/simplesamlphp/modules/statistics/templates/statmeta.twig index 09808e837a0d97818e143582d9915199cfe24d43..100a8c886c134e64200ac56ce1382b1f0674821b 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/templates/statmeta.twig +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/templates/statmeta.twig @@ -2,18 +2,19 @@ {% extends "base.twig" %} {% block preload %} - <link href="{{ baseurlpath }}assets/css/statistics.css" rel="stylesheet" /> + <link href="/{{ baseurlpath }}modules.php/statistics/assets/css/statistics.css" rel="stylesheet"> {% endblock %} {% block content %} + <h2>{{ pagetitle }}</h2> <table id="statmeta"> {% if metadata is defined %} {% if metadata.lastrun is defined %} - <tr><td>Aggregator last run at</td><td>{{ metadata.lastrun }}</td></tr> + <tr><td>Aggregator last run at</td><td>{{ metadata.lastrun|date }}</td></tr> {% endif %} {% if metadata.notBefore is defined %} - <tr><td>Aggregated data until</td><td>{{ metadata.notBefore }}</td></tr> + <tr><td>Aggregated data until</td><td>{{ metadata.notBefore|date }}</td></tr> {% endif %} {% if metadata.memory is defined %} @@ -35,5 +36,5 @@ <tr><td>No metadata found</td></tr> {% endif %} </table> - <p>[ <a href="{{ baseurlpath }}showstats.php">Show statistics</a> ]</p> + <p>[ <a href="/{{ baseurlpath }}module.php/statistics/showstats.php">Show statistics</a> ]</p> {% endblock %} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/tests/bootstrap.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/tests/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..60565036ecc1672468c3b82a0de01c015e83d9af --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/tests/bootstrap.php @@ -0,0 +1,11 @@ +<?php + +$projectRoot = dirname(__DIR__); +require_once($projectRoot . '/vendor/autoload.php'); + +// Symlink module into ssp vendor lib so that templates and urls can resolve correctly +$linkPath = $projectRoot . '/vendor/simplesamlphp/simplesamlphp/modules/statistics'; +if (file_exists($linkPath) === false) { + echo "Linking '$linkPath' to '$projectRoot'\n"; + symlink($projectRoot, $linkPath); +} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-bg_glass_55_fbf9ee_1x400.png b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-bg_glass_55_fbf9ee_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..1f851db2c9babc701aa0df1cc4e675943ab7812b --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-bg_glass_55_fbf9ee_1x400.png @@ -0,0 +1,5 @@ +�PNG + +��� IHDR�����������A����bKGD������ X����� pHYs���H���H�F�k>����IDATH���! +A���bl����A1{�V�Y0i��x��x�v����D�K_��O��9��a�Ք��}��^�JaȌ�0b�vBA�$,�Q���"_44���=�Sqc�yE��I�W +<kA����i�0��<a$S��y.���%tEXtdate:create�2019-05-26T16:42:24+00:00R������%tEXtdate:modify�2019-05-26T16:42:24+00:00#�oP����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-bg_glass_65_ffffff_1x400.png b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-bg_glass_65_ffffff_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..a82e07c128d7a152c2ddd7d5eed531ac7f1b5ec7 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-bg_glass_65_ffffff_1x400.png @@ -0,0 +1,3 @@ +�PNG + +��� IHDR����������G#7v���bKGD�݊���� pHYs���H���H�F�k>���IDAT(�ch`��p���h��4�i���%tEXtdate:create�2019-05-26T16:42:24+00:00R������%tEXtdate:modify�2019-05-26T16:42:24+00:00#�oP����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-bg_glass_75_dadada_1x400.png b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-bg_glass_75_dadada_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..f323d2943e827649ecb51caf4e1a53c4d4435ab9 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-bg_glass_75_dadada_1x400.png @@ -0,0 +1,3 @@ +�PNG + +��� IHDR������������D���bKGD���1���� pHYs���H���H�F�k>���HIDAT8�cx��a�"��[�n{1�qc��po"��?3}`xR���1�s?��^^bxu��u)�뉣h���W�%R�|���%tEXtdate:create�2019-05-26T16:42:24+00:00R������%tEXtdate:modify�2019-05-26T16:42:24+00:00#�oP����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-bg_glass_75_e6e6e6_1x400.png b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-bg_glass_75_e6e6e6_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..8adf417e90dd6fad53bc76564f9d497c58184a6e --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-bg_glass_75_e6e6e6_1x400.png @@ -0,0 +1,3 @@ +�PNG + +��� IHDR������������D���bKGD���1���� pHYs���H���H�F�k>���HIDAT8�cx��0�F�ѳgύ��ax1��e&ë8��!obަ2��fx�����#3�ǵ��>��QD��@�$�.5o���%tEXtdate:create�2019-05-26T16:42:24+00:00R������%tEXtdate:modify�2019-05-26T16:42:24+00:00#�oP����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-bg_glass_95_fef1ec_1x400.png b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-bg_glass_95_fef1ec_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..3f88c6b520cd6d07bbeb3a7f7aa748ebcbe3aabf --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-bg_glass_95_fef1ec_1x400.png @@ -0,0 +1,3 @@ +�PNG + +��� IHDR�����������A����bKGD������ X����� pHYs���H���H�F�k>����IDATH��ϱ a�����\!V��J#X����ЋD}� .f�>���>��P�կx���x����q��жuɚq���f+��6���[��\�����כW�T4r���6:]V:�, (�Ŵ�8�yG-(d�� H���%tEXtdate:create�2019-05-26T16:42:24+00:00R������%tEXtdate:modify�2019-05-26T16:42:24+00:00#�oP����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-bg_highlight-soft_75_cccccc_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..d022fb79b5b59df131762103ed3cfdf66eadfc8f --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-bg_highlight-soft_75_cccccc_1x100.png @@ -0,0 +1,3 @@ +�PNG + +��� IHDR������d����2������bKGD���1���� pHYs���H���H�F�k>���ZIDAT�cx|��Nhã����2<hc�_�p/��n,� �[_n�g���p=��Õ��w2\je�X�pa��&�s��b8��p���"�����Y{���%tEXtdate:create�2019-05-26T16:42:24+00:00R������%tEXtdate:modify�2019-05-26T16:42:24+00:00#�oP����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-icons_222222_256x240.png b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-icons_222222_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..e723e17cb5428094de75a0d3c6f4f3c07dbd3bbe --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-icons_222222_256x240.png @@ -0,0 +1,32 @@ +�PNG + +��� IHDR����������E�r@���bKGD�"�b���� pHYs���H���H�F�k>��'IDATx��{he�}�?g����{��1)�����]K&qq�U�4kbiK�R(H��B��P(I�vJ�_��ӮIV�@nB�5i�N��iG�jq�& ~A#Q����rX'����9�:�ܫ{�3�E{�=�y�o~3g~��Mp�&����1Xxh8<�#dlЅ�Mx1�&��$�5~��V�� ��c�$��ױ���,���� ��ƹ�i���N:�Z ��ߊY���>�"�B���H!�������-C�u�8t�}����8�!�B�� *�OF�.[�aͲ��l��B&���1h�>��M]hN���4MAb���̐!(�hE�1�5jձcO�<6�e7��,e���S(��f�o�16+3�y +JR|{�^3�^����{�88������~'����pxh8<4��� �g����������2��n6e̘�����{�����Q�����pӀ��P�A��iۺߖ�f�S����(�D��'�L�6=����T:s���f�q��羀l��.c�I +���ǧ�=�i���M�>��ڠLN{U��&������&��{u��o�����.�.��4~#����pxh8<4��� �g��Û��p���^i����/�0���TW�c����Q��� �@)��y��u}`L��Uc���%T��������ȥ +�A��R��@�?��P�-`����BKl� b����Z}�������Ш��͢uJ��%U�]�K2��e ts�Y���@,e�e���豅r��jcܭs��M�n�0 A���mP��y �D�K(5�,�lN�&b�D�m�rwYDV����t�e$��謷� �L���[��C��0O�� P��&��0����+��;� �g���3@������pxh8<4����Y��`��O����F�Z<��h�\J!c��`����j �;TK�Vr�0��ʹqc�cGz�䟾c�[ ̕P5�t�h�)���ti���З߭ty�������&��M/Е����S���u����@��݅���n���b�9��`y�9��Ya�SX�0e���q�J`nB���g����b�����3���4P�- k�**�@HC�z(}��U����cj2��=��Ob�����3� ����R��05���1U�\8SMi�U��}����l�Hl�N� ���J��q+%e��7s���"�<։�ּ�z����M�L�T��ƾP��1f�1i��Ѹ��Vp������pxh8<4�z�A��+ o`�I_�R�����~�~��f��սh`�Ic�K�h����Q�p��xx`=�j�`]|S�B�(������(��v���F3�4v�6��T��4 ���5����:���*��-D#�n6��a��J<U���~�y(�1��(,�|t�z�}��d��j��0u]PT��-D}@����� +�n�+[�Ύ� A�B�T���(V� K������BT<[F{�m��=��-�ڤ����$��.��JR�U j��:X��e�n�e���bՅ��"C ��e2�@�Ј�݂� �Ѱ���xxh8<4��� ��1@kX6I��<��M*�Љ�Ѣ�+�b���04(�.�M3Z�<]&i�UuY�a��^2�w�ͻ�ɨn�U�@�n����E�4 ���O�Us�.J���}��dw�Ed�p��� ��me^f���mF gg������T��G4�Ѱ����m��������N��է��N�c�����������5�L�xi���D��9�|��%ܔ�h�P=�áb����o�p�VBG�X ,�#E��+�\�^��o�ʼdM��ɳ]�d����.�@ 䮚���D���e��FU6'g6��)��52p|��f��X�_a�"z��x���� �w�.c�t� +�� �g���3@ñ�`"�i��K�9���s D07� +ӕS��E�oC�Y�Z�l'N��~_Sƞ��y���a��xK�������z�-&|(�ϜC�K������Xg�d����5Ig��8k8YTL=�,/ +]s��w-~��t�����e�� ^�~�&6vh�}�Զ�:g���?m�bG!����1�:O8����]�%��2�����v +�E�@�5"�6 Y�rXcRb��ݎ���E%���`�#�D��r¤��Z�:�ϛ!�x�R���h�!��}v�۴��ϳ����x�y}FrA1#�*�u�T�?>��!�x#�~��G���k���@3K@�:>P�R�����M�A|��e]K�g�F.B�����t�l��OY d��!(v�V�X��%m�#���I[RR�`2�T�� ��H��w�Y�u=���b�YPEc�U%�&@��Ĺ�]��}�q���o7*�G�L� ��e�QX�5�U����-����³��8| ���_�ݟ��5\�5�p�VH^��\ �Fآ��a��a��5�l1�4[��#�b�o�P�1�E��is��wMJ'5�T���06�B|I�,b�����`�ՈP���X�k��B�$�[��-E�OHt�|�3�D�(i��d9�N6@x/ؠm�(�#�wj�P�t��/Z���ob�q%[:���3^�~a��5���5�����|E닃�^�E��$�L�-���_s, +߫��㕔Ņ�&�� +�_�,�������#F�}����&���.��<4��� �g���O��rdh9�����M7L(5꓂.���?M(�����stզ��-?�:��[ڧC�r�]�'��YB�2�l�C| l�eXS��pG��0KcI��~�u�L0/��y�Lt�r�I�?�R�%�����-�w�Ƿ�h���$L��J��V���Ϳ�Ӣ,�����g� x�_7��l��4�*��u�M+�@�x�<}��ã��q>��<�#��`�i� +:=��*��ۿ�{��)��_��8hs���������p�CWғ�K�`B]H��"}���_P�N���t�Q�l��1Y�Q�h+����&?��x�5:� ֘aY�ҭ���=\��En��������.�Yʸ��J���E%uTj5�����F�'������b;[��v�ט4�u��6]�lkw�3�÷���,: ��%&�� �[|��|��|Yi�q`:�����qXc�2+u|~/�wrz�[j-�I>#���,�9�Q:�#,2�����5@�@%��S@@6ÅJ�{��6��{��)h���W�~q]����t��<�+|�'�0O�a����6���3�U��HW������l;�����'�Z9�Z\�o��O�嵁���e�e�Ƣ[o��da�����rEm&�ʧ�������3m���6��=�g�^S��x +Hj���mi�(v��ۈ�{.�h�_���%�8��nF�7y{�����O���FS5�:�����/��ա���W�P�H+b�����Gx��/9��I�Yy�.����M�t��T�eە,�ѿ�-�R����e�d�� +��;�Ә:�9k��T�5��m����������E�G��|\Wu����ǣ��@^L���E��� ��4��� �g���y��; +J'U��䐎N�<�p2m���ӫ��.Z������Z5<� V +,��p�3��w�=~�3j��ǿě�#����ʭ�|�S��f�yk��=C�n1]�C�'I_O��*,�J՞�D\\I���}�E�\�$�M�(�E��\�߮�?ƫw +�����NJ��E�b�6��t�z�:<��u��d��k��vs!��PfM��7dT����3 ��*S,�AZl+N����l�R�&{�I��T�G�O�*�M~�;������XFS��j����^�Q���N�n3�Z���0Ne�R�]�3�8��<�$@�˜c.�t�=�.{e��'�TI�s��u����>-?B��p���?���X�J $�x�QJ�}�!#��Ո2�Ht!VɽV�\'���Y�3�6����6Yu��JOAa�[5e���]p9=7����t���_�y��?�OS���<V��q.��Ի���;�8�~��YE����KSȀ��Xjq@M�� ���/�p�X��۴�[�S��c7�'S6 �E� ������_Ձ'�_��)^3�b�h���+Z ��"rLz�ZA��#��[��'�?�Z7{mZl�Ӭ�Q�De+^��o�*D��g��r؈;/�."��HF�Ƴ5��)F ���2�c.�W�~�`����VEl����6�R����8ظ�ky�k�.����`��Fp7pps"�"��KR{(us�[�%6 u�s�ͻ���,BD�����/�ȷ�_Pt?�Y�Vy�.s���Y�3����3������\�V*#��y�f2j��g����A��Ѣ� +�g�-�5����Fh�-1�9�v��<�s �����m�� =/�_f�WX�M�&�לi�RvٗQt��_���"������Q<�(�1[��_~��b"T z3��sxh8��������p�`Z�/�NΧ���F��{�"p�i`�� +�gsO��s�.�G}��t<��9�ug����g�R`���&��X�t�岇�}� ������7����2J�X�e\�� 08j=�XJ�Ql�l����x�6z(\5Q��I��=�l +8�7Ɏ���E�a4�O�;�-��M�1Iy�vV�y^�b�EN��sQ���Cw[ �2 ��V�Ǽ� o�yw�7J����K'�Tu�l�>_�i���T��<͛<�iM +�p������7�YMW���=�ӡl(����u�+���^j��>3��2N�묳}��j�H��Q RT�Ȣ�� ���n�fݮ�~�+��c�iQ��< ����Ma=��|�*���� +�$@'��Ԍ��ǕqUO;�5~@��eI�2��9�w��"��O�~��s��s��k{��$�m��>����v�z��^2���v�ow�`a������4c��M C�����b�>����q:��o�=�-�p`_2�ng:6K��XV,����2�Ǿ��6��� �g���3@�� ��ś�s�a����R��WWB +g-N�;F[��Ւa�A��V�L�F�<-m +VbMC����7���K)�X����P�y� �s�~��=�����<�ܒ�{�x!�=����Ãq�R��l�]���/���� 0�l)'�}�#�^tX��孋�t�8FC�Y�$)�PUBE�(~��Ҟ��V�2^��*SL�H�l��S��'IA[�������Z���x-V�"ȥ�J�+���\�|�5u�W��nLJ�k��ܟ���(0�0����JyꞄ���a���f��g����6��� �g���3@Ñg���[�}��Z����Q�k?ҳ=��z�I$Т�:�9FW��m�x��:\(�W���+��e���F�9��,��*�!Gh�D��L��8�[v��o�����)�A�a�K�5�S/�)^c����(��W�H�N�W8T�r=op��p]MC�O?���*�� +DO��b/�hs�0�ڜb�9�1C�9-����o�ۿ���ԗ��u���Q��Fc���|W�%@�HB�2�9�������/Dx�D`�U:�Ƈ�gi����"`�%��ᄽ +������t �E`t���6�2k�)P�E�ѿO,��?�k��_�yh(/����=@��u �g���3@������v@]��<����]���~��WD�`��.��f���~�o��ʈ�N�VA��߈�ե�M����� �^��y��M�Q|��ߛ^-{o�~��>��w���Ѓ +��(��g��X���ץ�i��&�X +u��D�U���͕l� ��ғޥ�ߞ���k�������PH�H�C��J�~��S�@O�� ��ѓy7��� �k {��25���of����ϫ�o���{���'!�'���Z%��q�*)�g���C\���#��\���'��0���P_���WL��7��&AlJ���\��� Z��p��,���Y�x��j�c�����O�(6z��I�V�� u�:ג���T��D��O��9�ׄ�Q<��*y =���2��~����/?J,����WJ�Q�W�>����W��u�?��#G��/����4�"�K���{㧏�',I��ҟ综E;���|R�ݠ��~��W�7i8�6����pxh8<4��� ��r�<}8� kG�o;��u�C��P��v�)��A�<$��ց;��{l��� ����� ��#`��F���C�!f� Ӆ/`7��(��0R!9�9�z���@%!/m�]���Ad��hv�G�����3@������pxh8<4{����P/ 3@�}�� B&�^�16�{. �����ߠa�Q�o ���2l���mt���!\%@�X���?5��ճa��~ ��ʠM65wk��a�)T���F��_� +2�$�x�5�_9!�VxRd�1!}����'�`�$����Uԇ��r�?� �Q +�`7`�.���k����_V����zԄ��p�]]�GO���LXCk�3����%tEXtdate:create�2016-07-13T10:21:59+00:00�����%tEXtdate:modify�2016-07-13T09:26:54+00:00�͠���tEXtSoftware�Adobe ImageReadyq�e<����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-icons_2e83ff_256x240.png b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..1f5f49756ca64bd20a1048bd7a3a584457d4bf00 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-icons_2e83ff_256x240.png @@ -0,0 +1,18 @@ +�PNG + +��� IHDR�����������IJ���PLTE.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.��.����o���YtRNS�3P���/"Uq@f`2� !<BHK Z#'1S,�4���j���8E���|��������)��Q$� +��b�J��mߜGc?o�h�@^����bKGD��H��� pHYs���H���H�F�k>��dIDATx��]c۶�H�阒]�K���d��%٫뺮��lm���w]����|�p��X�m�-��}<�w�(1$�� ;�F�@��%��?����B,Lh{�t���#���T@�/?j�9 m��N� #���+`��`����I� +��_�-s�ʹU0�M��[�� +s�4`x���#�� �D<�~�K��.4�]`��PDDDDDDĈq������Ek@����A�~�*��� !Y���X�`hv3\LX��Ot�J2b���ؓl�QI<��� �6�-X�lֈ�6�H��|=j�`E�iq����Cv:�q���C?�?���x�,��r*t�ݻ}|;�kP�4���d�Y����f����K��~[ >�X:+�i����ĆQV9\����e�'���A�tOS�:7��2����YsxM�ہ��B���&���z�>n�C��@��r@��*�a�ӝ���%��MFDDDDDD�T�ߖ���H,���E����RU��n ب<��V- @�/Nm�թ���������Hw����*�+��#��$o�e�{�% �7\X��ǀ���2��~0��&n��sbA,�D�� �A�V�I��|� �Og���鴋� �7�y 7Jf�����:_�w^��H v{/O�9���<����Y�`+�� HRٰ����[��?�� +������=���c""""""F�˽�sG�<*k9c��E�8薽�������zfm��r�1�N�������nq�w��&=O�\}K` +#���2��~��L�|?�m>�\�f���:}�4ᦋ���{�)�n[�� +�̰E +KY��D�ۇ-�� �+�Kl=�Ӄ��L`љ�|�%��n� a� ���N�#��5� (4���?�����EDDDD\o�W�Ffq;��\E��_������,���W!%�zE!F�¶.�(USHQ0d�w)T���8#p,�x�B��K���� �*�x��X��E�e������ +K솎%mK��X~s�FE���~������tdc��a��I���1��Af4��dH��c�G�S�B`��0�wev`����"�{�� �.�GDDDD�,d�O�6�k"qk��Me�fS_����U��KŌ&g~>n� �H�})��L���F%8(�)r���!�[4统qQk�0�m[Le���_�7���0�@>1 X0A��Z����Vc�E�V ���Lt�k�3�EJ��44�Zﮊ�N`rt�>`�˥� � � A��HBLH�@��c���Uq=�j������cM����2�s����J���CL�iR �NQ���������0=���Yi�-�|4�V��]��]��B^�ޞ���_H������$�<�$� +a����=��d@� (Z�Ap_�}�~s���:�N�{DC>����m�^������S�&�, ;�N����&�B} ��<_A��B]H�u���N(B�0��{h���1�IK����Ds��j����'��M���8�.�ӫ1�h3�df}mq��� ��n�U{��L�o��z\=?@ ((���e�|=ơ麄�C�i����1r<|�OO�;� `��H��p�Qy�zԈu�����Z���V���Ʋ�!�)��5m�C���2��Ly�g�;���֑�R���jW�a@��@V�L�&W���ru=Z +�̥��=U���5}���������7�;b(�����nP&�s��k�4�����8�ͥ��0���1�U�W�v�k�18dq���T��ՌE]qH8�������G�F�����K�����'��r����Or���r�̧��6"fp��T�^3c��"�����n��Mم-�/��W=�tJ,��X�)���{�P Rm|K����>mX�8v�5h��<������_{ꘀ�Y�F�|&_G;&�>^�����W⁃�&�K���(��81�EB@F&��;"L���'wfw��E-6��o&/̫'X�e,>~�ee��|���A����=) d��Q�`}P[���K��N��˂����/�~)����O[d�O=�3E�l5'Y�$?��7�m���Tzզ.�\��.��` WE�����"""""v�)��V���<���K�ZX.Ex�~Ч)���ߚ�����W_}�5|��s��/!?����'poդ���tC3����@�Q�)��t��`���b!,dY9�6A2����������/튮���n�t�TK>����#]�L;zq�J���r���²[��\-t�ҽ�5 @�ͷϟ��n�T@��+;��c���Qh�C*���T�ڙ��A<Sku�µb�E� /��$�Z���.e�j������_ʤrWaB6d���(��S�s[�|���竕 +/5R���(�4X������76����`3|���P��p�'�H~<R?M�2�)� ��g��Vp��B�n�=�|W�ͬ\��V0_�81Oׄ�Kz||lP_��ω���lxX;ǀ�Ju�<��Ng[��]=�(�#]������p�P�a���i�������s�f�� +V�z��]ౚ������z>�Vr�?�f��?������ �Q�1�T`��} H�k���,{�VZˋT��ϛ�?I̯u�QK�LM�e͆��~��q������y�m0�9�S�;���j�����5 ���i��Q��]7k0�U�ޭ���G�kX����3#���lY��_Цx����j9��`�# +M [z��KuO_z˿Dܭ��*��kOJ�(7��n��\�e� I�T�ƨ�l�/�U������߶uw�.�~���;#�r���.�����8 �o# 5L��h>1�i�����p��V�M�?�/u7��0� X@��L��+M�+�����{��Fkt�{�ŧ89�0`���. ĀC�R+\��/��t�R����; �TӲ���]�aL���|�efđ�� �>�ۣ��G�|�P`P��8C1K՛�A�̍<�2��ۂ��K�r�l@L +L��������8�@�E>`n�����PNԍ,��p�����E��Ɔ����Z�FlÎ;�����F���7��Ȯ;�� +��s�wSz)g7�{r�s��S��gȋ��(߄~�AWytX��$�NV����R�_��<6�p.�O�8�O[�OdDk>_��O�O�}����JS���d��mV�?�W(_��m� ��j���~=H IԁF>T/��{*]IGJ@i����qam�NF|Q�5���0+���E�S8�:�v�`p~v���j:B�����p96�o��ys%�������� �|@H�����]��+�@��t]W�k}}�����7��Fʮr����A�����B���\m�-�_�2PY8�������x�ՎN�.h�~���@+7��z5������t�_/������/�?���0�S>��)���z�i0n�/�B����`{D��W���#`����B��o���[,�g��FVЁ�pP߾���C]Bz�� ��,X�����X�fԃ����A�:H��� k�7��d�Z9��oc}o�]�0�vd�:R]�0�ve���]刈����j����у����| �?�+(��OǍ�+ �#��ys���ߍ�n�p���Fru<��.HȺotM��3h���}��߆P}�������˗��v�����P�}mǀ���?���W��Z@���������}���������@��@���FD�������l����%tEXtdate:create�2016-07-13T10:21:59+00:00�����%tEXtdate:modify�2016-07-13T09:26:54+00:00�͠���tEXtSoftware�Adobe ImageReadyq�e<����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-icons_454545_256x240.png b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-icons_454545_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..618f5b0ca756789f81bc276426805df6f61b91d7 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-icons_454545_256x240.png @@ -0,0 +1,30 @@ +�PNG + +��� IHDR����������E�r@���bKGD�E�;�-��� pHYs���H���H�F�k>��mIDATx��{leG}�?g�K��$����U�!�>T��؈�J��i6A"�V��R%;��"���*UP)� +�/���z�RJ�F��QP��z��BQH�VU������5sμ�9��^�3ߕ��{~����7s�7��<���.��`���� c���Ab/�@�[�V�D��0��3AX9�0�N��_�B���&���>~�>� c�;ab�D�ߎE����Q�z��'k���M�ayԉ��6�!�:u:�:@RŤ�B�yDD���'�L��-�f�]S��q!��f� +S�Q�&�S��7MC��r==3dJ��{��f�Z���S0�Ms��:0K٦g�ʿ��&H�U�=�mc�4�i?UĔG��U4�hc��Qb�]�!��hL���W/� ����@������pxh8�~�|�A��Qf?�ێ��1f¸����=u����Q�GJH��p����PϠI�w״m췥���ԧ>2���"�WÓP&{��n����T:s���f�q���H@���.c�I������~�S�s+�^|B�n�29�dH�������]��v�-ˌ-m�e�h�>�����q&ت��g�9x�#c�n��~!����pxh8��4^�/� ����o�#�Z@��S���^��4� KZKP�d�9���C@F[�����,��a+�����]8��v��K�qHl�w9ק�84�KB��ץ|��&��#��[�\C�����`��R��!�����:�F +z��C���6��)A���T1wU.I�җ!4��ig�3w��������E:��q7����n�0uA���mP��y �T�K(5ͬ�lNæb�T���rw�DV�]��t�e4���7� �L���[��C��0��P��&��0����+��+� ����@������pxh8��4����Y��`��O����E�Z<��h�\J!��䞋��j �;TK�Vr�0��ͬq�cˇ��u���a����p����E{B�w"�K��5���n-��c"w�v�T�6 T�hzီ|6�ŝ���Ι��N{ t��]��K��^m1(�6��m�3��'�R�f���`Ô�� �_�>��j�,�*�-E)�e��{�U�,�� \u���oV��: `o��m�Ke�t��_W��O��dW3���Z Քrv|�~^�g��`j�yc���p�*���f���b�]�M5��9��.��L��N��q+%����ۯ�0�vc�c�J��E�M5���kk�#I�<���x_�� �I#0D�w��4xh8��4^�/� ��^c��� +����d�r��DM{w�Q�t�e�{��^�`��b�r./��M:0գ��*����z���`]|S�B�(�e)�h͎/V����ܮ�"aO!�o� ,�u�^���Љ�^�=�z��t`�WeCC�MQϱo���0q��%���U�o?�<��@6��HG/����������uAQ-_�u||����ִ*2l��ٍ�uG�@� j !�B���r����� q�L!*)�h������.�V�{3����-��!�w�$dP�*�����/P[�t1���l3�hl�y�p������0b��g�L�} �3���$�%\/��.)TwQ�"uK7d�+�2�!��@������pxh8��4�'��aY$m��f�6�lB'�.D�� ��Р��x7S�x��tI��eW�e}���d0�R�W��^ݢ��0](U�T�x����|��T�|����@v�^DfLb��(�2��H��0n8;���_�Q�O��}D���&3{��Y��W�w��5*��e˗?�̖�G� +�:H iZӖ)/MP���(:�!�/�|B��[i����:�Gf �L�`�~��:z$aa���^����ʭ|P�- kbݞ<ەL&�xJ�AABȼ�Hvᑢ�[�yS��ə�w�NJuy��%pw�0�_a"z��x���� �3i�1|���=����@����%�JW����A���m�\���� ��l��X�m9+�(��)������S��� or��ro*E`�Z��1��&=�ޗ�g�!�Rt<<�A.-V���+�l�|����suK��,&�ȇ��%����y�q�s��(A�K�*�q^�~����anb�1`�6��G�P�a�&.� �)b���muL��I���fnE! k̠Ò��c��m���c�ȱD�-B֥֙�D`:G��e�tQ ��7�0���0��������YQ�Ӕ،?�mb�/�eL{8�<� q�{��X4��$s���D@����s�9�����e8��\c(���Y���"�r���7��q6�u- |��B����R���i�x!��9^P�HD�����g�t7K���|��2��"�.�t���V����w�E�u>�b�������f����a?q�h'y'r�y����#\��&�� +o+��Ԫ������|�Y��%��_Hp���"����k��1��*ɫ���U[��&x�9�xA��s�mf�e��<�_����7�;y�6m���i � +:�[��)�EB���7�̰����8f��CH��`⾿�h�)�����}�(�%m���'��&��� ;��(�ݚ!�{:^����R��@���N���Kү"�*�<�V�敡�=��o�h~q���+`6I��i�I<#�����Z=^IE\`�0]1����%�D��A��^�a0f��,���c %[�Gxh8��4^�/������rdh9�����M7L)-�ӂ-���?K(����stբ�h-?�:��[ڧC�r�]�G�(�YB�3�|�C| l�eXW��_�x�V8Ɗ�b����bQ����7�����V�4J�]������l!��=� D?��'a`^����a�q��8���:-��O��YP��x�ۀ���֝��X�5Q�"�Gִ����W}��� +���I>ȓ<�c��b�YV +6=��*��ۿ�-\��įi|��BH���J_F�Wx�CWғ�_��K�`B]J��"}�`�_R��β��&nDsp����t%G-�^���V�����yIc�b�9.hM�u����K��ĭ��6T���6��5Ko(� +%Hz߲�:.��n�z�ōO�>���c��lpVZM_gڰ�C�v��eG{�����<_d�����0e���N�%N�y�ƍ����Ȅp��~�Ú�/���k�������n��������|��(G������#.�s��9�J�ۇ��l���[��6�ɻ�&�.X���{�����SDf��<����y?O�~��ƅDP���*~b���gco��s{;�����'�Z9�Z��.��O�孁���e��U�~?�Ӆ1N�3��ڶD�(��1Gx�x�k�S�H�I~ی?O��������k���,��i�(���ׁۈ�{.�h�_���5�؋�nF�7��0Q���O����S5�:�'����/��ա���J�r���� �.���KN�wu�e��r>n��-�U�$U`I�v%�����.A�U����e�d�� +��;�Ә:�+�a&�XĎ �y������������������G�с��� ��"��4��pxh8��4^��� @d6�((�Ԕ{�C::[�>�H, +�ɴNVN����hr.�~N������Z��`�3����K��Q�|$�%�t��!�Vn%�=�*�7����f��g(�m!fy���"�k�I6Y�/�eZ�ٳ���+���z�g�6W8ɦbQ%�y�{9����Ï�*ŕ�#��7��b-t��X�͕8y��nO�{]�!ټ�*���\� �(��p�2.�H�ٙ�d�.�^Z�(N���&�l�2�&k� �U&ף���#~�.���7������6���58A7����}P:��BlkU�[�8�)�j�w0�$��W� ��!s\�������QF�n(qRK��:'�X���@����=$��x����|�5:��@��]���2�S�i�.�&�� +��$` +8�t�����S =�&[#�߫��U3���Wҳq��^H{���➇�Z���4������"��A��H��#����U��0�+̱�1�Ɏ�;����O9���"�D�E �C+n�U:�|a��ɔ�M|�?H������W1�$~=�k��U�џ���V������V�����l{���7� �����^�;<�,�t[������T"��3SU9l��˾�H���x^�&�a�@���)�E��&�<<B4�(b����p������Ƶ\˫\�u��f�����7r����������^��Ci�[��.��h���_�^��mD�"DD�_3��e�������e��X� �,�B@�fU���/�?���g���B�R���C�&��2���P�8��@3ZtS��<����v7�^#�另�;c'�Nȹ����6�g[�J!Az^ ?�<̯�oɛ�_s[Kg{(e�}�E�~J��,�m<<�����U���g +"&B%��7�~�{��/� G�l��4^�����j�����Ԓt���cA��0\(�����ܓ�Ԡ�Q�8��YN�Bݝ�?[���R��$�k���\�{�u���~�Q���q�)�8���z:G�G��UK�:� 07��6�-�� +WMY<����� ��2�Ѱ��$5�&v�}%��8�)#9&)/��K^2�+��B̳�i���\Ҥ����V�}�LD���1/i��n�]2č��>��I?U�7x���G�4�c�*�i�� +�5)�ñ>�wH�����f5[q���O�.���d&J_�~W\`G{� |-���e/���Чk��d� E�����(���N�i�v=����C`�̲�Z���+���%m +)s�!ī�6Fei�N��%���O*㪞v,s��@��%����4���tS/<E�%��0wr��k{ʉ2b�6ɻ��*���;�����zs�]�,�B��!,ų�uM�zȐ"��={����O���E����۴��w80���ۙ��%�\PL���� +��H�[/� ����@������G����9��A�Pi�G +ѫ+!��'��^��u'þ��:�Z�@�LxZ�:�Ɩ����oQA_�RR�`��E��,���~�]M�y_��xD�$��&J�B�k�Q�@����3����=�A_��هA`��RN�#�"��tX��孋�0Z죡�Ԭa�t����R��Mi�C-�k��r�a�fH4@�C��ܓ���-��`$�~����Ul�$^�Ufr)�0�*-C�n9W-��@M�1��a���@7�g!�7 +?̣|�l�R��/ᭁytX5��L݇��p�����@������pxh8�`:{�1����J��5��#;���ǾD"�-��s�ct�Ln3�<D��B���d1w]���=4H�α�'�!���r�+t��d����eG���{h @�.���k�q���v�e�5V�h.0�©|U������ +��C��u����k��G���O��C��Y� �"@�E�"mNzP�S,��1����rzk�M}������y�.�{+j{���xL��wE^DPk�$�3�cA�Y�~Y��� +�/�C�H�F�����<m�47Ṟ�Q�3��Wa�o�~o�)�C�d݇��E�ƀl7�(̢b��s��ڸ���<<�Fx�~?@��m ����@������v@]��<����=���~��WD�`��.��f���~�o��ʈ�n�VA{_��ե�M����� �^��y��M�Q|��ߟ^-{�~��>������Ѓ +��(��g��X���7��i��&�X +5WJ"�*V���J6s{��I��w�oO_��5~���YX�w(�R��!��m���)^�'��D������ɸ�����5�=�@��+���~���j��yQ`O�`�$�D��<B�F0C<�^%�@��?t�k3�}�@����{�^��y��U��|���pS�nĦ�t���e��=���$�v��>`����H_�B���T#%].Xx��D�ѫ�OR��2�E���\K"��R\T|��:m�O��� +�x��*y =���2��~����/?J,����+%q� �W�ޛ���3������?ܕ�?������� �^���e������ +R����oҎ�5س�~�o����Bo l8��4^�/� ����@�!��/ON�G�����ۮ2t]��С8�cݮ5�z=7���������ˮ���g���@�/�aE[��y#�3�#z��7L�.|�� +��(cR�c�S��m�Q�$�6�ץ{D���a�{T�_j8��4^�/� ����@ñ`�/����_g�"d���`�ɾ����0� ���{����� �����C�j����_9��jD�Ջa�~?� dc�[�����0�*a���������,�& 0��&�+���O�B4!��1��~��Ix����>�8�c��&�G)�j���I������=@�5@�v�&J?��Q��l�Ç@��Q�����?��^�������%tEXtdate:create�2016-07-13T10:21:59+00:00�����%tEXtdate:modify�2016-07-13T09:26:54+00:00�͠���tEXtSoftware�Adobe ImageReadyq�e<����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-icons_888888_256x240.png b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-icons_888888_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..ee5e33f27235d1b5cf0259f63f3894a6be33c679 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-icons_888888_256x240.png @@ -0,0 +1,35 @@ +�PNG + +��� IHDR����������E�r@���bKGD��I�( ��� pHYs���H���H�F�k>��tIDATx��{le�}�?g� k�u��J�>D�C�^�Q���M��H��*MU�� h�(*$H���R�*j� �D�]����)Ż(M6��F�6!6�- �xI���i�-�� HN�8��s�uι���g������f����7��3����ƣ��7�x^�/�2&�v&v^�DL� l6I�-��o?��cn��D Iy�e�#d0+�0�3��~������0�g'L�V���[��R�C:B�~(��)$q�vXu�B@��E@`H�NG���`TA�%=]�qAw��J)��u)�9�:e9d`V��0�A{�=��BS*�ڦ�S��gFA��-(D���R˷@�"����g'�U�,eSwʿ���j���*�)l[����.HLyϰ��9�����j�a�I6��MR~��~�nG�ٕ�3� ����@������pxh8��4~=@>���(��mE��3a\`~��=u����Q�����[�f3W��A���i��oK}3wէ�gV�����,j���n2��*ߕ���m��M��] y=��xn"�co�.�L"��7]��EC�:dHz�E@W�.�f+^�eƦ6vռE4��O���`��̴�.�)l�:��7����){�_Я��~"����pxh8��4^�/� ����/�#�\@��S��^�T�0sZs1�J�1�Pr��h�w�V��E�g���S��T��Q5�[ \B���O +`+�˾>}����\�6��/0��k�g���1[ �Kh��l�Xʿ��_�Z�^IA���^�N�4v���OW=%i^�<��9��t�f �2����С��B�Hg�6����!u�\ҭZ�&蒶� +�2����s ���U�]��i�T����� ��]�Uaq;]�A �:�rG-3�<F�n��*�ݴ�T�ݯ 4<;���������@������pxh8��4^�ysh�,ux��$\j��"Z-�mo��SJ��9���{� +���e˹[ �\�fָ�ұ��y�2LT��0�K@�9Լ��Ţ=���?Х��B���=c"��v�T�6 Tokza���9T����s&�6��ո���v�� }3�':��[�5�)�,�xU!��҃@}�����U� �kc�� +ꈡ����Y,]��`&߬('�u*�^�v ��O�wu�?}2�&�C����Ȗr�}ݾ^g�[`��y�c*�9s�"���f_��b�� +uuT?�M���f� + +e���ۏ�0e�vb�c�J��E�M%�6���Po��l�M`n�~Esչd�j|���z��)miOq/{�ک��Jq���A�G������pxh8��4^���a��+ ����ʥ�5�݃F�����+��Y�&{�˾����I� �z��\e�X�����oJ}Hȯ�iW��)~�n��m߮ɞh�����l*7TP3k���XJ7R"�����"NX�U�}ٔއA���/(qW�\���v6�$2� ��-���˶Ezd��j��0u]PT{�[�:>>�L�DkZ�Y���ֺ�14�ZC�WU���b�d�12zB���Y�$i".�~A�i=�������۪>���E��AI�b�\Ϋ������� +c6��O�SB\��ɅJ#"�RE�Ȱ_'��I.��aluI�������� ��YX^�/� ����@����=h��$i3��7[��d:Qu!Ztw�Ul�~F��Ż�b�k�K"$-c��.�3���@��,�y�;i�-�JӉR�H���!���ɷjN��;��L�dw�Ed�p��� fO�,�j�T�q��������+ +�h[@Vef��6KV����x��\�b���|���l}_��$U+�W!��?o[�����y�B(�p3 ��r_�5P�2ݚ�la�˱*�x��GXG$�`�W~9?�r+���y�-k��d����.�@ <]�����#<R�y0/��99����T�����^w� ����.�?0�ꠁ{�]0j"<�v�g��Qxh8��4^���$�S�L��@�����oԆ�5 �l\q+�VN�!��߆���j��L�b-����=UK<��׳�6��R���?S�j����b�s�'�\ +>U��\Z,��W�����4Ig��9��L�1�sa��R���O�^�.�P����(�>�K��\�c�6m^�um ��Ql��g�"�y[ө�D�/����[V�*3谨��X�m�@[�q�X#r,a��5� kLK"0���(����q��A�O�VP��U j�(�iJ��l�Wq����l�i�����x�S�� T!s��XD@����s�9�k����y8��\a���Y���"�r������v֗u- ��v!���H�� ��� �4�<��@��(B$"Pd�V�Z��5Ɯ�� �ߦ�����s0k��B�5h$��=�dpϪ�_�@0+�������4@"h�O�t���c�ky5�v��z�K����\��1@ޒZ��]��B�_.܋ؿ�!���I��Xd��WpW0�Z%y9�s9�jaK���0��h�sN��,�lU�����X!����h�f!�2.)��0����� 6�B|Iq/�Ӽ��0�jD��F[,�5� !m`�-�������$�J~1w�WQ�J�D#"YO�� �6hV�Q��5C��t��/���7 �8�-*�"����_E�U�y0�x�+Cxg�h|����+`6H��i�A|]�����Z=^JE\`20 +�~]���f 5X��`?S�0��Q^��?J�1�%[�Gxh8��4^�/�{��S�"��rؘ���ɛn�RZԧ[v�-�P����O��I'�Z~t�t����O�N�z����q����g����آ�4��X�����ԃ,s�e���q�9 ,2�)�^���Ķ/�����(��rS?�=<��B|W{|�&~�OO������� +�t�q���uZt�E��A��)n��7 �;O&-��+��D쏬iEcG����F� ?�c|�Ǹ��54�:�,lz��O�l �7s��'~C���%B�f�2:`��ě�T��T��bjn� +F�E���,�,p�n��F4'өkLWr�"�P[oa��o��s��k�qNkҭ����\��n��������.�Y�xS�V(A�����q��t+/ԫ-�u�p0w�-z��4��ƴaY�=zt���n��g~��2�7Y,,耄��L d�=|�|�|Y�p�z��?2�\���f�˼���\~'f�{�[j,� >#���(�9�a:��,��وK� �x�R��. ��B%�f6����n�ϻV����/Σ������� %O��+|���!��I��6���3�e��HW����O�� vXIK�O�rZ�8���g�g8=C��2�9Ǫ[�P��B'���rAmK"zʻ�!���� +���m���6�뱾�3����y5����ܓ��"�[�< �J��sϏ��U9Z^��8_�fD!Zq��_\���- ��-`<uQS,�y�����b�]z@h`�*�*GZ������>���)����D�g��鲔��i�qIb.JXT���bj�k�$��M��1^�K6�<��˿�9��C_��fr��E���M~���8]�T�xX��u5�_<���t_0PA����@������p4O�"�qGA餦������v�GbQ���p�rz���E��3��3�U �6����+��$�q?�W +1���X�K<�8� ���[����sC!��}E~5C~=C�n1[x�LO +��g�U�X���=�����̪�y�hs��l(&U�'/qg��v�|�^�8Sx(��o(�B�x�e�\�ӑ�����ľ�U��s���:�҅ͅ2k +W�!�B�Ԝ�i� V���EO�f�X6�g�A5�kOد2���jS���6ۼ�[J���S��j����Q��:(����Z���0Ne +�Z�]L2�$����4@��8�B,���,�Nj(�t'�8.��JC�L�K�U���i��5�#�Xx�#|�U:��@��m��??d,^q5�L!��]�Mr��I4�pZ��;��>�g@��M�F�K�)(�}�f��U�.�{���]��~5��5������>�"����$c�����+�ן�?��Q���c�# +�mK-6�)࿁���_�Y�n��G+��:�|a������"�~ϯ��ٯb�q�~=�+���,j�?�M��y +9"�y��D���ʍn��g����6-z<�,+tK�����xW"�����'l��˾�H��[yJ�&�a�@�~/�9�"�a�%�$iѣ���6.S����8ظ�+y�+�*�o�jo�mp-���k��1 �u����%�=�����-�"� +���4wq�-��Ր�E���K +�|�Uf�G�� +-���Ua]X�r���x.�\���˅h�:"����LF�dF���5p���f�覊�)n�Yͣ�n��Fh� 1{�'��\���<ϫlik)$H�䇙�5��%y��kni�b ��/���O����E���OjZ�<�,�b�������P ���p�+�@��<[��/� ���#/��Z�wp6�$�5�D��E����� +���|6w�^>7��{ԇ�Nĭ��Pw���f�>��k�7�/��c͗=��cM��ﴯ߁A�E`�q��:N*��N��Q����b�UG�`��ʟ�Ƴ���Cᨉ"��5�w5�.��&�v;����.ܱ��7e$�$��y�K�YE<[�y�8����M +n�m%�U�4@��[��&����EC�(�.�/���b���C��>Z�1�_P�O�^�;�Ф������!�N��wc��l�^���]`C1�L�����8GO{� <��fpY�8���:�X�! ��W�Z���Vc��ʺ��b���+����_ݖ�fp9U�4��u +*��QD�I�3cv�1e\�ݎe�(ֲ$��ؿ��.�]��z�)�/�>�>.|mO9Q��HN �P��{����;�=�YJ���7'�[��ɂ-����b< +Xӌ���2��@}�Pw�������aŨ�M� lqG{R�\p��Dx�s��T3�X�ؓ�����@������pxh8���ѱx��e l TZ�B��H�a�e�c��t*ZHF��b52�iiS�[:�DH�S +�))%��_rp�S���eUӮ@��*I�3�*�C� +3��=���&�&5�CB���`����Ê�,o]���~����]3�t�������ح�jXe�x����0CTA3y �5�{�t����!k@Q�V+Vr�� +3�e!�̰Bː�ۓ��O�A���� # ���U4V��D�ч�D����*Oݕ���<:�Xl��Bxh8�L`������pxh8��4y0������J��k5��#;��ǮD"�-�鞺#t�Ln3ã|��Áysɩ�q�v��A2t�>�}�<���Jw�Z,ӱ:�-�*���%��A$�-�lp�I�d���5�S/���BGs�iN�z,v�~�79P�r5�q��p]MM�O?�m���~"g�ǀ�����9VhAmn`��0G�)�����ԧ_ԇ��U������W�1}�3�y A�����p��;d��U���>X����J��x��<mV5'Ṟ�a�0�Wa��s��w��A2�����<w�F}b@�`fQ���=�{Ɂ�h�����s<���5P�ŏ�.�_�px[@������pxh82��P�~���G�Mt��M���-�v@]���ܠ�.߰� �����~��K�9�4}��6��. ��/n�:��&"O�'�"�'G�SH��;U�k�A��'��U峕_������4]|]̅�+%�w~�tUFD�w_���/}�����e��7��%~�B*E�����K�����e�U�پ^̀����Y��`]�����2���Y���O�ޯF��g��E���OB�O���Z5��v�*)���*�C��63ه ��(��/�w0��zP_���WL�� +7��AlJ���(�� ��p�� ,���Y����j�c�����w�(6z��I�V�?+�_�Ԓ�༔���D��O+��9�7��Q���*y =���2��|���/?J,����+%q�{�^�?�@�r_O�ץ������^��c�A�o����.�J��㻏�,K��ҟ��E;��7|B`�N�]�a�+�/i8�5����pxh8��4^�/� �hr?<}4� [��o���u�#�bP�u���\���������l�{l��V��{h��102p�1#=�СG�y�����/��(�b0V!9�9�z��&@%!m�]���A��ju�G�����@������pxh8��4�W�&��P? @�y��)B��� 6��S�Y�&�ϰak�����ͽ�Y�6��pakݞ�}���(|�!,���W/� ���/��A�lj�֮�x�)T��I#}ˏ�Y�L`2eM�)��� +w�B4!��1����FIx���>�8�c��&�G)�j���I������}@�5��V�&J?�� Y�����!�\=jb��<�����h�jo���%tEXtdate:create�2016-07-13T10:21:59+00:00�����%tEXtdate:modify�2016-07-13T09:26:54+00:00�͠���tEXtSoftware�Adobe ImageReadyq�e<����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-icons_cd0a0a_256x240.png b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..7e8ebc180a2d2a74739059799407b8b7b57a9092 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/images/ui-icons_cd0a0a_256x240.png @@ -0,0 +1,198 @@ +�PNG + +��� IHDR�����������IJ���PLTE� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +� + +4�v����YtRNS�3P���/"Uq@f`2� !<BHK Z#'1S,�4���j���8E���|��������)��Q$� +��b�J��mߜGc?o�h�@^����bKGD��H��� pHYs���H���H�F�k>��dIDATx��]c۶�H�阒]�K���d��%٫뺮��lm���w]����|�p��X�m�-��}<�w�(1$�� ;�F�@��%��?����B,Lh{�t���#���T@�/?j�9 m��N� #���+`��`����I� +��_�-s�ʹU0�M��[�� +s�4`x���#�� �D<�~�K��.4�]`��PDDDDDDĈq������Ek@����A�~�*��� !Y���X�`hv3\LX��Ot�J2b���ؓl�QI<��� �6�-X�lֈ�6�H��|=j�`E�iq����Cv:�q���C?�?���x�,��r*t�ݻ}|;�kP�4���d�Y����f����K��~[ >�X:+�i����ĆQV9\����e�'���A�tOS�:7��2����YsxM�ہ��B���&���z�>n�C��@��r@��*�a�ӝ���%��MFDDDDDD�T�ߖ���H,���E����RU��n ب<��V- @�/Nm�թ���������Hw����*�+��#��$o�e�{�% �7\X��ǀ���2��~0��&n��sbA,�D�� �A�V�I��|� �Og���鴋� �7�y 7Jf�����:_�w^��H v{/O�9���<����Y�`+�� HRٰ����[��?�� +������=���c""""""F�˽�sG�<*k9c��E�8薽�������zfm��r�1�N�������nq�w��&=O�\}K` +#���2��~��L�|?�m>�\�f���:}�4ᦋ���{�)�n[�� +�̰E +KY��D�ۇ-�� �+�Kl=�Ӄ��L`љ�|�%��n� a� ���N�#��5� (4���?�����EDDDD\o�W�Ffq;��\E��_������,���W!%�zE!F�¶.�(USHQ0d�w)T���8#p,�x�B��K���� �*�x��X��E�e������ +K솎%mK��X~s�FE���~������tdc��a��I���1��Af4��dH��c�G�S�B`��0�wev`����"�{�� �.�GDDDD�,d�O�6�k"qk��Me�fS_����U��KŌ&g~>n� �H�})��L���F%8(�)r���!�[4统qQk�0�m[Le���_�7���0�@>1 X0A��Z����Vc�E�V ���Lt�k�3�EJ��44�Zﮊ�N`rt�>`�˥� � � A��HBLH�@��c���Uq=�j������cM����2�s����J���CL�iR �NQ���������0=���Yi�-�|4�V��]��]��B^�ޞ���_H������$�<�$� +a����=��d@� (Z�Ap_�}�~s���:�N�{DC>����m�^������S�&�, ;�N����&�B} ��<_A��B]H�u���N(B�0��{h���1�IK����Ds��j����'��M���8�.�ӫ1�h3�df}mq��� ��n�U{��L�o��z\=?@ ((���e�|=ơ麄�C�i����1r<|�OO�;� `��H��p�Qy�zԈu�����Z���V���Ʋ�!�)��5m�C���2��Ly�g�;���֑�R���jW�a@��@V�L�&W���ru=Z +�̥��=U���5}���������7�;b(�����nP&�s��k�4�����8�ͥ��0���1�U�W�v�k�18dq���T��ՌE]qH8�������G�F�����K�����'��r����Or���r�̧��6"fp��T�^3c��"�����n��Mم-�/��W=�tJ,��X�)���{�P Rm|K����>mX�8v�5h��<������_{ꘀ�Y�F�|&_G;&�>^�����W⁃�&�K���(��81�EB@F&��;"L���'wfw��E-6��o&/̫'X�e,>~�ee��|���A����=) d��Q�`}P[���K��N��˂����/�~)����O[d�O=�3E�l5'Y�$?��7�m���Tzզ.�\��.��` WE�����"""""v�)��V���<���K�ZX.Ex�~Ч)���ߚ�����W_}�5|��s��/!?����'poդ���tC3����@�Q�)��t��`���b!,dY9�6A2����������/튮���n�t�TK>����#]�L;zq�J���r���²[��\-t�ҽ�5 @�ͷϟ��n�T@��+;��c���Qh�C*���T�ڙ��A<Sku�µb�E� /��$�Z���.e�j������_ʤrWaB6d���(��S�s[�|���竕 +/5R���(�4X������76����`3|���P��p�'�H~<R?M�2�)� ��g��Vp��B�n�=�|W�ͬ\��V0_�81Oׄ�Kz||lP_��ω���lxX;ǀ�Ju�<��Ng[��]=�(�#]������p�P�a���i�������s�f�� +V�z��]ౚ������z>�Vr�?�f��?������ �Q�1�T`��} H�k���,{�VZˋT��ϛ�?I̯u�QK�LM�e͆��~��q������y�m0�9�S�;���j�����5 ���i��Q��]7k0�U�ޭ���G�kX����3#���lY��_Цx����j9��`�# +M [z��KuO_z˿Dܭ��*��kOJ�(7��n��\�e� I�T�ƨ�l�/�U������߶uw�.�~���;#�r���.�����8 �o# 5L��h>1�i�����p��V�M�?�/u7��0� X@��L��+M�+�����{��Fkt�{�ŧ89�0`���. ĀC�R+\��/��t�R����; �TӲ���]�aL���|�efđ�� �>�ۣ��G�|�P`P��8C1K՛�A�̍<�2��ۂ��K�r�l@L +L��������8�@�E>`n�����PNԍ,��p�����E��Ɔ����Z�FlÎ;�����F���7��Ȯ;�� +��s�wSz)g7�{r�s��S��gȋ��(߄~�AWytX��$�NV����R�_��<6�p.�O�8�O[�OdDk>_��O�O�}����JS���d��mV�?�W(_��m� ��j���~=H IԁF>T/��{*]IGJ@i����qam�NF|Q�5���0+���E�S8�:�v�`p~v���j:B�����p96�o��ys%�������� �|@H�����]��+�@��t]W�k}}�����7��Fʮr����A�����B���\m�-�_�2PY8�������x�ՎN�.h�~���@+7��z5������t�_/������/�?���0�S>��)���z�i0n�/�B����`{D��W���#`����B��o���[,�g��FVЁ�pP߾���C]Bz�� ��,X�����X�fԃ����A�:H��� k�7��d�Z9��oc}o�]�0�vd�:R]�0�ve���]刈����j����у����| �?�+(��OǍ�+ �#��ys���ߍ�n�p���Fru<��.HȺotM��3h���}��߆P}�������˗��v�����P�}mǀ���?���W��Z@���������}���������@��@���FD�������l����%tEXtdate:create�2016-07-13T10:21:59+00:00�����%tEXtdate:modify�2016-07-13T09:26:54+00:00�͠���tEXtSoftware�Adobe ImageReadyq�e<����IEND�B`� \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/jquery-ui.min.css b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/jquery-ui.min.css new file mode 100644 index 0000000000000000000000000000000000000000..b3fe46344d7b1b0e8452e071be22972c2dd7e18b --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/css/uitheme1.12.1/jquery-ui.min.css @@ -0,0 +1,7 @@ +/*! jQuery UI - v1.12.1 - 2019-05-26 +* http://jqueryui.com +* Includes: core.css, tabs.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=smoothness&cornerRadiusShadow=8px&offsetLeftShadow=-8px&offsetTopShadow=-8px&thicknessShadow=8px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=aaaaaa&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cd0a0a&fcError=cd0a0a&borderColorError=cd0a0a&bgImgOpacityError=95&bgTextureError=glass&bgColorError=fef1ec&iconColorHighlight=2e83ff&fcHighlight=363636&borderColorHighlight=fcefa1&bgImgOpacityHighlight=55&bgTextureHighlight=glass&bgColorHighlight=fbf9ee&iconColorActive=454545&fcActive=212121&borderColorActive=aaaaaa&bgImgOpacityActive=65&bgTextureActive=glass&bgColorActive=ffffff&iconColorHover=454545&fcHover=212121&borderColorHover=999999&bgImgOpacityHover=75&bgTextureHover=glass&bgColorHover=dadada&iconColorDefault=888888&fcDefault=555555&borderColorDefault=d3d3d3&bgImgOpacityDefault=75&bgTextureDefault=glass&bgColorDefault=e6e6e6&iconColorContent=222222&fcContent=222222&borderColorContent=aaaaaa&bgImgOpacityContent=75&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=222222&fcHeader=222222&borderColorHeader=aaaaaa&bgImgOpacityHeader=75&bgTextureHeader=highlight_soft&bgColorHeader=cccccc&cornerRadius=4px&fsDefault=1.1em&fwDefault=normal&ffDefault=Verdana%2CArial%2Csans-serif +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #d3d3d3}.ui-widget-content{border:1px solid #aaa;background:#fff;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#212121;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-icon-background,.ui-state-active .ui-icon-background{border:#aaa;background-color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-checked{border:1px solid #fcefa1;background:#fbf9ee}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:-8px -8px 8px #aaa;box-shadow:-8px -8px 8px #aaa} \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/js/jquery-1.12.4.min.js b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/js/jquery-1.12.4.min.js new file mode 100644 index 0000000000000000000000000000000000000000..e836475870da67f3c72f64777c6e0f37d9f4c87b --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/js/jquery-1.12.4.min.js @@ -0,0 +1,5 @@ +/*! jQuery v1.12.4 | (c) jQuery Foundation | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="1.12.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(!l.ownFirst)for(b in a)return k.call(a,b);for(b in a);return void 0===b||k.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(h)return h.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=e.call(arguments,2),d=function(){return a.apply(b||this,c.concat(e.call(arguments)))},d.guid=a.guid=a.guid||n.guid++,d):void 0},now:function(){return+new Date},support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=la(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=ma(b);function pa(){}pa.prototype=d.filters=d.pseudos,d.setFilters=new pa,g=fa.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=R.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=S.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(Q," ")}),h=h.slice(c.length));for(g in d.filter)!(e=W[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fa.error(a):z(a,i).slice(0)};function qa(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}if(f=d.getElementById(e[2]),f&&f.parentNode){if(f.id!==e[2])return A.find(a);this.length=1,this[0]=f}return this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||(e=n.uniqueSort(e)),D.test(a)&&(e=e.reverse())),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){n.each(b,function(b,c){n.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==n.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return n.each(arguments,function(a,b){var c;while((c=n.inArray(b,f,c))>-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=!0,c||j.disable(),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.addEventListener?(d.removeEventListener("DOMContentLoaded",K),a.removeEventListener("load",K)):(d.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(d.addEventListener||"load"===a.event.type||"complete"===d.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll)a.setTimeout(n.ready);else if(d.addEventListener)d.addEventListener("DOMContentLoaded",K),a.addEventListener("load",K);else{d.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&d.documentElement}catch(e){}c&&c.doScroll&&!function f(){if(!n.isReady){try{c.doScroll("left")}catch(b){return a.setTimeout(f,50)}J(),n.ready()}}()}return I.promise(b)},n.ready.promise();var L;for(L in n(l))break;l.ownFirst="0"===L,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c,e;c=d.getElementsByTagName("body")[0],c&&c.style&&(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",l.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(e))}),function(){var a=d.createElement("div");l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}a=null}();var M=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b},N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0; +}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(M(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),"object"!=typeof b&&"function"!=typeof b||(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f}}function S(a,b,c){if(M(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=void 0)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=n._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}}),function(){var a;l.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,e;return c=d.getElementsByTagName("body")[0],c&&c.style?(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(d.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(e),a):void 0}}();var T=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,U=new RegExp("^(?:([+-])=|)("+T+")([a-z%]*)$","i"),V=["Top","Right","Bottom","Left"],W=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)};function X(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return n.css(a,b,"")},i=h(),j=c&&c[3]||(n.cssNumber[b]?"":"px"),k=(n.cssNumber[b]||"px"!==j&&+i)&&U.exec(n.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,n.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var Y=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)Y(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},Z=/^(?:checkbox|radio)$/i,$=/<([\w:-]+)/,_=/^$|\/(?:java|ecma)script/i,aa=/^\s+/,ba="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";function ca(a){var b=ba.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}!function(){var a=d.createElement("div"),b=d.createDocumentFragment(),c=d.createElement("input");a.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",l.leadingWhitespace=3===a.firstChild.nodeType,l.tbody=!a.getElementsByTagName("tbody").length,l.htmlSerialize=!!a.getElementsByTagName("link").length,l.html5Clone="<:nav></:nav>"!==d.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,b.appendChild(c),l.appendChecked=c.checked,a.innerHTML="<textarea>x</textarea>",l.noCloneChecked=!!a.cloneNode(!0).lastChild.defaultValue,b.appendChild(a),c=d.createElement("input"),c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),a.appendChild(c),l.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!!a.addEventListener,a[n.expando]=1,l.attributes=!a.getAttribute(n.expando)}();var da={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:l.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]};da.optgroup=da.option,da.tbody=da.tfoot=da.colgroup=da.caption=da.thead,da.th=da.td;function ea(a,b){var c,d,e=0,f="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,ea(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function fa(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}var ga=/<|&#?\w+;/,ha=/<tbody/i;function ia(a){Z.test(a.type)&&(a.defaultChecked=a.checked)}function ja(a,b,c,d,e){for(var f,g,h,i,j,k,m,o=a.length,p=ca(b),q=[],r=0;o>r;r++)if(g=a[r],g||0===g)if("object"===n.type(g))n.merge(q,g.nodeType?[g]:g);else if(ga.test(g)){i=i||p.appendChild(b.createElement("div")),j=($.exec(g)||["",""])[1].toLowerCase(),m=da[j]||da._default,i.innerHTML=m[1]+n.htmlPrefilter(g)+m[2],f=m[0];while(f--)i=i.lastChild;if(!l.leadingWhitespace&&aa.test(g)&&q.push(b.createTextNode(aa.exec(g)[0])),!l.tbody){g="table"!==j||ha.test(g)?"<table>"!==m[1]||ha.test(g)?0:i:i.firstChild,f=g&&g.childNodes.length;while(f--)n.nodeName(k=g.childNodes[f],"tbody")&&!k.childNodes.length&&g.removeChild(k)}n.merge(q,i.childNodes),i.textContent="";while(i.firstChild)i.removeChild(i.firstChild);i=p.lastChild}else q.push(b.createTextNode(g));i&&p.removeChild(i),l.appendChecked||n.grep(ea(q,"input"),ia),r=0;while(g=q[r++])if(d&&n.inArray(g,d)>-1)e&&e.push(g);else if(h=n.contains(g.ownerDocument,g),i=ea(p.appendChild(g),"script"),h&&fa(i),c){f=0;while(g=i[f++])_.test(g.type||"")&&c.push(g)}return i=null,p}!function(){var b,c,e=d.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b]=c in a)||(e.setAttribute(c,"t"),l[b]=e.attributes[c].expando===!1);e=null}();var ka=/^(?:input|select|textarea)$/i,la=/^key/,ma=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,na=/^(?:focusinfocus|focusoutblur)$/,oa=/^([^.]*)(?:\.(.+)|)/;function pa(){return!0}function qa(){return!1}function ra(){try{return d.activeElement}catch(a){}}function sa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)sa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=qa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return"undefined"==typeof n||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(G)||[""],h=b.length;while(h--)f=oa.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=oa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,e,f){var g,h,i,j,l,m,o,p=[e||d],q=k.call(b,"type")?b.type:b,r=k.call(b,"namespace")?b.namespace.split("."):[];if(i=m=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!na.test(q+n.event.triggered)&&(q.indexOf(".")>-1&&(r=q.split("."),q=r.shift(),r.sort()),h=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=r.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:n.makeArray(c,[b]),l=n.event.special[q]||{},f||!l.trigger||l.trigger.apply(e,c)!==!1)){if(!f&&!l.noBubble&&!n.isWindow(e)){for(j=l.delegateType||q,na.test(j+q)||(i=i.parentNode);i;i=i.parentNode)p.push(i),m=i;m===(e.ownerDocument||d)&&p.push(m.defaultView||m.parentWindow||a)}o=0;while((i=p[o++])&&!b.isPropagationStopped())b.type=o>1?j:l.bindType||q,g=(n._data(i,"events")||{})[b.type]&&n._data(i,"handle"),g&&g.apply(i,c),g=h&&i[h],g&&g.apply&&M(i)&&(b.result=g.apply(i,c),b.result===!1&&b.preventDefault());if(b.type=q,!f&&!b.isDefaultPrevented()&&(!l._default||l._default.apply(p.pop(),c)===!1)&&M(e)&&h&&e[q]&&!n.isWindow(e)){m=e[h],m&&(e[h]=null),n.event.triggered=q;try{e[q]()}catch(s){}n.event.triggered=void 0,m&&(e[h]=m)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[n.expando])return a;var b,c,e,f=a.type,g=a,h=this.fixHooks[f];h||(this.fixHooks[f]=h=ma.test(f)?this.mouseHooks:la.test(f)?this.keyHooks:{}),e=h.props?this.props.concat(h.props):this.props,a=new n.Event(g),b=e.length;while(b--)c=e[b],a[c]=g[c];return a.target||(a.target=g.srcElement||d),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,h.filter?h.filter(a,g):a},props:"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,e,f,g=b.button,h=b.fromElement;return null==a.pageX&&null!=b.clientX&&(e=a.target.ownerDocument||d,f=e.documentElement,c=e.body,a.pageX=b.clientX+(f&&f.scrollLeft||c&&c.scrollLeft||0)-(f&&f.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(f&&f.scrollTop||c&&c.scrollTop||0)-(f&&f.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&h&&(a.relatedTarget=h===a.target?b.toElement:h),a.which||void 0===g||(a.which=1&g?1:2&g?3:4&g?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==ra()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===ra()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return n.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c){var d=n.extend(new n.Event,c,{type:a,isSimulated:!0});n.event.trigger(d,null,b),d.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=d.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)}:function(a,b,c){var d="on"+b;a.detachEvent&&("undefined"==typeof a[d]&&(a[d]=null),a.detachEvent(d,c))},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?pa:qa):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={constructor:n.Event,isDefaultPrevented:qa,isPropagationStopped:qa,isImmediatePropagationStopped:qa,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=pa,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=pa,a&&!this.isSimulated&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=pa,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||n.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),l.submit||(n.event.special.submit={setup:function(){return n.nodeName(this,"form")?!1:void n.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=n.nodeName(b,"input")||n.nodeName(b,"button")?n.prop(b,"form"):void 0;c&&!n._data(c,"submit")&&(n.event.add(c,"submit._submit",function(a){a._submitBubble=!0}),n._data(c,"submit",!0))})},postDispatch:function(a){a._submitBubble&&(delete a._submitBubble,this.parentNode&&!a.isTrigger&&n.event.simulate("submit",this.parentNode,a))},teardown:function(){return n.nodeName(this,"form")?!1:void n.event.remove(this,"._submit")}}),l.change||(n.event.special.change={setup:function(){return ka.test(this.nodeName)?("checkbox"!==this.type&&"radio"!==this.type||(n.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._justChanged=!0)}),n.event.add(this,"click._change",function(a){this._justChanged&&!a.isTrigger&&(this._justChanged=!1),n.event.simulate("change",this,a)})),!1):void n.event.add(this,"beforeactivate._change",function(a){var b=a.target;ka.test(b.nodeName)&&!n._data(b,"change")&&(n.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||n.event.simulate("change",this.parentNode,a)}),n._data(b,"change",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return n.event.remove(this,"._change"),!ka.test(this.nodeName)}}),l.focusin||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a))};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=n._data(d,b);e||d.addEventListener(a,c,!0),n._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=n._data(d,b)-1;e?n._data(d,b,e):(d.removeEventListener(a,c,!0),n._removeData(d,b))}}}),n.fn.extend({on:function(a,b,c,d){return sa(this,a,b,c,d)},one:function(a,b,c,d){return sa(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=qa),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var ta=/ jQuery\d+="(?:null|\d+)"/g,ua=new RegExp("<(?:"+ba+")[\\s/>]","i"),va=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,wa=/<script|<style|<link/i,xa=/checked\s*(?:[^=]|=\s*.checked.)/i,ya=/^true\/(.*)/,za=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Aa=ca(d),Ba=Aa.appendChild(d.createElement("div"));function Ca(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Da(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function Ea(a){var b=ya.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Ga(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(Da(b).text=a.text,Ea(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&Z.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}}function Ha(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&xa.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(o&&(k=ja(b,a[0].ownerDocument,!1,a,d),e=k.firstChild,1===k.childNodes.length&&(k=e),e||d)){for(i=n.map(ea(k,"script"),Da),h=i.length;o>m;m++)g=k,m!==p&&(g=n.clone(g,!0,!0),h&&n.merge(i,ea(g,"script"))),c.call(a[m],g,m);if(h)for(j=i[i.length-1].ownerDocument,n.map(i,Ea),m=0;h>m;m++)g=i[m],_.test(g.type||"")&&!n._data(g,"globalEval")&&n.contains(j,g)&&(g.src?n._evalUrl&&n._evalUrl(g.src):n.globalEval((g.text||g.textContent||g.innerHTML||"").replace(za,"")));k=e=null}return a}function Ia(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(ea(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&fa(ea(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(va,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!ua.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(Ba.innerHTML=a.outerHTML,Ba.removeChild(f=Ba.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=ea(f),h=ea(a),g=0;null!=(e=h[g]);++g)d[g]&&Ga(e,d[g]);if(b)if(c)for(h=h||ea(a),d=d||ea(f),g=0;null!=(e=h[g]);g++)Fa(e,d[g]);else Fa(a,f);return d=ea(f,"script"),d.length>0&&fa(d,!i&&ea(a,"script")),d=h=e=null,f},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.attributes,m=n.event.special;null!=(d=a[h]);h++)if((b||M(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k||"undefined"==typeof d.removeAttribute?d[i]=void 0:d.removeAttribute(i),c.push(f))}}}),n.fn.extend({domManip:Ha,detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return Y(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||d).createTextNode(a))},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(ea(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return Y(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(ta,""):void 0;if("string"==typeof a&&!wa.test(a)&&(l.htmlSerialize||!ua.test(a))&&(l.leadingWhitespace||!aa.test(a))&&!da[($.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ea(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(ea(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],f=n(a),h=f.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(f[d])[b](c),g.apply(e,c.get());return this.pushStack(e)}});var Ja,Ka={HTML:"block",BODY:"block"};function La(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function Ma(a){var b=d,c=Ka[a];return c||(c=La(a,b),"none"!==c&&c||(Ja=(Ja||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Ja[0].contentWindow||Ja[0].contentDocument).document,b.write(),b.close(),c=La(a,b),Ja.detach()),Ka[a]=c),c}var Na=/^margin/,Oa=new RegExp("^("+T+")(?!px)[a-z%]+$","i"),Pa=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e},Qa=d.documentElement;!function(){var b,c,e,f,g,h,i=d.createElement("div"),j=d.createElement("div");if(j.style){j.style.cssText="float:left;opacity:.5",l.opacity="0.5"===j.style.opacity,l.cssFloat=!!j.style.cssFloat,j.style.backgroundClip="content-box",j.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===j.style.backgroundClip,i=d.createElement("div"),i.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",j.innerHTML="",i.appendChild(j),l.boxSizing=""===j.style.boxSizing||""===j.style.MozBoxSizing||""===j.style.WebkitBoxSizing,n.extend(l,{reliableHiddenOffsets:function(){return null==b&&k(),f},boxSizingReliable:function(){return null==b&&k(),e},pixelMarginRight:function(){return null==b&&k(),c},pixelPosition:function(){return null==b&&k(),b},reliableMarginRight:function(){return null==b&&k(),g},reliableMarginLeft:function(){return null==b&&k(),h}});function k(){var k,l,m=d.documentElement;m.appendChild(i),j.style.cssText="-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",b=e=h=!1,c=g=!0,a.getComputedStyle&&(l=a.getComputedStyle(j),b="1%"!==(l||{}).top,h="2px"===(l||{}).marginLeft,e="4px"===(l||{width:"4px"}).width,j.style.marginRight="50%",c="4px"===(l||{marginRight:"4px"}).marginRight,k=j.appendChild(d.createElement("div")),k.style.cssText=j.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",k.style.marginRight=k.style.width="0",j.style.width="1px",g=!parseFloat((a.getComputedStyle(k)||{}).marginRight),j.removeChild(k)),j.style.display="none",f=0===j.getClientRects().length,f&&(j.style.display="",j.innerHTML="<table><tr><td></td><td>t</td></tr></table>",j.childNodes[0].style.borderCollapse="separate",k=j.getElementsByTagName("td"),k[0].style.cssText="margin:0;border:0;padding:0;display:none",f=0===k[0].offsetHeight,f&&(k[0].style.display="",k[1].style.display="none",f=0===k[0].offsetHeight)),m.removeChild(i)}}}();var Ra,Sa,Ta=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ra=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)},Sa=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ra(a),g=c?c.getPropertyValue(b)||c[b]:void 0,""!==g&&void 0!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),c&&!l.pixelMarginRight()&&Oa.test(g)&&Na.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f),void 0===g?g:g+""}):Qa.currentStyle&&(Ra=function(a){return a.currentStyle},Sa=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ra(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Oa.test(g)&&!Ta.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Ua(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Va=/alpha\([^)]*\)/i,Wa=/opacity\s*=\s*([^)]*)/i,Xa=/^(none|table(?!-c[ea]).+)/,Ya=new RegExp("^("+T+")(.*)$","i"),Za={position:"absolute",visibility:"hidden",display:"block"},$a={letterSpacing:"0",fontWeight:"400"},_a=["Webkit","O","Moz","ms"],ab=d.createElement("div").style;function bb(a){if(a in ab)return a;var b=a.charAt(0).toUpperCase()+a.slice(1),c=_a.length;while(c--)if(a=_a[c]+b,a in ab)return a}function cb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=n._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&W(d)&&(f[g]=n._data(d,"olddisplay",Ma(d.nodeName)))):(e=W(d),(c&&"none"!==c||!e)&&n._data(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function db(a,b,c){var d=Ya.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function eb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+V[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+V[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+V[f]+"Width",!0,e))):(g+=n.css(a,"padding"+V[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+V[f]+"Width",!0,e)));return g}function fb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ra(a),g=l.boxSizing&&"border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Sa(a,b,f),(0>e||null==e)&&(e=a.style[b]),Oa.test(e))return e;d=g&&(l.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+eb(a,b,c||(g?"border":"content"),d,f)+"px"}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Sa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":l.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;if(b=n.cssProps[h]||(n.cssProps[h]=bb(h)||h),g=n.cssHooks[b]||n.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=U.exec(c))&&e[1]&&(c=X(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(n.cssNumber[h]?"":"px")),l.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=bb(h)||h),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Sa(a,b,d)),"normal"===f&&b in $a&&(f=$a[b]),""===c||c?(e=parseFloat(f),c===!0||isFinite(e)?e||0:f):f}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?Xa.test(n.css(a,"display"))&&0===a.offsetWidth?Pa(a,Za,function(){return fb(a,b,d)}):fb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ra(a);return db(a,c,d?eb(a,b,d,l.boxSizing&&"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),l.opacity||(n.cssHooks.opacity={get:function(a,b){return Wa.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=n.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===n.trim(f.replace(Va,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Va.test(f)?f.replace(Va,e):f+" "+e)}}),n.cssHooks.marginRight=Ua(l.reliableMarginRight,function(a,b){return b?Pa(a,{display:"inline-block"},Sa,[a,"marginRight"]):void 0}),n.cssHooks.marginLeft=Ua(l.reliableMarginLeft,function(a,b){return b?(parseFloat(Sa(a,"marginLeft"))||(n.contains(a.ownerDocument,a)?a.getBoundingClientRect().left-Pa(a,{ +marginLeft:0},function(){return a.getBoundingClientRect().left}):0))+"px":void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+V[d]+b]=f[d]||f[d-2]||f[0];return e}},Na.test(a)||(n.cssHooks[a+b].set=db)}),n.fn.extend({css:function(a,b){return Y(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=Ra(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return cb(this,!0)},hide:function(){return cb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){W(this)?n(this).show():n(this).hide()})}});function gb(a,b,c,d,e){return new gb.prototype.init(a,b,c,d,e)}n.Tween=gb,gb.prototype={constructor:gb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||n.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=gb.propHooks[this.prop];return a&&a.get?a.get(this):gb.propHooks._default.get(this)},run:function(a){var b,c=gb.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):gb.propHooks._default.set(this),this}},gb.prototype.init.prototype=gb.prototype,gb.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[n.cssProps[a.prop]]&&!n.cssHooks[a.prop]?a.elem[a.prop]=a.now:n.style(a.elem,a.prop,a.now+a.unit)}}},gb.propHooks.scrollTop=gb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},n.fx=gb.prototype.init,n.fx.step={};var hb,ib,jb=/^(?:toggle|show|hide)$/,kb=/queueHooks$/;function lb(){return a.setTimeout(function(){hb=void 0}),hb=n.now()}function mb(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=V[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function nb(a,b,c){for(var d,e=(qb.tweeners[b]||[]).concat(qb.tweeners["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ob(a,b,c){var d,e,f,g,h,i,j,k,m=this,o={},p=a.style,q=a.nodeType&&W(a),r=n._data(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,m.always(function(){m.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=n.css(a,"display"),k="none"===j?n._data(a,"olddisplay")||Ma(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(l.inlineBlockNeedsLayout&&"inline"!==Ma(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",l.shrinkWrapBlocks()||m.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],jb.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(o))"inline"===("none"===j?Ma(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=n._data(a,"fxshow",{}),f&&(r.hidden=!q),q?n(a).show():m.done(function(){n(a).hide()}),m.done(function(){var b;n._removeData(a,"fxshow");for(b in o)n.style(a,b,o[b])});for(d in o)g=nb(q?r[d]:0,d,m),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function pb(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function qb(a,b,c){var d,e,f=0,g=qb.prefilters.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=hb||lb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{},easing:n.easing._default},c),originalProperties:b,originalOptions:c,startTime:hb||lb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(pb(k,j.opts.specialEasing);g>f;f++)if(d=qb.prefilters[f].call(j,a,k,j.opts))return n.isFunction(d.stop)&&(n._queueHooks(j.elem,j.opts.queue).stop=n.proxy(d.stop,d)),d;return n.map(k,nb,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(qb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return X(c.elem,a,U.exec(b),c),c}]},tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.match(G);for(var c,d=0,e=a.length;e>d;d++)c=a[d],qb.tweeners[c]=qb.tweeners[c]||[],qb.tweeners[c].unshift(b)},prefilters:[ob],prefilter:function(a,b){b?qb.prefilters.unshift(a):qb.prefilters.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(W).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=qb(this,n.extend({},a),f);(e||n._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=n._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&kb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=n._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(mb(b,!0),a,d,e)}}),n.each({slideDown:mb("show"),slideUp:mb("hide"),slideToggle:mb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=n.timers,c=0;for(hb=n.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||n.fx.stop(),hb=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){ib||(ib=a.setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){a.clearInterval(ib),ib=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(b,c){return b=n.fx?n.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a,b=d.createElement("input"),c=d.createElement("div"),e=d.createElement("select"),f=e.appendChild(d.createElement("option"));c=d.createElement("div"),c.setAttribute("className","t"),c.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=c.getElementsByTagName("a")[0],b.setAttribute("type","checkbox"),c.appendChild(b),a=c.getElementsByTagName("a")[0],a.style.cssText="top:1px",l.getSetAttribute="t"!==c.className,l.style=/top/.test(a.getAttribute("style")),l.hrefNormalized="/a"===a.getAttribute("href"),l.checkOn=!!b.value,l.optSelected=f.selected,l.enctype=!!d.createElement("form").enctype,e.disabled=!0,l.optDisabled=!f.disabled,b=d.createElement("input"),b.setAttribute("value",""),l.input=""===b.getAttribute("value"),b.value="t",b.setAttribute("type","radio"),l.radioValue="t"===b.value}();var rb=/\r/g,sb=/[\x20\t\r\n\f]+/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a)).replace(sb," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],(c.selected||i===e)&&(l.optDisabled?!c.disabled:null===c.getAttribute("disabled"))&&(!c.parentNode.disabled||!n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)if(d=e[g],n.inArray(n.valHooks.option.get(d),f)>-1)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>-1:void 0}},l.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var tb,ub,vb=n.expr.attrHandle,wb=/^(?:checked|selected)$/i,xb=l.getSetAttribute,yb=l.input;n.fn.extend({attr:function(a,b){return Y(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),e=n.attrHooks[b]||(n.expr.match.bool.test(b)?ub:tb)),void 0!==c?null===c?void n.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=n.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!l.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(G);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)?yb&&xb||!wb.test(c)?a[d]=!1:a[n.camelCase("default-"+c)]=a[d]=!1:n.attr(a,c,""),a.removeAttribute(xb?c:d)}}),ub={set:function(a,b,c){return b===!1?n.removeAttr(a,c):yb&&xb||!wb.test(c)?a.setAttribute(!xb&&n.propFix[c]||c,c):a[n.camelCase("default-"+c)]=a[c]=!0,c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=vb[b]||n.find.attr;yb&&xb||!wb.test(b)?vb[b]=function(a,b,d){var e,f;return d||(f=vb[b],vb[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,vb[b]=f),e}:vb[b]=function(a,b,c){return c?void 0:a[n.camelCase("default-"+b)]?b.toLowerCase():null}}),yb&&xb||(n.attrHooks.value={set:function(a,b,c){return n.nodeName(a,"input")?void(a.defaultValue=b):tb&&tb.set(a,b,c)}}),xb||(tb={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},vb.id=vb.name=vb.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},n.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:tb.set},n.attrHooks.contenteditable={set:function(a,b,c){tb.set(a,""===b?!1:b,c)}},n.each(["width","height"],function(a,b){n.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),l.style||(n.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var zb=/^(?:input|select|textarea|button|object)$/i,Ab=/^(?:a|area)$/i;n.fn.extend({prop:function(a,b){return Y(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return a=n.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),n.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&n.isXMLDoc(a)||(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=n.find.attr(a,"tabindex");return b?parseInt(b,10):zb.test(a.nodeName)||Ab.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),l.hrefNormalized||n.each(["href","src"],function(a,b){n.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),l.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this}),l.enctype||(n.propFix.enctype="encoding");var Bb=/[\t\r\n\f]/g;function Cb(a){return n.attr(a,"class")||""}n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,Cb(this)))});if("string"==typeof a&&a){b=a.match(G)||[];while(c=this[i++])if(e=Cb(c),d=1===c.nodeType&&(" "+e+" ").replace(Bb," ")){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=n.trim(d),e!==h&&n.attr(c,"class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,Cb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(G)||[];while(c=this[i++])if(e=Cb(c),d=1===c.nodeType&&(" "+e+" ").replace(Bb," ")){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=n.trim(d),e!==h&&n.attr(c,"class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):n.isFunction(a)?this.each(function(c){n(this).toggleClass(a.call(this,c,Cb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=n(this),f=a.match(G)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=Cb(this),b&&n._data(this,"__className__",b),n.attr(this,"class",b||a===!1?"":n._data(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+Cb(c)+" ").replace(Bb," ").indexOf(b)>-1)return!0;return!1}}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Db=a.location,Eb=n.now(),Fb=/\?/,Gb=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;n.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=n.trim(b+"");return e&&!n.trim(e.replace(Gb,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():n.error("Invalid JSON: "+b)},n.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new a.DOMParser,c=d.parseFromString(b,"text/xml")):(c=new a.ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||n.error("Invalid XML: "+b),c};var Hb=/#.*$/,Ib=/([?&])_=[^&]*/,Jb=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Kb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Lb=/^(?:GET|HEAD)$/,Mb=/^\/\//,Nb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Ob={},Pb={},Qb="*/".concat("*"),Rb=Db.href,Sb=Nb.exec(Rb.toLowerCase())||[];function Tb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(G)||[];if(n.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Ub(a,b,c,d){var e={},f=a===Pb;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Vb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&n.extend(!0,a,c),a}function Wb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Xb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Rb,type:"GET",isLocal:Kb.test(Sb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Qb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Vb(Vb(a,n.ajaxSettings),b):Vb(n.ajaxSettings,a)},ajaxPrefilter:Tb(Ob),ajaxTransport:Tb(Pb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var d,e,f,g,h,i,j,k,l=n.ajaxSetup({},c),m=l.context||l,o=l.context&&(m.nodeType||m.jquery)?n(m):n.event,p=n.Deferred(),q=n.Callbacks("once memory"),r=l.statusCode||{},s={},t={},u=0,v="canceled",w={readyState:0,getResponseHeader:function(a){var b;if(2===u){if(!k){k={};while(b=Jb.exec(g))k[b[1].toLowerCase()]=b[2]}b=k[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===u?g:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return u||(a=t[c]=t[c]||a,s[a]=b),this},overrideMimeType:function(a){return u||(l.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>u)for(b in a)r[b]=[r[b],a[b]];else w.always(a[w.status]);return this},abort:function(a){var b=a||v;return j&&j.abort(b),y(0,b),this}};if(p.promise(w).complete=q.add,w.success=w.done,w.error=w.fail,l.url=((b||l.url||Rb)+"").replace(Hb,"").replace(Mb,Sb[1]+"//"),l.type=c.method||c.type||l.method||l.type,l.dataTypes=n.trim(l.dataType||"*").toLowerCase().match(G)||[""],null==l.crossDomain&&(d=Nb.exec(l.url.toLowerCase()),l.crossDomain=!(!d||d[1]===Sb[1]&&d[2]===Sb[2]&&(d[3]||("http:"===d[1]?"80":"443"))===(Sb[3]||("http:"===Sb[1]?"80":"443")))),l.data&&l.processData&&"string"!=typeof l.data&&(l.data=n.param(l.data,l.traditional)),Ub(Ob,l,c,w),2===u)return w;i=n.event&&l.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),l.type=l.type.toUpperCase(),l.hasContent=!Lb.test(l.type),f=l.url,l.hasContent||(l.data&&(f=l.url+=(Fb.test(f)?"&":"?")+l.data,delete l.data),l.cache===!1&&(l.url=Ib.test(f)?f.replace(Ib,"$1_="+Eb++):f+(Fb.test(f)?"&":"?")+"_="+Eb++)),l.ifModified&&(n.lastModified[f]&&w.setRequestHeader("If-Modified-Since",n.lastModified[f]),n.etag[f]&&w.setRequestHeader("If-None-Match",n.etag[f])),(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&w.setRequestHeader("Content-Type",l.contentType),w.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+("*"!==l.dataTypes[0]?", "+Qb+"; q=0.01":""):l.accepts["*"]);for(e in l.headers)w.setRequestHeader(e,l.headers[e]);if(l.beforeSend&&(l.beforeSend.call(m,w,l)===!1||2===u))return w.abort();v="abort";for(e in{success:1,error:1,complete:1})w[e](l[e]);if(j=Ub(Pb,l,c,w)){if(w.readyState=1,i&&o.trigger("ajaxSend",[w,l]),2===u)return w;l.async&&l.timeout>0&&(h=a.setTimeout(function(){w.abort("timeout")},l.timeout));try{u=1,j.send(s,y)}catch(x){if(!(2>u))throw x;y(-1,x)}}else y(-1,"No Transport");function y(b,c,d,e){var k,s,t,v,x,y=c;2!==u&&(u=2,h&&a.clearTimeout(h),j=void 0,g=e||"",w.readyState=b>0?4:0,k=b>=200&&300>b||304===b,d&&(v=Wb(l,w,d)),v=Xb(l,v,w,k),k?(l.ifModified&&(x=w.getResponseHeader("Last-Modified"),x&&(n.lastModified[f]=x),x=w.getResponseHeader("etag"),x&&(n.etag[f]=x)),204===b||"HEAD"===l.type?y="nocontent":304===b?y="notmodified":(y=v.state,s=v.data,t=v.error,k=!t)):(t=y,!b&&y||(y="error",0>b&&(b=0))),w.status=b,w.statusText=(c||y)+"",k?p.resolveWith(m,[s,y,w]):p.rejectWith(m,[w,y,t]),w.statusCode(r),r=void 0,i&&o.trigger(k?"ajaxSuccess":"ajaxError",[w,l,k?s:t]),q.fireWith(m,[w,y]),i&&(o.trigger("ajaxComplete",[w,l]),--n.active||n.event.trigger("ajaxStop")))}return w},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax(n.extend({url:a,type:b,dataType:e,data:c,success:d},n.isPlainObject(a)&&a))}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){if(n.isFunction(a))return this.each(function(b){n(this).wrapAll(a.call(this,b))});if(this[0]){var b=n(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return n.isFunction(a)?this.each(function(b){n(this).wrapInner(a.call(this,b))}):this.each(function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}});function Yb(a){return a.style&&a.style.display||n.css(a,"display")}function Zb(a){if(!n.contains(a.ownerDocument||d,a))return!0;while(a&&1===a.nodeType){if("none"===Yb(a)||"hidden"===a.type)return!0;a=a.parentNode}return!1}n.expr.filters.hidden=function(a){return l.reliableHiddenOffsets()?a.offsetWidth<=0&&a.offsetHeight<=0&&!a.getClientRects().length:Zb(a)},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var $b=/%20/g,_b=/\[\]$/,ac=/\r?\n/g,bc=/^(?:submit|button|image|reset|file)$/i,cc=/^(?:input|select|textarea|keygen)/i;function dc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||_b.test(a)?d(a,e):dc(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)dc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)dc(c,a[c],b,e);return d.join("&").replace($b,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&cc.test(this.nodeName)&&!bc.test(a)&&(this.checked||!Z.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(ac,"\r\n")}}):{name:b.name,value:c.replace(ac,"\r\n")}}).get()}}),n.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return this.isLocal?ic():d.documentMode>8?hc():/^(get|post|head|put|delete|options)$/i.test(this.type)&&hc()||ic()}:hc;var ec=0,fc={},gc=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in fc)fc[a](void 0,!0)}),l.cors=!!gc&&"withCredentials"in gc,gc=l.ajax=!!gc,gc&&n.ajaxTransport(function(b){if(!b.crossDomain||l.cors){var c;return{send:function(d,e){var f,g=b.xhr(),h=++ec;if(g.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(f in b.xhrFields)g[f]=b.xhrFields[f];b.mimeType&&g.overrideMimeType&&g.overrideMimeType(b.mimeType),b.crossDomain||d["X-Requested-With"]||(d["X-Requested-With"]="XMLHttpRequest");for(f in d)void 0!==d[f]&&g.setRequestHeader(f,d[f]+"");g.send(b.hasContent&&b.data||null),c=function(a,d){var f,i,j;if(c&&(d||4===g.readyState))if(delete fc[h],c=void 0,g.onreadystatechange=n.noop,d)4!==g.readyState&&g.abort();else{j={},f=g.status,"string"==typeof g.responseText&&(j.text=g.responseText);try{i=g.statusText}catch(k){i=""}f||!b.isLocal||b.crossDomain?1223===f&&(f=204):f=j.text?200:404}j&&e(f,i,j,g.getAllResponseHeaders())},b.async?4===g.readyState?a.setTimeout(c):g.onreadystatechange=fc[h]=c:c()},abort:function(){c&&c(void 0,!0)}}}});function hc(){try{return new a.XMLHttpRequest}catch(b){}}function ic(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=d.head||n("head")[0]||d.documentElement;return{send:function(e,f){b=d.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||f(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var jc=[],kc=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=jc.pop()||n.expando+"_"+Eb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(kc.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&kc.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(kc,"$1"+e):b.jsonp!==!1&&(b.url+=(Fb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?n(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,jc.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||d;var e=x.exec(a),f=!c&&[];return e?[b.createElement(e[1])]:(e=ja([a],b,f),f&&f.length&&n(f).remove(),n.merge([],e.childNodes))};var lc=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&lc)return lc.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=n.trim(a.slice(h,a.length)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};function mc(a){return n.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&n.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,n.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,n.contains(b,e)?("undefined"!=typeof e.getBoundingClientRect&&(d=e.getBoundingClientRect()),c=mc(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===n.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(c=a.offset()),c.top+=n.css(a[0],"borderTopWidth",!0),c.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-n.css(d,"marginTop",!0),left:b.left-c.left-n.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Qa})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);n.fn[a]=function(d){return Y(this,function(a,d,e){var f=mc(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?n(f).scrollLeft():e,c?e:n(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=Ua(l.pixelPosition,function(a,c){return c?(c=Sa(a,b),Oa.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({ +padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return Y(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var nc=a.jQuery,oc=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=oc),b&&a.jQuery===n&&(a.jQuery=nc),n},b||(a.jQuery=a.$=n),n}); diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/js/jquery-ui-1.12.1.min.js b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/js/jquery-ui-1.12.1.min.js new file mode 100644 index 0000000000000000000000000000000000000000..25398a167415050ae8bfb0bfebac6aa3ab790909 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/assets/js/jquery-ui-1.12.1.min.js @@ -0,0 +1,13 @@ +/*! jQuery UI - v1.12.1 - 2016-09-14 +* http://jqueryui.com +* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e=t.css("visibility");"inherit"===e;)t=t.parent(),e=t.css("visibility");return"hidden"!==e}function i(t){for(var e,i;t.length&&t[0]!==document;){if(e=t.css("position"),("absolute"===e||"relative"===e||"fixed"===e)&&(i=parseInt(t.css("zIndex"),10),!isNaN(i)&&0!==i))return i;t=t.parent()}return 0}function s(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},t.extend(this._defaults,this.regional[""]),this.regional.en=t.extend(!0,{},this.regional[""]),this.regional["en-US"]=t.extend(!0,{},this.regional.en),this.dpDiv=n(t("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function n(e){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return e.on("mouseout",i,function(){t(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).removeClass("ui-datepicker-next-hover")}).on("mouseover",i,o)}function o(){t.datepicker._isDisabledDatepicker(m.inline?m.dpDiv.parent()[0]:m.input[0])||(t(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),t(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).addClass("ui-datepicker-next-hover"))}function a(e,i){t.extend(e,i);for(var s in i)null==i[s]&&(e[s]=i[s]);return e}function r(t){return function(){var e=this.element.val();t.apply(this,arguments),this._refresh(),e!==this.element.val()&&this._trigger("change")}}t.ui=t.ui||{},t.ui.version="1.12.1";var h=0,l=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},h=e.split(".")[0];e=e.split(".")[1];var l=h+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][l.toLowerCase()]=function(e){return!!t.data(e,l)},t[h]=t[h]||{},n=t[h][e],o=t[h][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:h,widgetName:e,widgetFullName:l}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,s,n=l.call(arguments,1),o=0,a=n.length;a>o;o++)for(i in n[o])s=n[o][i],n[o].hasOwnProperty(i)&&void 0!==s&&(e[i]=t.isPlainObject(s)?t.isPlainObject(e[i])?t.widget.extend({},e[i],s):t.widget.extend({},s):s);return e},t.widget.bridge=function(e,i){var s=i.prototype.widgetFullName||e;t.fn[e]=function(n){var o="string"==typeof n,a=l.call(arguments,1),r=this;return o?this.length||"instance"!==n?this.each(function(){var i,o=t.data(this,s);return"instance"===n?(r=o,!1):o?t.isFunction(o[n])&&"_"!==n.charAt(0)?(i=o[n].apply(o,a),i!==o&&void 0!==i?(r=i&&i.jquery?r.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+n+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+n+"'")}):r=void 0:(a.length&&(n=t.widget.extend.apply(null,[n].concat(a))),this.each(function(){var e=t.data(this,s);e?(e.option(n||{}),e._init&&e._init()):t.data(this,s,new i(n,this))})),r}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,i){i=t(i||this.defaultElement||this)[0],this.element=t(i),this.uuid=h++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},i!==this&&(t.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===i&&this.destroy()}}),this.document=t(i.style?i.ownerDocument:i.document||i),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType,o=!s&&!n;return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){if(!n||!n.of)return d.apply(this,arguments);n=t.extend({},n);var u,p,f,g,m,_,v=t(n.of),b=t.position.getWithinInfo(n.within),y=t.position.getScrollInfo(b),w=(n.collision||"flip").split(" "),k={};return _=s(v),v[0].preventDefault&&(n.at="left top"),p=_.width,f=_.height,g=_.offset,m=t.extend({},g),t.each(["my","at"],function(){var t,e,i=(n[this]||"").split(" ");1===i.length&&(i=r.test(i[0])?i.concat(["center"]):h.test(i[0])?["center"].concat(i):["center","center"]),i[0]=r.test(i[0])?i[0]:"center",i[1]=h.test(i[1])?i[1]:"center",t=l.exec(i[0]),e=l.exec(i[1]),k[this]=[t?t[0]:0,e?e[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===n.at[0]?m.left+=p:"center"===n.at[0]&&(m.left+=p/2),"bottom"===n.at[1]?m.top+=f:"center"===n.at[1]&&(m.top+=f/2),u=e(k.at,p,f),m.left+=u[0],m.top+=u[1],this.each(function(){var s,r,h=t(this),l=h.outerWidth(),c=h.outerHeight(),d=i(this,"marginLeft"),_=i(this,"marginTop"),x=l+d+i(this,"marginRight")+y.width,C=c+_+i(this,"marginBottom")+y.height,D=t.extend({},m),I=e(k.my,h.outerWidth(),h.outerHeight());"right"===n.my[0]?D.left-=l:"center"===n.my[0]&&(D.left-=l/2),"bottom"===n.my[1]?D.top-=c:"center"===n.my[1]&&(D.top-=c/2),D.left+=I[0],D.top+=I[1],s={marginLeft:d,marginTop:_},t.each(["left","top"],function(e,i){t.ui.position[w[e]]&&t.ui.position[w[e]][i](D,{targetWidth:p,targetHeight:f,elemWidth:l,elemHeight:c,collisionPosition:s,collisionWidth:x,collisionHeight:C,offset:[u[0]+I[0],u[1]+I[1]],my:n.my,at:n.at,within:b,elem:h})}),n.using&&(r=function(t){var e=g.left-D.left,i=e+p-l,s=g.top-D.top,r=s+f-c,u={target:{element:v,left:g.left,top:g.top,width:p,height:f},element:{element:h,left:D.left,top:D.top,width:l,height:c},horizontal:0>i?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-h,(i>0||u>a(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}});var c="ui-effects-",u="ui-effects-style",d="ui-effects-animated",p=t;t.effects={effect:{}},function(t,e){function i(t,e,i){var s=u[e.type]||{};return null==t?i||!e.def?null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod:0>t?0:t>s.max?s.max:t)}function s(i){var s=l(),n=s._rgba=[];return i=i.toLowerCase(),f(h,function(t,o){var a,r=o.re.exec(i),h=r&&o.parse(r),l=o.space||"rgba";return h?(a=s[l](h),s[c[l].cache]=a[c[l].cache],n=s._rgba=a._rgba,!1):e}),n.length?("0,0,0,0"===n.join()&&t.extend(n,o.transparent),s):o[i]}function n(t,e,i){return i=(i+1)%1,1>6*i?t+6*(e-t)*i:1>2*i?e:2>3*i?t+6*(e-t)*(2/3-i):t}var o,a="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,h=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[t[1],t[2],t[3],t[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],t[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(t){return[t[1],t[2]/100,t[3]/100,t[4]]}}],l=t.Color=function(e,i,s,n){return new t.Color.fn.parse(e,i,s,n)},c={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},u={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},d=l.support={},p=t("<p>")[0],f=t.each;p.style.cssText="background-color:rgba(1,1,1,.5)",d.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(c,function(t,e){e.cache="_"+t,e.props.alpha={idx:3,type:"percent",def:1}}),l.fn=t.extend(l.prototype,{parse:function(n,a,r,h){if(n===e)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=t(n).css(a),a=e);var u=this,d=t.type(n),p=this._rgba=[];return a!==e&&(n=[n,a,r,h],d="array"),"string"===d?this.parse(s(n)||o._default):"array"===d?(f(c.rgba.props,function(t,e){p[e.idx]=i(n[e.idx],e)}),this):"object"===d?(n instanceof l?f(c,function(t,e){n[e.cache]&&(u[e.cache]=n[e.cache].slice())}):f(c,function(e,s){var o=s.cache;f(s.props,function(t,e){if(!u[o]&&s.to){if("alpha"===t||null==n[t])return;u[o]=s.to(u._rgba)}u[o][e.idx]=i(n[t],e,!0)}),u[o]&&0>t.inArray(null,u[o].slice(0,3))&&(u[o][3]=1,s.from&&(u._rgba=s.from(u[o])))}),this):e},is:function(t){var i=l(t),s=!0,n=this;return f(c,function(t,o){var a,r=i[o.cache];return r&&(a=n[o.cache]||o.to&&o.to(n._rgba)||[],f(o.props,function(t,i){return null!=r[i.idx]?s=r[i.idx]===a[i.idx]:e})),s}),s},_space:function(){var t=[],e=this;return f(c,function(i,s){e[s.cache]&&t.push(i)}),t.pop()},transition:function(t,e){var s=l(t),n=s._space(),o=c[n],a=0===this.alpha()?l("transparent"):this,r=a[o.cache]||o.to(a._rgba),h=r.slice();return s=s[o.cache],f(o.props,function(t,n){var o=n.idx,a=r[o],l=s[o],c=u[n.type]||{};null!==l&&(null===a?h[o]=l:(c.mod&&(l-a>c.mod/2?a+=c.mod:a-l>c.mod/2&&(a-=c.mod)),h[o]=i((l-a)*e+a,n)))}),this[n](h)},blend:function(e){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=l(e)._rgba;return l(t.map(i,function(t,e){return(1-s)*n[e]+s*t}))},toRgbaString:function(){var e="rgba(",i=t.map(this._rgba,function(t,e){return null==t?e>2?1:0:t});return 1===i[3]&&(i.pop(),e="rgb("),e+i.join()+")"},toHslaString:function(){var e="hsla(",i=t.map(this.hsla(),function(t,e){return null==t&&(t=e>2?1:0),e&&3>e&&(t=Math.round(100*t)+"%"),t});return 1===i[3]&&(i.pop(),e="hsl("),e+i.join()+")"},toHexString:function(e){var i=this._rgba.slice(),s=i.pop();return e&&i.push(~~(255*s)),"#"+t.map(i,function(t){return t=(t||0).toString(16),1===t.length?"0"+t:t}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,c.hsla.to=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e,i,s=t[0]/255,n=t[1]/255,o=t[2]/255,a=t[3],r=Math.max(s,n,o),h=Math.min(s,n,o),l=r-h,c=r+h,u=.5*c;return e=h===r?0:s===r?60*(n-o)/l+360:n===r?60*(o-s)/l+120:60*(s-n)/l+240,i=0===l?0:.5>=u?l/c:l/(2-c),[Math.round(e)%360,i,u,null==a?1:a]},c.hsla.from=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e=t[0]/360,i=t[1],s=t[2],o=t[3],a=.5>=s?s*(1+i):s+i-s*i,r=2*s-a;return[Math.round(255*n(r,a,e+1/3)),Math.round(255*n(r,a,e)),Math.round(255*n(r,a,e-1/3)),o]},f(c,function(s,n){var o=n.props,a=n.cache,h=n.to,c=n.from;l.fn[s]=function(s){if(h&&!this[a]&&(this[a]=h(this._rgba)),s===e)return this[a].slice();var n,r=t.type(s),u="array"===r||"object"===r?s:arguments,d=this[a].slice();return f(o,function(t,e){var s=u["object"===r?t:e.idx];null==s&&(s=d[e.idx]),d[e.idx]=i(s,e)}),c?(n=l(c(d)),n[a]=d,n):l(d)},f(o,function(e,i){l.fn[e]||(l.fn[e]=function(n){var o,a=t.type(n),h="alpha"===e?this._hsla?"hsla":"rgba":s,l=this[h](),c=l[i.idx];return"undefined"===a?c:("function"===a&&(n=n.call(this,c),a=t.type(n)),null==n&&i.empty?this:("string"===a&&(o=r.exec(n),o&&(n=c+parseFloat(o[2])*("+"===o[1]?1:-1))),l[i.idx]=n,this[h](l)))})})}),l.hook=function(e){var i=e.split(" ");f(i,function(e,i){t.cssHooks[i]={set:function(e,n){var o,a,r="";if("transparent"!==n&&("string"!==t.type(n)||(o=s(n)))){if(n=l(o||n),!d.rgba&&1!==n._rgba[3]){for(a="backgroundColor"===i?e.parentNode:e;(""===r||"transparent"===r)&&a&&a.style;)try{r=t.css(a,"backgroundColor"),a=a.parentNode}catch(h){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{e.style[i]=n}catch(h){}}},t.fx.step[i]=function(e){e.colorInit||(e.start=l(e.elem,i),e.end=l(e.end),e.colorInit=!0),t.cssHooks[i].set(e.elem,e.start.transition(e.end,e.pos))}})},l.hook(a),t.cssHooks.borderColor={expand:function(t){var e={};return f(["Top","Right","Bottom","Left"],function(i,s){e["border"+s+"Color"]=t}),e}},o=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(p),function(){function e(e){var i,s,n=e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,null):e.currentStyle,o={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(o[t.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(o[i]=n[i]);return o}function i(e,i){var s,o,a={};for(s in i)o=i[s],e[s]!==o&&(n[s]||(t.fx.step[s]||!isNaN(parseFloat(o)))&&(a[s]=o));return a}var s=["add","remove","toggle"],n={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};t.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(e,i){t.fx.step[i]=function(t){("none"!==t.end&&!t.setAttr||1===t.pos&&!t.setAttr)&&(p.style(t.elem,i,t.end),t.setAttr=!0)}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.effects.animateClass=function(n,o,a,r){var h=t.speed(o,a,r);return this.queue(function(){var o,a=t(this),r=a.attr("class")||"",l=h.children?a.find("*").addBack():a;l=l.map(function(){var i=t(this);return{el:i,start:e(this)}}),o=function(){t.each(s,function(t,e){n[e]&&a[e+"Class"](n[e])})},o(),l=l.map(function(){return this.end=e(this.el[0]),this.diff=i(this.start,this.end),this}),a.attr("class",r),l=l.map(function(){var e=this,i=t.Deferred(),s=t.extend({},h,{queue:!1,complete:function(){i.resolve(e)}});return this.el.animate(this.diff,s),i.promise()}),t.when.apply(t,l.get()).done(function(){o(),t.each(arguments,function(){var e=this.el;t.each(this.diff,function(t){e.css(t,"")})}),h.complete.call(a[0])})})},t.fn.extend({addClass:function(e){return function(i,s,n,o){return s?t.effects.animateClass.call(this,{add:i},s,n,o):e.apply(this,arguments)}}(t.fn.addClass),removeClass:function(e){return function(i,s,n,o){return arguments.length>1?t.effects.animateClass.call(this,{remove:i},s,n,o):e.apply(this,arguments)}}(t.fn.removeClass),toggleClass:function(e){return function(i,s,n,o,a){return"boolean"==typeof s||void 0===s?n?t.effects.animateClass.call(this,s?{add:i}:{remove:i},n,o,a):e.apply(this,arguments):t.effects.animateClass.call(this,{toggle:i},s,n,o)}}(t.fn.toggleClass),switchClass:function(e,i,s,n,o){return t.effects.animateClass.call(this,{add:i,remove:e},s,n,o)}})}(),function(){function e(e,i,s,n){return t.isPlainObject(e)&&(i=e,e=e.effect),e={effect:e},null==i&&(i={}),t.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||t.fx.speeds[i])&&(n=s,s=i,i={}),t.isFunction(s)&&(n=s,s=null),i&&t.extend(e,i),s=s||i.duration,e.duration=t.fx.off?0:"number"==typeof s?s:s in t.fx.speeds?t.fx.speeds[s]:t.fx.speeds._default,e.complete=n||i.complete,e}function i(e){return!e||"number"==typeof e||t.fx.speeds[e]?!0:"string"!=typeof e||t.effects.effect[e]?t.isFunction(e)?!0:"object"!=typeof e||e.effect?!1:!0:!0}function s(t,e){var i=e.outerWidth(),s=e.outerHeight(),n=/^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/,o=n.exec(t)||["",0,i,s,0];return{top:parseFloat(o[1])||0,right:"auto"===o[2]?i:parseFloat(o[2]),bottom:"auto"===o[3]?s:parseFloat(o[3]),left:parseFloat(o[4])||0}}t.expr&&t.expr.filters&&t.expr.filters.animated&&(t.expr.filters.animated=function(e){return function(i){return!!t(i).data(d)||e(i)}}(t.expr.filters.animated)),t.uiBackCompat!==!1&&t.extend(t.effects,{save:function(t,e){for(var i=0,s=e.length;s>i;i++)null!==e[i]&&t.data(c+e[i],t[0].style[e[i]])},restore:function(t,e){for(var i,s=0,n=e.length;n>s;s++)null!==e[s]&&(i=t.data(c+e[s]),t.css(e[s],i))},setMode:function(t,e){return"toggle"===e&&(e=t.is(":hidden")?"show":"hide"),e},createWrapper:function(e){if(e.parent().is(".ui-effects-wrapper"))return e.parent();var i={width:e.outerWidth(!0),height:e.outerHeight(!0),"float":e.css("float")},s=t("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:e.width(),height:e.height()},o=document.activeElement;try{o.id}catch(a){o=document.body}return e.wrap(s),(e[0]===o||t.contains(e[0],o))&&t(o).trigger("focus"),s=e.parent(),"static"===e.css("position")?(s.css({position:"relative"}),e.css({position:"relative"})):(t.extend(i,{position:e.css("position"),zIndex:e.css("z-index")}),t.each(["top","left","bottom","right"],function(t,s){i[s]=e.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),e.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),e.css(n),s.css(i).show()},removeWrapper:function(e){var i=document.activeElement;return e.parent().is(".ui-effects-wrapper")&&(e.parent().replaceWith(e),(e[0]===i||t.contains(e[0],i))&&t(i).trigger("focus")),e}}),t.extend(t.effects,{version:"1.12.1",define:function(e,i,s){return s||(s=i,i="effect"),t.effects.effect[e]=s,t.effects.effect[e].mode=i,s},scaledDimensions:function(t,e,i){if(0===e)return{height:0,width:0,outerHeight:0,outerWidth:0};var s="horizontal"!==i?(e||100)/100:1,n="vertical"!==i?(e||100)/100:1;return{height:t.height()*n,width:t.width()*s,outerHeight:t.outerHeight()*n,outerWidth:t.outerWidth()*s}},clipToBox:function(t){return{width:t.clip.right-t.clip.left,height:t.clip.bottom-t.clip.top,left:t.clip.left,top:t.clip.top}},unshift:function(t,e,i){var s=t.queue();e>1&&s.splice.apply(s,[1,0].concat(s.splice(e,i))),t.dequeue()},saveStyle:function(t){t.data(u,t[0].style.cssText)},restoreStyle:function(t){t[0].style.cssText=t.data(u)||"",t.removeData(u)},mode:function(t,e){var i=t.is(":hidden");return"toggle"===e&&(e=i?"show":"hide"),(i?"hide"===e:"show"===e)&&(e="none"),e},getBaseline:function(t,e){var i,s;switch(t[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=t[0]/e.height}switch(t[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=t[1]/e.width}return{x:s,y:i}},createPlaceholder:function(e){var i,s=e.css("position"),n=e.position();return e.css({marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()),/^(static|relative)/.test(s)&&(s="absolute",i=t("<"+e[0].nodeName+">").insertAfter(e).css({display:/^(inline|ruby)/.test(e.css("display"))?"inline-block":"block",visibility:"hidden",marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight"),"float":e.css("float")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).addClass("ui-effects-placeholder"),e.data(c+"placeholder",i)),e.css({position:s,left:n.left,top:n.top}),i},removePlaceholder:function(t){var e=c+"placeholder",i=t.data(e);i&&(i.remove(),t.removeData(e))},cleanUp:function(e){t.effects.restoreStyle(e),t.effects.removePlaceholder(e)},setTransition:function(e,i,s,n){return n=n||{},t.each(i,function(t,i){var o=e.cssUnit(i);o[0]>0&&(n[i]=o[0]*s+o[1])}),n}}),t.fn.extend({effect:function(){function i(e){function i(){r.removeData(d),t.effects.cleanUp(r),"hide"===s.mode&&r.hide(),a()}function a(){t.isFunction(h)&&h.call(r[0]),t.isFunction(e)&&e()}var r=t(this);s.mode=c.shift(),t.uiBackCompat===!1||o?"none"===s.mode?(r[l](),a()):n.call(r[0],s,i):(r.is(":hidden")?"hide"===l:"show"===l)?(r[l](),a()):n.call(r[0],s,a)}var s=e.apply(this,arguments),n=t.effects.effect[s.effect],o=n.mode,a=s.queue,r=a||"fx",h=s.complete,l=s.mode,c=[],u=function(e){var i=t(this),s=t.effects.mode(i,l)||o;i.data(d,!0),c.push(s),o&&("show"===s||s===o&&"hide"===s)&&i.show(),o&&"none"===s||t.effects.saveStyle(i),t.isFunction(e)&&e()};return t.fx.off||!n?l?this[l](s.duration,h):this.each(function(){h&&h.call(this)}):a===!1?this.each(u).each(i):this.queue(r,u).queue(r,i)},show:function(t){return function(s){if(i(s))return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="show",this.effect.call(this,n) +}}(t.fn.show),hide:function(t){return function(s){if(i(s))return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="hide",this.effect.call(this,n)}}(t.fn.hide),toggle:function(t){return function(s){if(i(s)||"boolean"==typeof s)return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)}}(t.fn.toggle),cssUnit:function(e){var i=this.css(e),s=[];return t.each(["em","px","%","pt"],function(t,e){i.indexOf(e)>0&&(s=[parseFloat(i),e])}),s},cssClip:function(t){return t?this.css("clip","rect("+t.top+"px "+t.right+"px "+t.bottom+"px "+t.left+"px)"):s(this.css("clip"),this)},transfer:function(e,i){var s=t(this),n=t(e.to),o="fixed"===n.css("position"),a=t("body"),r=o?a.scrollTop():0,h=o?a.scrollLeft():0,l=n.offset(),c={top:l.top-r,left:l.left-h,height:n.innerHeight(),width:n.innerWidth()},u=s.offset(),d=t("<div class='ui-effects-transfer'></div>").appendTo("body").addClass(e.className).css({top:u.top-r,left:u.left-h,height:s.innerHeight(),width:s.innerWidth(),position:o?"fixed":"absolute"}).animate(c,e.duration,e.easing,function(){d.remove(),t.isFunction(i)&&i()})}}),t.fx.step.clip=function(e){e.clipInit||(e.start=t(e.elem).cssClip(),"string"==typeof e.end&&(e.end=s(e.end,e.elem)),e.clipInit=!0),t(e.elem).cssClip({top:e.pos*(e.end.top-e.start.top)+e.start.top,right:e.pos*(e.end.right-e.start.right)+e.start.right,bottom:e.pos*(e.end.bottom-e.start.bottom)+e.start.bottom,left:e.pos*(e.end.left-e.start.left)+e.start.left})}}(),function(){var e={};t.each(["Quad","Cubic","Quart","Quint","Expo"],function(t,i){e[i]=function(e){return Math.pow(e,t+2)}}),t.extend(e,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;((e=Math.pow(2,--i))-1)/11>t;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),t.each(e,function(e,i){t.easing["easeIn"+e]=i,t.easing["easeOut"+e]=function(t){return 1-i(1-t)},t.easing["easeInOut"+e]=function(t){return.5>t?i(2*t)/2:1-i(-2*t+2)/2}})}();var f=t.effects;t.effects.define("blind","hide",function(e,i){var s={up:["bottom","top"],vertical:["bottom","top"],down:["top","bottom"],left:["right","left"],horizontal:["right","left"],right:["left","right"]},n=t(this),o=e.direction||"up",a=n.cssClip(),r={clip:t.extend({},a)},h=t.effects.createPlaceholder(n);r.clip[s[o][0]]=r.clip[s[o][1]],"show"===e.mode&&(n.cssClip(r.clip),h&&h.css(t.effects.clipToBox(r)),r.clip=a),h&&h.animate(t.effects.clipToBox(r),e.duration,e.easing),n.animate(r,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("bounce",function(e,i){var s,n,o,a=t(this),r=e.mode,h="hide"===r,l="show"===r,c=e.direction||"up",u=e.distance,d=e.times||5,p=2*d+(l||h?1:0),f=e.duration/p,g=e.easing,m="up"===c||"down"===c?"top":"left",_="up"===c||"left"===c,v=0,b=a.queue().length;for(t.effects.createPlaceholder(a),o=a.css(m),u||(u=a["top"===m?"outerHeight":"outerWidth"]()/3),l&&(n={opacity:1},n[m]=o,a.css("opacity",0).css(m,_?2*-u:2*u).animate(n,f,g)),h&&(u/=Math.pow(2,d-1)),n={},n[m]=o;d>v;v++)s={},s[m]=(_?"-=":"+=")+u,a.animate(s,f,g).animate(n,f,g),u=h?2*u:u/2;h&&(s={opacity:0},s[m]=(_?"-=":"+=")+u,a.animate(s,f,g)),a.queue(i),t.effects.unshift(a,b,p+1)}),t.effects.define("clip","hide",function(e,i){var s,n={},o=t(this),a=e.direction||"vertical",r="both"===a,h=r||"horizontal"===a,l=r||"vertical"===a;s=o.cssClip(),n.clip={top:l?(s.bottom-s.top)/2:s.top,right:h?(s.right-s.left)/2:s.right,bottom:l?(s.bottom-s.top)/2:s.bottom,left:h?(s.right-s.left)/2:s.left},t.effects.createPlaceholder(o),"show"===e.mode&&(o.cssClip(n.clip),n.clip=s),o.animate(n,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("drop","hide",function(e,i){var s,n=t(this),o=e.mode,a="show"===o,r=e.direction||"left",h="up"===r||"down"===r?"top":"left",l="up"===r||"left"===r?"-=":"+=",c="+="===l?"-=":"+=",u={opacity:0};t.effects.createPlaceholder(n),s=e.distance||n["top"===h?"outerHeight":"outerWidth"](!0)/2,u[h]=l+s,a&&(n.css(u),u[h]=c+s,u.opacity=1),n.animate(u,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("explode","hide",function(e,i){function s(){b.push(this),b.length===u*d&&n()}function n(){p.css({visibility:"visible"}),t(b).remove(),i()}var o,a,r,h,l,c,u=e.pieces?Math.round(Math.sqrt(e.pieces)):3,d=u,p=t(this),f=e.mode,g="show"===f,m=p.show().css("visibility","hidden").offset(),_=Math.ceil(p.outerWidth()/d),v=Math.ceil(p.outerHeight()/u),b=[];for(o=0;u>o;o++)for(h=m.top+o*v,c=o-(u-1)/2,a=0;d>a;a++)r=m.left+a*_,l=a-(d-1)/2,p.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-a*_,top:-o*v}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:_,height:v,left:r+(g?l*_:0),top:h+(g?c*v:0),opacity:g?0:1}).animate({left:r+(g?0:l*_),top:h+(g?0:c*v),opacity:g?1:0},e.duration||500,e.easing,s)}),t.effects.define("fade","toggle",function(e,i){var s="show"===e.mode;t(this).css("opacity",s?0:1).animate({opacity:s?1:0},{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("fold","hide",function(e,i){var s=t(this),n=e.mode,o="show"===n,a="hide"===n,r=e.size||15,h=/([0-9]+)%/.exec(r),l=!!e.horizFirst,c=l?["right","bottom"]:["bottom","right"],u=e.duration/2,d=t.effects.createPlaceholder(s),p=s.cssClip(),f={clip:t.extend({},p)},g={clip:t.extend({},p)},m=[p[c[0]],p[c[1]]],_=s.queue().length;h&&(r=parseInt(h[1],10)/100*m[a?0:1]),f.clip[c[0]]=r,g.clip[c[0]]=r,g.clip[c[1]]=0,o&&(s.cssClip(g.clip),d&&d.css(t.effects.clipToBox(g)),g.clip=p),s.queue(function(i){d&&d.animate(t.effects.clipToBox(f),u,e.easing).animate(t.effects.clipToBox(g),u,e.easing),i()}).animate(f,u,e.easing).animate(g,u,e.easing).queue(i),t.effects.unshift(s,_,4)}),t.effects.define("highlight","show",function(e,i){var s=t(this),n={backgroundColor:s.css("backgroundColor")};"hide"===e.mode&&(n.opacity=0),t.effects.saveStyle(s),s.css({backgroundImage:"none",backgroundColor:e.color||"#ffff99"}).animate(n,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("size",function(e,i){var s,n,o,a=t(this),r=["fontSize"],h=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],l=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],c=e.mode,u="effect"!==c,d=e.scale||"both",p=e.origin||["middle","center"],f=a.css("position"),g=a.position(),m=t.effects.scaledDimensions(a),_=e.from||m,v=e.to||t.effects.scaledDimensions(a,0);t.effects.createPlaceholder(a),"show"===c&&(o=_,_=v,v=o),n={from:{y:_.height/m.height,x:_.width/m.width},to:{y:v.height/m.height,x:v.width/m.width}},("box"===d||"both"===d)&&(n.from.y!==n.to.y&&(_=t.effects.setTransition(a,h,n.from.y,_),v=t.effects.setTransition(a,h,n.to.y,v)),n.from.x!==n.to.x&&(_=t.effects.setTransition(a,l,n.from.x,_),v=t.effects.setTransition(a,l,n.to.x,v))),("content"===d||"both"===d)&&n.from.y!==n.to.y&&(_=t.effects.setTransition(a,r,n.from.y,_),v=t.effects.setTransition(a,r,n.to.y,v)),p&&(s=t.effects.getBaseline(p,m),_.top=(m.outerHeight-_.outerHeight)*s.y+g.top,_.left=(m.outerWidth-_.outerWidth)*s.x+g.left,v.top=(m.outerHeight-v.outerHeight)*s.y+g.top,v.left=(m.outerWidth-v.outerWidth)*s.x+g.left),a.css(_),("content"===d||"both"===d)&&(h=h.concat(["marginTop","marginBottom"]).concat(r),l=l.concat(["marginLeft","marginRight"]),a.find("*[width]").each(function(){var i=t(this),s=t.effects.scaledDimensions(i),o={height:s.height*n.from.y,width:s.width*n.from.x,outerHeight:s.outerHeight*n.from.y,outerWidth:s.outerWidth*n.from.x},a={height:s.height*n.to.y,width:s.width*n.to.x,outerHeight:s.height*n.to.y,outerWidth:s.width*n.to.x};n.from.y!==n.to.y&&(o=t.effects.setTransition(i,h,n.from.y,o),a=t.effects.setTransition(i,h,n.to.y,a)),n.from.x!==n.to.x&&(o=t.effects.setTransition(i,l,n.from.x,o),a=t.effects.setTransition(i,l,n.to.x,a)),u&&t.effects.saveStyle(i),i.css(o),i.animate(a,e.duration,e.easing,function(){u&&t.effects.restoreStyle(i)})})),a.animate(v,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){var e=a.offset();0===v.opacity&&a.css("opacity",_.opacity),u||(a.css("position","static"===f?"relative":f).offset(e),t.effects.saveStyle(a)),i()}})}),t.effects.define("scale",function(e,i){var s=t(this),n=e.mode,o=parseInt(e.percent,10)||(0===parseInt(e.percent,10)?0:"effect"!==n?0:100),a=t.extend(!0,{from:t.effects.scaledDimensions(s),to:t.effects.scaledDimensions(s,o,e.direction||"both"),origin:e.origin||["middle","center"]},e);e.fade&&(a.from.opacity=1,a.to.opacity=0),t.effects.effect.size.call(this,a,i)}),t.effects.define("puff","hide",function(e,i){var s=t.extend(!0,{},e,{fade:!0,percent:parseInt(e.percent,10)||150});t.effects.effect.scale.call(this,s,i)}),t.effects.define("pulsate","show",function(e,i){var s=t(this),n=e.mode,o="show"===n,a="hide"===n,r=o||a,h=2*(e.times||5)+(r?1:0),l=e.duration/h,c=0,u=1,d=s.queue().length;for((o||!s.is(":visible"))&&(s.css("opacity",0).show(),c=1);h>u;u++)s.animate({opacity:c},l,e.easing),c=1-c;s.animate({opacity:c},l,e.easing),s.queue(i),t.effects.unshift(s,d,h+1)}),t.effects.define("shake",function(e,i){var s=1,n=t(this),o=e.direction||"left",a=e.distance||20,r=e.times||3,h=2*r+1,l=Math.round(e.duration/h),c="up"===o||"down"===o?"top":"left",u="up"===o||"left"===o,d={},p={},f={},g=n.queue().length;for(t.effects.createPlaceholder(n),d[c]=(u?"-=":"+=")+a,p[c]=(u?"+=":"-=")+2*a,f[c]=(u?"-=":"+=")+2*a,n.animate(d,l,e.easing);r>s;s++)n.animate(p,l,e.easing).animate(f,l,e.easing);n.animate(p,l,e.easing).animate(d,l/2,e.easing).queue(i),t.effects.unshift(n,g,h+1)}),t.effects.define("slide","show",function(e,i){var s,n,o=t(this),a={up:["bottom","top"],down:["top","bottom"],left:["right","left"],right:["left","right"]},r=e.mode,h=e.direction||"left",l="up"===h||"down"===h?"top":"left",c="up"===h||"left"===h,u=e.distance||o["top"===l?"outerHeight":"outerWidth"](!0),d={};t.effects.createPlaceholder(o),s=o.cssClip(),n=o.position()[l],d[l]=(c?-1:1)*u+n,d.clip=o.cssClip(),d.clip[a[h][1]]=d.clip[a[h][0]],"show"===r&&(o.cssClip(d.clip),o.css(l,d[l]),d.clip=s,d[l]=n),o.animate(d,{queue:!1,duration:e.duration,easing:e.easing,complete:i})});var f;t.uiBackCompat!==!1&&(f=t.effects.define("transfer",function(e,i){t(this).transfer(e,i)})),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,.\/:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.widget("ui.accordion",{version:"1.12.1",options:{active:0,animate:{},classes:{"ui-accordion-header":"ui-corner-top","ui-accordion-header-collapsed":"ui-corner-all","ui-accordion-content":"ui-corner-bottom"},collapsible:!1,event:"click",header:"> li > :first-child, > :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var e=this.options;this.prevShow=this.prevHide=t(),this._addClass("ui-accordion","ui-widget ui-helper-reset"),this.element.attr("role","tablist"),e.collapsible||e.active!==!1&&null!=e.active||(e.active=0),this._processPanels(),0>e.active&&(e.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():t()}},_createIcons:function(){var e,i,s=this.options.icons;s&&(e=t("<span>"),this._addClass(e,"ui-accordion-header-icon","ui-icon "+s.header),e.prependTo(this.headers),i=this.active.children(".ui-accordion-header-icon"),this._removeClass(i,s.header)._addClass(i,null,s.activeHeader)._addClass(this.headers,"ui-accordion-icons"))},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons"),this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeAttr("role"),this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),this._destroyIcons(),t=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){return"active"===t?(this._activate(e),void 0):("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||this.options.active!==!1||this._activate(0),"icons"===t&&(this._destroyIcons(),e&&this._createIcons()),void 0)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t),this._toggleClass(this.headers.add(this.headers.next()),null,"ui-state-disabled",!!t)},_keydown:function(e){if(!e.altKey&&!e.ctrlKey){var i=t.ui.keyCode,s=this.headers.length,n=this.headers.index(e.target),o=!1;switch(e.keyCode){case i.RIGHT:case i.DOWN:o=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:o=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(e);break;case i.HOME:o=this.headers[0];break;case i.END:o=this.headers[s-1]}o&&(t(e.target).attr("tabIndex",-1),t(o).attr("tabIndex",0),t(o).trigger("focus"),e.preventDefault())}},_panelKeyDown:function(e){e.keyCode===t.ui.keyCode.UP&&e.ctrlKey&&t(e.currentTarget).prev().trigger("focus")},refresh:function(){var e=this.options;this._processPanels(),e.active===!1&&e.collapsible===!0||!this.headers.length?(e.active=!1,this.active=t()):e.active===!1?this._activate(0):this.active.length&&!t.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(e.active=!1,this.active=t()):this._activate(Math.max(0,e.active-1)):e.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;this.headers=this.element.find(this.options.header),this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default"),this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content"),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var e,i=this.options,s=i.heightStyle,n=this.element.parent();this.active=this._findActive(i.active),this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed"),this._addClass(this.active.next(),"ui-accordion-content-active"),this.active.next().show(),this.headers.attr("role","tab").each(function(){var e=t(this),i=e.uniqueId().attr("id"),s=e.next(),n=s.uniqueId().attr("id");e.attr("aria-controls",n),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(i.event),"fill"===s?(e=n.height(),this.element.siblings(":visible").each(function(){var i=t(this),s=i.css("position");"absolute"!==s&&"fixed"!==s&&(e-=i.outerHeight(!0))}),this.headers.each(function(){e-=t(this).outerHeight(!0)}),this.headers.next().each(function(){t(this).height(Math.max(0,e-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===s&&(e=0,this.headers.next().each(function(){var i=t(this).is(":visible");i||t(this).show(),e=Math.max(e,t(this).css("height","").height()),i||t(this).hide()}).height(e))},_activate:function(e){var i=this._findActive(e)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return"number"==typeof e?this.headers.eq(e):t()},_setupEvents:function(e){var i={keydown:"_keydown"};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(e){var i,s,n=this.options,o=this.active,a=t(e.currentTarget),r=a[0]===o[0],h=r&&n.collapsible,l=h?t():a.next(),c=o.next(),u={oldHeader:o,oldPanel:c,newHeader:h?t():a,newPanel:l};e.preventDefault(),r&&!n.collapsible||this._trigger("beforeActivate",e,u)===!1||(n.active=h?!1:this.headers.index(a),this.active=r?t():a,this._toggle(u),this._removeClass(o,"ui-accordion-header-active","ui-state-active"),n.icons&&(i=o.children(".ui-accordion-header-icon"),this._removeClass(i,null,n.icons.activeHeader)._addClass(i,null,n.icons.header)),r||(this._removeClass(a,"ui-accordion-header-collapsed")._addClass(a,"ui-accordion-header-active","ui-state-active"),n.icons&&(s=a.children(".ui-accordion-header-icon"),this._removeClass(s,null,n.icons.header)._addClass(s,null,n.icons.activeHeader)),this._addClass(a.next(),"ui-accordion-content-active")))},_toggle:function(e){var i=e.newPanel,s=this.prevShow.length?this.prevShow:e.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,e):(s.hide(),i.show(),this._toggleComplete(e)),s.attr({"aria-hidden":"true"}),s.prev().attr({"aria-selected":"false","aria-expanded":"false"}),i.length&&s.length?s.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return 0===parseInt(t(this).attr("tabIndex"),10)}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(t,e,i){var s,n,o,a=this,r=0,h=t.css("box-sizing"),l=t.length&&(!e.length||t.index()<e.index()),c=this.options.animate||{},u=l&&c.down||c,d=function(){a._toggleComplete(i)};return"number"==typeof u&&(o=u),"string"==typeof u&&(n=u),n=n||u.easing||c.easing,o=o||u.duration||c.duration,e.length?t.length?(s=t.show().outerHeight(),e.animate(this.hideProps,{duration:o,easing:n,step:function(t,e){e.now=Math.round(t)}}),t.hide().animate(this.showProps,{duration:o,easing:n,complete:d,step:function(t,i){i.now=Math.round(t),"height"!==i.prop?"content-box"===h&&(r+=i.now):"content"!==a.options.heightStyle&&(i.now=Math.round(s-e.outerHeight()-r),r=0)}}),void 0):e.animate(this.hideProps,o,n,d):t.animate(this.showProps,o,n,d)},_toggleComplete:function(t){var e=t.oldPanel,i=e.prev();this._removeClass(e,"ui-accordion-content-active"),this._removeClass(i,"ui-accordion-header-active")._addClass(i,"ui-accordion-header-collapsed"),e.length&&(e.parent()[0].className=e.parent()[0].className),this._trigger("activate",null,t)}}),t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.widget("ui.menu",{version:"1.12.1",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var i=t(e.target),s=t(t.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&s.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var i=t(e.target).closest(".ui-menu-item"),s=t(e.currentTarget);i[0]===s[0]&&(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,s))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){var i=!t.contains(this.element[0],t.ui.safeActiveElement(this.document[0]));i&&this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),i=e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){var e=t(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var i,s,n,o,a=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:a=!1,s=this.previousFilter||"",o=!1,n=e.keyCode>=96&&105>=e.keyCode?""+(e.keyCode-96):String.fromCharCode(e.keyCode),clearTimeout(this.filterTimer),n===s?o=!0:n=s+n,i=this._filterMenuItems(n),i=o&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(e,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}a&&e.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i,s,n,o,a=this,r=this.options.icons.submenu,h=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),s=h.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),i=e.prev(),s=t("<span>").data("ui-menu-submenu-caret",!0);a._addClass(s,"ui-menu-icon","ui-icon "+r),i.attr("aria-haspopup","true").prepend(s),e.attr("aria-labelledby",i.attr("id"))}),this._addClass(s,"ui-menu","ui-widget ui-widget-content ui-front"),e=h.add(this.element),i=e.find(this.options.items),i.not(".ui-menu-item").each(function(){var e=t(this);a._isDivider(e)&&a._addClass(e,"ui-menu-divider","ui-widget-content")}),n=i.not(".ui-menu-item, .ui-menu-divider"),o=n.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(n,"ui-menu-item")._addClass(o,"ui-menu-item-wrapper"),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){if("icons"===t){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)}this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t+""),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i,s,n;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,a,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),r=e.outerHeight(),0>n?this.activeMenu.scrollTop(o+n):n+r>a&&this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(e),void 0)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items).first())),void 0):(this.next(e),void 0)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(e){this.active=this.active||t(e.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(e,!0),this._trigger("select",e,i)},_filterMenuItems:function(e){var i=e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),s=RegExp("^"+i,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return s.test(t.trim(t(this).children(".ui-menu-item-wrapper").text()))})}}),t.widget("ui.autocomplete",{version:"1.12.1",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,a="input"===n; +this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,void 0;e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),void 0):(this._searchTimeout(t),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(t),this._change(t),void 0)}}),this._initSource(),this.menu=t("<ul>").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==t.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(e,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:n})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&t.trim(s).length&&(this.liveRegion.children().hide(),t("<div>").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,i){var s=i.item.data("ui-autocomplete-item"),n=this.previous;this.element[0]!==t.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=n,this._delay(function(){this.previous=n,this.selectedItem=s})),!1!==this._trigger("select",e,{item:s})&&this._value(s.value),this.term=this._value(),this.close(e),this.selectedItem=s}}),this.liveRegion=t("<div>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(e){var i=this.menu.element[0];return e.target===this.element[0]||e.target===i||t.contains(i,e.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,i,s=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,data:e,dataType:"json",success:function(t){n(t)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),i=this.menu.element.is(":visible"),s=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!i&&!s)&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length<this.options.minLength?this.close(e):this._trigger("search",e)!==!1?this._search(t):void 0},_search:function(t){this.pending++,this._addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:t},this._response())},_response:function(){var e=++this.requestIndex;return t.proxy(function(t){e===this.requestIndex&&this.__response(t),this.pending--,this.pending||this._removeClass("ui-autocomplete-loading")},this)},__response:function(t){t&&(t=this._normalize(t)),this._trigger("response",null,{content:t}),!this.options.disabled&&t&&t.length&&!this.cancelSearch?(this._suggest(t),this._trigger("open")):this._close()},close:function(t){this.cancelSearch=!0,this._close(t)},_close:function(t){this._off(this.document,"mousedown"),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",t))},_change:function(t){this.previous!==this._value()&&this._trigger("change",t,{item:this.selectedItem})},_normalize:function(e){return e.length&&e[0].label&&e[0].value?e:t.map(e,function(e){return"string"==typeof e?{label:e,value:e}:t.extend({},e,{label:e.label||e.value,value:e.value||e.label})})},_suggest:function(e){var i=this.menu.element.empty();this._renderMenu(i,e),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(t.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next(),this._on(this.document,{mousedown:"_closeOnClickOutside"})},_resizeMenu:function(){var t=this.menu.element;t.outerWidth(Math.max(t.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(e,i){var s=this;t.each(i,function(t,i){s._renderItemData(e,i)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-autocomplete-item",e)},_renderItem:function(e,i){return t("<li>").append(t("<div>").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[t](e),void 0):(this.search(null,e),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("<div>").text(i).appendTo(this.liveRegion))}}),t.ui.autocomplete;var g=/ui-corner-([a-z]){2,6}/g;t.widget("ui.controlgroup",{version:"1.12.1",defaultElement:"<div>",options:{direction:"horizontal",disabled:null,onlyVisible:!0,items:{button:"input[type=button], input[type=submit], input[type=reset], button, a",controlgroupLabel:".ui-controlgroup-label",checkboxradio:"input[type='checkbox'], input[type='radio']",selectmenu:"select",spinner:".ui-spinner-input"}},_create:function(){this._enhance()},_enhance:function(){this.element.attr("role","toolbar"),this.refresh()},_destroy:function(){this._callChildMethod("destroy"),this.childWidgets.removeData("ui-controlgroup-data"),this.element.removeAttr("role"),this.options.items.controlgroupLabel&&this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap()},_initWidgets:function(){var e=this,i=[];t.each(this.options.items,function(s,n){var o,a={};return n?"controlgroupLabel"===s?(o=e.element.find(n),o.each(function(){var e=t(this);e.children(".ui-controlgroup-label-contents").length||e.contents().wrapAll("<span class='ui-controlgroup-label-contents'></span>")}),e._addClass(o,null,"ui-widget ui-widget-content ui-state-default"),i=i.concat(o.get()),void 0):(t.fn[s]&&(a=e["_"+s+"Options"]?e["_"+s+"Options"]("middle"):{classes:{}},e.element.find(n).each(function(){var n=t(this),o=n[s]("instance"),r=t.widget.extend({},a);if("button"!==s||!n.parent(".ui-spinner").length){o||(o=n[s]()[s]("instance")),o&&(r.classes=e._resolveClassesValues(r.classes,o)),n[s](r);var h=n[s]("widget");t.data(h[0],"ui-controlgroup-data",o?o:n[s]("instance")),i.push(h[0])}})),void 0):void 0}),this.childWidgets=t(t.unique(i)),this._addClass(this.childWidgets,"ui-controlgroup-item")},_callChildMethod:function(e){this.childWidgets.each(function(){var i=t(this),s=i.data("ui-controlgroup-data");s&&s[e]&&s[e]()})},_updateCornerClass:function(t,e){var i="ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all",s=this._buildSimpleOptions(e,"label").classes.label;this._removeClass(t,null,i),this._addClass(t,null,s)},_buildSimpleOptions:function(t,e){var i="vertical"===this.options.direction,s={classes:{}};return s.classes[e]={middle:"",first:"ui-corner-"+(i?"top":"left"),last:"ui-corner-"+(i?"bottom":"right"),only:"ui-corner-all"}[t],s},_spinnerOptions:function(t){var e=this._buildSimpleOptions(t,"ui-spinner");return e.classes["ui-spinner-up"]="",e.classes["ui-spinner-down"]="",e},_buttonOptions:function(t){return this._buildSimpleOptions(t,"ui-button")},_checkboxradioOptions:function(t){return this._buildSimpleOptions(t,"ui-checkboxradio-label")},_selectmenuOptions:function(t){var e="vertical"===this.options.direction;return{width:e?"auto":!1,classes:{middle:{"ui-selectmenu-button-open":"","ui-selectmenu-button-closed":""},first:{"ui-selectmenu-button-open":"ui-corner-"+(e?"top":"tl"),"ui-selectmenu-button-closed":"ui-corner-"+(e?"top":"left")},last:{"ui-selectmenu-button-open":e?"":"ui-corner-tr","ui-selectmenu-button-closed":"ui-corner-"+(e?"bottom":"right")},only:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"}}[t]}},_resolveClassesValues:function(e,i){var s={};return t.each(e,function(n){var o=i.options.classes[n]||"";o=t.trim(o.replace(g,"")),s[n]=(o+" "+e[n]).replace(/\s+/g," ")}),s},_setOption:function(t,e){return"direction"===t&&this._removeClass("ui-controlgroup-"+this.options.direction),this._super(t,e),"disabled"===t?(this._callChildMethod(e?"disable":"enable"),void 0):(this.refresh(),void 0)},refresh:function(){var e,i=this;this._addClass("ui-controlgroup ui-controlgroup-"+this.options.direction),"horizontal"===this.options.direction&&this._addClass(null,"ui-helper-clearfix"),this._initWidgets(),e=this.childWidgets,this.options.onlyVisible&&(e=e.filter(":visible")),e.length&&(t.each(["first","last"],function(t,s){var n=e[s]().data("ui-controlgroup-data");if(n&&i["_"+n.widgetName+"Options"]){var o=i["_"+n.widgetName+"Options"](1===e.length?"only":s);o.classes=i._resolveClassesValues(o.classes,n),n.element[n.widgetName](o)}else i._updateCornerClass(e[s](),s)}),this._callChildMethod("refresh"))}}),t.widget("ui.checkboxradio",[t.ui.formResetMixin,{version:"1.12.1",options:{disabled:null,label:null,icon:!0,classes:{"ui-checkboxradio-label":"ui-corner-all","ui-checkboxradio-icon":"ui-corner-all"}},_getCreateOptions:function(){var e,i,s=this,n=this._super()||{};return this._readType(),i=this.element.labels(),this.label=t(i[i.length-1]),this.label.length||t.error("No label found for checkboxradio widget"),this.originalLabel="",this.label.contents().not(this.element[0]).each(function(){s.originalLabel+=3===this.nodeType?t(this).text():this.outerHTML}),this.originalLabel&&(n.label=this.originalLabel),e=this.element[0].disabled,null!=e&&(n.disabled=e),n},_create:function(){var t=this.element[0].checked;this._bindFormResetHandler(),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled),this._setOption("disabled",this.options.disabled),this._addClass("ui-checkboxradio","ui-helper-hidden-accessible"),this._addClass(this.label,"ui-checkboxradio-label","ui-button ui-widget"),"radio"===this.type&&this._addClass(this.label,"ui-checkboxradio-radio-label"),this.options.label&&this.options.label!==this.originalLabel?this._updateLabel():this.originalLabel&&(this.options.label=this.originalLabel),this._enhance(),t&&(this._addClass(this.label,"ui-checkboxradio-checked","ui-state-active"),this.icon&&this._addClass(this.icon,null,"ui-state-hover")),this._on({change:"_toggleClasses",focus:function(){this._addClass(this.label,null,"ui-state-focus ui-visual-focus")},blur:function(){this._removeClass(this.label,null,"ui-state-focus ui-visual-focus")}})},_readType:function(){var e=this.element[0].nodeName.toLowerCase();this.type=this.element[0].type,"input"===e&&/radio|checkbox/.test(this.type)||t.error("Can't create checkboxradio on element.nodeName="+e+" and element.type="+this.type)},_enhance:function(){this._updateIcon(this.element[0].checked)},widget:function(){return this.label},_getRadioGroup:function(){var e,i=this.element[0].name,s="input[name='"+t.ui.escapeSelector(i)+"']";return i?(e=this.form.length?t(this.form[0].elements).filter(s):t(s).filter(function(){return 0===t(this).form().length}),e.not(this.element)):t([])},_toggleClasses:function(){var e=this.element[0].checked;this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",e),this.options.icon&&"checkbox"===this.type&&this._toggleClass(this.icon,null,"ui-icon-check ui-state-checked",e)._toggleClass(this.icon,null,"ui-icon-blank",!e),"radio"===this.type&&this._getRadioGroup().each(function(){var e=t(this).checkboxradio("instance");e&&e._removeClass(e.label,"ui-checkboxradio-checked","ui-state-active")})},_destroy:function(){this._unbindFormResetHandler(),this.icon&&(this.icon.remove(),this.iconSpace.remove())},_setOption:function(t,e){return"label"!==t||e?(this._super(t,e),"disabled"===t?(this._toggleClass(this.label,null,"ui-state-disabled",e),this.element[0].disabled=e,void 0):(this.refresh(),void 0)):void 0},_updateIcon:function(e){var i="ui-icon ui-icon-background ";this.options.icon?(this.icon||(this.icon=t("<span>"),this.iconSpace=t("<span> </span>"),this._addClass(this.iconSpace,"ui-checkboxradio-icon-space")),"checkbox"===this.type?(i+=e?"ui-icon-check ui-state-checked":"ui-icon-blank",this._removeClass(this.icon,null,e?"ui-icon-blank":"ui-icon-check")):i+="ui-icon-blank",this._addClass(this.icon,"ui-checkboxradio-icon",i),e||this._removeClass(this.icon,null,"ui-icon-check ui-state-checked"),this.icon.prependTo(this.label).after(this.iconSpace)):void 0!==this.icon&&(this.icon.remove(),this.iconSpace.remove(),delete this.icon)},_updateLabel:function(){var t=this.label.contents().not(this.element[0]);this.icon&&(t=t.not(this.icon[0])),this.iconSpace&&(t=t.not(this.iconSpace[0])),t.remove(),this.label.append(this.options.label)},refresh:function(){var t=this.element[0].checked,e=this.element[0].disabled;this._updateIcon(t),this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",t),null!==this.options.label&&this._updateLabel(),e!==this.options.disabled&&this._setOptions({disabled:e})}}]),t.ui.checkboxradio,t.widget("ui.button",{version:"1.12.1",defaultElement:"<button>",options:{classes:{"ui-button":"ui-corner-all"},disabled:null,icon:null,iconPosition:"beginning",label:null,showLabel:!0},_getCreateOptions:function(){var t,e=this._super()||{};return this.isInput=this.element.is("input"),t=this.element[0].disabled,null!=t&&(e.disabled=t),this.originalLabel=this.isInput?this.element.val():this.element.html(),this.originalLabel&&(e.label=this.originalLabel),e},_create:function(){!this.option.showLabel&!this.options.icon&&(this.options.showLabel=!0),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled||!1),this.hasTitle=!!this.element.attr("title"),this.options.label&&this.options.label!==this.originalLabel&&(this.isInput?this.element.val(this.options.label):this.element.html(this.options.label)),this._addClass("ui-button","ui-widget"),this._setOption("disabled",this.options.disabled),this._enhance(),this.element.is("a")&&this._on({keyup:function(e){e.keyCode===t.ui.keyCode.SPACE&&(e.preventDefault(),this.element[0].click?this.element[0].click():this.element.trigger("click"))}})},_enhance:function(){this.element.is("button")||this.element.attr("role","button"),this.options.icon&&(this._updateIcon("icon",this.options.icon),this._updateTooltip())},_updateTooltip:function(){this.title=this.element.attr("title"),this.options.showLabel||this.title||this.element.attr("title",this.options.label)},_updateIcon:function(e,i){var s="iconPosition"!==e,n=s?this.options.iconPosition:i,o="top"===n||"bottom"===n;this.icon?s&&this._removeClass(this.icon,null,this.options.icon):(this.icon=t("<span>"),this._addClass(this.icon,"ui-button-icon","ui-icon"),this.options.showLabel||this._addClass("ui-button-icon-only")),s&&this._addClass(this.icon,null,i),this._attachIcon(n),o?(this._addClass(this.icon,null,"ui-widget-icon-block"),this.iconSpace&&this.iconSpace.remove()):(this.iconSpace||(this.iconSpace=t("<span> </span>"),this._addClass(this.iconSpace,"ui-button-icon-space")),this._removeClass(this.icon,null,"ui-wiget-icon-block"),this._attachIconSpace(n))},_destroy:function(){this.element.removeAttr("role"),this.icon&&this.icon.remove(),this.iconSpace&&this.iconSpace.remove(),this.hasTitle||this.element.removeAttr("title")},_attachIconSpace:function(t){this.icon[/^(?:end|bottom)/.test(t)?"before":"after"](this.iconSpace)},_attachIcon:function(t){this.element[/^(?:end|bottom)/.test(t)?"append":"prepend"](this.icon)},_setOptions:function(t){var e=void 0===t.showLabel?this.options.showLabel:t.showLabel,i=void 0===t.icon?this.options.icon:t.icon;e||i||(t.showLabel=!0),this._super(t)},_setOption:function(t,e){"icon"===t&&(e?this._updateIcon(t,e):this.icon&&(this.icon.remove(),this.iconSpace&&this.iconSpace.remove())),"iconPosition"===t&&this._updateIcon(t,e),"showLabel"===t&&(this._toggleClass("ui-button-icon-only",null,!e),this._updateTooltip()),"label"===t&&(this.isInput?this.element.val(e):(this.element.html(e),this.icon&&(this._attachIcon(this.options.iconPosition),this._attachIconSpace(this.options.iconPosition)))),this._super(t,e),"disabled"===t&&(this._toggleClass(null,"ui-state-disabled",e),this.element[0].disabled=e,e&&this.element.blur())},refresh:function(){var t=this.element.is("input, button")?this.element[0].disabled:this.element.hasClass("ui-button-disabled");t!==this.options.disabled&&this._setOptions({disabled:t}),this._updateTooltip()}}),t.uiBackCompat!==!1&&(t.widget("ui.button",t.ui.button,{options:{text:!0,icons:{primary:null,secondary:null}},_create:function(){this.options.showLabel&&!this.options.text&&(this.options.showLabel=this.options.text),!this.options.showLabel&&this.options.text&&(this.options.text=this.options.showLabel),this.options.icon||!this.options.icons.primary&&!this.options.icons.secondary?this.options.icon&&(this.options.icons.primary=this.options.icon):this.options.icons.primary?this.options.icon=this.options.icons.primary:(this.options.icon=this.options.icons.secondary,this.options.iconPosition="end"),this._super()},_setOption:function(t,e){return"text"===t?(this._super("showLabel",e),void 0):("showLabel"===t&&(this.options.text=e),"icon"===t&&(this.options.icons.primary=e),"icons"===t&&(e.primary?(this._super("icon",e.primary),this._super("iconPosition","beginning")):e.secondary&&(this._super("icon",e.secondary),this._super("iconPosition","end"))),this._superApply(arguments),void 0)}}),t.fn.button=function(e){return function(){return!this.length||this.length&&"INPUT"!==this[0].tagName||this.length&&"INPUT"===this[0].tagName&&"checkbox"!==this.attr("type")&&"radio"!==this.attr("type")?e.apply(this,arguments):(t.ui.checkboxradio||t.error("Checkboxradio widget missing"),0===arguments.length?this.checkboxradio({icon:!1}):this.checkboxradio.apply(this,arguments))}}(t.fn.button),t.fn.buttonset=function(){return t.ui.controlgroup||t.error("Controlgroup widget missing"),"option"===arguments[0]&&"items"===arguments[1]&&arguments[2]?this.controlgroup.apply(this,[arguments[0],"items.button",arguments[2]]):"option"===arguments[0]&&"items"===arguments[1]?this.controlgroup.apply(this,[arguments[0],"items.button"]):("object"==typeof arguments[0]&&arguments[0].items&&(arguments[0].items={button:arguments[0].items}),this.controlgroup.apply(this,arguments))}),t.ui.button,t.extend(t.ui,{datepicker:{version:"1.12.1"}});var m;t.extend(s.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(t){return a(this._defaults,t||{}),this},_attachDatepicker:function(e,i){var s,n,o;s=e.nodeName.toLowerCase(),n="div"===s||"span"===s,e.id||(this.uuid+=1,e.id="dp"+this.uuid),o=this._newInst(t(e),n),o.settings=t.extend({},i||{}),"input"===s?this._connectDatepicker(e,o):n&&this._inlineDatepicker(e,o)},_newInst:function(e,i){var s=e[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:s,input:e,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:i,dpDiv:i?n(t("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(e,i){var s=t(e);i.append=t([]),i.trigger=t([]),s.hasClass(this.markerClassName)||(this._attachments(s,i),s.addClass(this.markerClassName).on("keydown",this._doKeyDown).on("keypress",this._doKeyPress).on("keyup",this._doKeyUp),this._autoSize(i),t.data(e,"datepicker",i),i.settings.disabled&&this._disableDatepicker(e))},_attachments:function(e,i){var s,n,o,a=this._get(i,"appendText"),r=this._get(i,"isRTL");i.append&&i.append.remove(),a&&(i.append=t("<span class='"+this._appendClass+"'>"+a+"</span>"),e[r?"before":"after"](i.append)),e.off("focus",this._showDatepicker),i.trigger&&i.trigger.remove(),s=this._get(i,"showOn"),("focus"===s||"both"===s)&&e.on("focus",this._showDatepicker),("button"===s||"both"===s)&&(n=this._get(i,"buttonText"),o=this._get(i,"buttonImage"),i.trigger=t(this._get(i,"buttonImageOnly")?t("<img/>").addClass(this._triggerClass).attr({src:o,alt:n,title:n}):t("<button type='button'></button>").addClass(this._triggerClass).html(o?t("<img/>").attr({src:o,alt:n,title:n}):n)),e[r?"before":"after"](i.trigger),i.trigger.on("click",function(){return t.datepicker._datepickerShowing&&t.datepicker._lastInput===e[0]?t.datepicker._hideDatepicker():t.datepicker._datepickerShowing&&t.datepicker._lastInput!==e[0]?(t.datepicker._hideDatepicker(),t.datepicker._showDatepicker(e[0])):t.datepicker._showDatepicker(e[0]),!1}))},_autoSize:function(t){if(this._get(t,"autoSize")&&!t.inline){var e,i,s,n,o=new Date(2009,11,20),a=this._get(t,"dateFormat");a.match(/[DM]/)&&(e=function(t){for(i=0,s=0,n=0;t.length>n;n++)t[n].length>i&&(i=t[n].length,s=n);return s},o.setMonth(e(this._get(t,a.match(/MM/)?"monthNames":"monthNamesShort"))),o.setDate(e(this._get(t,a.match(/DD/)?"dayNames":"dayNamesShort"))+20-o.getDay())),t.input.attr("size",this._formatDate(t,o).length)}},_inlineDatepicker:function(e,i){var s=t(e);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),t.data(e,"datepicker",i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(e),i.dpDiv.css("display","block"))},_dialogDatepicker:function(e,i,s,n,o){var r,h,l,c,u,d=this._dialogInst;return d||(this.uuid+=1,r="dp"+this.uuid,this._dialogInput=t("<input type='text' id='"+r+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.on("keydown",this._doKeyDown),t("body").append(this._dialogInput),d=this._dialogInst=this._newInst(this._dialogInput,!1),d.settings={},t.data(this._dialogInput[0],"datepicker",d)),a(d.settings,n||{}),i=i&&i.constructor===Date?this._formatDate(d,i):i,this._dialogInput.val(i),this._pos=o?o.length?o:[o.pageX,o.pageY]:null,this._pos||(h=document.documentElement.clientWidth,l=document.documentElement.clientHeight,c=document.documentElement.scrollLeft||document.body.scrollLeft,u=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[h/2-100+c,l/2-150+u]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),d.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),t.blockUI&&t.blockUI(this.dpDiv),t.data(this._dialogInput[0],"datepicker",d),this},_destroyDatepicker:function(e){var i,s=t(e),n=t.data(e,"datepicker");s.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),t.removeData(e,"datepicker"),"input"===i?(n.append.remove(),n.trigger.remove(),s.removeClass(this.markerClassName).off("focus",this._showDatepicker).off("keydown",this._doKeyDown).off("keypress",this._doKeyPress).off("keyup",this._doKeyUp)):("div"===i||"span"===i)&&s.removeClass(this.markerClassName).empty(),m===n&&(m=null))},_enableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!1,o.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}))},_disableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!0,o.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}),this._disabledInputs[this._disabledInputs.length]=e)},_isDisabledDatepicker:function(t){if(!t)return!1;for(var e=0;this._disabledInputs.length>e;e++)if(this._disabledInputs[e]===t)return!0;return!1},_getInst:function(e){try{return t.data(e,"datepicker")}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(e,i,s){var n,o,r,h,l=this._getInst(e);return 2===arguments.length&&"string"==typeof i?"defaults"===i?t.extend({},t.datepicker._defaults):l?"all"===i?t.extend({},l.settings):this._get(l,i):null:(n=i||{},"string"==typeof i&&(n={},n[i]=s),l&&(this._curInst===l&&this._hideDatepicker(),o=this._getDateDatepicker(e,!0),r=this._getMinMaxDate(l,"min"),h=this._getMinMaxDate(l,"max"),a(l.settings,n),null!==r&&void 0!==n.dateFormat&&void 0===n.minDate&&(l.settings.minDate=this._formatDate(l,r)),null!==h&&void 0!==n.dateFormat&&void 0===n.maxDate&&(l.settings.maxDate=this._formatDate(l,h)),"disabled"in n&&(n.disabled?this._disableDatepicker(e):this._enableDatepicker(e)),this._attachments(t(e),l),this._autoSize(l),this._setDate(l,o),this._updateAlternate(l),this._updateDatepicker(l)),void 0)},_changeDatepicker:function(t,e,i){this._optionDatepicker(t,e,i)},_refreshDatepicker:function(t){var e=this._getInst(t);e&&this._updateDatepicker(e)},_setDateDatepicker:function(t,e){var i=this._getInst(t);i&&(this._setDate(i,e),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(t,e){var i=this._getInst(t);return i&&!i.inline&&this._setDateFromField(i,e),i?this._getDate(i):null},_doKeyDown:function(e){var i,s,n,o=t.datepicker._getInst(e.target),a=!0,r=o.dpDiv.is(".ui-datepicker-rtl");if(o._keyEvent=!0,t.datepicker._datepickerShowing)switch(e.keyCode){case 9:t.datepicker._hideDatepicker(),a=!1;break;case 13:return n=t("td."+t.datepicker._dayOverClass+":not(."+t.datepicker._currentClass+")",o.dpDiv),n[0]&&t.datepicker._selectDay(e.target,o.selectedMonth,o.selectedYear,n[0]),i=t.datepicker._get(o,"onSelect"),i?(s=t.datepicker._formatDate(o),i.apply(o.input?o.input[0]:null,[s,o])):t.datepicker._hideDatepicker(),!1;case 27:t.datepicker._hideDatepicker();break;case 33:t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 34:t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 35:(e.ctrlKey||e.metaKey)&&t.datepicker._clearDate(e.target),a=e.ctrlKey||e.metaKey;break;case 36:(e.ctrlKey||e.metaKey)&&t.datepicker._gotoToday(e.target),a=e.ctrlKey||e.metaKey;break;case 37:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?1:-1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 38:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,-7,"D"),a=e.ctrlKey||e.metaKey;break;case 39:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?-1:1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 40:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,7,"D"),a=e.ctrlKey||e.metaKey;break;default:a=!1}else 36===e.keyCode&&e.ctrlKey?t.datepicker._showDatepicker(this):a=!1;a&&(e.preventDefault(),e.stopPropagation())},_doKeyPress:function(e){var i,s,n=t.datepicker._getInst(e.target);return t.datepicker._get(n,"constrainInput")?(i=t.datepicker._possibleChars(t.datepicker._get(n,"dateFormat")),s=String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),e.ctrlKey||e.metaKey||" ">s||!i||i.indexOf(s)>-1):void 0},_doKeyUp:function(e){var i,s=t.datepicker._getInst(e.target);if(s.input.val()!==s.lastVal)try{i=t.datepicker.parseDate(t.datepicker._get(s,"dateFormat"),s.input?s.input.val():null,t.datepicker._getFormatConfig(s)),i&&(t.datepicker._setDateFromField(s),t.datepicker._updateAlternate(s),t.datepicker._updateDatepicker(s))}catch(n){}return!0},_showDatepicker:function(e){if(e=e.target||e,"input"!==e.nodeName.toLowerCase()&&(e=t("input",e.parentNode)[0]),!t.datepicker._isDisabledDatepicker(e)&&t.datepicker._lastInput!==e){var s,n,o,r,h,l,c;s=t.datepicker._getInst(e),t.datepicker._curInst&&t.datepicker._curInst!==s&&(t.datepicker._curInst.dpDiv.stop(!0,!0),s&&t.datepicker._datepickerShowing&&t.datepicker._hideDatepicker(t.datepicker._curInst.input[0])),n=t.datepicker._get(s,"beforeShow"),o=n?n.apply(e,[e,s]):{},o!==!1&&(a(s.settings,o),s.lastVal=null,t.datepicker._lastInput=e,t.datepicker._setDateFromField(s),t.datepicker._inDialog&&(e.value=""),t.datepicker._pos||(t.datepicker._pos=t.datepicker._findPos(e),t.datepicker._pos[1]+=e.offsetHeight),r=!1,t(e).parents().each(function(){return r|="fixed"===t(this).css("position"),!r}),h={left:t.datepicker._pos[0],top:t.datepicker._pos[1]},t.datepicker._pos=null,s.dpDiv.empty(),s.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),t.datepicker._updateDatepicker(s),h=t.datepicker._checkOffset(s,h,r),s.dpDiv.css({position:t.datepicker._inDialog&&t.blockUI?"static":r?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"}),s.inline||(l=t.datepicker._get(s,"showAnim"),c=t.datepicker._get(s,"duration"),s.dpDiv.css("z-index",i(t(e))+1),t.datepicker._datepickerShowing=!0,t.effects&&t.effects.effect[l]?s.dpDiv.show(l,t.datepicker._get(s,"showOptions"),c):s.dpDiv[l||"show"](l?c:null),t.datepicker._shouldFocusInput(s)&&s.input.trigger("focus"),t.datepicker._curInst=s)) +}},_updateDatepicker:function(e){this.maxRows=4,m=e,e.dpDiv.empty().append(this._generateHTML(e)),this._attachHandlers(e);var i,s=this._getNumberOfMonths(e),n=s[1],a=17,r=e.dpDiv.find("."+this._dayOverClass+" a");r.length>0&&o.apply(r.get(0)),e.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),n>1&&e.dpDiv.addClass("ui-datepicker-multi-"+n).css("width",a*n+"em"),e.dpDiv[(1!==s[0]||1!==s[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),e.dpDiv[(this._get(e,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),e===t.datepicker._curInst&&t.datepicker._datepickerShowing&&t.datepicker._shouldFocusInput(e)&&e.input.trigger("focus"),e.yearshtml&&(i=e.yearshtml,setTimeout(function(){i===e.yearshtml&&e.yearshtml&&e.dpDiv.find("select.ui-datepicker-year:first").replaceWith(e.yearshtml),i=e.yearshtml=null},0))},_shouldFocusInput:function(t){return t.input&&t.input.is(":visible")&&!t.input.is(":disabled")&&!t.input.is(":focus")},_checkOffset:function(e,i,s){var n=e.dpDiv.outerWidth(),o=e.dpDiv.outerHeight(),a=e.input?e.input.outerWidth():0,r=e.input?e.input.outerHeight():0,h=document.documentElement.clientWidth+(s?0:t(document).scrollLeft()),l=document.documentElement.clientHeight+(s?0:t(document).scrollTop());return i.left-=this._get(e,"isRTL")?n-a:0,i.left-=s&&i.left===e.input.offset().left?t(document).scrollLeft():0,i.top-=s&&i.top===e.input.offset().top+r?t(document).scrollTop():0,i.left-=Math.min(i.left,i.left+n>h&&h>n?Math.abs(i.left+n-h):0),i.top-=Math.min(i.top,i.top+o>l&&l>o?Math.abs(o+r):0),i},_findPos:function(e){for(var i,s=this._getInst(e),n=this._get(s,"isRTL");e&&("hidden"===e.type||1!==e.nodeType||t.expr.filters.hidden(e));)e=e[n?"previousSibling":"nextSibling"];return i=t(e).offset(),[i.left,i.top]},_hideDatepicker:function(e){var i,s,n,o,a=this._curInst;!a||e&&a!==t.data(e,"datepicker")||this._datepickerShowing&&(i=this._get(a,"showAnim"),s=this._get(a,"duration"),n=function(){t.datepicker._tidyDialog(a)},t.effects&&(t.effects.effect[i]||t.effects[i])?a.dpDiv.hide(i,t.datepicker._get(a,"showOptions"),s,n):a.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,n),i||n(),this._datepickerShowing=!1,o=this._get(a,"onClose"),o&&o.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),t.blockUI&&(t.unblockUI(),t("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(t){t.dpDiv.removeClass(this._dialogClass).off(".ui-datepicker-calendar")},_checkExternalClick:function(e){if(t.datepicker._curInst){var i=t(e.target),s=t.datepicker._getInst(i[0]);(i[0].id!==t.datepicker._mainDivId&&0===i.parents("#"+t.datepicker._mainDivId).length&&!i.hasClass(t.datepicker.markerClassName)&&!i.closest("."+t.datepicker._triggerClass).length&&t.datepicker._datepickerShowing&&(!t.datepicker._inDialog||!t.blockUI)||i.hasClass(t.datepicker.markerClassName)&&t.datepicker._curInst!==s)&&t.datepicker._hideDatepicker()}},_adjustDate:function(e,i,s){var n=t(e),o=this._getInst(n[0]);this._isDisabledDatepicker(n[0])||(this._adjustInstDate(o,i+("M"===s?this._get(o,"showCurrentAtPos"):0),s),this._updateDatepicker(o))},_gotoToday:function(e){var i,s=t(e),n=this._getInst(s[0]);this._get(n,"gotoCurrent")&&n.currentDay?(n.selectedDay=n.currentDay,n.drawMonth=n.selectedMonth=n.currentMonth,n.drawYear=n.selectedYear=n.currentYear):(i=new Date,n.selectedDay=i.getDate(),n.drawMonth=n.selectedMonth=i.getMonth(),n.drawYear=n.selectedYear=i.getFullYear()),this._notifyChange(n),this._adjustDate(s)},_selectMonthYear:function(e,i,s){var n=t(e),o=this._getInst(n[0]);o["selected"+("M"===s?"Month":"Year")]=o["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(o),this._adjustDate(n)},_selectDay:function(e,i,s,n){var o,a=t(e);t(n).hasClass(this._unselectableClass)||this._isDisabledDatepicker(a[0])||(o=this._getInst(a[0]),o.selectedDay=o.currentDay=t("a",n).html(),o.selectedMonth=o.currentMonth=i,o.selectedYear=o.currentYear=s,this._selectDate(e,this._formatDate(o,o.currentDay,o.currentMonth,o.currentYear)))},_clearDate:function(e){var i=t(e);this._selectDate(i,"")},_selectDate:function(e,i){var s,n=t(e),o=this._getInst(n[0]);i=null!=i?i:this._formatDate(o),o.input&&o.input.val(i),this._updateAlternate(o),s=this._get(o,"onSelect"),s?s.apply(o.input?o.input[0]:null,[i,o]):o.input&&o.input.trigger("change"),o.inline?this._updateDatepicker(o):(this._hideDatepicker(),this._lastInput=o.input[0],"object"!=typeof o.input[0]&&o.input.trigger("focus"),this._lastInput=null)},_updateAlternate:function(e){var i,s,n,o=this._get(e,"altField");o&&(i=this._get(e,"altFormat")||this._get(e,"dateFormat"),s=this._getDate(e),n=this.formatDate(i,s,this._getFormatConfig(e)),t(o).val(n))},noWeekends:function(t){var e=t.getDay();return[e>0&&6>e,""]},iso8601Week:function(t){var e,i=new Date(t.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),e=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((e-i)/864e5)/7)+1},parseDate:function(e,i,s){if(null==e||null==i)throw"Invalid arguments";if(i="object"==typeof i?""+i:i+"",""===i)return null;var n,o,a,r,h=0,l=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,c="string"!=typeof l?l:(new Date).getFullYear()%100+parseInt(l,10),u=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,d=(s?s.dayNames:null)||this._defaults.dayNames,p=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,f=(s?s.monthNames:null)||this._defaults.monthNames,g=-1,m=-1,_=-1,v=-1,b=!1,y=function(t){var i=e.length>n+1&&e.charAt(n+1)===t;return i&&n++,i},w=function(t){var e=y(t),s="@"===t?14:"!"===t?20:"y"===t&&e?4:"o"===t?3:2,n="y"===t?s:1,o=RegExp("^\\d{"+n+","+s+"}"),a=i.substring(h).match(o);if(!a)throw"Missing number at position "+h;return h+=a[0].length,parseInt(a[0],10)},k=function(e,s,n){var o=-1,a=t.map(y(e)?n:s,function(t,e){return[[e,t]]}).sort(function(t,e){return-(t[1].length-e[1].length)});if(t.each(a,function(t,e){var s=e[1];return i.substr(h,s.length).toLowerCase()===s.toLowerCase()?(o=e[0],h+=s.length,!1):void 0}),-1!==o)return o+1;throw"Unknown name at position "+h},x=function(){if(i.charAt(h)!==e.charAt(n))throw"Unexpected literal at position "+h;h++};for(n=0;e.length>n;n++)if(b)"'"!==e.charAt(n)||y("'")?x():b=!1;else switch(e.charAt(n)){case"d":_=w("d");break;case"D":k("D",u,d);break;case"o":v=w("o");break;case"m":m=w("m");break;case"M":m=k("M",p,f);break;case"y":g=w("y");break;case"@":r=new Date(w("@")),g=r.getFullYear(),m=r.getMonth()+1,_=r.getDate();break;case"!":r=new Date((w("!")-this._ticksTo1970)/1e4),g=r.getFullYear(),m=r.getMonth()+1,_=r.getDate();break;case"'":y("'")?x():b=!0;break;default:x()}if(i.length>h&&(a=i.substr(h),!/^\s+/.test(a)))throw"Extra/unparsed characters found in date: "+a;if(-1===g?g=(new Date).getFullYear():100>g&&(g+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c>=g?0:-100)),v>-1)for(m=1,_=v;;){if(o=this._getDaysInMonth(g,m-1),o>=_)break;m++,_-=o}if(r=this._daylightSavingAdjust(new Date(g,m-1,_)),r.getFullYear()!==g||r.getMonth()+1!==m||r.getDate()!==_)throw"Invalid date";return r},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(t,e,i){if(!e)return"";var s,n=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,o=(i?i.dayNames:null)||this._defaults.dayNames,a=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,r=(i?i.monthNames:null)||this._defaults.monthNames,h=function(e){var i=t.length>s+1&&t.charAt(s+1)===e;return i&&s++,i},l=function(t,e,i){var s=""+e;if(h(t))for(;i>s.length;)s="0"+s;return s},c=function(t,e,i,s){return h(t)?s[e]:i[e]},u="",d=!1;if(e)for(s=0;t.length>s;s++)if(d)"'"!==t.charAt(s)||h("'")?u+=t.charAt(s):d=!1;else switch(t.charAt(s)){case"d":u+=l("d",e.getDate(),2);break;case"D":u+=c("D",e.getDay(),n,o);break;case"o":u+=l("o",Math.round((new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5),3);break;case"m":u+=l("m",e.getMonth()+1,2);break;case"M":u+=c("M",e.getMonth(),a,r);break;case"y":u+=h("y")?e.getFullYear():(10>e.getFullYear()%100?"0":"")+e.getFullYear()%100;break;case"@":u+=e.getTime();break;case"!":u+=1e4*e.getTime()+this._ticksTo1970;break;case"'":h("'")?u+="'":d=!0;break;default:u+=t.charAt(s)}return u},_possibleChars:function(t){var e,i="",s=!1,n=function(i){var s=t.length>e+1&&t.charAt(e+1)===i;return s&&e++,s};for(e=0;t.length>e;e++)if(s)"'"!==t.charAt(e)||n("'")?i+=t.charAt(e):s=!1;else switch(t.charAt(e)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":n("'")?i+="'":s=!0;break;default:i+=t.charAt(e)}return i},_get:function(t,e){return void 0!==t.settings[e]?t.settings[e]:this._defaults[e]},_setDateFromField:function(t,e){if(t.input.val()!==t.lastVal){var i=this._get(t,"dateFormat"),s=t.lastVal=t.input?t.input.val():null,n=this._getDefaultDate(t),o=n,a=this._getFormatConfig(t);try{o=this.parseDate(i,s,a)||n}catch(r){s=e?"":s}t.selectedDay=o.getDate(),t.drawMonth=t.selectedMonth=o.getMonth(),t.drawYear=t.selectedYear=o.getFullYear(),t.currentDay=s?o.getDate():0,t.currentMonth=s?o.getMonth():0,t.currentYear=s?o.getFullYear():0,this._adjustInstDate(t)}},_getDefaultDate:function(t){return this._restrictMinMax(t,this._determineDate(t,this._get(t,"defaultDate"),new Date))},_determineDate:function(e,i,s){var n=function(t){var e=new Date;return e.setDate(e.getDate()+t),e},o=function(i){try{return t.datepicker.parseDate(t.datepicker._get(e,"dateFormat"),i,t.datepicker._getFormatConfig(e))}catch(s){}for(var n=(i.toLowerCase().match(/^c/)?t.datepicker._getDate(e):null)||new Date,o=n.getFullYear(),a=n.getMonth(),r=n.getDate(),h=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,l=h.exec(i);l;){switch(l[2]||"d"){case"d":case"D":r+=parseInt(l[1],10);break;case"w":case"W":r+=7*parseInt(l[1],10);break;case"m":case"M":a+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a));break;case"y":case"Y":o+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a))}l=h.exec(i)}return new Date(o,a,r)},a=null==i||""===i?s:"string"==typeof i?o(i):"number"==typeof i?isNaN(i)?s:n(i):new Date(i.getTime());return a=a&&"Invalid Date"==""+a?s:a,a&&(a.setHours(0),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0)),this._daylightSavingAdjust(a)},_daylightSavingAdjust:function(t){return t?(t.setHours(t.getHours()>12?t.getHours()+2:0),t):null},_setDate:function(t,e,i){var s=!e,n=t.selectedMonth,o=t.selectedYear,a=this._restrictMinMax(t,this._determineDate(t,e,new Date));t.selectedDay=t.currentDay=a.getDate(),t.drawMonth=t.selectedMonth=t.currentMonth=a.getMonth(),t.drawYear=t.selectedYear=t.currentYear=a.getFullYear(),n===t.selectedMonth&&o===t.selectedYear||i||this._notifyChange(t),this._adjustInstDate(t),t.input&&t.input.val(s?"":this._formatDate(t))},_getDate:function(t){var e=!t.currentYear||t.input&&""===t.input.val()?null:this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return e},_attachHandlers:function(e){var i=this._get(e,"stepMonths"),s="#"+e.id.replace(/\\\\/g,"\\");e.dpDiv.find("[data-handler]").map(function(){var e={prev:function(){t.datepicker._adjustDate(s,-i,"M")},next:function(){t.datepicker._adjustDate(s,+i,"M")},hide:function(){t.datepicker._hideDatepicker()},today:function(){t.datepicker._gotoToday(s)},selectDay:function(){return t.datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return t.datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return t.datepicker._selectMonthYear(s,this,"Y"),!1}};t(this).on(this.getAttribute("data-event"),e[this.getAttribute("data-handler")])})},_generateHTML:function(t){var e,i,s,n,o,a,r,h,l,c,u,d,p,f,g,m,_,v,b,y,w,k,x,C,D,I,T,P,M,S,H,z,O,A,N,W,E,F,L,R=new Date,B=this._daylightSavingAdjust(new Date(R.getFullYear(),R.getMonth(),R.getDate())),Y=this._get(t,"isRTL"),j=this._get(t,"showButtonPanel"),q=this._get(t,"hideIfNoPrevNext"),K=this._get(t,"navigationAsDateFormat"),U=this._getNumberOfMonths(t),V=this._get(t,"showCurrentAtPos"),$=this._get(t,"stepMonths"),X=1!==U[0]||1!==U[1],G=this._daylightSavingAdjust(t.currentDay?new Date(t.currentYear,t.currentMonth,t.currentDay):new Date(9999,9,9)),Q=this._getMinMaxDate(t,"min"),J=this._getMinMaxDate(t,"max"),Z=t.drawMonth-V,te=t.drawYear;if(0>Z&&(Z+=12,te--),J)for(e=this._daylightSavingAdjust(new Date(J.getFullYear(),J.getMonth()-U[0]*U[1]+1,J.getDate())),e=Q&&Q>e?Q:e;this._daylightSavingAdjust(new Date(te,Z,1))>e;)Z--,0>Z&&(Z=11,te--);for(t.drawMonth=Z,t.drawYear=te,i=this._get(t,"prevText"),i=K?this.formatDate(i,this._daylightSavingAdjust(new Date(te,Z-$,1)),this._getFormatConfig(t)):i,s=this._canAdjustMonth(t,-1,te,Z)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>":q?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>",n=this._get(t,"nextText"),n=K?this.formatDate(n,this._daylightSavingAdjust(new Date(te,Z+$,1)),this._getFormatConfig(t)):n,o=this._canAdjustMonth(t,1,te,Z)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>":q?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>",a=this._get(t,"currentText"),r=this._get(t,"gotoCurrent")&&t.currentDay?G:B,a=K?this.formatDate(a,r,this._getFormatConfig(t)):a,h=t.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(t,"closeText")+"</button>",l=j?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(Y?h:"")+(this._isInRange(t,r)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+a+"</button>":"")+(Y?"":h)+"</div>":"",c=parseInt(this._get(t,"firstDay"),10),c=isNaN(c)?0:c,u=this._get(t,"showWeek"),d=this._get(t,"dayNames"),p=this._get(t,"dayNamesMin"),f=this._get(t,"monthNames"),g=this._get(t,"monthNamesShort"),m=this._get(t,"beforeShowDay"),_=this._get(t,"showOtherMonths"),v=this._get(t,"selectOtherMonths"),b=this._getDefaultDate(t),y="",k=0;U[0]>k;k++){for(x="",this.maxRows=4,C=0;U[1]>C;C++){if(D=this._daylightSavingAdjust(new Date(te,Z,t.selectedDay)),I=" ui-corner-all",T="",X){if(T+="<div class='ui-datepicker-group",U[1]>1)switch(C){case 0:T+=" ui-datepicker-group-first",I=" ui-corner-"+(Y?"right":"left");break;case U[1]-1:T+=" ui-datepicker-group-last",I=" ui-corner-"+(Y?"left":"right");break;default:T+=" ui-datepicker-group-middle",I=""}T+="'>"}for(T+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+I+"'>"+(/all|left/.test(I)&&0===k?Y?o:s:"")+(/all|right/.test(I)&&0===k?Y?s:o:"")+this._generateMonthYearHeader(t,Z,te,Q,J,k>0||C>0,f,g)+"</div><table class='ui-datepicker-calendar'><thead>"+"<tr>",P=u?"<th class='ui-datepicker-week-col'>"+this._get(t,"weekHeader")+"</th>":"",w=0;7>w;w++)M=(w+c)%7,P+="<th scope='col'"+((w+c+6)%7>=5?" class='ui-datepicker-week-end'":"")+">"+"<span title='"+d[M]+"'>"+p[M]+"</span></th>";for(T+=P+"</tr></thead><tbody>",S=this._getDaysInMonth(te,Z),te===t.selectedYear&&Z===t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,S)),H=(this._getFirstDayOfMonth(te,Z)-c+7)%7,z=Math.ceil((H+S)/7),O=X?this.maxRows>z?this.maxRows:z:z,this.maxRows=O,A=this._daylightSavingAdjust(new Date(te,Z,1-H)),N=0;O>N;N++){for(T+="<tr>",W=u?"<td class='ui-datepicker-week-col'>"+this._get(t,"calculateWeek")(A)+"</td>":"",w=0;7>w;w++)E=m?m.apply(t.input?t.input[0]:null,[A]):[!0,""],F=A.getMonth()!==Z,L=F&&!v||!E[0]||Q&&Q>A||J&&A>J,W+="<td class='"+((w+c+6)%7>=5?" ui-datepicker-week-end":"")+(F?" ui-datepicker-other-month":"")+(A.getTime()===D.getTime()&&Z===t.selectedMonth&&t._keyEvent||b.getTime()===A.getTime()&&b.getTime()===D.getTime()?" "+this._dayOverClass:"")+(L?" "+this._unselectableClass+" ui-state-disabled":"")+(F&&!_?"":" "+E[1]+(A.getTime()===G.getTime()?" "+this._currentClass:"")+(A.getTime()===B.getTime()?" ui-datepicker-today":""))+"'"+(F&&!_||!E[2]?"":" title='"+E[2].replace(/'/g,"'")+"'")+(L?"":" data-handler='selectDay' data-event='click' data-month='"+A.getMonth()+"' data-year='"+A.getFullYear()+"'")+">"+(F&&!_?" ":L?"<span class='ui-state-default'>"+A.getDate()+"</span>":"<a class='ui-state-default"+(A.getTime()===B.getTime()?" ui-state-highlight":"")+(A.getTime()===G.getTime()?" ui-state-active":"")+(F?" ui-priority-secondary":"")+"' href='#'>"+A.getDate()+"</a>")+"</td>",A.setDate(A.getDate()+1),A=this._daylightSavingAdjust(A);T+=W+"</tr>"}Z++,Z>11&&(Z=0,te++),T+="</tbody></table>"+(X?"</div>"+(U[0]>0&&C===U[1]-1?"<div class='ui-datepicker-row-break'></div>":""):""),x+=T}y+=x}return y+=l,t._keyEvent=!1,y},_generateMonthYearHeader:function(t,e,i,s,n,o,a,r){var h,l,c,u,d,p,f,g,m=this._get(t,"changeMonth"),_=this._get(t,"changeYear"),v=this._get(t,"showMonthAfterYear"),b="<div class='ui-datepicker-title'>",y="";if(o||!m)y+="<span class='ui-datepicker-month'>"+a[e]+"</span>";else{for(h=s&&s.getFullYear()===i,l=n&&n.getFullYear()===i,y+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",c=0;12>c;c++)(!h||c>=s.getMonth())&&(!l||n.getMonth()>=c)&&(y+="<option value='"+c+"'"+(c===e?" selected='selected'":"")+">"+r[c]+"</option>");y+="</select>"}if(v||(b+=y+(!o&&m&&_?"":" ")),!t.yearshtml)if(t.yearshtml="",o||!_)b+="<span class='ui-datepicker-year'>"+i+"</span>";else{for(u=this._get(t,"yearRange").split(":"),d=(new Date).getFullYear(),p=function(t){var e=t.match(/c[+\-].*/)?i+parseInt(t.substring(1),10):t.match(/[+\-].*/)?d+parseInt(t,10):parseInt(t,10);return isNaN(e)?d:e},f=p(u[0]),g=Math.max(f,p(u[1]||"")),f=s?Math.max(f,s.getFullYear()):f,g=n?Math.min(g,n.getFullYear()):g,t.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";g>=f;f++)t.yearshtml+="<option value='"+f+"'"+(f===i?" selected='selected'":"")+">"+f+"</option>";t.yearshtml+="</select>",b+=t.yearshtml,t.yearshtml=null}return b+=this._get(t,"yearSuffix"),v&&(b+=(!o&&m&&_?"":" ")+y),b+="</div>"},_adjustInstDate:function(t,e,i){var s=t.selectedYear+("Y"===i?e:0),n=t.selectedMonth+("M"===i?e:0),o=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+("D"===i?e:0),a=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,o)));t.selectedDay=a.getDate(),t.drawMonth=t.selectedMonth=a.getMonth(),t.drawYear=t.selectedYear=a.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),s=this._getMinMaxDate(t,"max"),n=i&&i>e?i:e;return s&&n>s?s:n},_notifyChange:function(t){var e=this._get(t,"onChangeMonthYear");e&&e.apply(t.input?t.input[0]:null,[t.selectedYear,t.selectedMonth+1,t])},_getNumberOfMonths:function(t){var e=this._get(t,"numberOfMonths");return null==e?[1,1]:"number"==typeof e?[1,e]:e},_getMinMaxDate:function(t,e){return this._determineDate(t,this._get(t,e+"Date"),null)},_getDaysInMonth:function(t,e){return 32-this._daylightSavingAdjust(new Date(t,e,32)).getDate()},_getFirstDayOfMonth:function(t,e){return new Date(t,e,1).getDay()},_canAdjustMonth:function(t,e,i,s){var n=this._getNumberOfMonths(t),o=this._daylightSavingAdjust(new Date(i,s+(0>e?e:n[0]*n[1]),1));return 0>e&&o.setDate(this._getDaysInMonth(o.getFullYear(),o.getMonth())),this._isInRange(t,o)},_isInRange:function(t,e){var i,s,n=this._getMinMaxDate(t,"min"),o=this._getMinMaxDate(t,"max"),a=null,r=null,h=this._get(t,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),a=parseInt(i[0],10),r=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(a+=s),i[1].match(/[+\-].*/)&&(r+=s)),(!n||e.getTime()>=n.getTime())&&(!o||e.getTime()<=o.getTime())&&(!a||e.getFullYear()>=a)&&(!r||r>=e.getFullYear())},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),{shortYearCutoff:e,dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);var n=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),n,this._getFormatConfig(t))}}),t.fn.datepicker=function(e){if(!this.length)return this;t.datepicker.initialized||(t(document).on("mousedown",t.datepicker._checkExternalClick),t.datepicker.initialized=!0),0===t("#"+t.datepicker._mainDivId).length&&t("body").append(t.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof e||"isDisabled"!==e&&"getDate"!==e&&"widget"!==e?"option"===e&&2===arguments.length&&"string"==typeof arguments[1]?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof e?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this].concat(i)):t.datepicker._attachDatepicker(this,e)}):t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i))},t.datepicker=new s,t.datepicker.initialized=!1,t.datepicker.uuid=(new Date).getTime(),t.datepicker.version="1.12.1",t.datepicker,t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var _=!1;t(document).on("mouseup",function(){_=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!_){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,n="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),_=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,_=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.ui.safeBlur=function(e){e&&"body"!==e.nodeName.toLowerCase()&&t(e).trigger("blur")},t.widget("ui.draggable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass("ui-draggable"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(e){var i=this.options;return this.helper||i.disabled||t(e.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(e),this.handle?(this._blurActiveElement(e),this._blockFrames(i.iframeFix===!0?"iframe":i.iframeFix),!0):!1)},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map(function(){var e=t(this);return t("<div>").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var i=t.ui.safeActiveElement(this.document[0]),s=t(e.target);s.closest(i).length||t.ui.safeBlur(i)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===t(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",e)===!1?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",e,s)===!1)return this._mouseUp(new t.Event("mouseup",e)),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,s=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(s=t.ui.ddmanager.drop(this,e)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",e)!==!1&&i._clear()}):this._trigger("stop",e)!==!1&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.trigger("focus"),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new t.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(e){return this.options.handle?!!t(e.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper),n=s?t(i.helper.apply(this.element[0],[e])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return n.parents("body").length||n.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css("position"))||n.css("position","absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())} +},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options,o=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?(this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,t(o).width()-this.helperProportions.width-this.margins.left,(t(o).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=t(n.containment),s=i[0],s&&(e=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(e?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i),void 0):(this.containment=null,void 0)},_convertPositionTo:function(t,e){e||(e=this.position);var i="absolute"===t?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,s,n,o,a=this.options,r=this._isRootNode(this.scrollParent[0]),h=t.pageX,l=t.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,t.pageX-this.offset.click.left<i[0]&&(h=i[0]+this.offset.click.left),t.pageY-this.offset.click.top<i[1]&&(l=i[1]+this.offset.click.top),t.pageX-this.offset.click.left>i[2]&&(h=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),a.grid&&(n=a.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/a.grid[1])*a.grid[1]:this.originalPageY,l=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-a.grid[1]:n+a.grid[1]:n,o=a.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/a.grid[0])*a.grid[0]:this.originalPageX,h=i?o-this.offset.click.left>=i[0]||o-this.offset.click.left>i[2]?o:o-this.offset.click.left>=i[0]?o-a.grid[0]:o+a.grid[0]:o),"y"===a.axis&&(h=this.originalPageX),"x"===a.axis&&(l=this.originalPageY)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:h-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(e,i,s){return s=s||this._uiHash(),t.ui.plugin.call(this,e,[i,s,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i,s){var n=t.extend({},i,{item:s.element});s.sortables=[],t(s.options.connectToSortable).each(function(){var i=t(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",e,n))})},stop:function(e,i,s){var n=t.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,t.each(s.sortables,function(){var t=this;t.isOver?(t.isOver=0,s.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,n))})},drag:function(e,i,s){t.each(s.sortables,function(){var n=!1,o=this;o.positionAbs=s.positionAbs,o.helperProportions=s.helperProportions,o.offset.click=s.offset.click,o._intersectsWith(o.containerCache)&&(n=!0,t.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&t.contains(o.element[0],this.element[0])&&(n=!1),n})),n?(o.isOver||(o.isOver=1,s._parent=i.helper.parent(),o.currentItem=i.helper.appendTo(o.element).data("ui-sortable-item",!0),o.options._helper=o.options.helper,o.options.helper=function(){return i.helper[0]},e.target=o.currentItem[0],o._mouseCapture(e,!0),o._mouseStart(e,!0,!0),o.offset.click.top=s.offset.click.top,o.offset.click.left=s.offset.click.left,o.offset.parent.left-=s.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=s.offset.parent.top-o.offset.parent.top,s._trigger("toSortable",e),s.dropped=o.element,t.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,o.fromOutside=s),o.currentItem&&(o._mouseDrag(e),i.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger("out",e,o._uiHash(o)),o._mouseStop(e,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(e),i.position=s._generatePosition(e,!0),s._trigger("fromSortable",e),s.dropped=!1,t.each(s.sortables,function(){this.refreshPositions()}))})}}),t.ui.plugin.add("draggable","cursor",{start:function(e,i,s){var n=t("body"),o=s.options;n.css("cursor")&&(o._cursor=n.css("cursor")),n.css("cursor",o.cursor)},stop:function(e,i,s){var n=s.options;n._cursor&&t("body").css("cursor",n._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("opacity")&&(o._opacity=n.css("opacity")),n.css("opacity",o.opacity)},stop:function(e,i,s){var n=s.options;n._opacity&&t(i.helper).css("opacity",n._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,s){var n=s.options,o=!1,a=s.scrollParentNotHidden[0],r=s.document[0];a!==r&&"HTML"!==a.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+a.offsetHeight-e.pageY<n.scrollSensitivity?a.scrollTop=o=a.scrollTop+n.scrollSpeed:e.pageY-s.overflowOffset.top<n.scrollSensitivity&&(a.scrollTop=o=a.scrollTop-n.scrollSpeed)),n.axis&&"y"===n.axis||(s.overflowOffset.left+a.offsetWidth-e.pageX<n.scrollSensitivity?a.scrollLeft=o=a.scrollLeft+n.scrollSpeed:e.pageX-s.overflowOffset.left<n.scrollSensitivity&&(a.scrollLeft=o=a.scrollLeft-n.scrollSpeed))):(n.axis&&"x"===n.axis||(e.pageY-t(r).scrollTop()<n.scrollSensitivity?o=t(r).scrollTop(t(r).scrollTop()-n.scrollSpeed):t(window).height()-(e.pageY-t(r).scrollTop())<n.scrollSensitivity&&(o=t(r).scrollTop(t(r).scrollTop()+n.scrollSpeed))),n.axis&&"y"===n.axis||(e.pageX-t(r).scrollLeft()<n.scrollSensitivity?o=t(r).scrollLeft(t(r).scrollLeft()-n.scrollSpeed):t(window).width()-(e.pageX-t(r).scrollLeft())<n.scrollSensitivity&&(o=t(r).scrollLeft(t(r).scrollLeft()+n.scrollSpeed)))),o!==!1&&t.ui.ddmanager&&!n.dropBehaviour&&t.ui.ddmanager.prepareOffsets(s,e)}}),t.ui.plugin.add("draggable","snap",{start:function(e,i,s){var n=s.options;s.snapElements=[],t(n.snap.constructor!==String?n.snap.items||":data(ui-draggable)":n.snap).each(function(){var e=t(this),i=e.offset();this!==s.element[0]&&s.snapElements.push({item:this,width:e.outerWidth(),height:e.outerHeight(),top:i.top,left:i.left})})},drag:function(e,i,s){var n,o,a,r,h,l,c,u,d,p,f=s.options,g=f.snapTolerance,m=i.offset.left,_=m+s.helperProportions.width,v=i.offset.top,b=v+s.helperProportions.height;for(d=s.snapElements.length-1;d>=0;d--)h=s.snapElements[d].left-s.margins.left,l=h+s.snapElements[d].width,c=s.snapElements[d].top-s.margins.top,u=c+s.snapElements[d].height,h-g>_||m>l+g||c-g>b||v>u+g||!t.contains(s.snapElements[d].item.ownerDocument,s.snapElements[d].item)?(s.snapElements[d].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(n=g>=Math.abs(c-b),o=g>=Math.abs(u-v),a=g>=Math.abs(h-_),r=g>=Math.abs(l-m),n&&(i.position.top=s._convertPositionTo("relative",{top:c-s.helperProportions.height,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left)),p=n||o||a||r,"outer"!==f.snapMode&&(n=g>=Math.abs(c-v),o=g>=Math.abs(u-b),a=g>=Math.abs(h-m),r=g>=Math.abs(l-_),n&&(i.position.top=s._convertPositionTo("relative",{top:c,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left)),!s.snapElements[d].snapping&&(n||o||a||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=n||o||a||r||p)}}),t.ui.plugin.add("draggable","stack",{start:function(e,i,s){var n,o=s.options,a=t.makeArray(t(o.stack)).sort(function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)});a.length&&(n=parseInt(t(a[0]).css("zIndex"),10)||0,t(a).each(function(e){t(this).css("zIndex",n+e)}),this.css("zIndex",n+a.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("zIndex")&&(o._zIndex=n.css("zIndex")),n.css("zIndex",o.zIndex)},stop:function(e,i,s){var n=s.options;n._zIndex&&t(i.helper).css("zIndex",n._zIndex)}}),t.ui.draggable,t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("<div>"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,g=s.maxWidth&&p>s.maxWidth,m=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),g&&(p-=l),m&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable,t.widget("ui.dialog",{version:"1.12.1",options:{appendTo:"body",autoOpen:!0,buttons:[],classes:{"ui-dialog":"ui-corner-all","ui-dialog-titlebar":"ui-corner-all"},closeOnEscape:!0,closeText:"Close",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(e){var i=t(this).css(e).offset().top;0>i&&t(this).css("top",e.top-i)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),null==this.options.title&&null!=this.originalTitle&&(this.options.title=this.originalTitle),this.options.disabled&&(this.options.disabled=!1),this._createWrapper(),this.element.show().removeAttr("title").appendTo(this.uiDialog),this._addClass("ui-dialog-content","ui-widget-content"),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&t.fn.draggable&&this._makeDraggable(),this.options.resizable&&t.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var e=this.options.appendTo;return e&&(e.jquery||e.nodeType)?t(e):this.document.find(e||"body").eq(0)},_destroy:function(){var t,e=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().css(this.originalCss).detach(),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),t=e.parent.children().eq(e.index),t.length&&t[0]!==this.element[0]?t.before(this.element):e.parent.append(this.element)},widget:function(){return this.uiDialog +},disable:t.noop,enable:t.noop,close:function(e){var i=this;this._isOpen&&this._trigger("beforeClose",e)!==!1&&(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),this.opener.filter(":focusable").trigger("focus").length||t.ui.safeBlur(t.ui.safeActiveElement(this.document[0])),this._hide(this.uiDialog,this.options.hide,function(){i._trigger("close",e)}))},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(e,i){var s=!1,n=this.uiDialog.siblings(".ui-front:visible").map(function(){return+t(this).css("z-index")}).get(),o=Math.max.apply(null,n);return o>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",o+1),s=!0),s&&!i&&this._trigger("focus",e),s},open:function(){var e=this;return this._isOpen?(this._moveToTop()&&this._focusTabbable(),void 0):(this._isOpen=!0,this.opener=t(t.ui.safeActiveElement(this.document[0])),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){e._focusTabbable(),e._trigger("focus")}),this._makeFocusTarget(),this._trigger("open"),void 0)},_focusTabbable:function(){var t=this._focusedElement;t||(t=this.element.find("[autofocus]")),t.length||(t=this.element.find(":tabbable")),t.length||(t=this.uiDialogButtonPane.find(":tabbable")),t.length||(t=this.uiDialogTitlebarClose.filter(":tabbable")),t.length||(t=this.uiDialog),t.eq(0).trigger("focus")},_keepFocus:function(e){function i(){var e=t.ui.safeActiveElement(this.document[0]),i=this.uiDialog[0]===e||t.contains(this.uiDialog[0],e);i||this._focusTabbable()}e.preventDefault(),i.call(this),this._delay(i)},_createWrapper:function(){this.uiDialog=t("<div>").hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._addClass(this.uiDialog,"ui-dialog","ui-widget ui-widget-content ui-front"),this._on(this.uiDialog,{keydown:function(e){if(this.options.closeOnEscape&&!e.isDefaultPrevented()&&e.keyCode&&e.keyCode===t.ui.keyCode.ESCAPE)return e.preventDefault(),this.close(e),void 0;if(e.keyCode===t.ui.keyCode.TAB&&!e.isDefaultPrevented()){var i=this.uiDialog.find(":tabbable"),s=i.filter(":first"),n=i.filter(":last");e.target!==n[0]&&e.target!==this.uiDialog[0]||e.shiftKey?e.target!==s[0]&&e.target!==this.uiDialog[0]||!e.shiftKey||(this._delay(function(){n.trigger("focus")}),e.preventDefault()):(this._delay(function(){s.trigger("focus")}),e.preventDefault())}},mousedown:function(t){this._moveToTop(t)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var e;this.uiDialogTitlebar=t("<div>"),this._addClass(this.uiDialogTitlebar,"ui-dialog-titlebar","ui-widget-header ui-helper-clearfix"),this._on(this.uiDialogTitlebar,{mousedown:function(e){t(e.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.trigger("focus")}}),this.uiDialogTitlebarClose=t("<button type='button'></button>").button({label:t("<a>").text(this.options.closeText).html(),icon:"ui-icon-closethick",showLabel:!1}).appendTo(this.uiDialogTitlebar),this._addClass(this.uiDialogTitlebarClose,"ui-dialog-titlebar-close"),this._on(this.uiDialogTitlebarClose,{click:function(t){t.preventDefault(),this.close(t)}}),e=t("<span>").uniqueId().prependTo(this.uiDialogTitlebar),this._addClass(e,"ui-dialog-title"),this._title(e),this.uiDialogTitlebar.prependTo(this.uiDialog),this.uiDialog.attr({"aria-labelledby":e.attr("id")})},_title:function(t){this.options.title?t.text(this.options.title):t.html(" ")},_createButtonPane:function(){this.uiDialogButtonPane=t("<div>"),this._addClass(this.uiDialogButtonPane,"ui-dialog-buttonpane","ui-widget-content ui-helper-clearfix"),this.uiButtonSet=t("<div>").appendTo(this.uiDialogButtonPane),this._addClass(this.uiButtonSet,"ui-dialog-buttonset"),this._createButtons()},_createButtons:function(){var e=this,i=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),t.isEmptyObject(i)||t.isArray(i)&&!i.length?(this._removeClass(this.uiDialog,"ui-dialog-buttons"),void 0):(t.each(i,function(i,s){var n,o;s=t.isFunction(s)?{click:s,text:i}:s,s=t.extend({type:"button"},s),n=s.click,o={icon:s.icon,iconPosition:s.iconPosition,showLabel:s.showLabel,icons:s.icons,text:s.text},delete s.click,delete s.icon,delete s.iconPosition,delete s.showLabel,delete s.icons,"boolean"==typeof s.text&&delete s.text,t("<button></button>",s).button(o).appendTo(e.uiButtonSet).on("click",function(){n.apply(e.element[0],arguments)})}),this._addClass(this.uiDialog,"ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog),void 0)},_makeDraggable:function(){function e(t){return{position:t.position,offset:t.offset}}var i=this,s=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(s,n){i._addClass(t(this),"ui-dialog-dragging"),i._blockFrames(),i._trigger("dragStart",s,e(n))},drag:function(t,s){i._trigger("drag",t,e(s))},stop:function(n,o){var a=o.offset.left-i.document.scrollLeft(),r=o.offset.top-i.document.scrollTop();s.position={my:"left top",at:"left"+(a>=0?"+":"")+a+" "+"top"+(r>=0?"+":"")+r,of:i.window},i._removeClass(t(this),"ui-dialog-dragging"),i._unblockFrames(),i._trigger("dragStop",n,e(o))}})},_makeResizable:function(){function e(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}var i=this,s=this.options,n=s.resizable,o=this.uiDialog.css("position"),a="string"==typeof n?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:s.maxWidth,maxHeight:s.maxHeight,minWidth:s.minWidth,minHeight:this._minHeight(),handles:a,start:function(s,n){i._addClass(t(this),"ui-dialog-resizing"),i._blockFrames(),i._trigger("resizeStart",s,e(n))},resize:function(t,s){i._trigger("resize",t,e(s))},stop:function(n,o){var a=i.uiDialog.offset(),r=a.left-i.document.scrollLeft(),h=a.top-i.document.scrollTop();s.height=i.uiDialog.height(),s.width=i.uiDialog.width(),s.position={my:"left top",at:"left"+(r>=0?"+":"")+r+" "+"top"+(h>=0?"+":"")+h,of:i.window},i._removeClass(t(this),"ui-dialog-resizing"),i._unblockFrames(),i._trigger("resizeStop",n,e(o))}}).css("position",o)},_trackFocus:function(){this._on(this.widget(),{focusin:function(e){this._makeFocusTarget(),this._focusedElement=t(e.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var e=this._trackingInstances(),i=t.inArray(this,e);-1!==i&&e.splice(i,1)},_trackingInstances:function(){var t=this.document.data("ui-dialog-instances");return t||(t=[],this.document.data("ui-dialog-instances",t)),t},_minHeight:function(){var t=this.options;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(){var t=this.uiDialog.is(":visible");t||this.uiDialog.show(),this.uiDialog.position(this.options.position),t||this.uiDialog.hide()},_setOptions:function(e){var i=this,s=!1,n={};t.each(e,function(t,e){i._setOption(t,e),t in i.sizeRelatedOptions&&(s=!0),t in i.resizableRelatedOptions&&(n[t]=e)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",n)},_setOption:function(e,i){var s,n,o=this.uiDialog;"disabled"!==e&&(this._super(e,i),"appendTo"===e&&this.uiDialog.appendTo(this._appendTo()),"buttons"===e&&this._createButtons(),"closeText"===e&&this.uiDialogTitlebarClose.button({label:t("<a>").text(""+this.options.closeText).html()}),"draggable"===e&&(s=o.is(":data(ui-draggable)"),s&&!i&&o.draggable("destroy"),!s&&i&&this._makeDraggable()),"position"===e&&this._position(),"resizable"===e&&(n=o.is(":data(ui-resizable)"),n&&!i&&o.resizable("destroy"),n&&"string"==typeof i&&o.resizable("option","handles",i),n||i===!1||this._makeResizable()),"title"===e&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var t,e,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),t=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),e=Math.max(0,s.minHeight-t),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-t):"none","auto"===s.height?this.element.css({minHeight:e,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-t)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var e=t(this);return t("<div>").css({position:"absolute",width:e.outerWidth(),height:e.outerHeight()}).appendTo(e.parent()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(e){return t(e.target).closest(".ui-dialog").length?!0:!!t(e.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var e=!0;this._delay(function(){e=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(t){e||this._allowInteraction(t)||(t.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=t("<div>").appendTo(this._appendTo()),this._addClass(this.overlay,null,"ui-widget-overlay ui-front"),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var t=this.document.data("ui-dialog-overlays")-1;t?this.document.data("ui-dialog-overlays",t):(this._off(this.document,"focusin"),this.document.removeData("ui-dialog-overlays")),this.overlay.remove(),this.overlay=null}}}),t.uiBackCompat!==!1&&t.widget("ui.dialog",t.ui.dialog,{options:{dialogClass:""},_createWrapper:function(){this._super(),this.uiDialog.addClass(this.options.dialogClass)},_setOption:function(t,e){"dialogClass"===t&&this.uiDialog.removeClass(this.options.dialogClass).addClass(e),this._superApply(arguments)}}),t.ui.dialog,t.widget("ui.droppable",{version:"1.12.1",widgetEventPrefix:"drop",options:{accept:"*",addClasses:!0,greedy:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var e,i=this.options,s=i.accept;this.isover=!1,this.isout=!0,this.accept=t.isFunction(s)?s:function(t){return t.is(s)},this.proportions=function(){return arguments.length?(e=arguments[0],void 0):e?e:e={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(i.scope),i.addClasses&&this._addClass("ui-droppable")},_addToManager:function(e){t.ui.ddmanager.droppables[e]=t.ui.ddmanager.droppables[e]||[],t.ui.ddmanager.droppables[e].push(this)},_splice:function(t){for(var e=0;t.length>e;e++)t[e]===this&&t.splice(e,1)},_destroy:function(){var e=t.ui.ddmanager.droppables[this.options.scope];this._splice(e)},_setOption:function(e,i){if("accept"===e)this.accept=t.isFunction(i)?i:function(t){return t.is(i)};else if("scope"===e){var s=t.ui.ddmanager.droppables[this.options.scope];this._splice(s),this._addToManager(i)}this._super(e,i)},_activate:function(e){var i=t.ui.ddmanager.current;this._addActiveClass(),i&&this._trigger("activate",e,this.ui(i))},_deactivate:function(e){var i=t.ui.ddmanager.current;this._removeActiveClass(),i&&this._trigger("deactivate",e,this.ui(i))},_over:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._addHoverClass(),this._trigger("over",e,this.ui(i)))},_out:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._removeHoverClass(),this._trigger("out",e,this.ui(i)))},_drop:function(e,i){var s=i||t.ui.ddmanager.current,n=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var i=t(this).droppable("instance");return i.options.greedy&&!i.options.disabled&&i.options.scope===s.options.scope&&i.accept.call(i.element[0],s.currentItem||s.element)&&v(s,t.extend(i,{offset:i.element.offset()}),i.options.tolerance,e)?(n=!0,!1):void 0}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this._removeActiveClass(),this._removeHoverClass(),this._trigger("drop",e,this.ui(s)),this.element):!1):!1},ui:function(t){return{draggable:t.currentItem||t.element,helper:t.helper,position:t.position,offset:t.positionAbs}},_addHoverClass:function(){this._addClass("ui-droppable-hover")},_removeHoverClass:function(){this._removeClass("ui-droppable-hover")},_addActiveClass:function(){this._addClass("ui-droppable-active")},_removeActiveClass:function(){this._removeClass("ui-droppable-active")}});var v=t.ui.intersect=function(){function t(t,e,i){return t>=e&&e+i>t}return function(e,i,s,n){if(!i.offset)return!1;var o=(e.positionAbs||e.position.absolute).left+e.margins.left,a=(e.positionAbs||e.position.absolute).top+e.margins.top,r=o+e.helperProportions.width,h=a+e.helperProportions.height,l=i.offset.left,c=i.offset.top,u=l+i.proportions().width,d=c+i.proportions().height;switch(s){case"fit":return o>=l&&u>=r&&a>=c&&d>=h;case"intersect":return o+e.helperProportions.width/2>l&&u>r-e.helperProportions.width/2&&a+e.helperProportions.height/2>c&&d>h-e.helperProportions.height/2;case"pointer":return t(n.pageY,c,i.proportions().height)&&t(n.pageX,l,i.proportions().width);case"touch":return(a>=c&&d>=a||h>=c&&d>=h||c>a&&h>d)&&(o>=l&&u>=o||r>=l&&u>=r||l>o&&r>u);default:return!1}}}();t.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,i){var s,n,o=t.ui.ddmanager.droppables[e.options.scope]||[],a=i?i.type:null,r=(e.currentItem||e.element).find(":data(ui-droppable)").addBack();t:for(s=0;o.length>s;s++)if(!(o[s].options.disabled||e&&!o[s].accept.call(o[s].element[0],e.currentItem||e.element))){for(n=0;r.length>n;n++)if(r[n]===o[s].element[0]){o[s].proportions().height=0;continue t}o[s].visible="none"!==o[s].element.css("display"),o[s].visible&&("mousedown"===a&&o[s]._activate.call(o[s],i),o[s].offset=o[s].element.offset(),o[s].proportions({width:o[s].element[0].offsetWidth,height:o[s].element[0].offsetHeight}))}},drop:function(e,i){var s=!1;return t.each((t.ui.ddmanager.droppables[e.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&v(e,this,this.options.tolerance,i)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(e,i){e.element.parentsUntil("body").on("scroll.droppable",function(){e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)})},drag:function(e,i){e.options.refreshPositions&&t.ui.ddmanager.prepareOffsets(e,i),t.each(t.ui.ddmanager.droppables[e.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,o,a=v(e,this,this.options.tolerance,i),r=!a&&this.isover?"isout":a&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,o=this.element.parents(":data(ui-droppable)").filter(function(){return t(this).droppable("instance").options.scope===n}),o.length&&(s=t(o[0]).droppable("instance"),s.greedyChild="isover"===r)),s&&"isover"===r&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[r]=!0,this["isout"===r?"isover":"isout"]=!1,this["isover"===r?"_over":"_out"].call(this,i),s&&"isout"===r&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(e,i){e.element.parentsUntil("body").off("scroll.droppable"),e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)}},t.uiBackCompat!==!1&&t.widget("ui.droppable",t.ui.droppable,{options:{hoverClass:!1,activeClass:!1},_addActiveClass:function(){this._super(),this.options.activeClass&&this.element.addClass(this.options.activeClass)},_removeActiveClass:function(){this._super(),this.options.activeClass&&this.element.removeClass(this.options.activeClass)},_addHoverClass:function(){this._super(),this.options.hoverClass&&this.element.addClass(this.options.hoverClass)},_removeHoverClass:function(){this._super(),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass)}}),t.ui.droppable,t.widget("ui.progressbar",{version:"1.12.1",options:{classes:{"ui-progressbar":"ui-corner-all","ui-progressbar-value":"ui-corner-left","ui-progressbar-complete":"ui-corner-right"},max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.attr({role:"progressbar","aria-valuemin":this.min}),this._addClass("ui-progressbar","ui-widget ui-widget-content"),this.valueDiv=t("<div>").appendTo(this.element),this._addClass(this.valueDiv,"ui-progressbar-value","ui-widget-header"),this._refreshValue()},_destroy:function(){this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"),this.valueDiv.remove()},value:function(t){return void 0===t?this.options.value:(this.options.value=this._constrainedValue(t),this._refreshValue(),void 0)},_constrainedValue:function(t){return void 0===t&&(t=this.options.value),this.indeterminate=t===!1,"number"!=typeof t&&(t=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){"max"===t&&(e=Math.max(this.min,e)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var e=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||e>this.min).width(i.toFixed(0)+"%"),this._toggleClass(this.valueDiv,"ui-progressbar-complete",null,e===this.options.max)._toggleClass("ui-progressbar-indeterminate",null,this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=t("<div>").appendTo(this.valueDiv),this._addClass(this.overlayDiv,"ui-progressbar-overlay"))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":e}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),e===this.options.max&&this._trigger("complete")}}),t.widget("ui.selectable",t.ui.mouse,{version:"1.12.1",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var e=this;this._addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){e.elementPos=t(e.element[0]).offset(),e.selectees=t(e.options.filter,e.element[0]),e._addClass(e.selectees,"ui-selectee"),e.selectees.each(function(){var i=t(this),s=i.offset(),n={left:s.left-e.elementPos.left,top:s.top-e.elementPos.top};t.data(this,"selectable-item",{element:this,$element:i,left:n.left,top:n.top,right:n.left+i.outerWidth(),bottom:n.top+i.outerHeight(),startselected:!1,selected:i.hasClass("ui-selected"),selecting:i.hasClass("ui-selecting"),unselecting:i.hasClass("ui-unselecting")})})},this.refresh(),this._mouseInit(),this.helper=t("<div>"),this._addClass(this.helper,"ui-selectable-helper")},_destroy:function(){this.selectees.removeData("selectable-item"),this._mouseDestroy()},_mouseStart:function(e){var i=this,s=this.options;this.opos=[e.pageX,e.pageY],this.elementPos=t(this.element[0]).offset(),this.options.disabled||(this.selectees=t(s.filter,this.element[0]),this._trigger("start",e),t(s.appendTo).append(this.helper),this.helper.css({left:e.pageX,top:e.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=t.data(this,"selectable-item");s.startselected=!0,e.metaKey||e.ctrlKey||(i._removeClass(s.$element,"ui-selected"),s.selected=!1,i._addClass(s.$element,"ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",e,{unselecting:s.element}))}),t(e.target).parents().addBack().each(function(){var s,n=t.data(this,"selectable-item");return n?(s=!e.metaKey&&!e.ctrlKey||!n.$element.hasClass("ui-selected"),i._removeClass(n.$element,s?"ui-unselecting":"ui-selected")._addClass(n.$element,s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",e,{selecting:n.element}):i._trigger("unselecting",e,{unselecting:n.element}),!1):void 0}))},_mouseDrag:function(e){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,o=this.opos[0],a=this.opos[1],r=e.pageX,h=e.pageY;return o>r&&(i=r,r=o,o=i),a>h&&(i=h,h=a,a=i),this.helper.css({left:o,top:a,width:r-o,height:h-a}),this.selectees.each(function(){var i=t.data(this,"selectable-item"),l=!1,c={};i&&i.element!==s.element[0]&&(c.left=i.left+s.elementPos.left,c.right=i.right+s.elementPos.left,c.top=i.top+s.elementPos.top,c.bottom=i.bottom+s.elementPos.top,"touch"===n.tolerance?l=!(c.left>r||o>c.right||c.top>h||a>c.bottom):"fit"===n.tolerance&&(l=c.left>o&&r>c.right&&c.top>a&&h>c.bottom),l?(i.selected&&(s._removeClass(i.$element,"ui-selected"),i.selected=!1),i.unselecting&&(s._removeClass(i.$element,"ui-unselecting"),i.unselecting=!1),i.selecting||(s._addClass(i.$element,"ui-selecting"),i.selecting=!0,s._trigger("selecting",e,{selecting:i.element}))):(i.selecting&&((e.metaKey||e.ctrlKey)&&i.startselected?(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,s._addClass(i.$element,"ui-selected"),i.selected=!0):(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,i.startselected&&(s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",e,{unselecting:i.element}))),i.selected&&(e.metaKey||e.ctrlKey||i.startselected||(s._removeClass(i.$element,"ui-selected"),i.selected=!1,s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",e,{unselecting:i.element})))))}),!1}},_mouseStop:function(e){var i=this;return this.dragged=!1,t(".ui-unselecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",e,{unselected:s.element})}),t(".ui-selecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-selecting")._addClass(s.$element,"ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",e,{selected:s.element})}),this._trigger("stop",e),this.helper.remove(),!1}}),t.widget("ui.selectmenu",[t.ui.formResetMixin,{version:"1.12.1",defaultElement:"<select>",options:{appendTo:null,classes:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"},disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:!1,change:null,close:null,focus:null,open:null,select:null},_create:function(){var e=this.element.uniqueId().attr("id");this.ids={element:e,button:e+"-button",menu:e+"-menu"},this._drawButton(),this._drawMenu(),this._bindFormResetHandler(),this._rendered=!1,this.menuItems=t()},_drawButton:function(){var e,i=this,s=this._parseOption(this.element.find("option:selected"),this.element[0].selectedIndex);this.labels=this.element.labels().attr("for",this.ids.button),this._on(this.labels,{click:function(t){this.button.focus(),t.preventDefault()}}),this.element.hide(),this.button=t("<span>",{tabindex:this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true",title:this.element.attr("title")}).insertAfter(this.element),this._addClass(this.button,"ui-selectmenu-button ui-selectmenu-button-closed","ui-button ui-widget"),e=t("<span>").appendTo(this.button),this._addClass(e,"ui-selectmenu-icon","ui-icon "+this.options.icons.button),this.buttonItem=this._renderButtonItem(s).appendTo(this.button),this.options.width!==!1&&this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){i._rendered||i._refreshMenu()})},_drawMenu:function(){var e=this;this.menu=t("<ul>",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=t("<div>").append(this.menu),this._addClass(this.menuWrap,"ui-selectmenu-menu","ui-front"),this.menuWrap.appendTo(this._appendTo()),this.menuInstance=this.menu.menu({classes:{"ui-menu":"ui-corner-bottom"},role:"listbox",select:function(t,i){t.preventDefault(),e._setSelection(),e._select(i.item.data("ui-selectmenu-item"),t)},focus:function(t,i){var s=i.item.data("ui-selectmenu-item");null!=e.focusIndex&&s.index!==e.focusIndex&&(e._trigger("focus",t,{item:s}),e.isOpen||e._select(s,t)),e.focusIndex=s.index,e.button.attr("aria-activedescendant",e.menuItems.eq(s.index).attr("id"))}}).menu("instance"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(this._getSelectedItem().data("ui-selectmenu-item")||{})),null===this.options.width&&this._resizeButton()},_refreshMenu:function(){var t,e=this.element.find("option");this.menu.empty(),this._parseOptions(e),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup").find(".ui-menu-item-wrapper"),this._rendered=!0,e.length&&(t=this._getSelectedItem(),this.menuInstance.focus(null,t),this._setAria(t.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(t){this.options.disabled||(this._rendered?(this._removeClass(this.menu.find(".ui-state-active"),null,"ui-state-active"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.menuItems.length&&(this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",t)))},_position:function(){this.menuWrap.position(t.extend({of:this.button},this.options.position))},close:function(t){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger("close",t))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderButtonItem:function(e){var i=t("<span>");return this._setText(i,e.label),this._addClass(i,"ui-selectmenu-text"),i},_renderMenu:function(e,i){var s=this,n="";t.each(i,function(i,o){var a;o.optgroup!==n&&(a=t("<li>",{text:o.optgroup}),s._addClass(a,"ui-selectmenu-optgroup","ui-menu-divider"+(o.element.parent("optgroup").prop("disabled")?" ui-state-disabled":"")),a.appendTo(e),n=o.optgroup),s._renderItemData(e,o)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-selectmenu-item",e)},_renderItem:function(e,i){var s=t("<li>"),n=t("<div>",{title:i.element.attr("title")});return i.disabled&&this._addClass(s,null,"ui-state-disabled"),this._setText(n,i.label),s.append(n).appendTo(e)},_setText:function(t,e){e?t.text(e):t.html(" ")},_move:function(t,e){var i,s,n=".ui-menu-item";this.isOpen?i=this.menuItems.eq(this.focusIndex).parent("li"):(i=this.menuItems.eq(this.element[0].selectedIndex).parent("li"),n+=":not(.ui-state-disabled)"),s="first"===t||"last"===t?i["first"===t?"prevAll":"nextAll"](n).eq(-1):i[t+"All"](n).eq(0),s.length&&this.menuInstance.focus(e,s)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex).parent("li")},_toggle:function(t){this[this.isOpen?"close":"open"](t)},_setSelection:function(){var t;this.range&&(window.getSelection?(t=window.getSelection(),t.removeAllRanges(),t.addRange(this.range)):this.range.select(),this.button.focus())},_documentClick:{mousedown:function(e){this.isOpen&&(t(e.target).closest(".ui-selectmenu-menu, #"+t.ui.escapeSelector(this.ids.button)).length||this.close(e))}},_buttonEvents:{mousedown:function(){var t;window.getSelection?(t=window.getSelection(),t.rangeCount&&(this.range=t.getRangeAt(0))):this.range=document.selection.createRange()},click:function(t){this._setSelection(),this._toggle(t)},keydown:function(e){var i=!0;switch(e.keyCode){case t.ui.keyCode.TAB:case t.ui.keyCode.ESCAPE:this.close(e),i=!1;break;case t.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(e);break;case t.ui.keyCode.UP:e.altKey?this._toggle(e):this._move("prev",e);break;case t.ui.keyCode.DOWN:e.altKey?this._toggle(e):this._move("next",e);break;case t.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(e):this._toggle(e);break;case t.ui.keyCode.LEFT:this._move("prev",e);break;case t.ui.keyCode.RIGHT:this._move("next",e);break;case t.ui.keyCode.HOME:case t.ui.keyCode.PAGE_UP:this._move("first",e);break;case t.ui.keyCode.END:case t.ui.keyCode.PAGE_DOWN:this._move("last",e);break;default:this.menu.trigger(e),i=!1}i&&e.preventDefault()}},_selectFocusedItem:function(t){var e=this.menuItems.eq(this.focusIndex).parent("li");e.hasClass("ui-state-disabled")||this._select(e.data("ui-selectmenu-item"),t)},_select:function(t,e){var i=this.element[0].selectedIndex;this.element[0].selectedIndex=t.index,this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(t)),this._setAria(t),this._trigger("select",e,{item:t}),t.index!==i&&this._trigger("change",e,{item:t}),this.close(e)},_setAria:function(t){var e=this.menuItems.eq(t.index).attr("id");this.button.attr({"aria-labelledby":e,"aria-activedescendant":e}),this.menu.attr("aria-activedescendant",e)},_setOption:function(t,e){if("icons"===t){var i=this.button.find("span.ui-icon");this._removeClass(i,null,this.options.icons.button)._addClass(i,null,e.button)}this._super(t,e),"appendTo"===t&&this.menuWrap.appendTo(this._appendTo()),"width"===t&&this._resizeButton()},_setOptionDisabled:function(t){this._super(t),this.menuInstance.option("disabled",t),this.button.attr("aria-disabled",t),this._toggleClass(this.button,null,"ui-state-disabled",t),this.element.prop("disabled",t),t?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_toggleAttr:function(){this.button.attr("aria-expanded",this.isOpen),this._removeClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"closed":"open"))._addClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"open":"closed"))._toggleClass(this.menuWrap,"ui-selectmenu-open",null,this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var t=this.options.width;return t===!1?(this.button.css("width",""),void 0):(null===t&&(t=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(t),void 0)},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){var t=this._super();return t.disabled=this.element.prop("disabled"),t},_parseOptions:function(e){var i=this,s=[];e.each(function(e,n){s.push(i._parseOption(t(n),e))}),this.items=s},_parseOption:function(t,e){var i=t.parent("optgroup");return{element:t,index:e,value:t.val(),label:t.text(),optgroup:i.attr("label")||"",disabled:i.prop("disabled")||t.prop("disabled")}},_destroy:function(){this._unbindFormResetHandler(),this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.labels.attr("for",this.ids.element)}}]),t.widget("ui.slider",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"slide",options:{animate:!1,classes:{"ui-slider":"ui-corner-all","ui-slider-handle":"ui-corner-all","ui-slider-range":"ui-corner-all ui-widget-header"},distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this._addClass("ui-slider ui-slider-"+this.orientation,"ui-widget ui-widget-content"),this._refresh(),this._animateOff=!1 +},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var e,i,s=this.options,n=this.element.find(".ui-slider-handle"),o="<span tabindex='0'></span>",a=[];for(i=s.values&&s.values.length||1,n.length>i&&(n.slice(i).remove(),n=n.slice(0,i)),e=n.length;i>e;e++)a.push(o);this.handles=n.add(t(a.join("")).appendTo(this.element)),this._addClass(this.handles,"ui-slider-handle","ui-state-default"),this.handle=this.handles.eq(0),this.handles.each(function(e){t(this).data("ui-slider-handle-index",e).attr("tabIndex",0)})},_createRange:function(){var e=this.options;e.range?(e.range===!0&&(e.values?e.values.length&&2!==e.values.length?e.values=[e.values[0],e.values[0]]:t.isArray(e.values)&&(e.values=e.values.slice(0)):e.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?(this._removeClass(this.range,"ui-slider-range-min ui-slider-range-max"),this.range.css({left:"",bottom:""})):(this.range=t("<div>").appendTo(this.element),this._addClass(this.range,"ui-slider-range")),("min"===e.range||"max"===e.range)&&this._addClass(this.range,"ui-slider-range-"+e.range)):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this._mouseDestroy()},_mouseCapture:function(e){var i,s,n,o,a,r,h,l,c=this,u=this.options;return u.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),i={x:e.pageX,y:e.pageY},s=this._normValueFromMouse(i),n=this._valueMax()-this._valueMin()+1,this.handles.each(function(e){var i=Math.abs(s-c.values(e));(n>i||n===i&&(e===c._lastChangedValue||c.values(e)===u.min))&&(n=i,o=t(this),a=e)}),r=this._start(e,a),r===!1?!1:(this._mouseSliding=!0,this._handleIndex=a,this._addClass(o,null,"ui-state-active"),o.trigger("focus"),h=o.offset(),l=!t(e.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:e.pageX-h.left-o.width()/2,top:e.pageY-h.top-o.height()/2-(parseInt(o.css("borderTopWidth"),10)||0)-(parseInt(o.css("borderBottomWidth"),10)||0)+(parseInt(o.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(e,a,s),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(t){var e={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(e);return this._slide(t,this._handleIndex,i),!1},_mouseStop:function(t){return this._removeClass(this.handles,null,"ui-state-active"),this._mouseSliding=!1,this._stop(t,this._handleIndex),this._change(t,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(t){var e,i,s,n,o;return"horizontal"===this.orientation?(e=this.elementSize.width,i=t.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(e=this.elementSize.height,i=t.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),s=i/e,s>1&&(s=1),0>s&&(s=0),"vertical"===this.orientation&&(s=1-s),n=this._valueMax()-this._valueMin(),o=this._valueMin()+s*n,this._trimAlignValue(o)},_uiHash:function(t,e,i){var s={handle:this.handles[t],handleIndex:t,value:void 0!==e?e:this.value()};return this._hasMultipleValues()&&(s.value=void 0!==e?e:this.values(t),s.values=i||this.values()),s},_hasMultipleValues:function(){return this.options.values&&this.options.values.length},_start:function(t,e){return this._trigger("start",t,this._uiHash(e))},_slide:function(t,e,i){var s,n,o=this.value(),a=this.values();this._hasMultipleValues()&&(n=this.values(e?0:1),o=this.values(e),2===this.options.values.length&&this.options.range===!0&&(i=0===e?Math.min(n,i):Math.max(n,i)),a[e]=i),i!==o&&(s=this._trigger("slide",t,this._uiHash(e,i,a)),s!==!1&&(this._hasMultipleValues()?this.values(e,i):this.value(i)))},_stop:function(t,e){this._trigger("stop",t,this._uiHash(e))},_change:function(t,e){this._keySliding||this._mouseSliding||(this._lastChangedValue=e,this._trigger("change",t,this._uiHash(e)))},value:function(t){return arguments.length?(this.options.value=this._trimAlignValue(t),this._refreshValue(),this._change(null,0),void 0):this._value()},values:function(e,i){var s,n,o;if(arguments.length>1)return this.options.values[e]=this._trimAlignValue(i),this._refreshValue(),this._change(null,e),void 0;if(!arguments.length)return this._values();if(!t.isArray(arguments[0]))return this._hasMultipleValues()?this._values(e):this.value();for(s=this.options.values,n=arguments[0],o=0;s.length>o;o+=1)s[o]=this._trimAlignValue(n[o]),this._change(null,o);this._refreshValue()},_setOption:function(e,i){var s,n=0;switch("range"===e&&this.options.range===!0&&("min"===i?(this.options.value=this._values(0),this.options.values=null):"max"===i&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),t.isArray(this.options.values)&&(n=this.options.values.length),this._super(e,i),e){case"orientation":this._detectOrientation(),this._removeClass("ui-slider-horizontal ui-slider-vertical")._addClass("ui-slider-"+this.orientation),this._refreshValue(),this.options.range&&this._refreshRange(i),this.handles.css("horizontal"===i?"bottom":"left","");break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),s=n-1;s>=0;s--)this._change(null,s);this._animateOff=!1;break;case"step":case"min":case"max":this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_setOptionDisabled:function(t){this._super(t),this._toggleClass(null,"ui-state-disabled",!!t)},_value:function(){var t=this.options.value;return t=this._trimAlignValue(t)},_values:function(t){var e,i,s;if(arguments.length)return e=this.options.values[t],e=this._trimAlignValue(e);if(this._hasMultipleValues()){for(i=this.options.values.slice(),s=0;i.length>s;s+=1)i[s]=this._trimAlignValue(i[s]);return i}return[]},_trimAlignValue:function(t){if(this._valueMin()>=t)return this._valueMin();if(t>=this._valueMax())return this._valueMax();var e=this.options.step>0?this.options.step:1,i=(t-this._valueMin())%e,s=t-i;return 2*Math.abs(i)>=e&&(s+=i>0?e:-e),parseFloat(s.toFixed(5))},_calculateNewMax:function(){var t=this.options.max,e=this._valueMin(),i=this.options.step,s=Math.round((t-e)/i)*i;t=s+e,t>this.options.max&&(t-=i),this.max=parseFloat(t.toFixed(this._precision()))},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshRange:function(t){"vertical"===t&&this.range.css({width:"",left:""}),"horizontal"===t&&this.range.css({height:"",bottom:""})},_refreshValue:function(){var e,i,s,n,o,a=this.options.range,r=this.options,h=this,l=this._animateOff?!1:r.animate,c={};this._hasMultipleValues()?this.handles.each(function(s){i=100*((h.values(s)-h._valueMin())/(h._valueMax()-h._valueMin())),c["horizontal"===h.orientation?"left":"bottom"]=i+"%",t(this).stop(1,1)[l?"animate":"css"](c,r.animate),h.options.range===!0&&("horizontal"===h.orientation?(0===s&&h.range.stop(1,1)[l?"animate":"css"]({left:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({width:i-e+"%"},{queue:!1,duration:r.animate})):(0===s&&h.range.stop(1,1)[l?"animate":"css"]({bottom:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({height:i-e+"%"},{queue:!1,duration:r.animate}))),e=i}):(s=this.value(),n=this._valueMin(),o=this._valueMax(),i=o!==n?100*((s-n)/(o-n)):0,c["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[l?"animate":"css"](c,r.animate),"min"===a&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:i+"%"},r.animate),"max"===a&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:100-i+"%"},r.animate),"min"===a&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:i+"%"},r.animate),"max"===a&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:100-i+"%"},r.animate))},_handleEvents:{keydown:function(e){var i,s,n,o,a=t(e.target).data("ui-slider-handle-index");switch(e.keyCode){case t.ui.keyCode.HOME:case t.ui.keyCode.END:case t.ui.keyCode.PAGE_UP:case t.ui.keyCode.PAGE_DOWN:case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(e.preventDefault(),!this._keySliding&&(this._keySliding=!0,this._addClass(t(e.target),null,"ui-state-active"),i=this._start(e,a),i===!1))return}switch(o=this.options.step,s=n=this._hasMultipleValues()?this.values(a):this.value(),e.keyCode){case t.ui.keyCode.HOME:n=this._valueMin();break;case t.ui.keyCode.END:n=this._valueMax();break;case t.ui.keyCode.PAGE_UP:n=this._trimAlignValue(s+(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.PAGE_DOWN:n=this._trimAlignValue(s-(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:if(s===this._valueMax())return;n=this._trimAlignValue(s+o);break;case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(s===this._valueMin())return;n=this._trimAlignValue(s-o)}this._slide(e,a,n)},keyup:function(e){var i=t(e.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(e,i),this._change(e,i),this._removeClass(t(e.target),null,"ui-state-active"))}}}),t.widget("ui.sortable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,i){return t>=e&&e+i>t},_isFloating:function(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))},_create:function(){this.containerCache={},this._addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(t,e){this._super(t,e),"handle"===t&&this._setHandleClassName()},_setHandleClassName:function(){var e=this;this._removeClass(this.element.find(".ui-sortable-handle"),"ui-sortable-handle"),t.each(this.items,function(){e._addClass(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item,"ui-sortable-handle")})},_destroy:function(){this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(e,i){var s=null,n=!1,o=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(e),t(e.target).parents().each(function(){return t.data(this,o.widgetName+"-item")===o?(s=t(this),!1):void 0}),t.data(e.target,o.widgetName+"-item")===o&&(s=t(e.target)),s?!this.options.handle||i||(t(this.options.handle,s).find("*").addBack().each(function(){this===e.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(e,i,s){var n,o,a=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,a.cursorAt&&this._adjustOffsetFromHelper(a.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),a.containment&&this._setContainment(),a.cursor&&"auto"!==a.cursor&&(o=this.document.find("body"),this.storedCursor=o.css("cursor"),o.css("cursor",a.cursor),this.storedStylesheet=t("<style>*{ cursor: "+a.cursor+" !important; }</style>").appendTo(o)),a.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",a.opacity)),a.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",a.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",e,this._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this._addClass(this.helper,"ui-sortable-helper"),this._mouseDrag(e),!0},_mouseDrag:function(e){var i,s,n,o,a=this.options,r=!1;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY<a.scrollSensitivity?this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop+a.scrollSpeed:e.pageY-this.overflowOffset.top<a.scrollSensitivity&&(this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop-a.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-e.pageX<a.scrollSensitivity?this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft+a.scrollSpeed:e.pageX-this.overflowOffset.left<a.scrollSensitivity&&(this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft-a.scrollSpeed)):(e.pageY-this.document.scrollTop()<a.scrollSensitivity?r=this.document.scrollTop(this.document.scrollTop()-a.scrollSpeed):this.window.height()-(e.pageY-this.document.scrollTop())<a.scrollSensitivity&&(r=this.document.scrollTop(this.document.scrollTop()+a.scrollSpeed)),e.pageX-this.document.scrollLeft()<a.scrollSensitivity?r=this.document.scrollLeft(this.document.scrollLeft()-a.scrollSpeed):this.window.width()-(e.pageX-this.document.scrollLeft())<a.scrollSensitivity&&(r=this.document.scrollLeft(this.document.scrollLeft()+a.scrollSpeed))),r!==!1&&t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),i=this.items.length-1;i>=0;i--)if(s=this.items[i],n=s.item[0],o=this._intersectsWithPointer(s),o&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===o?"next":"prev"]()[0]!==n&&!t.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!t.contains(this.element[0],n):!0)){if(this.direction=1===o?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(e,s),this._trigger("change",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger("sort",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,i){if(e){if(t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert){var s=this,n=this.placeholder.offset(),o=this.options.axis,a={};o&&"x"!==o||(a.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),o&&"y"!==o||(a.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,t(this.helper).animate(a,parseInt(this.options.revert,10)||500,function(){s._clear(e)})}else this._clear(e,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp(new t.Event("mouseup",{target:null})),"original"===this.options.helper?(this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")):this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("deactivate",null,this._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",null,this._uiHash(this)),this.containers[e].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},t(i).each(function(){var i=(t(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);i&&s.push((e.key||i[1]+"[]")+"="+(e.key&&e.expression?i[1]:i[2]))}),!s.length&&e.key&&s.push(e.key+"="),s.join("&")},toArray:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},i.each(function(){s.push(t(e.item||this).attr(e.attribute||"id")||"")}),s},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,o=t.left,a=o+t.width,r=t.top,h=r+t.height,l=this.offset.click.top,c=this.offset.click.left,u="x"===this.options.axis||s+l>r&&h>s+l,d="y"===this.options.axis||e+c>o&&a>e+c,p=u&&d;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?p:e+this.helperProportions.width/2>o&&a>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(t){var e,i,s="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top,t.height),n="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left,t.width),o=s&&n;return o?(e=this._getDragVerticalDirection(),i=this._getDragHorizontalDirection(),this.floating?"right"===i||"down"===e?2:1:e&&("down"===e?2:1)):!1},_intersectsWithSides:function(t){var e=this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&i||"left"===n&&!i:s&&("down"===s&&e||"up"===s&&!e)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(t>0?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(t>0?"right":"left")},refresh:function(t){return this._refreshItems(t),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(e){function i(){r.push(this)}var s,n,o,a,r=[],h=[],l=this._connectWith();if(l&&e)for(s=l.length-1;s>=0;s--)for(o=t(l[s],this.document[0]),n=o.length-1;n>=0;n--)a=t.data(o[n],this.widgetFullName),a&&a!==this&&!a.options.disabled&&h.push([t.isFunction(a.options.items)?a.options.items.call(a.element):t(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a]);for(h.push([t.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),s=h.length-1;s>=0;s--)h[s][0].each(i);return t(r)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=t.grep(this.items,function(t){for(var i=0;e.length>i;i++)if(e[i]===t.item[0])return!1;return!0})},_refreshItems:function(e){this.items=[],this.containers=[this];var i,s,n,o,a,r,h,l,c=this.items,u=[[t.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(i=d.length-1;i>=0;i--)for(n=t(d[i],this.document[0]),s=n.length-1;s>=0;s--)o=t.data(n[s],this.widgetFullName),o&&o!==this&&!o.options.disabled&&(u.push([t.isFunction(o.options.items)?o.options.items.call(o.element[0],e,{item:this.currentItem}):t(o.options.items,o.element),o]),this.containers.push(o));for(i=u.length-1;i>=0;i--)for(a=u[i][1],r=u[i][0],s=0,l=r.length;l>s;s++)h=t(r[s]),h.data(this.widgetName+"-item",a),c.push({item:h,instance:a,width:0,height:0,left:0,top:0})},refreshPositions:function(e){this.floating=this.items.length?"x"===this.options.axis||this._isFloating(this.items[0].item):!1,this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,o;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?t(this.options.toleranceElement,s.item):s.item,e||(s.width=n.outerWidth(),s.height=n.outerHeight()),o=n.offset(),s.left=o.left,s.top=o.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)o=this.containers[i].element.offset(),this.containers[i].containerCache.left=o.left,this.containers[i].containerCache.top=o.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(e){e=e||this;var i,s=e.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=e.currentItem[0].nodeName.toLowerCase(),n=t("<"+s+">",e.document[0]);return e._addClass(n,"ui-sortable-placeholder",i||e.currentItem[0].className)._removeClass(n,"ui-sortable-helper"),"tbody"===s?e._createTrPlaceholder(e.currentItem.find("tr").eq(0),t("<tr>",e.document[0]).appendTo(n)):"tr"===s?e._createTrPlaceholder(e.currentItem,n):"img"===s&&n.attr("src",e.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(t,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10)))}}),e.placeholder=t(s.placeholder.element.call(e.element,e.currentItem)),e.currentItem.after(e.placeholder),s.placeholder.update(e,e.placeholder)},_createTrPlaceholder:function(e,i){var s=this;e.children().each(function(){t("<td> </td>",s.document[0]).attr("colspan",t(this).attr("colspan")||1).appendTo(i)})},_contactContainers:function(e){var i,s,n,o,a,r,h,l,c,u,d=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!t.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(d&&t.contains(this.containers[i].element[0],d.element[0]))continue;d=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",e,this._uiHash(this)),this.containers[i].containerCache.over=0);if(d)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(n=1e4,o=null,c=d.floating||this._isFloating(this.currentItem),a=c?"left":"top",r=c?"width":"height",u=c?"pageX":"pageY",s=this.items.length-1;s>=0;s--)t.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(h=this.items[s].item.offset()[a],l=!1,e[u]-h>this.items[s][r]/2&&(l=!0),n>Math.abs(e[u]-h)&&(n=Math.abs(e[u]-h),o=this.items[s],this.direction=l?"up":"down"));if(!o&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash()),this.currentContainer.containerCache.over=1),void 0;o?this._rearrange(e,o,null,!0):this._rearrange(e,null,this.containers[p].element,!0),this._trigger("change",e,this._uiHash()),this.containers[p]._trigger("change",e,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||t("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===n.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===n.containment?this.document.height()||document.body.parentNode.scrollHeight:this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(e=t(n.containment)[0],i=t(n.containment).offset(),s="hidden"!==t(e).css("overflow"),this.containment=[i.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,i){i||(i=this.position);var s="absolute"===e?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())*s}},_generatePosition:function(e){var i,s,n=this.options,o=e.pageX,a=e.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.left<this.containment[0]&&(o=this.containment[0]+this.offset.click.left),e.pageY-this.offset.click.top<this.containment[1]&&(a=this.containment[1]+this.offset.click.top),e.pageX-this.offset.click.left>this.containment[2]&&(o=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(a=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((a-this.originalPageY)/n.grid[1])*n.grid[1],a=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((o-this.originalPageX)/n.grid[0])*n.grid[0],o=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter; +this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(t,e){function i(t,e,i){return function(s){i._trigger(t,s,e._uiHash(e))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!e&&n.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||n.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(n.push(function(t){this._trigger("remove",t,this._uiHash())}),n.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)e||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(s=0;n.length>s;s++)n[s].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){t.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(e){var i=e||this;return{helper:i.helper,placeholder:i.placeholder||t([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:e?e.element:null}}}),t.widget("ui.spinner",{version:"1.12.1",defaultElement:"<input>",widgetEventPrefix:"spin",options:{classes:{"ui-spinner":"ui-corner-all","ui-spinner-down":"ui-corner-br","ui-spinner-up":"ui-corner-tr"},culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var e=this._super(),i=this.element;return t.each(["min","max","step"],function(t,s){var n=i.attr(s);null!=n&&n.length&&(e[s]=n)}),e},_events:{keydown:function(t){this._start(t)&&this._keydown(t)&&t.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",t),void 0)},mousewheel:function(t,e){if(e){if(!this.spinning&&!this._start(t))return!1;this._spin((e>0?1:-1)*this.options.step,t),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(t)},100),t.preventDefault()}},"mousedown .ui-spinner-button":function(e){function i(){var e=this.element[0]===t.ui.safeActiveElement(this.document[0]);e||(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s}))}var s;s=this.element[0]===t.ui.safeActiveElement(this.document[0])?this.previous:this.element.val(),e.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),this._start(e)!==!1&&this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(e){return t(e.currentTarget).hasClass("ui-state-active")?this._start(e)===!1?!1:(this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e),void 0):void 0},"mouseleave .ui-spinner-button":"_stop"},_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap("<span>").parent().append("<a></a><a></a>")},_draw:function(){this._enhance(),this._addClass(this.uiSpinner,"ui-spinner","ui-widget ui-widget-content"),this._addClass("ui-spinner-input"),this.element.attr("role","spinbutton"),this.buttons=this.uiSpinner.children("a").attr("tabIndex",-1).attr("aria-hidden",!0).button({classes:{"ui-button":""}}),this._removeClass(this.buttons,"ui-corner-all"),this._addClass(this.buttons.first(),"ui-spinner-button ui-spinner-up"),this._addClass(this.buttons.last(),"ui-spinner-button ui-spinner-down"),this.buttons.first().button({icon:this.options.icons.up,showLabel:!1}),this.buttons.last().button({icon:this.options.icons.down,showLabel:!1}),this.buttons.height()>Math.ceil(.5*this.uiSpinner.height())&&this.uiSpinner.height()>0&&this.uiSpinner.height(this.uiSpinner.height())},_keydown:function(e){var i=this.options,s=t.ui.keyCode;switch(e.keyCode){case s.UP:return this._repeat(null,1,e),!0;case s.DOWN:return this._repeat(null,-1,e),!0;case s.PAGE_UP:return this._repeat(null,i.page,e),!0;case s.PAGE_DOWN:return this._repeat(null,-i.page,e),!0}return!1},_start:function(t){return this.spinning||this._trigger("start",t)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(t,e,i){t=t||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,e,i)},t),this._spin(e*this.options.step,i)},_spin:function(t,e){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+t*this._increment(this.counter)),this.spinning&&this._trigger("spin",e,{value:i})===!1||(this._value(i),this.counter++)},_increment:function(e){var i=this.options.incremental;return i?t.isFunction(i)?i(e):Math.floor(e*e*e/5e4-e*e/500+17*e/200+1):1},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_adjustValue:function(t){var e,i,s=this.options;return e=null!==s.min?s.min:0,i=t-e,i=Math.round(i/s.step)*s.step,t=e+i,t=parseFloat(t.toFixed(this._precision())),null!==s.max&&t>s.max?s.max:null!==s.min&&s.min>t?s.min:t},_stop:function(t){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",t))},_setOption:function(t,e){var i,s,n;return"culture"===t||"numberFormat"===t?(i=this._parse(this.element.val()),this.options[t]=e,this.element.val(this._format(i)),void 0):(("max"===t||"min"===t||"step"===t)&&"string"==typeof e&&(e=this._parse(e)),"icons"===t&&(s=this.buttons.first().find(".ui-icon"),this._removeClass(s,null,this.options.icons.up),this._addClass(s,null,e.up),n=this.buttons.last().find(".ui-icon"),this._removeClass(n,null,this.options.icons.down),this._addClass(n,null,e.down)),this._super(t,e),void 0)},_setOptionDisabled:function(t){this._super(t),this._toggleClass(this.uiSpinner,null,"ui-state-disabled",!!t),this.element.prop("disabled",!!t),this.buttons.button(t?"disable":"enable")},_setOptions:r(function(t){this._super(t)}),_parse:function(t){return"string"==typeof t&&""!==t&&(t=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(t,10,this.options.culture):+t),""===t||isNaN(t)?null:t},_format:function(t){return""===t?"":window.Globalize&&this.options.numberFormat?Globalize.format(t,this.options.numberFormat,this.options.culture):t},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var t=this.value();return null===t?!1:t===this._adjustValue(t)},_value:function(t,e){var i;""!==t&&(i=this._parse(t),null!==i&&(e||(i=this._adjustValue(i)),t=this._format(i))),this.element.val(t),this._refresh()},_destroy:function(){this.element.prop("disabled",!1).removeAttr("autocomplete role aria-valuemin aria-valuemax aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:r(function(t){this._stepUp(t)}),_stepUp:function(t){this._start()&&(this._spin((t||1)*this.options.step),this._stop())},stepDown:r(function(t){this._stepDown(t)}),_stepDown:function(t){this._start()&&(this._spin((t||1)*-this.options.step),this._stop())},pageUp:r(function(t){this._stepUp((t||1)*this.options.page)}),pageDown:r(function(t){this._stepDown((t||1)*this.options.page)}),value:function(t){return arguments.length?(r(this._value).call(this,t),void 0):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),t.uiBackCompat!==!1&&t.widget("ui.spinner",t.ui.spinner,{_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml())},_uiSpinnerHtml:function(){return"<span>"},_buttonHtml:function(){return"<a></a><a></a>"}}),t.ui.spinner,t.widget("ui.tabs",{version:"1.12.1",delay:300,options:{active:null,classes:{"ui-tabs":"ui-corner-all","ui-tabs-nav":"ui-corner-all","ui-tabs-panel":"ui-corner-bottom","ui-tabs-tab":"ui-corner-top"},collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var t=/#.*$/;return function(e){var i,s;i=e.href.replace(t,""),s=location.href.replace(t,"");try{i=decodeURIComponent(i)}catch(n){}try{s=decodeURIComponent(s)}catch(n){}return e.hash.length>1&&i===s}}(),_create:function(){var e=this,i=this.options;this.running=!1,this._addClass("ui-tabs","ui-widget ui-widget-content"),this._toggleClass("ui-tabs-collapsible",null,i.collapsible),this._processTabs(),i.active=this._initialActive(),t.isArray(i.disabled)&&(i.disabled=t.unique(i.disabled.concat(t.map(this.tabs.filter(".ui-state-disabled"),function(t){return e.tabs.index(t)}))).sort()),this.active=this.options.active!==!1&&this.anchors.length?this._findActive(i.active):t(),this._refresh(),this.active.length&&this.load(i.active)},_initialActive:function(){var e=this.options.active,i=this.options.collapsible,s=location.hash.substring(1);return null===e&&(s&&this.tabs.each(function(i,n){return t(n).attr("aria-controls")===s?(e=i,!1):void 0}),null===e&&(e=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===e||-1===e)&&(e=this.tabs.length?0:!1)),e!==!1&&(e=this.tabs.index(this.tabs.eq(e)),-1===e&&(e=i?!1:0)),!i&&e===!1&&this.anchors.length&&(e=0),e},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):t()}},_tabKeydown:function(e){var i=t(t.ui.safeActiveElement(this.document[0])).closest("li"),s=this.tabs.index(i),n=!0;if(!this._handlePageNav(e)){switch(e.keyCode){case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:s++;break;case t.ui.keyCode.UP:case t.ui.keyCode.LEFT:n=!1,s--;break;case t.ui.keyCode.END:s=this.anchors.length-1;break;case t.ui.keyCode.HOME:s=0;break;case t.ui.keyCode.SPACE:return e.preventDefault(),clearTimeout(this.activating),this._activate(s),void 0;case t.ui.keyCode.ENTER:return e.preventDefault(),clearTimeout(this.activating),this._activate(s===this.options.active?!1:s),void 0;default:return}e.preventDefault(),clearTimeout(this.activating),s=this._focusNextTab(s,n),e.ctrlKey||e.metaKey||(i.attr("aria-selected","false"),this.tabs.eq(s).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",s)},this.delay))}},_panelKeydown:function(e){this._handlePageNav(e)||e.ctrlKey&&e.keyCode===t.ui.keyCode.UP&&(e.preventDefault(),this.active.trigger("focus"))},_handlePageNav:function(e){return e.altKey&&e.keyCode===t.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):e.altKey&&e.keyCode===t.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(e,i){function s(){return e>n&&(e=0),0>e&&(e=n),e}for(var n=this.tabs.length-1;-1!==t.inArray(s(),this.options.disabled);)e=i?e+1:e-1;return e},_focusNextTab:function(t,e){return t=this._findNextTab(t,e),this.tabs.eq(t).trigger("focus"),t},_setOption:function(t,e){return"active"===t?(this._activate(e),void 0):(this._super(t,e),"collapsible"===t&&(this._toggleClass("ui-tabs-collapsible",null,e),e||this.options.active!==!1||this._activate(0)),"event"===t&&this._setupEvents(e),"heightStyle"===t&&this._setupHeightStyle(e),void 0)},_sanitizeSelector:function(t){return t?t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var e=this.options,i=this.tablist.children(":has(a[href])");e.disabled=t.map(i.filter(".ui-state-disabled"),function(t){return i.index(t)}),this._processTabs(),e.active!==!1&&this.anchors.length?this.active.length&&!t.contains(this.tablist[0],this.active[0])?this.tabs.length===e.disabled.length?(e.active=!1,this.active=t()):this._activate(this._findNextTab(Math.max(0,e.active-1),!1)):e.active=this.tabs.index(this.active):(e.active=!1,this.active=t()),this._refresh()},_refresh:function(){this._setOptionDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._addClass(this.active,"ui-tabs-active","ui-state-active"),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var e=this,i=this.tabs,s=this.anchors,n=this.panels;this.tablist=this._getList().attr("role","tablist"),this._addClass(this.tablist,"ui-tabs-nav","ui-helper-reset ui-helper-clearfix ui-widget-header"),this.tablist.on("mousedown"+this.eventNamespace,"> li",function(e){t(this).is(".ui-state-disabled")&&e.preventDefault()}).on("focus"+this.eventNamespace,".ui-tabs-anchor",function(){t(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").attr({role:"tab",tabIndex:-1}),this._addClass(this.tabs,"ui-tabs-tab","ui-state-default"),this.anchors=this.tabs.map(function(){return t("a",this)[0]}).attr({role:"presentation",tabIndex:-1}),this._addClass(this.anchors,"ui-tabs-anchor"),this.panels=t(),this.anchors.each(function(i,s){var n,o,a,r=t(s).uniqueId().attr("id"),h=t(s).closest("li"),l=h.attr("aria-controls");e._isLocal(s)?(n=s.hash,a=n.substring(1),o=e.element.find(e._sanitizeSelector(n))):(a=h.attr("aria-controls")||t({}).uniqueId()[0].id,n="#"+a,o=e.element.find(n),o.length||(o=e._createPanel(a),o.insertAfter(e.panels[i-1]||e.tablist)),o.attr("aria-live","polite")),o.length&&(e.panels=e.panels.add(o)),l&&h.data("ui-tabs-aria-controls",l),h.attr({"aria-controls":a,"aria-labelledby":r}),o.attr("aria-labelledby",r)}),this.panels.attr("role","tabpanel"),this._addClass(this.panels,"ui-tabs-panel","ui-widget-content"),i&&(this._off(i.not(this.tabs)),this._off(s.not(this.anchors)),this._off(n.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol, ul").eq(0)},_createPanel:function(e){return t("<div>").attr("id",e).data("ui-tabs-destroy",!0)},_setOptionDisabled:function(e){var i,s,n;for(t.isArray(e)&&(e.length?e.length===this.anchors.length&&(e=!0):e=!1),n=0;s=this.tabs[n];n++)i=t(s),e===!0||-1!==t.inArray(n,e)?(i.attr("aria-disabled","true"),this._addClass(i,null,"ui-state-disabled")):(i.removeAttr("aria-disabled"),this._removeClass(i,null,"ui-state-disabled"));this.options.disabled=e,this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,e===!0)},_setupEvents:function(e){var i={};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(t){t.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(e){var i,s=this.element.parent();"fill"===e?(i=s.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var e=t(this),s=e.css("position");"absolute"!==s&&"fixed"!==s&&(i-=e.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=t(this).outerHeight(!0)}),this.panels.each(function(){t(this).height(Math.max(0,i-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.panels.each(function(){i=Math.max(i,t(this).height("").height())}).height(i))},_eventHandler:function(e){var i=this.options,s=this.active,n=t(e.currentTarget),o=n.closest("li"),a=o[0]===s[0],r=a&&i.collapsible,h=r?t():this._getPanelForTab(o),l=s.length?this._getPanelForTab(s):t(),c={oldTab:s,oldPanel:l,newTab:r?t():o,newPanel:h};e.preventDefault(),o.hasClass("ui-state-disabled")||o.hasClass("ui-tabs-loading")||this.running||a&&!i.collapsible||this._trigger("beforeActivate",e,c)===!1||(i.active=r?!1:this.tabs.index(o),this.active=a?t():o,this.xhr&&this.xhr.abort(),l.length||h.length||t.error("jQuery UI Tabs: Mismatching fragment identifier."),h.length&&this.load(this.tabs.index(o),e),this._toggle(e,c))},_toggle:function(e,i){function s(){o.running=!1,o._trigger("activate",e,i)}function n(){o._addClass(i.newTab.closest("li"),"ui-tabs-active","ui-state-active"),a.length&&o.options.show?o._show(a,o.options.show,s):(a.show(),s())}var o=this,a=i.newPanel,r=i.oldPanel;this.running=!0,r.length&&this.options.hide?this._hide(r,this.options.hide,function(){o._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),n()}):(this._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),r.hide(),n()),r.attr("aria-hidden","true"),i.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),a.length&&r.length?i.oldTab.attr("tabIndex",-1):a.length&&this.tabs.filter(function(){return 0===t(this).attr("tabIndex")}).attr("tabIndex",-1),a.attr("aria-hidden","false"),i.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(e){var i,s=this._findActive(e);s[0]!==this.active[0]&&(s.length||(s=this.active),i=s.find(".ui-tabs-anchor")[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return e===!1?t():this.tabs.eq(e)},_getIndex:function(e){return"string"==typeof e&&(e=this.anchors.index(this.anchors.filter("[href$='"+t.ui.escapeSelector(e)+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.tablist.removeAttr("role").off(this.eventNamespace),this.anchors.removeAttr("role tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){t.data(this,"ui-tabs-destroy")?t(this).remove():t(this).removeAttr("role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded")}),this.tabs.each(function(){var e=t(this),i=e.data("ui-tabs-aria-controls");i?e.attr("aria-controls",i).removeData("ui-tabs-aria-controls"):e.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(e){var i=this.options.disabled;i!==!1&&(void 0===e?i=!1:(e=this._getIndex(e),i=t.isArray(i)?t.map(i,function(t){return t!==e?t:null}):t.map(this.tabs,function(t,i){return i!==e?i:null})),this._setOptionDisabled(i))},disable:function(e){var i=this.options.disabled;if(i!==!0){if(void 0===e)i=!0;else{if(e=this._getIndex(e),-1!==t.inArray(e,i))return;i=t.isArray(i)?t.merge([e],i).sort():[e]}this._setOptionDisabled(i)}},load:function(e,i){e=this._getIndex(e);var s=this,n=this.tabs.eq(e),o=n.find(".ui-tabs-anchor"),a=this._getPanelForTab(n),r={tab:n,panel:a},h=function(t,e){"abort"===e&&s.panels.stop(!1,!0),s._removeClass(n,"ui-tabs-loading"),a.removeAttr("aria-busy"),t===s.xhr&&delete s.xhr};this._isLocal(o[0])||(this.xhr=t.ajax(this._ajaxSettings(o,i,r)),this.xhr&&"canceled"!==this.xhr.statusText&&(this._addClass(n,"ui-tabs-loading"),a.attr("aria-busy","true"),this.xhr.done(function(t,e,n){setTimeout(function(){a.html(t),s._trigger("load",i,r),h(n,e)},1)}).fail(function(t,e){setTimeout(function(){h(t,e)},1)})))},_ajaxSettings:function(e,i,s){var n=this;return{url:e.attr("href").replace(/#.*$/,""),beforeSend:function(e,o){return n._trigger("beforeLoad",i,t.extend({jqXHR:e,ajaxSettings:o},s))}}},_getPanelForTab:function(e){var i=t(e).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+i))}}),t.uiBackCompat!==!1&&t.widget("ui.tabs",t.ui.tabs,{_processTabs:function(){this._superApply(arguments),this._addClass(this.tabs,"ui-tab")}}),t.ui.tabs,t.widget("ui.tooltip",{version:"1.12.1",options:{classes:{"ui-tooltip":"ui-corner-all ui-widget-shadow"},content:function(){var e=t(this).attr("title")||"";return t("<a>").text(e).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,track:!1,close:null,open:null},_addDescribedBy:function(e,i){var s=(e.attr("aria-describedby")||"").split(/\s+/);s.push(i),e.data("ui-tooltip-id",i).attr("aria-describedby",t.trim(s.join(" ")))},_removeDescribedBy:function(e){var i=e.data("ui-tooltip-id"),s=(e.attr("aria-describedby")||"").split(/\s+/),n=t.inArray(i,s);-1!==n&&s.splice(n,1),e.removeData("ui-tooltip-id"),s=t.trim(s.join(" ")),s?e.attr("aria-describedby",s):e.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.liveRegion=t("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this.disabledTitles=t([])},_setOption:function(e,i){var s=this;this._super(e,i),"content"===e&&t.each(this.tooltips,function(t,e){s._updateContent(e.element)})},_setOptionDisabled:function(t){this[t?"_disable":"_enable"]()},_disable:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur");n.target=n.currentTarget=s.element[0],e.close(n,!0)}),this.disabledTitles=this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function(){var e=t(this);return e.is("[title]")?e.data("ui-tooltip-title",e.attr("title")).removeAttr("title"):void 0}))},_enable:function(){this.disabledTitles.each(function(){var e=t(this);e.data("ui-tooltip-title")&&e.attr("title",e.data("ui-tooltip-title"))}),this.disabledTitles=t([])},open:function(e){var i=this,s=t(e?e.target:this.element).closest(this.options.items);s.length&&!s.data("ui-tooltip-id")&&(s.attr("title")&&s.data("ui-tooltip-title",s.attr("title")),s.data("ui-tooltip-open",!0),e&&"mouseover"===e.type&&s.parents().each(function(){var e,s=t(this);s.data("ui-tooltip-open")&&(e=t.Event("blur"),e.target=e.currentTarget=this,i.close(e,!0)),s.attr("title")&&(s.uniqueId(),i.parents[this.id]={element:this,title:s.attr("title")},s.attr("title",""))}),this._registerCloseHandlers(e,s),this._updateContent(s,e))},_updateContent:function(t,e){var i,s=this.options.content,n=this,o=e?e.type:null;return"string"==typeof s||s.nodeType||s.jquery?this._open(e,t,s):(i=s.call(t[0],function(i){n._delay(function(){t.data("ui-tooltip-open")&&(e&&(e.type=o),this._open(e,t,i))})}),i&&this._open(e,t,i),void 0)},_open:function(e,i,s){function n(t){l.of=t,a.is(":hidden")||a.position(l)}var o,a,r,h,l=t.extend({},this.options.position);if(s){if(o=this._find(i))return o.tooltip.find(".ui-tooltip-content").html(s),void 0;i.is("[title]")&&(e&&"mouseover"===e.type?i.attr("title",""):i.removeAttr("title")),o=this._tooltip(i),a=o.tooltip,this._addDescribedBy(i,a.attr("id")),a.find(".ui-tooltip-content").html(s),this.liveRegion.children().hide(),h=t("<div>").html(a.find(".ui-tooltip-content").html()),h.removeAttr("name").find("[name]").removeAttr("name"),h.removeAttr("id").find("[id]").removeAttr("id"),h.appendTo(this.liveRegion),this.options.track&&e&&/^mouse/.test(e.type)?(this._on(this.document,{mousemove:n}),n(e)):a.position(t.extend({of:i},this.options.position)),a.hide(),this._show(a,this.options.show),this.options.track&&this.options.show&&this.options.show.delay&&(r=this.delayedShow=setInterval(function(){a.is(":visible")&&(n(l.of),clearInterval(r))},t.fx.interval)),this._trigger("open",e,{tooltip:a})}},_registerCloseHandlers:function(e,i){var s={keyup:function(e){if(e.keyCode===t.ui.keyCode.ESCAPE){var s=t.Event(e);s.currentTarget=i[0],this.close(s,!0)}}};i[0]!==this.element[0]&&(s.remove=function(){this._removeTooltip(this._find(i).tooltip)}),e&&"mouseover"!==e.type||(s.mouseleave="close"),e&&"focusin"!==e.type||(s.focusout="close"),this._on(!0,i,s)},close:function(e){var i,s=this,n=t(e?e.currentTarget:this.element),o=this._find(n);return o?(i=o.tooltip,o.closing||(clearInterval(this.delayedShow),n.data("ui-tooltip-title")&&!n.attr("title")&&n.attr("title",n.data("ui-tooltip-title")),this._removeDescribedBy(n),o.hiding=!0,i.stop(!0),this._hide(i,this.options.hide,function(){s._removeTooltip(t(this))}),n.removeData("ui-tooltip-open"),this._off(n,"mouseleave focusout keyup"),n[0]!==this.element[0]&&this._off(n,"remove"),this._off(this.document,"mousemove"),e&&"mouseleave"===e.type&&t.each(this.parents,function(e,i){t(i.element).attr("title",i.title),delete s.parents[e]}),o.closing=!0,this._trigger("close",e,{tooltip:i}),o.hiding||(o.closing=!1)),void 0):(n.removeData("ui-tooltip-open"),void 0)},_tooltip:function(e){var i=t("<div>").attr("role","tooltip"),s=t("<div>").appendTo(i),n=i.uniqueId().attr("id");return this._addClass(s,"ui-tooltip-content"),this._addClass(i,"ui-tooltip","ui-widget ui-widget-content"),i.appendTo(this._appendTo(e)),this.tooltips[n]={element:e,tooltip:i}},_find:function(t){var e=t.data("ui-tooltip-id");return e?this.tooltips[e]:null},_removeTooltip:function(t){t.remove(),delete this.tooltips[t.attr("id")]},_appendTo:function(t){var e=t.closest(".ui-front, dialog");return e.length||(e=this.document[0].body),e},_destroy:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur"),o=s.element;n.target=n.currentTarget=o[0],e.close(n,!0),t("#"+i).remove(),o.data("ui-tooltip-title")&&(o.attr("title")||o.attr("title",o.data("ui-tooltip-title")),o.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}}),t.uiBackCompat!==!1&&t.widget("ui.tooltip",t.ui.tooltip,{options:{tooltipClass:null},_tooltip:function(){var t=this._superApply(arguments);return this.options.tooltipClass&&t.tooltip.addClass(this.options.tooltipClass),t}}),t.ui.tooltip}); \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/showstats.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/showstats.php index 7011126ea54ccd23085772ace12510fb5f47a6c1..37dc45a5cf0791d1e21521d533f0a20a2df57dd4 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/showstats.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/showstats.php @@ -1,182 +1,15 @@ <?php -$config = \SimpleSAML\Configuration::getInstance(); -$statconfig = \SimpleSAML\Configuration::getConfig('module_statistics.php'); -$session = \SimpleSAML\Session::getSessionFromRequest(); -$t = new \SimpleSAML\XHTML\Template($config, 'statistics:statistics.tpl.php'); +namespace SimpleSAML\Module\statistics; -\SimpleSAML\Module\statistics\AccessCheck::checkAccess($statconfig); +use SimpleSAML\Configuration; +use SimpleSAML\Session; +use Symfony\Component\HttpFoundation\Request; -/* - * Check input parameters - */ -$preferRule = null; -$preferRule2 = null; -$preferTime = null; -$preferTimeRes = null; -$delimiter = null; - -if (array_key_exists('rule', $_REQUEST)) { - $preferRule = $_REQUEST['rule']; -} -if (array_key_exists('rule2', $_REQUEST)) { - $preferRule2 = $_REQUEST['rule2']; -} -if (array_key_exists('time', $_REQUEST)) { - $preferTime = $_REQUEST['time']; -} -if (array_key_exists('res', $_REQUEST)) { - $preferTimeRes = $_REQUEST['res']; -} -if (array_key_exists('d', $_REQUEST)) { - $delimiter = $_REQUEST['d']; - $t->data['request_d'] = $delimiter; -} - -if ($preferRule2 === '_') { - $preferRule2 = null; -} - -/* - * Create statistics data. - */ -$ruleset = new \SimpleSAML\Module\statistics\Ruleset($statconfig); -$statrule = $ruleset->getRule($preferRule); -$rule = $statrule->getRuleID(); - -$t->data['pageid'] = 'statistics'; -$t->data['header'] = 'stat'; -$t->data['available_rules'] = $ruleset->availableRulesNames(); -$t->data['selected_rule'] = $rule; -$t->data['selected_rule2'] = $preferRule2; - -try { - $dataset = $statrule->getDataset($preferTimeRes, $preferTime); - $dataset->setDelimiter($delimiter); - $dataset->aggregateSummary(); - $dataset->calculateMax(); - - if (array_key_exists('output', $_REQUEST) && $_REQUEST['output'] === 'csv') { - header('Content-type: text/csv'); - header('Content-Disposition: attachment; filename="simplesamlphp-data.csv"'); - $data = $dataset->getDebugData(); - foreach ($data as $de) { - if (isset($de[1])) { - echo '"'.$de[0].'",'.$de[1]."\n"; - } - } - exit; - } -} catch (\Exception $e) { - $t->data['error'] = "No data available"; - $t->show(); - exit; -} - -$delimiter = $dataset->getDelimiter(); - -$timeres = $dataset->getTimeRes(); -$fileslot = $dataset->getFileslot(); - -$timeNavigation = $statrule->getTimeNavigation($timeres, $preferTime); - -$piedata = $dataset->getPieData(); - -$datasets = []; -$datasets[] = $dataset->getPercentValues(); - -$axis = $dataset->getAxis(); - -$maxes = []; - -$maxes[] = $dataset->getMax(); - -$t->data['selected_time'] = $fileslot; -$t->data['selected_timeres'] = $timeres; -$t->data['post_d'] = getBaseURL($t, 'post', 'd'); - -if (isset($preferRule2)) { - $statrule = $ruleset->getRule($preferRule2); - try { - $dataset2 = $statrule->getDataset($preferTimeRes, $preferTime); - $dataset2->aggregateSummary(); - $dataset2->calculateMax(); - - $datasets[] = $dataset2->getPercentValues(); - $maxes[] = $dataset2->getMax(); - } catch (\Exception $e) { - $t->data['error'] = "No data available to compare"; - $t->show(); - exit; - } -} - -$dimx = $statconfig->getValue('dimension.x', 800); -$dimy = $statconfig->getValue('dimension.y', 350); -$grapher = new \SimpleSAML\Module\statistics\Graph\GoogleCharts($dimx, $dimy); - -$t->data['imgurl'] = $grapher->show($axis['axis'], $axis['axispos'], $datasets, $maxes); -if (isset($piedata)) { - $t->data['pieimgurl'] = $grapher->showPie($dataset->getDelimiterPresentationPie(), $piedata); -} - -$t->data['available_rules'] = $ruleset->availableRulesNames(); -$t->data['available_times'] = $statrule->availableFileSlots($timeres); -$t->data['available_timeres'] = $statrule->availableTimeRes(); -$t->data['available_times_prev'] = $timeNavigation['prev']; -$t->data['available_times_next'] = $timeNavigation['next']; - -$t->data['current_rule'] = $t->data['available_rules'][$rule]; - -$t->data['selected_rule'] = $rule; -$t->data['selected_rule2'] = $preferRule2; -$t->data['selected_delimiter'] = $delimiter; - -$t->data['debugdata'] = $dataset->getDebugData(); -$t->data['results'] = $dataset->getResults(); -$t->data['summaryDataset'] = $dataset->getSummary(); -$t->data['topdelimiters'] = $dataset->getTopDelimiters(); - -$t->data['post_rule'] = getBaseURL($t, 'post', 'rule'); -$t->data['post_rule2'] = getBaseURL($t, 'post', 'rule2'); -$t->data['post_res'] = getBaseURL($t, 'post', 'res'); -$t->data['post_time'] = getBaseURL($t, 'post', 'time'); -$t->data['get_times_prev'] = getBaseURL($t, 'get', 'time', $t->data['available_times_prev']); -$t->data['get_times_next'] = getBaseURL($t, 'get', 'time', $t->data['available_times_next']); - -$t->data['availdelimiters'] = $dataset->availDelimiters(); -$t->data['delimiterPresentation'] = $dataset->getDelimiterPresentation(); - -$t->data['jquery'] = ['core' => false, 'ui' => true, 'css' => true]; +$config = Configuration::getInstance(); +$session = Session::getSessionFromRequest(); +$request = Request::createFromGlobals(); +$controller = new StatisticsController($config, $session); +$t = $controller->main($request); $t->show(); - -function getBaseURL($t, $type = 'get', $key = null, $value = null) -{ - $vars = [ - 'rule' => $t->data['selected_rule'], - 'time' => $t->data['selected_time'], - 'res' => $t->data['selected_timeres'], - ]; - if (isset($t->data['selected_delimiter'])) { - $vars['d'] = $t->data['selected_delimiter']; - } - if (!empty($t->data['selected_rule2']) && $t->data['selected_rule2'] !== '_') { - $vars['rule2'] = $t->data['selected_rule2']; - } - - if (isset($key)) { - if (isset($vars[$key])) { - unset($vars[$key]); - } - if (isset($value)) { - $vars[$key] = $value; - } - } - - if ($type === 'get') { - return \SimpleSAML\Module::getModuleURL("statistics/showstats.php").'?'.http_build_query($vars, '', '&'); - } - - return $vars; -} diff --git a/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/statmeta.php b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/statmeta.php index dd252bb26e1b66f21b21e5c63ca3b9067be4c8c3..336ac615bde7df616d22918970316b70fe86f930 100644 --- a/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/statmeta.php +++ b/vendor/simplesamlphp/simplesamlphp/modules/statistics/www/statmeta.php @@ -1,27 +1,15 @@ <?php -$config = \SimpleSAML\Configuration::getInstance(); -$statconfig = \SimpleSAML\Configuration::getConfig('module_statistics.php'); +namespace SimpleSAML\Module\statistics; -\SimpleSAML\Module\statistics\AccessCheck::checkAccess($statconfig); +use SimpleSAML\Configuration; +use SimpleSAML\Session; +use Symfony\Component\HttpFoundation\Request; -$aggr = new \SimpleSAML\Module\statistics\Aggregator(); -$aggr->loadMetadata(); -$metadata = $aggr->getMetadata(); - -$t = new \SimpleSAML\XHTML\Template($config, 'statistics:statmeta.tpl.php'); - -if ($metadata !== null) { - if (in_array('lastrun', $metadata, true)) { - $metadata['lastrun'] = date('l jS \of F Y H:i:s', $metadata['lastrun']); - } - if (in_array('notBefore', $metadata, true)) { - $metadata['notBefore'] = date('l jS \of F Y H:i:s', $metadata['notBefore']); - } - if (in_array('memory', $metadata, true)) { - $metadata['memory'] = number_format($metadata['memory'] / (1024 * 1024), 2); - } - $t->data['metadata'] = $metadata; -} +$config = Configuration::getInstance(); +$session = Session::getSessionFromRequest(); +$request = Request::createFromGlobals(); +$controller = new StatisticsController($config, $session); +$t = $controller->metadata($request); $t->show(); diff --git a/vendor/simplesamlphp/simplesamlphp/package-lock.json b/vendor/simplesamlphp/simplesamlphp/package-lock.json index 019235f2466a7e5e4c990817156966a761485117..1d241a03b0f7ff34c9c92a249a12be7480a37ef7 100644 --- a/vendor/simplesamlphp/simplesamlphp/package-lock.json +++ b/vendor/simplesamlphp/simplesamlphp/package-lock.json @@ -3,6 +3,458 @@ "requires": true, "lockfileVersion": 1, "dependencies": { + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/core": { + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.5.tgz", + "integrity": "sha512-M42+ScN4+1S9iB6f+TL7QBpoQETxbclx+KNoKJABghnKYE+fMzSGqst0BZJc8CpI625bwPwYgUyRvxZ+0mZzpw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.7.4", + "@babel/helpers": "^7.7.4", + "@babel/parser": "^7.7.5", + "@babel/template": "^7.7.4", + "@babel/traverse": "^7.7.4", + "@babel/types": "^7.7.4", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "json5": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", + "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==", + "dev": true, + "requires": { + "@babel/types": "^7.7.4", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/helper-function-name": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", + "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.7.4", + "@babel/template": "^7.7.4", + "@babel/types": "^7.7.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", + "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", + "dev": true, + "requires": { + "@babel/types": "^7.7.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", + "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", + "dev": true, + "requires": { + "@babel/types": "^7.7.4" + } + }, + "@babel/helpers": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.7.4.tgz", + "integrity": "sha512-ak5NGZGJ6LV85Q1Zc9gn2n+ayXOizryhjSUBTdu5ih1tlVCJeuQENzc4ItyCVhINVXvIT/ZQ4mheGIsfBkpskg==", + "dev": true, + "requires": { + "@babel/template": "^7.7.4", + "@babel/traverse": "^7.7.4", + "@babel/types": "^7.7.4" + } + }, + "@babel/highlight": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.5.tgz", + "integrity": "sha512-KNlOe9+/nk4i29g0VXgl8PEXIRms5xKLJeuZ6UptN0fHv+jDiriG+y94X6qAgWTR0h3KaoM1wK5G5h7MHFRSig==", + "dev": true + }, + "@babel/template": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", + "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.4", + "@babel/types": "^7.7.4" + } + }, + "@babel/traverse": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", + "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.7.4", + "@babel/helper-function-name": "^7.7.4", + "@babel/helper-split-export-declaration": "^7.7.4", + "@babel/parser": "^7.7.4", + "@babel/types": "^7.7.4", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "@webassemblyjs/ast": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", + "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", + "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", + "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", + "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", + "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.8.5" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", + "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", + "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "mamacro": "^0.0.3" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", + "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", + "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", + "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", + "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", + "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", + "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/helper-wasm-section": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-opt": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "@webassemblyjs/wast-printer": "1.8.5" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", + "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", + "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", + "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", + "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/floating-point-hex-parser": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-code-frame": "1.8.5", + "@webassemblyjs/helper-fsm": "1.8.5", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", + "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "acorn": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", + "dev": true + }, + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", + "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansicolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz", + "integrity": "sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8=" + }, "anymatch": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", @@ -24,6 +476,22 @@ } } }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", @@ -42,646 +510,959 @@ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "requires": { + "lodash": "^4.17.14" + } + }, "async-each": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", "dev": true }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "dev": true, - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - } - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "dev": true, - "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", + "dev": true + }, + "babel-loader": { + "version": "8.0.6", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.6.tgz", + "integrity": "sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw==", + "dev": true, + "requires": { + "find-cache-dir": "^2.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1", + "pify": "^4.0.1" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "is-descriptor": "^1.0.0" } }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "kind-of": "^6.0.0" } }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "balanced-match": { + "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "kind-of": "^6.0.0" } }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + } + } + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "requires": { + "inherits": "~2.0.0" + } + }, + "bluebird": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", + "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==", + "dev": true + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "safe-buffer": "~5.1.1" + "is-extendable": "^0.1.0" } - }, - "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "requires": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + } + } + }, + "cardinal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-1.0.0.tgz", + "integrity": "sha1-UOIcGwqjdyn5N33vGWtanOyTLuk=", + "requires": { + "ansicolors": "~0.2.1", + "redeyed": "~1.0.0" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "ms": "2.0.0" + "has-flag": "^3.0.0" } - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "chownr": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", + "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "is-descriptor": "^0.1.0" } + } + } + }, + "clipboard": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.4.tgz", + "integrity": "sha512-Vw26VSLRpJfBofiVaFb/I8PVfdI1OxKcYShe6fm0sP/DtmiWQNCjhM/okTvdCo0G+lMMm1rMYbk4IK4x1X+kgQ==", + "requires": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + }, + "dependencies": { + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" + "delegate": "^3.1.2" } }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "requires": { - "loose-envify": "^1.0.0" - } + "select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "tiny-emitter": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.0.2.tgz", + "integrity": "sha512-2NM0auVBGft5tee/OxP4PI3d8WItkDM+fPnaRAVo6xTDI2knbz9eC5ArWGqtGlYqiH3RU5yMpdyTTO7MguC4ow==" + } + } + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-webpack-plugin": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.0.5.tgz", + "integrity": "sha512-7N68eIoQTyudAuxkfPT7HzGoQ+TsmArN/I3HFwG+lVE3FNzqvZKIiaxtYh4o3BIznioxUvx9j26+Rtsc9htQUQ==", + "dev": true, + "requires": { + "cacache": "^12.0.3", + "find-cache-dir": "^2.1.0", + "glob-parent": "^3.1.0", + "globby": "^7.1.1", + "is-glob": "^4.0.1", + "loader-utils": "^1.2.3", + "minimatch": "^3.0.4", + "normalize-path": "^3.0.0", + "p-limit": "^2.2.1", + "schema-utils": "^1.0.0", + "serialize-javascript": "^2.1.0", + "webpack-log": "^2.0.0" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "jsesc": { - "version": "1.3.0", - "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + } + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css-loader": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.2.1.tgz", + "integrity": "sha512-q40kYdcBNzMvkIImCL2O+wk8dh+RGwPPV9Dfz3n7XtOYPXqe2Z6VgtvoxjkLHz02gmhepG9sOAJOUlx+3hHsBg==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^1.2.3", + "normalize-path": "^3.0.0", + "postcss": "^7.0.23", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.2", + "postcss-modules-scope": "^2.1.1", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.0.2", + "schema-utils": "^2.6.0" + }, + "dependencies": { + "schema-utils": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.1.tgz", + "integrity": "sha512-0WXHDs1VDJyo+Zqs9TKLKyD/h7yDpHUhEFsM2CzkICFdoX1av+GBq/J2xRTFfsQO5kBfhZzANf2VcIm84jqDbg==", "dev": true, "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1" } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "requires": { - "source-map": "^0.5.6" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true } } }, - "babel-loader": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.5.tgz", - "integrity": "sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==", + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "csv-parse": { + "version": "4.8.8", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.8.8.tgz", + "integrity": "sha512-Kv3Ilz2GV58dOoHBXRCTF8ijxlLjl80bG3d67XPI6DNqffb3AnbPbKr/WvCUMJq5V0AZYi6sukOaOQAVpfuVbg==" + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "find-cache-dir": "^1.0.0", - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1" - }, - "dependencies": { - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "json5": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - } + "array-find-index": "^1.0.1" } }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", "dev": true }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", @@ -713,349 +1494,438 @@ } } }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", "dev": true, "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "dev": true, + "requires": { + "path-type": "^3.0.0" + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "elliptic": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz", + "integrity": "sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg==", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz", + "integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" }, "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } } } }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "dev": true, "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "prr": "~1.0.1" } }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" + "is-arrayish": "^0.2.1" } }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "es6-shim": { + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.5.tgz", + "integrity": "sha512-E9kK/bjtCQRpN1K28Xh4BlmP8egvZBGJJ+9GtnzOwt7mdqtrjHFuVGr7QJfdjBIKqrlU5duPf3pCBoDrkjVYFg==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "dev": true, "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "esprima": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.0.0.tgz", + "integrity": "sha1-U88kes2ncxPlUcOqLnM0LT+099k=" + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", + "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } }, - "clipboard": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.4.tgz", - "integrity": "sha512-Vw26VSLRpJfBofiVaFb/I8PVfdI1OxKcYShe6fm0sP/DtmiWQNCjhM/okTvdCo0G+lMMm1rMYbk4IK4x1X+kgQ==", + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, "requires": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { - "delegate": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" - }, - "good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { - "delegate": "^3.1.2" + "is-descriptor": "^0.1.0" } }, - "select": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", - "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" - }, - "tiny-emitter": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.0.2.tgz", - "integrity": "sha512-2NM0auVBGft5tee/OxP4PI3d8WItkDM+fPnaRAVo6xTDI2knbz9eC5ArWGqtGlYqiH3RU5yMpdyTTO7MguC4ow==" + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } } } }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", "dev": true, "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "homedir-polyfill": "^1.0.1" } }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "expose-loader": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.5.tgz", + "integrity": "sha512-iPowgKUZkTPX5PznYsmifVj9Bob0w2wTHVkt/eYNPSzyebkUgIedmskf/kcfEIWpiWjg3JRjnW+a17XypySMuw==", "dev": true }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } }, - "copy-webpack-plugin": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz", - "integrity": "sha512-Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA==", + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "cacache": "^10.0.4", - "find-cache-dir": "^1.0.0", - "globby": "^7.1.1", - "is-glob": "^4.0.0", - "loader-utils": "^1.1.0", - "minimatch": "^3.0.4", - "p-limit": "^1.0.0", - "serialize-javascript": "^1.4.0" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "array-uniq": "^1.0.1" + "is-descriptor": "^1.0.0" } }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "balanced-match": { + "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "bluebird": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", - "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "kind-of": "^6.0.0" } }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "cacache": { - "version": "10.0.4", - "resolved": "http://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", - "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.1", - "mississippi": "^2.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^5.2.4", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" + "kind-of": "^6.0.0" } }, - "chownr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + } + } + }, + "extract-text-webpack-plugin": { + "version": "4.0.0-beta.0", + "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-4.0.0-beta.0.tgz", + "integrity": "sha512-Hypkn9jUTnFr0DpekNam53X47tXn3ucY08BQumv7kdGgeVUBLq3DJHJTi6HNxv4jl9W+Skxjz9+RnK0sJyqqjA==", + "dev": true, + "requires": { + "async": "^2.4.1", + "loader-utils": "^1.1.0", + "schema-utils": "^0.4.5", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "ajv": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.0.tgz", + "integrity": "sha512-ZCIMdm75ps9usdeb0GQL9rKOUlTtS0p0vU2nQVXgRIu6Yb00G9GY7AvbVLwTQ5Po4JDKIwJlT5nwggoRDrDVAw==", "dev": true, "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "ajv-keywords": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", "dev": true }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "dev": true, "requires": { - "arrify": "^1.0.1", - "path-type": "^3.0.0" + "lodash": "^4.17.10" } }, - "duplexify": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz", - "integrity": "sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true }, "emojis-list": { "version": "2.1.0", @@ -1063,165 +1933,27 @@ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", "dev": true }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "flush-write-stream": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", - "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.4" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "globby": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", "dev": true }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "json5": { "version": "0.5.1", - "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, @@ -1236,7282 +1968,3404 @@ "json5": "^0.5.0" } }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "lru-cache": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.4.tgz", - "integrity": "sha512-EPstzZ23znHUVLKj+lcXO1KvZkrlw+ZirdwvOmnAnA/1PB4ggyXJ77LRkCqkff+ShQ+cqoxCxLQOh4cKITO5iA==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^3.0.2" - } + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" } }, - "minimist": { - "version": "0.0.8", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", "dev": true }, - "mississippi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^2.0.1", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true }, - "mkdirp": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { - "minimist": "0.0.8" + "punycode": "^2.1.0" } }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "webpack-sources": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", + "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", "dev": true, "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "p-try": "^1.0.0" + "is-extendable": "^0.1.0" } + } + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "font-awesome": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz", + "integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM=" + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.2.12", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz", + "integrity": "sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "*" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "ansi-regex": { + "version": "2.1.1", + "bundled": true, "dev": true, - "requires": { - "p-limit": "^1.1.0" - } + "optional": true }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true }, - "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, "dev": true, + "optional": true, "requires": { - "cyclist": "~0.2.2", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "brace-expansion": { + "version": "1.1.11", + "bundled": true, "dev": true, + "optional": true, "requires": { - "pify": "^3.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true + "chownr": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "code-point-at": { + "version": "1.1.0", + "bundled": true, "dev": true, - "requires": { - "find-up": "^2.1.0" - } + "optional": true }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true }, - "pseudomap": { + "core-util-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "bundled": true, "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } + "optional": true }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "debug": { + "version": "3.2.6", + "bundled": true, "dev": true, + "optional": true, "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" + "ms": "^2.1.1" } }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "deep-extend": { + "version": "0.6.0", + "bundled": true, "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } + "optional": true }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "delegates": { + "version": "1.0.0", + "bundled": true, "dev": true, - "requires": { - "glob": "^7.0.5" - } + "optional": true }, - "run-queue": { + "detect-libc": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.7", + "bundled": true, "dev": true, + "optional": true, "requires": { - "aproba": "^1.1.1" + "minipass": "^2.6.0" } }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "serialize-javascript": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", - "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", - "dev": true - }, - "slash": { + "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true + "bundled": true, + "dev": true, + "optional": true }, - "ssri": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "gauge": { + "version": "2.7.4", + "bundled": true, "dev": true, + "optional": true, "requires": { - "safe-buffer": "^5.1.1" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "glob": { + "version": "7.1.6", + "bundled": true, "dev": true, + "optional": true, "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "has-unicode": { + "version": "2.0.1", + "bundled": true, "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } + "optional": true }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "iconv-lite": { + "version": "0.4.24", + "bundled": true, "dev": true, + "optional": true, "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "safer-buffer": ">= 2.1.2 < 3" } }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "ignore-walk": { + "version": "3.0.3", + "bundled": true, "dev": true, + "optional": true, "requires": { - "unique-slug": "^2.0.0" + "minimatch": "^3.0.4" } }, - "unique-slug": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", - "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", + "inflight": { + "version": "1.0.6", + "bundled": true, "dev": true, + "optional": true, "requires": { - "imurmurhash": "^0.1.4" + "once": "^1.3.0", + "wrappy": "1" } }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", - "dev": true - } - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "css-loader": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.1.tgz", - "integrity": "sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw==", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "css-selector-tokenizer": "^0.7.0", - "icss-utils": "^2.1.0", - "loader-utils": "^1.0.2", - "lodash": "^4.17.11", - "postcss": "^6.0.23", - "postcss-modules-extract-imports": "^1.2.0", - "postcss-modules-local-by-default": "^1.2.0", - "postcss-modules-scope": "^1.1.0", - "postcss-modules-values": "^1.3.0", - "postcss-value-parser": "^3.3.0", - "source-list-map": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "inherits": { + "version": "2.0.4", + "bundled": true, + "dev": true, + "optional": true }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, "dev": true, + "optional": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "number-is-nan": "^1.0.0" } }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "isarray": { + "version": "1.0.0", + "bundled": true, "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } + "optional": true }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "minimatch": { + "version": "3.0.4", + "bundled": true, "dev": true, + "optional": true, "requires": { - "color-name": "1.1.3" + "brace-expansion": "^1.1.7" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "minimist": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true }, - "css-selector-tokenizer": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz", - "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==", + "minipass": { + "version": "2.9.0", + "bundled": true, "dev": true, + "optional": true, "requires": { - "cssesc": "^0.1.0", - "fastparse": "^1.1.1", - "regexpu-core": "^1.0.0" + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" } }, - "cssesc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", - "dev": true - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "minizlib": { + "version": "1.3.3", + "bundled": true, "dev": true, + "optional": true, "requires": { - "ansi-regex": "^2.0.0" + "minipass": "^2.9.0" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", - "dev": true - }, - "icss-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", - "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "mkdirp": { + "version": "0.5.3", + "bundled": true, "dev": true, + "optional": true, "requires": { - "postcss": "^6.0.1" + "minimist": "^1.2.5" } }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "jsesc": { - "version": "0.5.0", - "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true + "ms": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "needle": { + "version": "2.3.3", + "bundled": true, "dev": true, + "optional": true, "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0" + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "node-pre-gyp": { + "version": "0.14.0", + "bundled": true, "dev": true, + "optional": true, "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4.4.2" } }, - "postcss-modules-extract-imports": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", - "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", + "nopt": { + "version": "4.0.3", + "bundled": true, "dev": true, + "optional": true, "requires": { - "postcss": "^6.0.1" + "abbrev": "1", + "osenv": "^0.1.4" } }, - "postcss-modules-local-by-default": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "npm-bundled": { + "version": "1.1.1", + "bundled": true, "dev": true, + "optional": true, "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" + "npm-normalize-package-bin": "^1.0.1" } }, - "postcss-modules-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "npm-normalize-package-bin": { + "version": "1.0.1", + "bundled": true, "dev": true, - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - } + "optional": true }, - "postcss-modules-values": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "npm-packlist": { + "version": "1.4.8", + "bundled": true, "dev": true, + "optional": true, "requires": { - "icss-replace-symbols": "^1.1.0", - "postcss": "^6.0.1" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" } }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", - "dev": true - }, - "regexpu-core": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", - "dev": true, - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "http://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "npmlog": { + "version": "4.1.2", + "bundled": true, "dev": true, + "optional": true, "requires": { - "jsesc": "~0.5.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "number-is-nan": { + "version": "1.0.1", + "bundled": true, "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } + "optional": true }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "object-assign": { + "version": "4.1.1", + "bundled": true, "dev": true, - "requires": { - "kind-of": "^6.0.0" - } + "optional": true }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "once": { + "version": "1.4.0", + "bundled": true, "dev": true, + "optional": true, "requires": { - "kind-of": "^6.0.0" + "wrappy": "1" } }, - "is-descriptor": { + "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "es6-shim": { - "version": "0.35.4", - "resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.4.tgz", - "integrity": "sha512-oJidbXjN/VWXZJs41E9JEqWzcFbjt43JupimIoVX82Thzt5qy1CiYezdhRmWkj3KOuwJ106IG/ZZrcFC6fgIUQ==" - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } + "optional": true }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "osenv": { + "version": "0.1.5", + "bundled": true, "dev": true, + "optional": true, "requires": { - "is-extendable": "^0.1.0" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } - } - } - }, - "expose-loader": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.5.tgz", - "integrity": "sha512-iPowgKUZkTPX5PznYsmifVj9Bob0w2wTHVkt/eYNPSzyebkUgIedmskf/kcfEIWpiWjg3JRjnW+a17XypySMuw==", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { + }, + "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } + "optional": true }, - "extend-shallow": { + "process-nextick-args": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } + "optional": true }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "rc": { + "version": "1.2.8", + "bundled": true, "dev": true, + "optional": true, "requires": { - "kind-of": "^6.0.0" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" } }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "readable-stream": { + "version": "2.3.7", + "bundled": true, "dev": true, + "optional": true, "requires": { - "kind-of": "^6.0.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "rimraf": { + "version": "2.7.1", + "bundled": true, "dev": true, + "optional": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "glob": "^7.1.3" } - } - } - }, - "extract-text-webpack-plugin": { - "version": "4.0.0-beta.0", - "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-4.0.0-beta.0.tgz", - "integrity": "sha512-Hypkn9jUTnFr0DpekNam53X47tXn3ucY08BQumv7kdGgeVUBLq3DJHJTi6HNxv4jl9W+Skxjz9+RnK0sJyqqjA==", - "dev": true, - "requires": { - "async": "^2.4.1", - "loader-utils": "^1.1.0", - "schema-utils": "^0.4.5", - "webpack-sources": "^1.1.0" - }, - "dependencies": { - "ajv": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.0.tgz", - "integrity": "sha512-ZCIMdm75ps9usdeb0GQL9rKOUlTtS0p0vU2nQVXgRIu6Yb00G9GY7AvbVLwTQ5Po4JDKIwJlT5nwggoRDrDVAw==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true - }, - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "dev": true, - "requires": { - "lodash": "^4.17.10" - } - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "safe-buffer": { + "version": "5.1.2", + "bundled": true, "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0" - } - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true + "optional": true }, - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "safer-buffer": { + "version": "2.1.2", + "bundled": true, "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "optional": true }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "sax": { + "version": "1.2.4", + "bundled": true, "dev": true, - "requires": { - "punycode": "^2.1.0" - } + "optional": true }, - "webpack-sources": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", - "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "font-awesome": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz", - "integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM=" - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", - "dev": true, - "optional": true, - "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", + "semver": { + "version": "5.7.1", "bundled": true, "dev": true, "optional": true }, - "ansi-regex": { - "version": "2.1.1", + "set-blocking": { + "version": "2.0.0", "bundled": true, "dev": true, "optional": true }, - "aproba": { - "version": "1.2.0", + "signal-exit": { + "version": "3.0.2", "bundled": true, "dev": true, "optional": true }, - "are-we-there-yet": { - "version": "1.1.5", + "string-width": { + "version": "1.0.2", "bundled": true, "dev": true, "optional": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, - "balanced-match": { - "version": "1.0.0", + "string_decoder": { + "version": "1.1.1", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } }, - "brace-expansion": { - "version": "1.1.11", + "strip-ansi": { + "version": "3.0.1", "bundled": true, "dev": true, "optional": true, "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "ansi-regex": "^2.0.0" } }, - "chownr": { - "version": "1.1.1", + "strip-json-comments": { + "version": "2.0.1", "bundled": true, "dev": true, "optional": true }, - "code-point-at": { - "version": "1.1.0", + "tar": { + "version": "4.4.13", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } }, - "concat-map": { - "version": "0.0.1", + "util-deprecate": { + "version": "1.0.2", "bundled": true, "dev": true, "optional": true }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", + "wide-align": { + "version": "1.1.3", "bundled": true, "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "string-width": "^1.0.2 || 2" } }, - "fs.realpath": { - "version": "1.0.0", + "wrappy": { + "version": "1.0.2", "bundled": true, "dev": true, "optional": true }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", + "yallist": { + "version": "3.1.1", "bundled": true, "dev": true, "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, + } + } + }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "requires": { + "globule": "^1.0.0" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, - "optional": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "is-extglob": "^2.1.0" } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, + } + } + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "requires": { + "global-prefix": "^3.0.0" + }, + "dependencies": { + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, - "optional": true, "requires": { - "minimatch": "^3.0.4" + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, + } + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "globule": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.1.tgz", + "integrity": "sha512-OVyWOHgw29yosRHCHo7NncwR1hW5ew0W/UrvtwvjefVJeQ26q4/8r8FmPsSF1hJ93IgWkyv16pCTz6WblMzm/g==", + "dev": true, + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.12", + "minimatch": "~3.0.2" + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, - "optional": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "is-buffer": "^1.1.5" } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, + } + } + }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "highlight.js": { + "version": "9.16.2", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.16.2.tgz", + "integrity": "sha512-feMUrVLZvjy0oC7FVJQcSQRqbBq9kwqnYE4+Kj9ZjbHh3g+BisiPgF49NyQbVLNdrL/qqZr3Ca9yOKwgn2i/tw==" + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "humanize": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/humanize/-/humanize-0.0.9.tgz", + "integrity": "sha1-GZT/rs3+nEQe0r2sdFK3u0yeQaQ=" + }, + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "dev": true, + "requires": { + "postcss": "^7.0.14" + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "in-publish": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", + "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "interpret": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", + "dev": true + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, - "optional": true, "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "is-buffer": "^1.1.5" } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, - "optional": true, "requires": { - "minipass": "^2.2.1" + "is-buffer": "^1.1.5" } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, - "optional": true, "requires": { - "minimist": "0.0.8" + "is-buffer": "^1.1.5" } - }, - "ms": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "graceful-fs": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", - "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "highlight.js": { - "version": "9.13.1", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.13.1.tgz", - "integrity": "sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "jquery": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.4.0.tgz", - "integrity": "sha512-ggRCXln9zEqv6OqAGXFEcshF5dSBvCkzj6Gm2gzuR5fWawaX8t7cxKVkkygKODrDAzKdoYw3l/e3pm3vlT4IbQ==" - }, - "jquery-ui": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.12.1.tgz", - "integrity": "sha1-vLQEXI3QU5wTS8FIjN0+dop6nlE=" - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - }, - "lodash.mergewith": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", - "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", - "dev": true - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", - "dev": true, - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "node-sass": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.10.0.tgz", - "integrity": "sha512-fDQJfXszw6vek63Fe/ldkYXmRYK/QS6NbvM3i5oEo9ntPDy4XX7BcKZyTKv+/kSSxRtXXc7l+MSwEmYc0CSy6Q==", - "dev": true, - "requires": { - "async-foreach": "^0.1.3", - "chalk": "^1.1.1", - "cross-spawn": "^3.0.0", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "in-publish": "^2.0.0", - "lodash.assign": "^4.2.0", - "lodash.clonedeep": "^4.3.2", - "lodash.mergewith": "^4.6.0", - "meow": "^3.7.0", - "mkdirp": "^0.5.1", - "nan": "^2.10.0", - "node-gyp": "^3.8.0", - "npmlog": "^4.0.0", - "request": "^2.88.0", - "sass-graph": "^2.2.4", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "ajv": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz", - "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "requires": { - "inherits": "~2.0.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "http://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "combined-stream": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cross-spawn": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "dev": true, - "requires": { - "globule": "^1.0.0" - } - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "globule": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", - "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", - "dev": true, - "requires": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" - } - }, - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", - "dev": true - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "dev": true, - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true - }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", - "dev": true - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "in-publish": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", - "dev": true - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "js-base64": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", - "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==", - "dev": true - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "lru-cache": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.4.tgz", - "integrity": "sha512-EPstzZ23znHUVLKj+lcXO1KvZkrlw+ZirdwvOmnAnA/1PB4ggyXJ77LRkCqkff+ShQ+cqoxCxLQOh4cKITO5iA==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^3.0.2" - } - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - }, - "meow": { - "version": "3.7.0", - "resolved": "http://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - } - }, - "mime-db": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", - "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==", - "dev": true - }, - "mime-types": { - "version": "2.1.21", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", - "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", - "dev": true, - "requires": { - "mime-db": "~1.37.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - } - } - }, - "nan": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", - "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==", - "dev": true - }, - "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "dev": true, - "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "dependencies": { - "semver": { - "version": "5.3.0", - "resolved": "http://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true - } - } - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-locale": { - "version": "1.4.0", - "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "requires": { - "lcid": "^1.0.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "psl": { - "version": "1.1.29", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", - "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", - "dev": true - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - } - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "requires": { - "glob": "^7.0.5" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "sass-graph": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", - "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", - "dev": true, - "requires": { - "glob": "^7.0.0", - "lodash": "^4.0.0", - "scss-tokenizer": "^0.2.3", - "yargs": "^7.0.0" - } - }, - "scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "dev": true, - "requires": { - "js-base64": "^2.1.8", - "source-map": "^0.4.2" - } - }, - "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "source-map": { - "version": "0.4.4", - "resolved": "http://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - }, - "spdx-correct": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", - "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz", - "integrity": "sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg==", - "dev": true - }, - "sshpk": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.2.tgz", - "integrity": "sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", - "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "tar": { - "version": "2.2.1", - "resolved": "http://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" - } - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - }, - "true-case-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", - "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", - "dev": true, - "requires": { - "glob": "^7.1.2" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - }, - "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", - "dev": true - }, - "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - } - } - }, - "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "dev": true, - "requires": { - "camelcase": "^3.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - } - } - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "purecss": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/purecss/-/purecss-1.0.0.tgz", - "integrity": "sha512-gfC78WCOWNnfkzulx9aoWwcl+0JflhwKeJ+k9s/ZyIawfYNA4bqBmt0DtfgtQK9iuYMtGfbdE8R2AQMjSWR2VQ==" - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "reset-css": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/reset-css/-/reset-css-4.0.1.tgz", - "integrity": "sha512-aQFi5IxXVegVTfz0hOmXsPSmc8tlPDQOkfatHfPu3Cm6id7UXM4OzXfsaUWJEgV2yrCngsagpIb3wHXPjKAx+Q==" - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "sass-loader": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.1.0.tgz", - "integrity": "sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==", - "dev": true, - "requires": { - "clone-deep": "^2.0.1", - "loader-utils": "^1.0.1", - "lodash.tail": "^4.1.1", - "neo-async": "^2.5.0", - "pify": "^3.0.0", - "semver": "^5.5.0" - }, - "dependencies": { - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "clone-deep": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", - "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.0", - "shallow-clone": "^1.0.0" - } - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0" - } - }, - "lodash.tail": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", - "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", - "dev": true - }, - "mixin-object": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", - "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", - "dev": true, - "requires": { - "for-in": "^0.1.3", - "is-extendable": "^0.1.1" - }, - "dependencies": { - "for-in": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", - "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", - "dev": true - } - } - }, - "neo-async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", - "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", - "dev": true - }, - "shallow-clone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", - "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", - "dev": true, - "requires": { - "is-extendable": "^0.1.1", - "kind-of": "^5.0.0", - "mixin-object": "^2.0.1" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - } - } - }, - "selectize": { - "version": "0.12.6", - "resolved": "https://registry.npmjs.org/selectize/-/selectize-0.12.6.tgz", - "integrity": "sha512-bWO5A7G+I8+QXyjLfQUgh31VI4WKYagUZQxAXlDyUmDDNrFxrASV0W9hxCOl0XJ/XQ1dZEu3G9HjXV4Wj0yb6w==", - "requires": { - "microplugin": "0.0.3", - "sifter": "^0.5.1" - }, - "dependencies": { - "ansicolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz", - "integrity": "sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8=" - }, - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "requires": { - "lodash": "^4.17.10" - } - }, - "cardinal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-1.0.0.tgz", - "integrity": "sha1-UOIcGwqjdyn5N33vGWtanOyTLuk=", - "requires": { - "ansicolors": "~0.2.1", - "redeyed": "~1.0.0" - } - }, - "csv-parse": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-2.5.0.tgz", - "integrity": "sha512-4OcjOJQByI0YDU5COYw9HAqjo8/MOLLmT9EKyMCXUzgvh30vS1SlMK+Ho84IH5exN44cSnrYecw/7Zpu2m4lkA==" - }, - "esprima": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.0.0.tgz", - "integrity": "sha1-U88kes2ncxPlUcOqLnM0LT+099k=" - }, - "humanize": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/humanize/-/humanize-0.0.9.tgz", - "integrity": "sha1-GZT/rs3+nEQe0r2sdFK3u0yeQaQ=" - }, - "lodash": { - "version": "4.17.11", - "resolved": "" - }, - "microplugin": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/microplugin/-/microplugin-0.0.3.tgz", - "integrity": "sha1-H8Lhu3yeGegr2Eu6kTe75xJQ2M0=" - }, - "minimist": { - "version": "0.0.10", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, - "redeyed": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-1.0.1.tgz", - "integrity": "sha1-6WwZO0DAgWsArshCaY5hGF5VSYo=", - "requires": { - "esprima": "~3.0.0" - } - }, - "sifter": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/sifter/-/sifter-0.5.3.tgz", - "integrity": "sha1-XmUH/owRSyso2Qtr9OW2NuYR5Is=", - "requires": { - "async": "^2.6.0", - "cardinal": "^1.0.0", - "csv-parse": "^2.0.0", - "humanize": "^0.0.9", - "optimist": "^0.6.1" - } - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" - } - } - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "dev": true, - "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "style-loader": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", - "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "ajv": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz", - "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.0.tgz", - "integrity": "sha1-7PAh+hCP0X37Xms4Py3SM+Mf/Fk=", - "dev": true - }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - } - } - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "upath": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", - "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", - "dev": true - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "webpack": { - "version": "4.26.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.26.1.tgz", - "integrity": "sha512-i2oOvEvuvLLSuSCkdVrknaxAhtUZ9g+nLSoHCWV0gDzqGX2DXaCrMmMUpbRsTSSLrUqAI56PoEiyMUZIZ1msug==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-module-context": "1.7.11", - "@webassemblyjs/wasm-edit": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11", - "acorn": "^5.6.2", - "acorn-dynamic-import": "^3.0.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chrome-trace-event": "^1.0.0", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.0", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "micromatch": "^3.1.8", - "mkdirp": "~0.5.0", - "neo-async": "^2.5.0", - "node-libs-browser": "^2.0.0", - "schema-utils": "^0.4.4", - "tapable": "^1.1.0", - "terser-webpack-plugin": "^1.1.0", - "watchpack": "^1.5.0", - "webpack-sources": "^1.3.0" - }, - "dependencies": { - "@webassemblyjs/ast": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz", - "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/wast-parser": "1.7.11" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz", - "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz", - "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz", - "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz", - "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.7.11" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz", - "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz", - "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==", - "dev": true - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz", - "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz", - "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz", - "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz", - "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.1" - } - }, - "@webassemblyjs/utf8": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz", - "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz", - "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/helper-wasm-section": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11", - "@webassemblyjs/wasm-opt": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11", - "@webassemblyjs/wast-printer": "1.7.11" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz", - "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/ieee754": "1.7.11", - "@webassemblyjs/leb128": "1.7.11", - "@webassemblyjs/utf8": "1.7.11" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz", - "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz", - "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-api-error": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/ieee754": "1.7.11", - "@webassemblyjs/leb128": "1.7.11", - "@webassemblyjs/utf8": "1.7.11" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz", - "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/floating-point-hex-parser": "1.7.11", - "@webassemblyjs/helper-api-error": "1.7.11", - "@webassemblyjs/helper-code-frame": "1.7.11", - "@webassemblyjs/helper-fsm": "1.7.11", - "@xtuc/long": "4.2.1" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz", - "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/wast-parser": "1.7.11", - "@xtuc/long": "4.2.1" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz", - "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==", - "dev": true - }, - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", - "dev": true - }, - "acorn-dynamic-import": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", - "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", - "dev": true, - "requires": { - "acorn": "^5.0.0" - } - }, - "ajv": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz", - "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.0.tgz", - "integrity": "sha1-7PAh+hCP0X37Xms4Py3SM+Mf/Fk=", - "dev": true - }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true, - "requires": { - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", - "dev": true - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "bluebird": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", - "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==", - "dev": true - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true, - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "buffer": { - "version": "4.9.1", - "resolved": "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "cacache": { - "version": "11.3.1", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.1.tgz", - "integrity": "sha512-2PEw4cRRDu+iQvBTTuttQifacYjLPhET+SYO/gEFMy8uhi+jlJREDAjSF5FWSdV/Aw5h18caHA7vMTw2c+wDzA==", - "dev": true, - "requires": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "figgy-pudding": "^3.1.0", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.3", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^6.0.0", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "chownr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz", - "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "^0.1.4" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", - "dev": true - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "duplexify": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz", - "integrity": "sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "elliptic": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", - "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", - "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", - "tapable": "^1.0.0" - } - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, - "eslint-scope": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", - "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - }, - "events": { - "version": "1.1.1", - "resolved": "http://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "figgy-pudding": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", - "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", - "dev": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-cache-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.0.0.tgz", - "integrity": "sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "flush-write-stream": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", - "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.4" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "hash.js": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", - "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "ieee754": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", - "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "loader-runner": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.1.tgz", - "integrity": "sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw==", - "dev": true - }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lru-cache": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.4.tgz", - "integrity": "sha512-EPstzZ23znHUVLKj+lcXO1KvZkrlw+ZirdwvOmnAnA/1PB4ggyXJ77LRkCqkff+ShQ+cqoxCxLQOh4cKITO5iA==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^3.0.2" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "neo-async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", - "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", - "dev": true - }, - "node-libs-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", - "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^1.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.0", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.10.3", - "vm-browserify": "0.0.4" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "p-limit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", - "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "dev": true - }, - "pako": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", - "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", - "dev": true - }, - "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", - "dev": true, - "requires": { - "cyclist": "~0.2.2", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "parse-asn1": { - "version": "5.1.1", - "resolved": "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", - "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", - "dev": true, - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3" - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "randombytes": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", - "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "jquery": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.0.tgz", + "integrity": "sha512-Xb7SVYMvygPxbFMpTFQiHh1J7HClEaThguL15N/Gg37Lri/qKyhRGZYzHRyLH8Stq3Aow0LsHO2O2ci86fCrNQ==" + }, + "jquery-ui": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.12.1.tgz", + "integrity": "sha1-vLQEXI3QU5wTS8FIjN0+dop6nlE=" + }, + "js-base64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz", + "integrity": "sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "requires": { - "glob": "^7.0.5" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + } + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "mamacro": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", + "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", + "dev": true + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "mime-db": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==", + "dev": true + }, + "mime-types": { + "version": "2.1.26", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", + "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", + "dev": true, + "requires": { + "mime-db": "1.43.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "aproba": "^1.1.1" + "is-plain-object": "^2.0.4" } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "neo-async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", + "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - } - }, - "serialize-javascript": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", - "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", + } + } + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true - }, - "set-value": { - "version": "2.0.0", - "resolved": "", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + } + } + }, + "node-sass": { + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.1.tgz", + "integrity": "sha512-TTWFx+ZhyDx1Biiez2nB0L3YrCZ/8oHagaDalbuBSlqXgUPsdkUSzJsVxeDO9LtPB49+Fh3WQl3slABo6AotNw==", + "dev": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash": "^4.17.15", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, - "sha.js": { - "version": "2.4.11", - "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + } + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "is-descriptor": "^0.1.0" } }, - "source-map-support": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", - "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "is-buffer": "^1.1.5" } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + }, + "dependencies": { + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" + } + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "dev": true + }, + "p-limit": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", + "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pako": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", + "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", + "dev": true + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "parse-asn1": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", + "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "dev": true, + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "stream-browserify": { + } + } + }, + "pbkdf2": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "7.0.24", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.24.tgz", + "integrity": "sha512-Xl0XvdNWg+CblAXzNvbSOUvgJXwSjmbAKORqyw9V2AlHrm1js2gFw9y3jibBAhpKZi8b5JzJCVh/FyzPsTtgTA==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "dev": true, + "requires": { + "postcss": "^7.0.5" + } + }, + "postcss-modules-local-by-default": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz", + "integrity": "sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ==", + "dev": true, + "requires": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.16", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.0" + } + }, + "postcss-modules-scope": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.1.1.tgz", + "integrity": "sha512-OXRUPecnHCg8b9xWvldG/jUpRIGPNRka0r4D4j0ESUU2/5IOnpsjfPPmDprM3Ih8CgZ8FXjWqaniK5v4rWt3oQ==", + "dev": true, + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + } + }, + "postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "dev": true, + "requires": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "postcss-selector-parser": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", + "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "postcss-value-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz", + "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { "version": "2.0.1", - "resolved": "http://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, "requires": { "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "tapable": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz", - "integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==", - "dev": true - }, - "terser": { - "version": "3.10.12", - "resolved": "https://registry.npmjs.org/terser/-/terser-3.10.12.tgz", - "integrity": "sha512-3ODPC1eVt25EVNb04s/PkHxOmzKBQUF6bwwuR6h2DbEF8/j265Y1UkwNtOk9am/pRxfJ5HPapOlUlO6c16mKQQ==", - "dev": true, - "requires": { - "commander": "~2.17.1", - "source-map": "~0.6.1", - "source-map-support": "~0.5.6" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "once": "^1.3.1" } - }, - "terser-webpack-plugin": { + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "purecss": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/purecss/-/purecss-1.0.1.tgz", + "integrity": "sha512-mTUc5ZzpzafswEhCmTDfSRMMyRFdLYdd+KywMwnBC/MuA/Th7jug2z0Xso4WkxvtxoU/BS9aRb7WnBNyuA7YJQ==" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "dependencies": { + "path-type": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.1.0.tgz", - "integrity": "sha512-61lV0DSxMAZ8AyZG7/A4a3UPlrbOBo8NIQ4tJzLPAdGOQ+yoNC7l5ijEow27lBAL2humer01KLS6bGIMYQxKoA==", - "dev": true, - "requires": { - "cacache": "^11.0.2", - "find-cache-dir": "^2.0.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^1.4.0", - "source-map": "^0.6.1", - "terser": "^3.8.1", - "webpack-sources": "^1.1.0", - "worker-farm": "^1.5.2" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "timers-browserify": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", - "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "setimmediate": "^1.0.4" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + } + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "pinkie-promise": "^2.0.0" } - }, - "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", - "dev": true - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "union-value": { + } + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "redeyed": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-1.0.1.tgz", + "integrity": "sha1-6WwZO0DAgWsArshCaY5hGF5VSYo=", + "requires": { + "esprima": "~3.0.0" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "reset-css": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/reset-css/-/reset-css-5.0.1.tgz", + "integrity": "sha512-VyuJdNFfp5x/W6e5wauJM59C02Vs0P22sxzZGhQMPaqu/NGTeFxlBFOOw3eq9vQd19gIDdZp7zi89ylyKOJ33Q==" + }, + "resolve": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", + "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "dependencies": { + "global-modules": { "version": "1.0.0", - "resolved": "", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", "dev": true, "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" } - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + } + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass-graph": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", + "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "dev": true, + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" + } + }, + "sass-loader": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.3.1.tgz", + "integrity": "sha512-tuU7+zm0pTCynKYHpdqaPpe+MMTQ76I9TPZ7i4/5dZsigE350shQWe5EZNl5dBidM49TPET75tNqRbcsUZWeNA==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.0.1", + "neo-async": "^2.5.0", + "pify": "^4.0.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "unique-slug": "^2.0.0" + "amdefine": ">=0.0.4" } - }, - "unique-slug": { + } + } + }, + "selectize": { + "version": "0.12.6", + "resolved": "https://registry.npmjs.org/selectize/-/selectize-0.12.6.tgz", + "integrity": "sha512-bWO5A7G+I8+QXyjLfQUgh31VI4WKYagUZQxAXlDyUmDDNrFxrASV0W9hxCOl0XJ/XQ1dZEu3G9HjXV4Wj0yb6w==", + "requires": { + "microplugin": "0.0.3", + "sifter": "^0.5.1" + }, + "dependencies": { + "microplugin": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/microplugin/-/microplugin-0.0.3.tgz", + "integrity": "sha1-H8Lhu3yeGegr2Eu6kTe75xJQ2M0=" + } + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "serialize-javascript": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.1.tgz", + "integrity": "sha512-MPLPRpD4FNqWq9tTIjYG5LesFouDhdyH0EPY3gVK4DRD5+g4aDqdNSzLIwceulo3Yj+PL1bPh6laE5+H6LTcrQ==", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", - "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "imurmurhash": "^0.1.4" + "is-extendable": "^0.1.0" } - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "sifter": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/sifter/-/sifter-0.5.4.tgz", + "integrity": "sha512-t2yxTi/MM/ESup7XH5oMu8PUcttlekt269RqxARgnvS+7D/oP6RyA1x3M/5w8dG9OgkOyQ8hNRWelQ8Rj4TAQQ==", + "requires": { + "async": "^2.6.0", + "cardinal": "^1.0.0", + "csv-parse": "^4.6.5", + "humanize": "^0.0.9", + "optimist": "^0.6.1" + } + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } + "is-descriptor": "^0.1.0" } }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "punycode": "^2.1.0" + "is-extendable": "^0.1.0" } }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } + "is-descriptor": "^1.0.0" } }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "inherits": "2.0.3" + "kind-of": "^6.0.0" } }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "indexof": "0.0.1" + "kind-of": "^6.0.0" } }, - "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "chokidar": "^2.0.2", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } - }, - "webpack-sources": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", - "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "is-buffer": "^1.1.5" } - }, - "worker-farm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", - "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", + } + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "errno": "~0.1.7" + "is-descriptor": "^0.1.0" } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", - "dev": true } } }, - "webpack-cli": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.1.2.tgz", - "integrity": "sha512-Cnqo7CeqeSvC6PTdts+dywNi5CRlIPbLx1AoUPK2T6vC1YAugMG3IOoO9DmEscd+Dghw7uRlnzV1KwOe5IrtgQ==", + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "style-loader": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", + "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", "dev": true, "requires": { - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.1.0", - "global-modules-path": "^2.3.0", - "import-local": "^2.0.0", - "interpret": "^1.1.0", "loader-utils": "^1.1.0", - "supports-color": "^5.5.0", - "v8-compile-cache": "^2.0.2", - "yargs": "^12.0.2" + "schema-utils": "^1.0.0" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "camelcase": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", - "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", - "dev": true - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "ajv": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz", + "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", "dev": true, "requires": { - "color-name": "1.1.3" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "ajv-errors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.0.tgz", + "integrity": "sha1-7PAh+hCP0X37Xms4Py3SM+Mf/Fk=", "dev": true }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "ajv-keywords": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", "dev": true }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", "dev": true }, "emojis-list": { @@ -8520,152 +5374,29 @@ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", "dev": true }, - "enhanced-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", - "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", - "tapable": "^1.0.0" - } - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "execa": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", - "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "global-modules-path": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/global-modules-path/-/global-modules-path-2.3.0.tgz", - "integrity": "sha512-HchvMJNYh9dGSCy8pOQ2O8u/hoXaL+0XhnrwH0RyLiSXMMTl9W3N6KUU73+JFOg5PGjtzl6VZzUQsnrpm7Szag==", - "dev": true - }, - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "dev": true, - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", - "dev": true - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true }, - "is-fullwidth-code-point": { + "fast-json-stable-stringify": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", "dev": true }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "json5": { "version": "0.5.1", "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } + "dev": true }, "loader-utils": { "version": "1.1.0", @@ -8678,308 +5409,574 @@ "json5": "^0.5.0" } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" } }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { - "p-defer": "^1.0.0" + "punycode": "^2.1.0" } - }, - "mem": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz", - "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==", + } + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, + "tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + }, + "terser": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.3.tgz", + "integrity": "sha512-0ikKraVtRDKGzHrzkCv5rUNDzqlhmhowOBqC0XqUHFpW+vJ45+20/IFBcebwKfiS2Z9fJin6Eo+F1zLZsxi8RA==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + }, + "terser-webpack-plugin": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", + "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^2.1.2", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "dependencies": { + "serialize-javascript": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", + "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", + "dev": true + } + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "timers-browserify": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", + "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^1.0.0", - "p-is-promise": "^1.1.0" + "is-buffer": "^1.1.5" } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "dev": true, + "requires": { + "glob": "^7.1.2" + } + }, + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "dev": true + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } } }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", "dev": true - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + } + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "uuid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", + "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", + "dev": true + }, + "v8-compile-cache": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz", + "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "dev": true, + "requires": { + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + } + }, + "webpack": { + "version": "4.41.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.2.tgz", + "integrity": "sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/wasm-edit": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "acorn": "^6.2.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.1", + "watchpack": "^1.6.0", + "webpack-sources": "^1.4.1" + } + }, + "webpack-cli": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.10.tgz", + "integrity": "sha512-u1dgND9+MXaEt74sJR4PR7qkPxXUSQ0RXYq8x1L6Jg1MYVEmGPrH6Ah6C4arD4r0J1P5HKjRqpab36k0eIzPqg==", + "dev": true, + "requires": { + "chalk": "2.4.2", + "cross-spawn": "6.0.5", + "enhanced-resolve": "4.1.0", + "findup-sync": "3.0.0", + "global-modules": "2.0.0", + "import-local": "2.0.0", + "interpret": "1.2.0", + "loader-utils": "1.2.3", + "supports-color": "6.1.0", + "v8-compile-cache": "2.0.3", + "yargs": "13.2.4" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, - "os-locale": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.0.1.tgz", - "integrity": "sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==", + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { - "execa": "^0.10.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" } }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-is-promise": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", - "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", - "dev": true - }, - "p-limit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", - "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "p-try": "^2.0.0" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "enhanced-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" } }, - "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "process-nextick-args": { + "invert-kv": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", "dev": true }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, - "resolve-cwd": { + "lcid": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", "dev": true, "requires": { - "resolve-from": "^3.0.0" + "invert-kv": "^2.0.0" } }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" } }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { + "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" + "strip-ansi": "^5.1.0" } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "tapable": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz", - "integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "v8-compile-cache": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz", - "integrity": "sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw==", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "isexe": "^2.0.0" + "ansi-regex": "^4.1.0" } }, "which-module": { @@ -8989,82 +5986,39 @@ "dev": true }, "wrap-ansi": { - "version": "2.1.0", - "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" } }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "version": "13.2.4", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz", + "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", + "cliui": "^5.0.0", "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^3.0.0", "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" + "y18n": "^4.0.0", + "yargs-parser": "^13.1.0" } }, "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -9073,11 +6027,149 @@ } } }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + } + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "dev": true, + "requires": { + "camelcase": "^3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + } + } } } } diff --git a/vendor/simplesamlphp/simplesamlphp/package.json b/vendor/simplesamlphp/simplesamlphp/package.json index a8e692745eedb4a4b9289494d319b9ecb51a1844..fafc24a46cf7aba79c4e171b6232b9b2547db6eb 100644 --- a/vendor/simplesamlphp/simplesamlphp/package.json +++ b/vendor/simplesamlphp/simplesamlphp/package.json @@ -9,27 +9,27 @@ "build": "webpack -p" }, "dependencies": { - "clipboard": "^2.0.1", - "es6-shim": "^0.35.4", + "clipboard": "^2.0.4", + "es6-shim": "^0.35.5", "font-awesome": "^4.7.0", - "highlight.js": "^9.13.1", - "jquery": "^3.4.0", + "highlight.js": "^9.16.2", + "jquery": "^3.5.0", "jquery-ui": "^1.12.1", - "purecss": "^1.0.0", - "reset-css": "^4.0.1", + "purecss": "^1.0.1", + "reset-css": "^5.0.1", "selectize": "^0.12.6" }, "devDependencies": { - "babel-core": "^6.26.3", - "babel-loader": "^7.1.4", - "copy-webpack-plugin": "^4.6.0", - "css-loader": "^1.0.1", + "@babel/core": "^7.7.5", + "babel-loader": "^8.0.6", + "copy-webpack-plugin": "^5.0.5", + "css-loader": "^3.2.1", + "expose-loader": "^0.7.5", "extract-text-webpack-plugin": "^4.0.0-beta.0", - "node-sass": "^4.10.0", - "sass-loader": "^7.1.0", + "node-sass": "^4.13.1", + "sass-loader": "^7.3.1", "style-loader": "^0.23.1", - "webpack": "^4.26.1", - "webpack-cli": "^3.1.2", - "expose-loader": "^0.7.5" + "webpack": "^4.41.2", + "webpack-cli": "^3.3.10" } } diff --git a/vendor/simplesamlphp/simplesamlphp/phpcs.xml b/vendor/simplesamlphp/simplesamlphp/phpcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..a37323d43995324c56a5307aec958f42bf5e1f4f --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/phpcs.xml @@ -0,0 +1,76 @@ +<?xml version="1.0"?> +<ruleset name="SimpleSAMLphp ruleset"> + <config name="ignore_warnings_on_exit" value="1"/> + + <description> + By default it is less stringent about long lines than other coding standards + </description> + + <file>bin</file> + <file>config-templates</file> + <file>lib</file> + <file>metadata-templates</file> + <file>modules/admin</file> + <file>modules/core</file> + <file>modules/cron</file> + <file>modules/multiauth</file> + <file>modules/portal</file> + <file>modules/saml</file> + <file>src</file> + <file>tests</file> + <file>www</file> + + <!-- Exclude deprecated classes; they are removed in SSP 2.0 --> + <exclude-pattern>lib/SimpleSAML/Auth/LDAP.php</exclude-pattern> + <exclude-pattern>lib/SimpleSAML/Auth/TimeLimitedToken.php</exclude-pattern> + <exclude-pattern>lib/SimpleSAML/Bindings/Shib13/*</exclude-pattern> + <exclude-pattern>lib/SimpleSAML/Utilities.php</exclude-pattern> + <exclude-pattern>lib/SimpleSAML/XML/Shib13/*</exclude-pattern> + <exclude-pattern>modules/saml/lib/IdP/SAML1.php</exclude-pattern> + <exclude-pattern>modules/saml/www/sp/saml1-acs.php</exclude-pattern> + <exclude-pattern>tests/lib/SimpleSAML/Auth/TimeLimitedTokenTest.php</exclude-pattern> + <exclude-pattern>www/shib13</exclude-pattern> + + <!-- Exclude old PHP templates (and related); they are removed in SSP 2.0 --> + <exclude-pattern>modules/*/templates/*.tpl.php</exclude-pattern> + <exclude-pattern>templates/*.tpl.php</exclude-pattern> + <exclude-pattern>www/resources/jquery-ui-1.8.js</exclude-pattern> + <exclude-pattern>www/resources/clipboard.min.js</exclude-pattern> + <exclude-pattern>www/resources/jquery-1.8.js</exclude-pattern> + + <!-- This is the rule we inherit from. If you want to exlude some specific rules, see the docs on how to do that --> + <rule ref="PSR12"/> + + <!-- Lines can be a little bit longer before they break the build --> + <rule ref="Generic.Files.LineLength"> + <properties> + <property name="lineLimit" value="120"/> + <property name="absoluteLineLimit" value="130"/> + </properties> + + <!-- Exclude files with long lines that we cannot immediately fix --> + <exclude-pattern>tests/lib/SimpleSAML/Metadata/MetaDataStorageSourceTest.php</exclude-pattern> + <exclude-pattern>tests/lib/SimpleSAML/Metadata/SAMLParserTest.php</exclude-pattern> + </rule> + + <!-- Ignore these warnings until PHP 7.1 becomes the minimum required version --> + <rule ref="PSR12.Properties.ConstantVisibility"> + <exclude-pattern>lib/*</exclude-pattern> + <exclude-pattern>modules/*</exclude-pattern> + <exclude-pattern>tests/*</exclude-pattern> + </rule> + + <!-- Ignore wrong casing until we can rename then in SSP 2.0 --> + <rule ref="PSR1.Methods.CamelCapsMethodName"> + <exclude-pattern>lib/SimpleSAML/XHTML/Template.php</exclude-pattern> + </rule> + + <!-- Ignore files with side effects that we cannot fix --> + <rule ref="PSR1.Files.SideEffects"> + <exclude-pattern>bin/*</exclude-pattern> + <exclude-pattern>lib/_autoload_modules.php</exclude-pattern> + <exclude-pattern>tests/_autoload_modules.php</exclude-pattern> + <exclude-pattern>www/_include.php</exclude-pattern> + </rule> +</ruleset> + diff --git a/vendor/simplesamlphp/simplesamlphp/phpunit.xml b/vendor/simplesamlphp/simplesamlphp/phpunit.xml index 6915e5c0b1ba3648aa2142556c471024390568ec..4a7750b5f74ba104a4bec91b0571d517d88ebca0 100644 --- a/vendor/simplesamlphp/simplesamlphp/phpunit.xml +++ b/vendor/simplesamlphp/simplesamlphp/phpunit.xml @@ -7,7 +7,6 @@ convertWarningsToExceptions="true" processIsolation="false" stopOnFailure="false" - syntaxCheck="false" bootstrap="./tests/bootstrap.php"> <testsuites> <testsuite name="Unit tests"> @@ -17,13 +16,13 @@ <filter> <whitelist processUncoveredFilesFromWhitelist="true"> <directory suffix=".php">./lib/</directory> - <directory suffix=".php">./modules/consent/lib/</directory> <directory suffix=".php">./modules/core/lib/</directory> <directory suffix=".php">./modules/saml/lib/</directory> <exclude> <directory>./vendor/</directory> <directory>./tests/</directory> <file>./lib/SimpleSAML/Utils/HttpAdapter.php</file> + <file>./lib/SimpleSAML/Auth/LDAP.php</file> </exclude> </whitelist> </filter> diff --git a/vendor/simplesamlphp/simplesamlphp/psalm.xml b/vendor/simplesamlphp/simplesamlphp/psalm.xml index 0ccc8b80b8654966efad5c3df94f7d520c6dc7d9..5a230843ec723656c9ef1dcd912045848ea34d71 100644 --- a/vendor/simplesamlphp/simplesamlphp/psalm.xml +++ b/vendor/simplesamlphp/simplesamlphp/psalm.xml @@ -1,18 +1,48 @@ <?xml version="1.0"?> <psalm name="SimpleSAMLphp" - stopOnFirstError="false" useDocblockTypes="true" totallyTyped="false" + hideExternalErrors="true" + allowCoercionFromStringToClassConst="true" + allowStringToStandInForClass="true" > <projectFiles> - <directory name="lib/SimpleSAML/Utils" /> + <directory name="lib/SimpleSAML" /> + + <!-- Replaces all modules/... with this one-liner for 2.0 + <directory name="modules" /> + --> + <directory name="modules/admin" /> + <directory name="modules/core" /> + <directory name="modules/cron" /> + <directory name="modules/exampleauth" /> + <directory name="modules/multiauth" /> + <directory name="modules/portal" /> + <directory name="modules/saml" /> + + <directory name="tests" /> + + <!-- Ignore deprecated classes --> + <ignoreFiles> + <file name="lib/SimpleSAML/Auth/DefaultAuth.php" /> + <file name="lib/SimpleSAML/Auth/TimeLimitedToken.php" /> + <file name="lib/SimpleSAML/Utilities.php" /> + + <!-- Ignore deprecated PHP-templates - Remove for 2.0 --> + <file name="modules/**/templates/*.tpl.php" /> + <file name="modules/saml/templates/proxy/*.tpl.php" /> + <file name="modules/saml/templates/sp/*.tpl.php" /> + + <directory name="vendor" /> + </ignoreFiles> </projectFiles> <issueHandlers> <LessSpecificReturnType errorLevel="info" /> <!-- level 3 issues - slightly lazy code writing, but probably low false-negatives --> + <DeprecatedClass errorLevel="info" /> <DeprecatedMethod errorLevel="info" /> <MissingClosureReturnType errorLevel="info" /> @@ -27,6 +57,50 @@ <MissingParamType errorLevel="info" /> <UnusedClass errorLevel="info" /> <PossiblyUnusedMethod errorLevel="info" /> - <UntypedParam errorLevel="info" /> + + <!-- Ignore these errors until we are fully typehinted --> + <DocblockTypeContradiction errorLevel="suppress" /> + <RedundantConditionGivenDocblockType errorLevel="suppress" /> + + <!-- See #1141 --> + <MissingDependency> + <errorLevel type="suppress"> + <file name="lib/SimpleSAML/HTTP/Router.php" /> + </errorLevel> + </MissingDependency> + + <!-- Ignore UnresolvableInclude on CLI-scripts --> + <UnresolvableInclude> + <errorLevel type="suppress"> + <file name="bin/*.php" /> + <file name="lib/SimpleSAML/Module.php" /> + <file name="lib/SimpleSAML/XHTML/Template.php" /> + <file name="modules/*/bin/*.php" /> + <file name="tests/bootstrap.php" /> + <file name="tests/routers/configLoader.php" /> + </errorLevel> + </UnresolvableInclude> + + <!-- Ignore MissingFile on www-scripts - Remove for 2.0 --> + <MissingFile> + <errorLevel type="suppress"> + <file name="www/*.php" /> + <file name="modules/*/www/*.php" /> + </errorLevel> + </MissingFile> + + <!-- Suppress PHPunit-issue --> + <PropertyNotSetInConstructor> + <errorLevel type="suppress"> + <directory name="tests" /> + </errorLevel> + </PropertyNotSetInConstructor> </issueHandlers> + + <stubs> + <file name="vendor/simplesamlphp/simplesamlphp-test-framework/stubs/krb5.php" /> + <file name="vendor/simplesamlphp/simplesamlphp-test-framework/stubs/memcache.php" /> + <file name="vendor/simplesamlphp/simplesamlphp-test-framework/stubs/memcached.php" /> + <file name="vendor/simplesamlphp/simplesamlphp-test-framework/stubs/predis.php" /> + </stubs> </psalm> diff --git a/vendor/simplesamlphp/simplesamlphp/src/css/default.scss b/vendor/simplesamlphp/simplesamlphp/src/css/default.scss index 77a9fb011ec4b2991533ccefd41e8388f723bd39..7ce9b78e79f588d23b560944728bd62b3aea04f1 100644 --- a/vendor/simplesamlphp/simplesamlphp/src/css/default.scss +++ b/vendor/simplesamlphp/simplesamlphp/src/css/default.scss @@ -53,6 +53,10 @@ body { vertical-align: middle; } +i { + font-style: italic; +} + h1 { margin: 1em 0; font-size: 2em; @@ -115,6 +119,9 @@ pre, code, kbd, samp, tt { //background-color: rgba(0, 0, 0, .1); padding: 0 .2rem; } +.xmldata { + font-family: monospace; +} /************************************************************ * BUTTONS @@ -129,8 +136,15 @@ pre, code, kbd, samp, tt { margin-right: 4px; } -.pure-button-red, -a.pure-button-red { +.pure-button { + &:hover, &:focus { + background-color: #555; + padding: .5em 1em; + color: #fff; + } +} + +.pure-button-red { background-color: rgb(219, 1, 0); color: #fff; &:hover, &:focus { @@ -183,6 +197,10 @@ a.pure-button-red { border: 1px solid #E6E6E6; } +.pure-button-group.two-elements form { + display: inline; +} + .pure-button-group.two-elements .pure-button:first-child { border-right: none; } @@ -465,10 +483,10 @@ CONTENT padding: 0.5em 1em; display: inline-block; min-height: 1em; - max-height: 20em; width: 100%; height: 100%; white-space: pre-wrap; + font-family: monospace; &::selection { color: black; background: $lighYellow; @@ -830,6 +848,8 @@ div.preferredidp { padding: .25em; display: block; color: black; + background-color: #f4f4f4; + border-top: solid 1px #bbb; &:focus, &:hover { background-color: #555; color: white; @@ -857,3 +877,7 @@ div.preferredidp { } } } + +.hidden { + display: none; +} diff --git a/vendor/simplesamlphp/simplesamlphp/src/js/bundle.js b/vendor/simplesamlphp/simplesamlphp/src/js/bundle.js index 2766b06fabec8ee653d7e356f357a7e2a3355c01..14e550b245ae1615e8b667e0b57f283770b9a380 100644 --- a/vendor/simplesamlphp/simplesamlphp/src/js/bundle.js +++ b/vendor/simplesamlphp/simplesamlphp/src/js/bundle.js @@ -4,11 +4,12 @@ import "selectize/dist/js/selectize"; import hljs from "highlight.js/lib/highlight"; import xml from "highlight.js/lib/languages/xml"; import php from "highlight.js/lib/languages/php"; +import json from "highlight.js/lib/languages/json"; $(document).ready(function () { // get available languages let languages = $.map($('#language-selector option'), function (option) { - return option.text.toLowerCase(); + return option.text.toLowerCase(); }); // initialize selectize @@ -29,7 +30,7 @@ $(document).ready(function () { }); // expander boxes - $('.expandable > .expander').on('click', function(e) { + $('.expandable > .expander').on('click', function (e) { e.preventDefault(); let target = $(e.currentTarget); target.parents('.expandable').toggleClass('expanded'); @@ -39,15 +40,16 @@ $(document).ready(function () { // syntax highlight hljs.registerLanguage('xml', xml); hljs.registerLanguage('php', php); - $('.code-box-content.xml, .code-box-content.php').each(function(i, block) { + hljs.registerLanguage('json', json); + $('.code-box-content.xml, .code-box-content.php, .code-box-content.json').each(function (i, block) { hljs.highlightBlock(block) }); // clipboard let clipboard = new ClipboardJS('.copy'); - clipboard.on('success', function(e) { - setTimeout(function() { + clipboard.on('success', function (e) { + setTimeout(function () { e.clearSelection(); }, 150); }); -}); \ No newline at end of file +}); diff --git a/vendor/simplesamlphp/simplesamlphp/src/js/logout/logout.js b/vendor/simplesamlphp/simplesamlphp/src/js/logout/logout.js new file mode 100644 index 0000000000000000000000000000000000000000..a1b543486b72ce56437d515f8d73282d7f683ec5 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/src/js/logout/logout.js @@ -0,0 +1,262 @@ +/** + * This class is used for the logout page. + * + * It allows the user to start logout from all the services where a session exists (if any). Logout will be + * triggered by loading an iframe where we send a SAML logout request to the SingleLogoutService endpoint of the + * given SP. After successful response back from the SP, we will load a small template in the iframe that loads + * this class again (IFrameLogoutHandler branch of the constructor), and sends a message to the main page + * (core:logout-iframe branch). + * + * The iframes communicate the logout status for their corresponding association via an event message, for which the + * main page is listening (the clearAssociation() method). Upon reception of a message, we'll check if there was an + * error or not, and call the appropriate method (either completed() or failed()). + */ +class SimpleSAMLLogout { + constructor(page) + { + if (page === 'core:logout-iframe') { // main page + this.populateData(); + if (Object.keys(this.sps).length === 0) { + // all SPs completed logout, this was a reload + this.btncontinue.click(); + } + this.btnall.on('click', this.initLogout.bind(this)); + window.addEventListener('message', this.clearAssociation.bind(this), false); + } else if (page === 'IFrameLogoutHandler') { // iframe + let data = $('i[id="data"]'); + let message = { + spId: $(data).data('spid') + }; + if ($(data).data('error')) { + message.error = $(data).data('error'); + } + + window.parent.postMessage(JSON.stringify(message), SimpleSAMLLogout.getOrigin()); + } + } + + + /** + * Clear an association when it is signaled from an iframe (either failed or completed). + * + * @param event The event containing the message from the iframe. + */ + clearAssociation(event) + { + if (event.origin !== SimpleSAMLLogout.getOrigin()) { + // we don't accept events from other origins + return; + } + let data = JSON.parse(event.data); + if (typeof data.error === 'undefined') { + this.completed(data.spId); + } else { + this.failed(data.spId, data.error); + } + + if (Object.keys(this.sps).length === 0) { + if (this.nfailed === 0) { + // all SPs successfully logged out, continue w/o user interaction + this.btncontinue.click(); + } + } + } + + + /** + * Mark logout as completed for a given SP. + * + * This method will be called by the SimpleSAML\IdP\IFrameLogoutHandler class upon successful logout from the SP. + * + * @param id The ID of the SP that completed logout successfully. + */ + completed(id) + { + if (typeof this.sps[id] === 'undefined') { + return; + } + + this.sps[id].icon.removeClass('fa-spin'); + this.sps[id].icon.removeClass('fa-circle-o-notch'); + this.sps[id].icon.addClass('fa-check-circle'); + this.sps[id].element.toggle(); + delete this.sps[id]; + this.finish(); + } + + + /** + * Mark logout as failed for a given SP. + * + * This method will be called by the SimpleSAML\IdP\IFrameLogoutHandler class upon logout failure from the SP. + * + * @param id The ID of the SP that failed to complete logout. + * @param reason The reason why logout failed. + */ + failed(id, reason) + { + if (typeof this.sps[id] === 'undefined') { + return; + } + + this.sps[id].element.addClass('error'); + $(this.sps[id].icon).removeClass('fa-spin fa-circle-o-notch'); + $(this.sps[id].icon).addClass('fa-exclamation-circle'); + + if (this.errmsg.hasClass('hidden')) { + this.errmsg.removeClass('hidden'); + } + if (this.errfrm.hasClass('hidden')) { + this.errfrm.removeClass('hidden'); + } + + delete this.sps[id]; + this.nfailed++; + this.finish(); + } + + + /** + * Finish the logout process, acting according to the current situation: + * + * - If there were failures, an error message is shown telling the user to close the browser. + * - If everything went ok, then we just continue back to the service that started logout. + * + * Note: this method won't do anything if there are SPs pending logout (e.g. waiting for the timeout). + */ + finish() + { + if (Object.keys(this.sps).length > 0) { // pending services + return; + } + + if (typeof this.timeout !== 'undefined') { + clearTimeout(this.timeout); + } + + if (this.nfailed > 0) { // some services failed to log out + this.errmsg.removeClass('hidden'); + this.errfrm.removeClass('hidden'); + this.actions.addClass('hidden'); + } else { // all services done + this.btncontinue.click(); + } + } + + + /** + * Get the origin of the current page. + */ + static getOrigin() + { + let origin = window.location.origin; + if (!origin) { + // IE < 11 does not support window.location.origin + origin = window.location.protocol + "//" + window.location.hostname + + (window.location.port ? ':' + window.location.port : ''); + } + return origin; + } + + + /** + * This method starts logout on all SPs where we are currently logged in. + * + * @param event The click event on the "Yes, all services" button. + */ + initLogout(event) + { + event.preventDefault(); + + this.btnall.prop('disabled', true); + this.btncancel.prop('disabled', true); + Object.keys(this.sps).forEach((function (id) { + this.sps[id].status = 'inprogress'; + this.sps[id].startTime = (new Date()).getTime(); + this.sps[id].iframe.attr('src', this.sps[id].iframe.data('url')); + this.sps[id].icon.addClass('fa-spin'); + }).bind(this)); + this.initTimeout(); + } + + + /** + * Set timeouts for all logout operations. + * + * If an SP didn't reply by the timeout, we'll mark it as failed. + */ + initTimeout() + { + let timeout = 10; + + for (const id in this.sps) { + if (typeof id === 'undefined') { + continue; + } + if (!this.sps.hasOwnProperty(id)) { + continue; + } + if (this.sps[id].status !== 'inprogress') { + continue; + } + let now = ((new Date()).getTime() - this.sps[id].startTime) / 1000; + + if (this.sps[id].timeout <= now) { + this.failed(id, 'Timed out', window.document); + } else { + // get the lowest timeout we have + if ((this.sps[id].timeout - now) < timeout) { + timeout = this.sps[id].timeout - now; + } + } + } + + if (Object.keys(this.sps).length > 0) { + // we have associations left, check them again as soon as one expires + this.timeout = setTimeout(this.initTimeout.bind(this), timeout * 1000); + } else { + this.finish(); + } + } + + + /** + * This method populates the data we need from data-* properties in the page. + */ + populateData() + { + this.sps = {}; + this.btnall = $('button[id="btn-all"]'); + this.btncancel = $('button[id="btn-cancel"]'); + this.btncontinue = $('button[id="btn-continue"]'); + this.actions = $('div[id="original-actions"]'); + this.errmsg = $('div[id="error-message"]'); + this.errfrm = $('form[id="error-form"]'); + this.nfailed = 0; + let that = this; + + // initialise SP status and timeout arrays + $('li[id^="sp-"]').each(function () { + let id = $(this).data('id'); + let iframe = $('iframe[id="iframe-' + id + '"]'); + let status = $(this).data('status'); + + switch (status) { + case 'failed': + that.nfailed++; + case 'completed': + return; + } + + that.sps[id] = { + status: status, + timeout: $(this).data('timeout'), + element: $(this), + iframe: iframe, + icon: $('i[id="icon-' + id + '"]'), + }; + }); + } +} + +export default SimpleSAMLLogout; diff --git a/vendor/simplesamlphp/simplesamlphp/src/js/logout/main.js b/vendor/simplesamlphp/simplesamlphp/src/js/logout/main.js new file mode 100644 index 0000000000000000000000000000000000000000..16c508f9ce3506785070cfada90d71c12f9a7f73 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/src/js/logout/main.js @@ -0,0 +1,5 @@ +import SimpleSAMLLogout from './logout.js'; + +$(document).ready(function () { + new SimpleSAMLLogout($('body').attr('id')); +}); \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/templates/IFrameLogoutHandler.twig b/vendor/simplesamlphp/simplesamlphp/templates/IFrameLogoutHandler.twig index ad4d4a69856df57610541a23844c1d6f8046f667..946dd71a2c934cd2be838e810dc30977877841c1 100644 --- a/vendor/simplesamlphp/simplesamlphp/templates/IFrameLogoutHandler.twig +++ b/vendor/simplesamlphp/simplesamlphp/templates/IFrameLogoutHandler.twig @@ -1,16 +1,16 @@ -<!DOCTYPE html> -<html> - <head> - <title>Logout response from {{ assocId|escape('html') }}</title> - <script> +{% set data = {}|merge({ "spid": spId }) %} {% if errorMsg is defined %} - window.parent.logoutFailed("{{ spId }}", "{{ errorMsg|escape }}"); -{% else %} - window.parent.logoutCompleted("{{ spId }}"); + {% set data = data|merge({ "error": errorMsg }) %} {% endif %} - </script> - </head> - <body> - </body> -</html> +{% extends "base.twig" %} +{% block header %}{% endblock header %} +{% block footer %}{% endblock footer %} +{% block content %} + + <i id="data"{% for k,v in data %} data-{{ k }}="{{ v }}"{% endfor %}></i> +{% endblock content %} +{% block postload %} + + <script src="{{ asset('js/logout.js') }}"></script> +{% endblock postload %} diff --git a/vendor/simplesamlphp/simplesamlphp/templates/_footer.twig b/vendor/simplesamlphp/simplesamlphp/templates/_footer.twig index a72a31c764f25061142a62ae230cfcbac051bc2c..5cfb974b9d8bd91a49bb471a6b98dee26ad37301 100644 --- a/vendor/simplesamlphp/simplesamlphp/templates/_footer.twig +++ b/vendor/simplesamlphp/simplesamlphp/templates/_footer.twig @@ -1,13 +1,11 @@ - <div id="footer"> - <div class="wrap"> - <div class="center copyrights"> - © 2007-{{ year }} - <a href="https://simplesamlphp.org/">SimpleSAMLphp</a> - </div> - <div class="logo-footer-right show-for-large"> - <div class="logo-footer"> - <img class="pure-img" src="/{{ baseurlpath }}resources/icons/ssplogo-fish-small.png" alt="Small fish logo"> - </div> - </div> - </div> +<div id="footer"> + <div class="wrap"> + <div class="center copyrights">© 2007-{{ year }} <a href="https://simplesamlphp.org/">SimpleSAMLphp</a> + </div> + <div class="logo-footer-right show-for-large"> + <div class="logo-footer"> + <img class="pure-img" src="/{{ baseurlpath }}resources/icons/ssplogo-fish-small.png" alt="Small fish logo"> </div> + </div> + </div> +</div> diff --git a/vendor/simplesamlphp/simplesamlphp/templates/_header.twig b/vendor/simplesamlphp/simplesamlphp/templates/_header.twig index bc52df15e195c39bf2d6045382e72f4520d3ce1e..e23d3854710fe89454fc0cae27bcf290092d60b3 100644 --- a/vendor/simplesamlphp/simplesamlphp/templates/_header.twig +++ b/vendor/simplesamlphp/simplesamlphp/templates/_header.twig @@ -1,81 +1,79 @@ - <div id="header"> - <div class="wrap"> - <div class="left"> - <div class="v-center logo-header"> - <div id="logo"> - {%- if header == 'SimpleSAMLphp' %} - - <span class="simple">Simple</span>{# -#} - <span class="saml">SAML</span>{# -#} - <span class="simple">php</span> - {%- else %} - - {{ header }} - {%- endif %} - - <img class="pure-img hidden" src="" alt="LOGO"> - </div> - </div> - </div> - {% if not hideLanguageBar -%} - <div class="right"> - <a href="" id="menuLink" class="menu-link hide-for-large"> - <span class="fa fa-globe fa-2x" aria-hidden="true"></span> - </a> - </div> - {% endif %} - {% if not hideLanguageBar -%} - <div id="languagebar" class="hide-for-large"> - <div id="menu"> - <div class="pure-menu"> - <ul class="pure-menu-list"> - {% for key, lang in languageBar -%} - {% if key == currentLanguage -%} - <li><a class="pure-menu-heading" href="#">{{ lang.name }}</a><li> - {% else -%} - {% if lang.url -%} - <li class="pure-menu-item"><a href="{{ lang.url }}{%- spaceless %} - {% if queryParams -%}&{% endif -%} - {% for name, value in queryParams -%} - {%- if not loop.first %}&{% endif -%} - {%- if value %}{{ name }}={{ value }}{% else %}{{ name }}{%- endif %} - {%- endfor %}"{% endspaceless %} class="pure-menu-link">{{ lang.name }}</a></li> - {% endif -%} - {% endif -%} - {% endfor -%} - </ul> - </div> - </div> - </div> - {%- endif -%} - <div class="right show-for-large"> - <div class="v-center language-bar"> - <form id="language-form" class="pure-form" method="get"> - {% if not hideLanguageBar -%} - <div id="languagebar"> - {% for name, value in queryParams -%} - {% if value -%} - <input type="hidden" name="{{ name }}" value="{{ value }}" /> - {%- else -%} - <input type="hidden" name="{{ name }}" /> - {%- endif -%} - {%- endfor %} - - <select class="pure-input-1-4 language-menu selectize" name="language" - id="language-selector"> - {% for key, lang in languageBar -%} - {% if key == currentLanguage -%} - <option value="{{ key }}" selected="selected"> {{ lang.name }}</option> - {% else -%} - <option value="{{ key }}">{{ lang.name }}</option> - {% endif -%} - {% endfor -%} - </select> - </div> - {% endif -%} - </form> - </div> <!--language-bar--> - </div><!--show-for-large--> - </div> <!-- wrap --> - </div> <!-- header --> +<div id="header"> + <div class="wrap"> + <div class="left"> + <div class="v-center logo-header"> + <div id="logo"> + {% if header == 'SimpleSAMLphp' %} + <span class="simple">Simple</span>{# -#} + <span class="saml">SAML</span>{# -#} + <span class="simple">php</span> + {% else %} + {{ header }} + {% endif %} + <img class="pure-img hidden" src="" alt="{% trans %}Logo{% endtrans %}"> + </div> + </div> + </div> + {% if not hideLanguageBar %} + <div class="right"> + <a href="" id="menuLink" class="menu-link hide-for-large"> + <span class="fa fa-globe fa-2x" aria-hidden="true"></span> + </a> + </div> + <div id="languagebar" class="hide-for-large"> + <div id="menu"> + <div class="pure-menu"> + <ul class="pure-menu-list"> + {% for key, lang in languageBar %} + {% if key == currentLanguage %} + <li><a class="pure-menu-heading" href="#">{{ lang.name }}</a><li> + {% else %} + {% if lang.url %} + <li class="pure-menu-item"><a href="{{ lang.url }} + {%- if queryParams %}&{% endif %} + {%- for name, value in queryParams %} + {%- if not loop.first %}&{% endif %} + {%- if value %}{{ name }}={{ value }}{% else %}{{ name }}{% endif %} + {%- endfor %}" class="pure-menu-link">{{ lang.name }}</a></li> + {% endif %} + {% endif %} + {% endfor %} + </ul> + </div> + </div> + </div> + {% endif %} + <div class="right show-for-large"> + <div class="v-center language-bar"> + <form id="language-form" class="pure-form" method="get"> + {% if not hideLanguageBar %} + <div id="languagebar"> + {% for name, value in queryParams %} + {% if value %} + <input type="hidden" name="{{ name }}" value="{{ value }}" /> + {% else %} + <input type="hidden" name="{{ name }}" /> + {% endif %} + {% endfor %} + <select class="pure-input-1-4 language-menu selectize" name="language" id="language-selector"> + {% for key, lang in languageBar %} + {% if key == currentLanguage %} + <option value="{{ key }}" selected="selected"> {{ lang.name }}</option> + {% else %} + <option value="{{ key }}">{{ lang.name }}</option> + {% endif %} + {% endfor %} + </select> + <noscript> + <button type="submit" class="pure-button"> + <i class="fa fa-arrow-right"></i> + </button> + </noscript> + </div> + {% endif %} + </form> + </div>{# language bar #} + </div>{# show-for-large #} + </div>{# wrap #} +</div>{# header #} diff --git a/vendor/simplesamlphp/simplesamlphp/templates/auth_status.twig b/vendor/simplesamlphp/simplesamlphp/templates/auth_status.twig index 41b5f3fcae500ff7f6c2a640eb141e0bd60b2b66..9965dd37601b028f1294b9b560403c133ef1020a 100644 --- a/vendor/simplesamlphp/simplesamlphp/templates/auth_status.twig +++ b/vendor/simplesamlphp/simplesamlphp/templates/auth_status.twig @@ -17,9 +17,8 @@ {% embed '_table.twig' -%} {% block namecol -%} - {% set attr = ('{attributes:attribute_'~(name|lower)~'}') %} - {% set translated = attr|trans %} - <td class="attrname">{% if translated != attr %} {{ translated }} <br>{% endif %} <samp>{{ name }}</samp></td> + {% set translated = name|trans %} + <td class="attrname">{% if translated != name %} {{ translated }} <br>{% endif %} <samp>{{ name }}</samp></td> {% endblock %} @@ -68,6 +67,40 @@ {% endif %} + <dl> + <dt>{% trans %}Debug information to be used by your support staff{% endtrans %}</dt> + {%- embed "includes/expander.twig" %} + {%- block content %} + + <dl> + <dd>{% trans %}Tracking number{% endtrans %}</dd> + <dd class="code-box hljs"> + <div class="pure-button-group top-right-corner"> + <a class="pure-button copy hljs" data-clipboard-target="#trackid" + title="{% trans %}Copy to clipboard{% endtrans %}"><span class="fa fa-copy"></span></a> + </div> + <code id="trackid" class="code-box-content">{{ trackid }}</code> + </dd> + {%- if authData %} + + <dd>{% trans %}Information about your current session{% endtrans %}</dd> + <dd class="code-box hljs"> + <div class="pure-button-group top-right-corner"> + <a class="pure-button copy hljs" data-clipboard-target="#authdata" + title="{% trans %}Copy to clipboard{% endtrans %}"><span class="fa fa-copy"></span></a> + </div> + <div id="authdata" class="code-box-content php"> + {{- authData|json_encode(constant('JSON_UNESCAPED_SLASHES') b-or constant('JSON_PRETTY_PRINT')) |raw -}} + </div> + </dd> + {%- endif %} + + </dl> + {%- endblock content %} + {%- endembed %} + + </dl> + <br> {% if logout %} <h2>{% trans %}Logout{% endtrans %}</h2> diff --git a/vendor/simplesamlphp/simplesamlphp/templates/base.twig b/vendor/simplesamlphp/simplesamlphp/templates/base.twig index 29228797c37b932ecba2ae862f9a17ad32818f41..ea464b7caa868809f7d1b6f2deaa86715cdd6b8c 100644 --- a/vendor/simplesamlphp/simplesamlphp/templates/base.twig +++ b/vendor/simplesamlphp/simplesamlphp/templates/base.twig @@ -1,50 +1,34 @@ +{% spaceless %} <!DOCTYPE html> <html lang="{{ currentLanguage }}" xml:lang="{{ currentLanguage }}"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" content="initial-scale=1.0"> <title>{{ pagetitle }}</title> - <link rel="stylesheet" type="text/css" href="{{ asset("css/stylesheet.css") }}"> - <link rel="icon" type="image/icon" href="/{{ baseurlpath }}resources/icons/favicon.ico"> + <link rel="stylesheet" href="{{ asset("css/stylesheet.css") }}"> + <link rel="icon" href="/{{ baseurlpath }}resources/icons/favicon.ico"> {% if isRTL %} - - <link rel="stylesheet" type="text/css" href="/{{ baseurlpath }}assets/css/src/default-rtl.css" /> + <link rel="stylesheet" href="{{ asset("assets/css/src/default-rtl.css") }}"> {% endif %} - <meta name="robots" content="noindex, nofollow"> - <link rel="preload" href="{{ asset('js/bundle.js') }}" as="script" /> - {%- block preload %}{% endblock %} - + <link rel="preload" href="{{ asset('js/bundle.js') }}" as="script"> + {% block preload %}{% endblock %} </head> <body id="{{ templateId }}"> <div id="layout"> - {%- block header %}{% include "_header.twig" %}{% endblock %} - + {% block header %}{% include "_header.twig" %}{% endblock %} <div id="content"> <div class="wrap"> - {%- if not isProduction %} - - <div class="message-box warning"> - {% trans %}You are now accessing a pre-production system. This authentication setup - {#- #} is for testing and pre-production verification only. If someone sent you - {#- #} a link that pointed you here, and you are not <i>a tester</i> you - {#- #} probably got the wrong link, and should <b>not be here</b>.{% endtrans %} - </div> - {% endif -%} - {%- block contentwrapper %} - {%- block content %}{% endblock %} - {%- endblock contentwrapper %} - - </div> - </div><!-- content --> + {% block contentwrapper %}{% block content %}{% endblock %}{% endblock contentwrapper %} + </div> + </div>{# content #} <div id="push"></div> - </div><!-- layout --> + </div>{# layout #} <div id="foot"> - {%- block footer %}{% include "_footer.twig" %}{% endblock %} - + {% block footer %}{% include "_footer.twig" %}{% endblock %} </div> <script src="{{ asset('js/bundle.js') }}"></script> - {%- block postload %}{% endblock %} - + {% block postload %}{% endblock %} </body> </html> +{% endspaceless %} diff --git a/vendor/simplesamlphp/simplesamlphp/templates/includes/expander.twig b/vendor/simplesamlphp/simplesamlphp/templates/includes/expander.twig index 8096b91332caa22e1df26bf548f9f19e31466d7e..0817520d3fca72894a5c740dba9c0108c57ca058 100644 --- a/vendor/simplesamlphp/simplesamlphp/templates/includes/expander.twig +++ b/vendor/simplesamlphp/simplesamlphp/templates/includes/expander.twig @@ -1,11 +1,13 @@ <div class="expandable{% if expanded %} expanded{% endif %}"> + {% if block('general') is defined %} <div class="general"> - {%- block general%}{% endblock %} + {{- block("general") }} </div> + {% endif %} <a tabindex="0" class="expander"></a> <div class="content"> {%- block content %}{% endblock %} </div> - </div> \ No newline at end of file + </div> diff --git a/vendor/simplesamlphp/simplesamlphp/templates/login-ldapmulti.php b/vendor/simplesamlphp/simplesamlphp/templates/login-ldapmulti.php index a53da3ebed54eb61a64264c295818351feb173a4..b4cf136dffa7f0496ddfb0de71f08c09414209f1 100644 --- a/vendor/simplesamlphp/simplesamlphp/templates/login-ldapmulti.php +++ b/vendor/simplesamlphp/simplesamlphp/templates/login-ldapmulti.php @@ -51,7 +51,7 @@ <tr> <td style="padding: .3em;"><?php echo $this->t('password'); ?></td> - <td><input type="password" tabindex="2" name="password" /></td> + <td><input type="password" tabindex="2" name="password" autocomplete="current-password" /></td> </tr> <tr><td></td><td> <button type="submit" tabindex="5" id="mobilesubmit" class="btn"><?php echo $this->t('login_button'); ?></button> diff --git a/vendor/simplesamlphp/simplesamlphp/templates/login.php b/vendor/simplesamlphp/simplesamlphp/templates/login.php index fd0755db98d529e77df255ba1baf0424a8a3ec47..fb1d7b951bf4b97fce84cc4fe4e221c187bd585d 100644 --- a/vendor/simplesamlphp/simplesamlphp/templates/login.php +++ b/vendor/simplesamlphp/simplesamlphp/templates/login.php @@ -43,7 +43,7 @@ </tr> <tr> <td style="padding: .3em;"><?php echo $this->t('password'); ?></td> - <td><input id="password" type="password" tabindex="2" name="password" /></td> + <td><input id="password" type="password" tabindex="2" name="password" autocomplete="current-password" /></td> </tr> <tr> <td></td> diff --git a/vendor/simplesamlphp/simplesamlphp/templates/mailhtml.twig b/vendor/simplesamlphp/simplesamlphp/templates/mailhtml.twig new file mode 100644 index 0000000000000000000000000000000000000000..1f01ce16dad1b887da9b3425d7927a56e8e19c3c --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/templates/mailhtml.twig @@ -0,0 +1,25 @@ +<style type="text/css"> +body { + font-family: sans-serif; +} +ul { + list-style: none; + padding-left: 1em; +} +p { + white-space: pre-line; +} +</style> +<h1>{{ subject }}</h1> + +<p>{{ text }}</p> + +{% for name, values in data %} +<h2>{{ name }}</h2> +<ul> +{% for value in values %} + <li><pre>{{ value }}</pre></li> +{% endfor %} +</ul> + +{% endfor %} diff --git a/vendor/simplesamlphp/simplesamlphp/templates/mailtxt.twig b/vendor/simplesamlphp/simplesamlphp/templates/mailtxt.twig new file mode 100644 index 0000000000000000000000000000000000000000..b560656da3d73d1d219d932fe95212be90a278c3 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/templates/mailtxt.twig @@ -0,0 +1,13 @@ +{% autoescape false %} +# {{ subject }} + +{{ text }} + +{% for name, values in data %} +## {{ name }} +{% for value in values %} +- {{ value }} +{% endfor %} + +{% endfor %} +{% endautoescape %} diff --git a/vendor/simplesamlphp/simplesamlphp/templates/metadata-converter.twig b/vendor/simplesamlphp/simplesamlphp/templates/metadata-converter.twig index d2d936537e0fca5bd129ba0fd1fc8093e833b55d..8c7b5291ebcecb9ae1336c0830690c160d8f74e8 100644 --- a/vendor/simplesamlphp/simplesamlphp/templates/metadata-converter.twig +++ b/vendor/simplesamlphp/simplesamlphp/templates/metadata-converter.twig @@ -1,23 +1,22 @@ {% set pagetitle = 'Metadata parser'|trans %} {% extends "base.twig" %} -{% set i=1 %} +{% set i=1 %} {% block content %} <h1>{{ pagetitle }}</h1> - <form method="post" class="pure-form" enctype="multipart/form-data"> - <h3> {% trans 'XML metadata' %}</h3> + <form method="post" class="pure-form" enctype="multipart/form-data" action="#converted"> + <h3>{% trans 'XML metadata' %}</h3> <div class="pure-control-group"> - <textarea name="xmldata" rows="20" class="text-area edge">{{ xmldata }}</textarea> + <textarea name="xmldata" rows="20" class="text-area edge xmldata">{{ xmldata }}</textarea> </div> <br> <div class="center"> <div class="pure-button-group two-elements" role="group"> <label class="pure-button"> <span class="fa fa-folder-open"></span>{{ 'or select a file:'|trans }} - <input type="file" name="xmlfile" class="hidden" multiple> + <input type="file" name="xmlfile" class="hidden" id="file-input"> </label> - {#needs translation#} - <label id="show-file" class="pure-button hollow show-files" disabled>No file selected.</label> + <label id="show-file" class="pure-button hollow show-files" disabled>{{ 'No file selected.'|trans }}</label> </div> <br> <button class="pure-button pure-button-red pure-input-1-3">{{ 'Parse'|trans }}</button> @@ -26,7 +25,7 @@ {% if output -%} <br> - <h2>{{ 'Converted metadata'|trans }}</h2> + <h2 id="converted">{{ 'Converted metadata'|trans }}</h2> {% for type, text in output if text -%} {# spaceless is to work around a clipboard.js bug that would add extra whitespace #} {% spaceless %} @@ -47,4 +46,15 @@ {%- endfor -%} {% endif -%} {% endblock content -%} - +{% block postload %} +<script> + $('body').on('change', '#file-input', function () { + var files = this.files; + var fileNames = []; + for (var i = 0; i < files.length; i++) { + fileNames.push(files.item(i).name); + } + $('#show-file').html(fileNames.join(", ")); + }); +</script> +{% endblock postload %} diff --git a/vendor/simplesamlphp/simplesamlphp/templates/metadata.php b/vendor/simplesamlphp/simplesamlphp/templates/metadata.tpl.php similarity index 100% rename from vendor/simplesamlphp/simplesamlphp/templates/metadata.php rename to vendor/simplesamlphp/simplesamlphp/templates/metadata.tpl.php diff --git a/vendor/simplesamlphp/simplesamlphp/templates/metadata.twig b/vendor/simplesamlphp/simplesamlphp/templates/metadata.twig index cac105104175c14125ce4fdeeac456d3fad2b6bc..4d3903533689fcb890d6d5cbd51077de9e285ba7 100644 --- a/vendor/simplesamlphp/simplesamlphp/templates/metadata.twig +++ b/vendor/simplesamlphp/simplesamlphp/templates/metadata.twig @@ -1,54 +1,62 @@ {% set pagetile = 'SimpleSAMLphp Show Metadata'|trans %} {% extends 'base.twig' %} {% block content %} - <h2>{{ header }}</h2> - <p>{{ metadata_intro }}</p> + <h2>{% trans %}Metadata{% endtrans %}</h2> + <dl> + <dd>{{ metadata_intro }}</dd> -{% if metaurl is defined %} - <p>{{ 'You can get the metadata xml on a dedicated URL:' | trans }}</p> - <div class="input-group"> - <pre id="metadataurl" class="input-left">{{ metaurl }}</pre> - <button data-clipboard-target="#metadataurl" id="btnurl" class="pure-button right clipboard-btn copy"> - <span class="fa fa-copy"></span> - </button> - </div> -{% endif %} + {% if metaurl is defined %} + <dd>{% trans %}You can get the metadata xml on a dedicated URL:{% endtrans %}</dd> + <dd class="code-box hljs"> + <div class="pure-button-group top-right-corner"> + <a class="pure-button copy hljs" data-clipboard-target="#url" + title="{% trans %}Copy to clipboard{% endtrans %}"><span class="fa fa-copy"></span></a> + <a class="pure-button hljs" href="{{ metaurl }}"> + <span class="fa fa-external-link-square"></span> + </a> + </div> + <code id="url" class="code-box-content">{{ metaurl }}</code> + </dd> + {% endif %} - <h2>{{ 'Metadata' | trans }}</h2> - <div class="code-box"> - <div class="code-box-title"> - <p>{{ 'In SAML 2.0 Metadata XML format:' | trans }}</p> - <button data-clipboard-target="#xmlmetadata" id="btnxml" class="pure-button right clipboard-btn copy"> - <span class="fa fa-copy"></span> - </button> - </div> - <div class="code-box-content"> - <pre id="xmlmetadata">{{ metadata | raw }}</pre> - </div> - </div> + <dt>{% trans %}SAML Metadata{% endtrans %}</dt> + <dd>{% trans %}In SAML 2.0 Metadata XML format:{% endtrans %}</dd> + <dd class="code-box hljs"> + <div class="pure-button-group top-right-corner"> + <a class="pure-button copy hljs" data-clipboard-target="#xml-metadata" + title="{% trans %}Copy to clipboard{% endtrans %}"><span class="fa fa-copy"></span></a> + </div> + <div id="xml-metadata" class="code-box-content xml">{{ metadata|raw }}</div> + </dd> + <dt>{% trans %}SimpleSAMLphp Metadata{% endtrans %}</dt> + <dd>{% trans %}Use this if you are using a SimpleSAMLphp entity on + {#- #} the other side:{% endtrans %}</dd> + <dd class="code-box hljs"> + <div class="pure-button-group top-right-corner"> + <a class="pure-button copy hljs" data-clipboard-target="#php-metadata" + title="{% trans %}Copy to clipboard{% endtrans %}"><span class="fa fa-copy"></span></a> + </div> + <div id="php-metadata" class="code-box-content php"> + {#- #}{{ metadataflat|raw }}{# -#} + </div> + </dd> + {% if certdata is defined %} + <dt>{% trans %}Certificates{% endtrans %}</dt> + <p>{% trans %}Download the X509 certificates as PEM-encoded files.{% endtrans %}</p> - <div class="code-box"> - <div class="code-box-title"> - <p>{{ 'In SimpleSAMLphp flat file format - use this if you are using a SimpleSAMLphp entity on the other side:' | trans }}</p> - <button data-clipboard-target="#phpmetadata" id="btnphp" class="pure-button right clipboard-btn copy"> - <span class="fa fa-copy"></span> - </button> - </div> - <div class="code-box-content"> - <pre id="phpmetadata">{{ metadataflat | raw }}</pre> - </div> - </div> + <ul> + {% for cert in certdata %} -{% if certdata is defined %} - <h2>{{ 'Certificates' |trans }}</h2> - <p>{{ 'Download the X509 certificates as PEM-encoded files.' |trans }}</p> + <li> + <a href="{{ cert.url }}"><i class="fa fa-download"></i>{{ cert.name }} + {#- #}{% if cert.signing %}-signing{% endif %} + {#- #}{% if cert.encryption %}-encryption{% endif %}.pem + {#- #}{% if cert.prefix %} ({% trans %}new{% endtrans %}){% endif %}</a> {{ cert.comment }} + </li> + {% endfor %} - <ul> - {% for cert in certdata %} - <li><a href="{{ cert.url }}">{{ cert.name }}</a> {{ cert.comment }}</li> - {% endfor %} </ul> + {% endif %} -{% endif %} - -{% endblock content %} + </dl> +{% endblock content %} \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/templates/post.twig b/vendor/simplesamlphp/simplesamlphp/templates/post.twig new file mode 100644 index 0000000000000000000000000000000000000000..a11c56a18886b0eb58efa87bb4880f0c9fa60621 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/templates/post.twig @@ -0,0 +1,40 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> + <meta http-equiv="Content-Security-Policy" content="default-src 'self'"> + <link rel="icon" href="/{{ baseurlpath }}resources/icons/favicon.ico"> + <title>{% trans %}Sending message{% endtrans %}</title> + <link rel="stylesheet" href="/{{ baseurlpath }}resources/post.css"> + <script src="/{{ baseurlpath }}resources/post.js"></script> + </head> + <body> + <form method="post" action="{{ destination }}"> + {#- We need to add this element and call the click method, because calling submit() on the form causes failed + submissions if the form has another element with name or id of submit. See: + https://developer.mozilla.org/en/DOM/form.submit#Specification + #} + + <input type="submit" id="postLoginSubmitButton"> + {%- for name, value in post %} + {%- if value is iterable %} + {%- for index, item in value %} + + <input type="hidden" name="{{ name }}[{{ index }}]" value="{{ value }}"> + {%- endfor %} + {%- else %} + + <input type="hidden" name="{{ name }}" value="{{ value }}"> + {%- endif %} + {%- endfor %} + + <noscript> + <h2>{% trans %}Warning{% endtrans %}</h2> + <p>{% trans %}Since your browser does not support Javascript, you must press the button below to proceed.{% + endtrans %}</p> + <button type="submit">{% trans %}Yes, continue{% endtrans %}</button> + </noscript> + </form> + </body> +</html> diff --git a/vendor/simplesamlphp/simplesamlphp/templates/status.twig b/vendor/simplesamlphp/simplesamlphp/templates/status.twig new file mode 120000 index 0000000000000000000000000000000000000000..acc62e469c7cce0638b94f6d0e948e4050fa3897 --- /dev/null +++ b/vendor/simplesamlphp/simplesamlphp/templates/status.twig @@ -0,0 +1 @@ +auth_status.twig \ No newline at end of file diff --git a/vendor/simplesamlphp/simplesamlphp/webpack.config.js b/vendor/simplesamlphp/simplesamlphp/webpack.config.js index 2dff590d58a232a22edb9060b4ff94c9d3758f57..1237e29c1b8d9a13d360fe594e2c3c934856f57c 100644 --- a/vendor/simplesamlphp/simplesamlphp/webpack.config.js +++ b/vendor/simplesamlphp/simplesamlphp/webpack.config.js @@ -18,6 +18,7 @@ module.exports = environment => { return { entry: { bundle: './src/js/bundle', + logout: './src/js/logout/main', stylesheet: './src/js/style' }, output: { diff --git a/vendor/simplesamlphp/simplesamlphp/www/_include.php b/vendor/simplesamlphp/simplesamlphp/www/_include.php index 1960627f87cb594f71cd95355bec4f4d57ca05ca..afe9b6b39ec15722bcb3185e4308cda358b09d8b 100644 --- a/vendor/simplesamlphp/simplesamlphp/www/_include.php +++ b/vendor/simplesamlphp/simplesamlphp/www/_include.php @@ -1,7 +1,7 @@ <?php // initialize the autoloader -require_once(dirname(dirname(__FILE__)).'/lib/_autoload.php'); +require_once(dirname(dirname(__FILE__)) . '/lib/_autoload.php'); // enable assertion handler for all pages \SimpleSAML\Error\Assertion::installHandler(); @@ -45,7 +45,7 @@ function SimpleSAML_error_handler($errno, $errstr, $errfile = null, $errline = 0 // show an error with a full backtrace $context = (is_null($errfile) ? '' : " at $errfile:$errline"); - $e = new \SimpleSAML\Error\Exception('Error '.$errno.' - '.$errstr.$context); + $e = new \SimpleSAML\Error\Exception('Error ' . $errno . ' - ' . $errstr . $context); $e->logError(); // resume normal error processing diff --git a/vendor/simplesamlphp/simplesamlphp/www/admin/metadata-converter.php b/vendor/simplesamlphp/simplesamlphp/www/admin/metadata-converter.php index 5ce928ac5987d8aa3b00ea5ea716613cf7988550..83837409de1e921376f45cc036fa3a9d68adab9c 100644 --- a/vendor/simplesamlphp/simplesamlphp/www/admin/metadata-converter.php +++ b/vendor/simplesamlphp/simplesamlphp/www/admin/metadata-converter.php @@ -41,8 +41,8 @@ // remove the entityDescriptor element because it is unused, and only makes the output harder to read unset($entityMetadata['entityDescriptor']); - $text .= '$metadata['.var_export($entityId, true).'] = '. - var_export($entityMetadata, true).";\n"; + $text .= '$metadata[' . var_export($entityId, true) . '] = ' . + var_export($entityMetadata, true) . ";\n"; } $entities = $text; } diff --git a/vendor/simplesamlphp/simplesamlphp/www/admin/sandbox.php b/vendor/simplesamlphp/simplesamlphp/www/admin/sandbox.php index e2318bd187fedad71499f2467b8fc042bfcb9060..820c1fc2c459d657e8ef82060d9bd5a5b8591c6e 100644 --- a/vendor/simplesamlphp/simplesamlphp/www/admin/sandbox.php +++ b/vendor/simplesamlphp/simplesamlphp/www/admin/sandbox.php @@ -10,7 +10,10 @@ $template = new \SimpleSAML\XHTML\Template($config, 'sandbox.php'); $template->data['pagetitle'] = 'Sandbox'; -$template->data['sometext'] = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus. Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit. Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur.'; +$template->data['sometext'] = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus.' . + ' Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit.' . + ' Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. ' . + 'Nam tincidunt congue enim, ut porta lorem lacinia consectetur.'; $template->data['remaining'] = $session->getAuthData('admin', 'Expire') - time(); $template->data['logout'] = null; diff --git a/vendor/simplesamlphp/simplesamlphp/www/authmemcookie.php b/vendor/simplesamlphp/simplesamlphp/www/authmemcookie.php deleted file mode 100644 index 9825c62f54bc6ed9032b981eb43ae0882f989af9..0000000000000000000000000000000000000000 --- a/vendor/simplesamlphp/simplesamlphp/www/authmemcookie.php +++ /dev/null @@ -1,106 +0,0 @@ -<?php - -/** - * This file implements an script which can be used to authenticate users with Auth MemCookie. - * See: http://authmemcookie.sourceforge.net/ - * - * The configuration for this script is stored in config/authmemcookie.php. - * - * The file extra/auth_memcookie.conf contains an example of how Auth Memcookie can be configured - * to use SimpleSAMLphp. - * - * @deprecated This file has been deprecated and will be removed in SSP 2.0. Use the memcookie module instead. - */ - -require_once('_include.php'); - -try { - // load SimpleSAMLphp configuration - $globalConfig = \SimpleSAML\Configuration::getInstance(); - - // check if this module is enabled - if (!$globalConfig->getBoolean('enable.authmemcookie', false)) { - throw new \SimpleSAML\Error\Error('NOACCESS'); - } - - // load Auth MemCookie configuration - $amc = \SimpleSAML\AuthMemCookie::getInstance(); - - $sourceId = $amc->getAuthSource(); - $s = new \SimpleSAML\Auth\Simple($sourceId); - - // check if the user is authorized. We attempt to authenticate the user if not - $s->requireAuth(); - - // generate session id and save it in a cookie - $sessionID = \SimpleSAML\Utils\Random::generateID(); - $cookieName = $amc->getCookieName(); - \SimpleSAML\Utils\HTTP::setCookie($cookieName, $sessionID); - - // generate the authentication information - $attributes = $s->getAttributes(); - - $authData = []; - - // username - $usernameAttr = $amc->getUsernameAttr(); - if (!array_key_exists($usernameAttr, $attributes)) { - throw new \Exception( - "The user doesn't have an attribute named '".$usernameAttr. - "'. This attribute is expected to contain the username." - ); - } - $authData['UserName'] = $attributes[$usernameAttr]; - - // groups - $groupsAttr = $amc->getGroupsAttr(); - if ($groupsAttr !== null) { - if (!array_key_exists($groupsAttr, $attributes)) { - throw new \Exception( - "The user doesn't have an attribute named '".$groupsAttr. - "'. This attribute is expected to contain the groups the user is a member of." - ); - } - $authData['Groups'] = $attributes[$groupsAttr]; - } else { - $authData['Groups'] = []; - } - - $authData['RemoteIP'] = $_SERVER['REMOTE_ADDR']; - - foreach ($attributes as $n => $v) { - $authData['ATTR_'.$n] = $v; - } - - // store the authentication data in the memcache server - $data = ''; - foreach ($authData as $name => $values) { - if (is_array($values)) { - foreach ($values as $i => $value) { - if (!is_a($value, 'DOMNodeList')) { - continue; - } - /* @var \DOMNodeList $value */ - if ($value->length === 0) { - continue; - } - $values[$i] = new \SAML2\XML\saml\AttributeValue($value->item(0)->parentNode); - } - $values = implode(':', $values); - } - $data .= $name.'='.$values."\r\n"; - } - - $memcache = $amc->getMemcache(); - $expirationTime = $s->getAuthData('Expire'); - $memcache->set($sessionID, $data, 0, $expirationTime); - - // register logout handler - $session = \SimpleSAML\Session::getSessionFromRequest(); - $session->registerLogoutHandler($sourceId, '\SimpleSAML\AuthMemCookie', 'logoutHandler'); - - // redirect the user back to this page to signal that the login is completed - \SimpleSAML\Utils\HTTP::redirectTrustedURL(\SimpleSAML\Utils\HTTP::getSelfURL()); -} catch (\Exception $e) { - throw new \SimpleSAML\Error\Error('CONFIG', $e); -} diff --git a/vendor/simplesamlphp/simplesamlphp/www/errorreport.php b/vendor/simplesamlphp/simplesamlphp/www/errorreport.php index 0193e4767b589133c67e27bbef489fc0f9d072b9..025a81edecebf5602e65820f3c75ba0425683e77 100644 --- a/vendor/simplesamlphp/simplesamlphp/www/errorreport.php +++ b/vendor/simplesamlphp/simplesamlphp/www/errorreport.php @@ -13,26 +13,28 @@ exit; } -$reportId = (string) $_REQUEST['reportId']; -$email = (string) $_REQUEST['email']; -$text = htmlspecialchars((string) $_REQUEST['text']); +$reportId = $_REQUEST['reportId']; +$email = $_REQUEST['email']; +$text = $_REQUEST['text']; + +if (!preg_match('/^[0-9a-f]{8}$/', $reportId)) { + throw new \SimpleSAML\Error\Exception('Invalid reportID'); +} $data = null; try { $session = \SimpleSAML\Session::getSessionFromRequest(); $data = $session->getData('core:errorreport', $reportId); } catch (\Exception $e) { - \SimpleSAML\Logger::error('Error loading error report data: '.var_export($e->getMessage(), true)); + \SimpleSAML\Logger::error('Error loading error report data: ' . var_export($e->getMessage(), true)); } if ($data === null) { $data = [ 'exceptionMsg' => 'not set', 'exceptionTrace' => 'not set', - 'reportId' => $reportId, 'trackId' => 'not set', 'url' => 'not set', - 'version' => $config->getVersion(), 'referer' => 'not set', ]; @@ -41,90 +43,18 @@ } } -foreach ($data as $k => $v) { - $data[$k] = htmlspecialchars($v); -} - -// build the email message -$message = <<<MESSAGE -<h1>SimpleSAMLphp Error Report</h1> - -<p>Message from user:</p> -<div class="box" style="background: yellow; color: #888; border: 1px solid #999900; padding: .4em; margin: .5em"> - %s -</div> - -<p>Exception: <strong>%s</strong></p> -<pre>%s</pre> - -<p>URL:</p> -<pre><a href="%s">%s</a></pre> - -<p>Host:</p> -<pre>%s</pre> - -<p>Directory:</p> -<pre>%s</pre> - -<p>Track ID:</p> -<pre>%s</pre> - -<p>Version: <code>%s</code></p> - -<p>Report ID: <code>%s</code></p> - -<p>Referer: <code>%s</code></p> - -<hr /> -<div class="footer"> - This message was sent using SimpleSAMLphp. Visit the <a href="http://simplesamlphp.org/">SimpleSAMLphp homepage</a>. -</div> -MESSAGE; -$message = sprintf( - $message, - $text, - $data['exceptionMsg'], - $data['exceptionTrace'], - $data['url'], - $data['url'], - htmlspecialchars(php_uname('n')), - dirname(dirname(__FILE__)), - $data['trackId'], - $data['version'], - $data['reportId'], - $data['referer'] -); - -// add the email address of the submitter as the Reply-To address -$email = trim($email); - -// check that it looks like a valid email address -if (!preg_match('/\s/', $email) && strpos($email, '@') !== false) { - $replyto = $email; -} else { - $replyto = null; -} - -$from = $config->getString('sendmail_from', null); -if ($from === null || $from === '') { - $from = ini_get('sendmail_from'); - if ($from === '' || $from === false) { - $from = 'no-reply@example.org'; - } -} - -// If no sender email was configured at least set some relevant from address -if ($from === 'no-reply@example.org' && $replyto !== null) { - $from = $replyto; -} +$data['reportId'] = $reportId; +$data['version'] = $config->getVersion(); +$data['hostname'] = php_uname('n'); +$data['directory'] = dirname(dirname(__FILE__)); -// send the email -$toAddress = $config->getString('technicalcontact_email', 'na@example.org'); -if ($config->getBoolean('errorreporting', true) && $toAddress !== 'na@example.org') { - $email = new \SimpleSAML\XHTML\EMail($toAddress, 'SimpleSAMLphp error report', $from); - $email->setBody($message); - $email->send(); - SimpleSAML\Logger::error('Report with id '.$reportId.' sent to <'.$toAddress.'>.'); +if ($config->getBoolean('errorreporting', true)) { + $mail = new SimpleSAML\Utils\EMail('SimpleSAMLphp error report from ' . $email); + $mail->setData($data); + $mail->addReplyTo($email); + $mail->setText($text); + $mail->send(); + SimpleSAML\Logger::error('Report with id ' . $reportId . ' sent'); } // redirect the user back to this page to clear the POST request diff --git a/vendor/simplesamlphp/simplesamlphp/www/module.php b/vendor/simplesamlphp/simplesamlphp/www/module.php index 83ee0ff382ea24cf6e1ec116e7d6b298d21a1eb0..ebdc6b19c4f4611070b66d43d6b79098ddb9aa35 100644 --- a/vendor/simplesamlphp/simplesamlphp/www/module.php +++ b/vendor/simplesamlphp/simplesamlphp/www/module.php @@ -4,6 +4,7 @@ * This web page receives requests for web-pages hosted by modules, and directs them to * the process() handler in the Module class. */ + require_once('_include.php'); \SimpleSAML\Module::process()->send(); diff --git a/vendor/simplesamlphp/simplesamlphp/www/resources/script.js b/vendor/simplesamlphp/simplesamlphp/www/resources/script.js index a195c24cb8fa8a1180dbec33e05796be5490af42..e72584a3d7f229f44fc4ccfd26cfd8b6647c8803 100644 --- a/vendor/simplesamlphp/simplesamlphp/www/resources/script.js +++ b/vendor/simplesamlphp/simplesamlphp/www/resources/script.js @@ -5,7 +5,7 @@ */ function SimpleSAML_focus(id) { - element = document.getElementById(id); + var element = document.getElementById(id); if (element != null) { element.focus(); } @@ -19,7 +19,7 @@ function SimpleSAML_focus(id) */ function SimpleSAML_show(id) { - element = document.getElementById(id); + var element = document.getElementById(id); if (element == null) { return; } @@ -35,7 +35,7 @@ function SimpleSAML_show(id) */ function SimpleSAML_hide(id) { - element = document.getElementById(id); + var element = document.getElementById(id); if (element == null) { return; } diff --git a/vendor/simplesamlphp/simplesamlphp/www/saml2/idp/SSOService.php b/vendor/simplesamlphp/simplesamlphp/www/saml2/idp/SSOService.php index c3e4916849996f768a08d8931b4fcf42235b9d81..5a400b854499c39bc04cf7fc62d99ede897551ed 100644 --- a/vendor/simplesamlphp/simplesamlphp/www/saml2/idp/SSOService.php +++ b/vendor/simplesamlphp/simplesamlphp/www/saml2/idp/SSOService.php @@ -15,7 +15,7 @@ $metadata = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); $idpEntityId = $metadata->getMetaDataCurrentEntityID('saml20-idp-hosted'); -$idp = \SimpleSAML\IdP::getById('saml2:'.$idpEntityId); +$idp = \SimpleSAML\IdP::getById('saml2:' . $idpEntityId); try { \SimpleSAML\Module\saml\IdP\SAML2::receiveAuthnRequest($idp); diff --git a/vendor/simplesamlphp/simplesamlphp/www/saml2/idp/SingleLogoutService.php b/vendor/simplesamlphp/simplesamlphp/www/saml2/idp/SingleLogoutService.php index 6e6e9a5f851a682cf3cb134ba4cf074a88a0dc44..2d3c0e4b4a1c1f2331aab0c9da1b9e80d31b0eb1 100644 --- a/vendor/simplesamlphp/simplesamlphp/www/saml2/idp/SingleLogoutService.php +++ b/vendor/simplesamlphp/simplesamlphp/www/saml2/idp/SingleLogoutService.php @@ -14,7 +14,7 @@ $metadata = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); $idpEntityId = $metadata->getMetaDataCurrentEntityID('saml20-idp-hosted'); -$idp = \SimpleSAML\IdP::getById('saml2:'.$idpEntityId); +$idp = \SimpleSAML\IdP::getById('saml2:' . $idpEntityId); if (isset($_REQUEST['ReturnTo'])) { $idp->doLogoutRedirect(\SimpleSAML\Utils\HTTP::checkURLAllowed((string) $_REQUEST['ReturnTo'])); diff --git a/vendor/simplesamlphp/simplesamlphp/www/saml2/idp/initSLO.php b/vendor/simplesamlphp/simplesamlphp/www/saml2/idp/initSLO.php index 21576797dc174feab48981eb70fc52f869507193..82c38c8d4d0dddcb4d895916a9b09551faa76466 100644 --- a/vendor/simplesamlphp/simplesamlphp/www/saml2/idp/initSLO.php +++ b/vendor/simplesamlphp/simplesamlphp/www/saml2/idp/initSLO.php @@ -4,7 +4,7 @@ $metadata = \SimpleSAML\Metadata\MetaDataStorageHandler::getMetadataHandler(); $idpEntityId = $metadata->getMetaDataCurrentEntityID('saml20-idp-hosted'); -$idp = \SimpleSAML\IdP::getById('saml2:'.$idpEntityId); +$idp = \SimpleSAML\IdP::getById('saml2:' . $idpEntityId); \SimpleSAML\Logger::info('SAML2.0 - IdP.initSLO: Accessing SAML 2.0 IdP endpoint init Single Logout'); diff --git a/vendor/simplesamlphp/simplesamlphp/www/saml2/idp/metadata.php b/vendor/simplesamlphp/simplesamlphp/www/saml2/idp/metadata.php index 984fb9252d7ce0402701c3e0a08ef6c5257e51a6..698cb9f4a308397905fe66165d02f9aeb9f3ea6c 100644 --- a/vendor/simplesamlphp/simplesamlphp/www/saml2/idp/metadata.php +++ b/vendor/simplesamlphp/simplesamlphp/www/saml2/idp/metadata.php @@ -3,6 +3,7 @@ require_once('../../_include.php'); use SAML2\Constants; +use SimpleSAML\Module; use SimpleSAML\Utils\Auth as Auth; use SimpleSAML\Utils\Crypto as Crypto; use SimpleSAML\Utils\HTTP as HTTP; @@ -112,7 +113,7 @@ // Artifact sending enabled $metaArray['ArtifactResolutionService'][] = [ 'index' => 0, - 'Location' => HTTP::getBaseURL().'saml2/idp/ArtifactResolutionService.php', + 'Location' => HTTP::getBaseURL() . 'saml2/idp/ArtifactResolutionService.php', 'Binding' => Constants::BINDING_SOAP, ]; } @@ -122,7 +123,7 @@ array_unshift($metaArray['SingleSignOnService'], [ 'hoksso:ProtocolBinding' => Constants::BINDING_HTTP_REDIRECT, 'Binding' => Constants::BINDING_HOK_SSO, - 'Location' => HTTP::getBaseURL().'saml2/idp/SSOService.php' + 'Location' => HTTP::getBaseURL() . 'saml2/idp/SSOService.php' ]); } @@ -130,7 +131,7 @@ $metaArray['SingleSignOnService'][] = [ 'index' => 0, 'Binding' => Constants::BINDING_SOAP, - 'Location' => HTTP::getBaseURL().'saml2/idp/SSOService.php', + 'Location' => HTTP::getBaseURL() . 'saml2/idp/SSOService.php', ]; } @@ -147,7 +148,9 @@ ); if (!$idpmeta->hasValue('OrganizationURL')) { - throw new \SimpleSAML\Error\Exception('If OrganizationName is set, OrganizationURL must also be set.'); + throw new \SimpleSAML\Error\Exception( + 'If OrganizationName is set, OrganizationURL must also be set.' + ); } $metaArray['OrganizationURL'] = $idpmeta->getLocalizedString('OrganizationURL'); } @@ -206,22 +209,20 @@ $metaxml = $metaBuilder->getEntityDescriptorText(); - $metaflat = '$metadata['.var_export($idpentityid, true).'] = '.var_export($metaArray, true).';'; + $metaflat = '$metadata[' . var_export($idpentityid, true) . '] = ' . var_export($metaArray, true) . ';'; // sign the metadata if enabled $metaxml = \SimpleSAML\Metadata\Signer::sign($metaxml, $idpmeta->toArray(), 'SAML 2 IdP'); if (array_key_exists('output', $_GET) && $_GET['output'] == 'xhtml') { - $defaultidp = $config->getString('default-saml20-idp', null); - - $t = new \SimpleSAML\XHTML\Template($config, 'metadata.php', 'admin'); + $t = new \SimpleSAML\XHTML\Template($config, 'metadata.tpl.php', 'admin'); $t->data['clipboard.js'] = true; $t->data['available_certs'] = $availableCerts; $certdata = []; foreach (array_keys($availableCerts) as $availableCert) { $certdata[$availableCert]['name'] = $availableCert; - $certdata[$availableCert]['url'] = SimpleSAML\Module::getModuleURL('saml/idp/certs.php').'/'.$availableCert; + $certdata[$availableCert]['url'] = Module::getModuleURL('saml/idp/certs.php') . '/' . $availableCert; $certdata[$availableCert]['comment'] = ( $availableCerts[$availableCert]['certFingerprint'][0] === 'afe71c28ef740bc87425be13a2263d37971da1f9' ? 'This is the default certificate. Generate a new certificate if this is a production system.' : @@ -234,7 +235,6 @@ $t->data['metaurl'] = HTTP::getSelfURLNoQuery(); $t->data['metadata'] = htmlspecialchars($metaxml); $t->data['metadataflat'] = htmlspecialchars($metaflat); - $t->data['defaultidp'] = $defaultidp; $t->show(); } else { header('Content-Type: application/xml'); diff --git a/vendor/simplesamlphp/simplesamlphp/www/shib13/idp/metadata.php b/vendor/simplesamlphp/simplesamlphp/www/shib13/idp/metadata.php index acd5ee33a46b99877db0598eba10d367d8e1e023..d8063b444750ae43935e6137913b28efa353cdbf 100644 --- a/vendor/simplesamlphp/simplesamlphp/www/shib13/idp/metadata.php +++ b/vendor/simplesamlphp/simplesamlphp/www/shib13/idp/metadata.php @@ -84,7 +84,7 @@ if (array_key_exists('output', $_GET) && $_GET['output'] == 'xhtml') { $defaultidp = $config->getString('default-shib13-idp', null); - $t = new \SimpleSAML\XHTML\Template($config, 'metadata.php', 'admin'); + $t = new \SimpleSAML\XHTML\Template($config, 'metadata.tpl.php', 'admin'); $t->data['clipboard.js'] = true; $t->data['header'] = 'shib13-idp'; // TODO: Replace with headerString in 2.0 diff --git a/vendor/simplesamlphp/twig-configurable-i18n/.codecov.yml b/vendor/simplesamlphp/twig-configurable-i18n/.codecov.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7f39e1e93d0ca23383d5ed120442f62f5f15ac9 --- /dev/null +++ b/vendor/simplesamlphp/twig-configurable-i18n/.codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: yes + +comment: + layout: "diff" + behavior: once + require_changes: true + require_base: no + require_head: yes + branches: null diff --git a/vendor/jaimeperez/twig-configurable-i18n/.editorconfig b/vendor/simplesamlphp/twig-configurable-i18n/.editorconfig similarity index 100% rename from vendor/jaimeperez/twig-configurable-i18n/.editorconfig rename to vendor/simplesamlphp/twig-configurable-i18n/.editorconfig diff --git a/vendor/jaimeperez/twig-configurable-i18n/.php_cs.dist b/vendor/simplesamlphp/twig-configurable-i18n/.php_cs.dist similarity index 100% rename from vendor/jaimeperez/twig-configurable-i18n/.php_cs.dist rename to vendor/simplesamlphp/twig-configurable-i18n/.php_cs.dist diff --git a/vendor/jaimeperez/twig-configurable-i18n/.travis.yml b/vendor/simplesamlphp/twig-configurable-i18n/.travis.yml similarity index 99% rename from vendor/jaimeperez/twig-configurable-i18n/.travis.yml rename to vendor/simplesamlphp/twig-configurable-i18n/.travis.yml index 1ab409c11d25e4e5f39d37a3832aaeec51af6021..764ad146aa01414b310a713335127c4be197e7a9 100644 --- a/vendor/jaimeperez/twig-configurable-i18n/.travis.yml +++ b/vendor/simplesamlphp/twig-configurable-i18n/.travis.yml @@ -3,7 +3,6 @@ sudo: required language: php php: - - 5.5 - 5.6 - 7.0 - 7.1 diff --git a/vendor/jaimeperez/twig-configurable-i18n/README.md b/vendor/simplesamlphp/twig-configurable-i18n/README.md similarity index 95% rename from vendor/jaimeperez/twig-configurable-i18n/README.md rename to vendor/simplesamlphp/twig-configurable-i18n/README.md index c16a64699c72bf79630bff139149b8de954e6fca..d00786d8c594bad774db913faa1680f065a5244e 100644 --- a/vendor/jaimeperez/twig-configurable-i18n/README.md +++ b/vendor/simplesamlphp/twig-configurable-i18n/README.md @@ -30,8 +30,8 @@ First, **create aliases** for two classes so that the ones defined in this extension override the default ones: ```php -use JaimePerez\TwigConfigurableI18n\Twig\Environment as Twig_Environment; -use JaimePerez\TwigConfigurableI18n\Twig\Extensions\Extension\I18n as Twig_Extensions_Extension_I18n; +use SimpleSAML\TwigConfigurableI18n\Twig\Environment as Twig_Environment; +use SimpleSAML\TwigConfigurableI18n\Twig\Extensions\Extension\I18n as Twig_Extensions_Extension_I18n; ``` The first line allows you to redefine the twig environment class, so @@ -81,4 +81,4 @@ $twig = new Twig_Environment($loader, array( 'translation_function' => '__', 'translation_function_plural' => 'n__' )); -``` \ No newline at end of file +``` diff --git a/vendor/jaimeperez/twig-configurable-i18n/bin/check-syntax.sh b/vendor/simplesamlphp/twig-configurable-i18n/bin/check-syntax.sh similarity index 100% rename from vendor/jaimeperez/twig-configurable-i18n/bin/check-syntax.sh rename to vendor/simplesamlphp/twig-configurable-i18n/bin/check-syntax.sh diff --git a/vendor/jaimeperez/twig-configurable-i18n/composer.json b/vendor/simplesamlphp/twig-configurable-i18n/composer.json similarity index 66% rename from vendor/jaimeperez/twig-configurable-i18n/composer.json rename to vendor/simplesamlphp/twig-configurable-i18n/composer.json index d916ce30a707ffe3fcea57c736cfe97db4b3956c..61dbdd5fa3f9274e9e25d2c5a125ff348ade0f9e 100644 --- a/vendor/jaimeperez/twig-configurable-i18n/composer.json +++ b/vendor/simplesamlphp/twig-configurable-i18n/composer.json @@ -1,5 +1,5 @@ { - "name": "jaimeperez/twig-configurable-i18n", + "name": "simplesamlphp/twig-configurable-i18n", "description": "This is an extension on top of Twig's i18n extension, allowing you to customize which functions to use for translations.", "type": "project", "keywords": [ "twig", "extension", "i18n", "internationalization", "translation", "gettext" ], @@ -12,18 +12,18 @@ ], "autoload": { "psr-4": { - "JaimePerez\\TwigConfigurableI18n\\": "src/" + "SimpleSAML\\TwigConfigurableI18n\\": "src/" } }, "require": { "twig/extensions": "^1.5" }, "require-dev": { - "phpunit/phpunit": "~4.8.36", + "phpunit/phpunit": "~4.8.36 || ~7.5", "twig/twig": "^1.37 || ^2.7" }, "support": { - "issues": "https://github.com/jaimeperez/twig-configurable-i18n/issues", - "source": "https://github.com/jaimeperez/twig-configurable-i18n" + "issues": "https://github.com/simplesamlphp/twig-configurable-i18n/issues", + "source": "https://github.com/simplesamlphp/twig-configurable-i18n" } } diff --git a/vendor/simplesamlphp/twig-configurable-i18n/phpunit.xml b/vendor/simplesamlphp/twig-configurable-i18n/phpunit.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0985fdd804b18d8d9179ecd956d63582c189e95 --- /dev/null +++ b/vendor/simplesamlphp/twig-configurable-i18n/phpunit.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<phpunit bootstrap="tests/bootstrap.php"> + <testsuites> + <testsuite name="The project's test suite"> + <directory>tests/</directory> + </testsuite> + </testsuites> + <filter> + <whitelist processUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">./lib</directory> + </whitelist> + </filter> + <logging> + <log type="coverage-text" target="php://stdout" showUncoveredFiles="true" /> + <log type="coverage-html" target="build/coverage" title="PHP Coveralls" charset="UTF-8" yui="true" highlight="true" lowUpperBound="35" highLowerBound="70" /> + <log type="coverage-clover" target="build/logs/clover.xml" /> + </logging> +</phpunit> + diff --git a/vendor/jaimeperez/twig-configurable-i18n/psalm.xml b/vendor/simplesamlphp/twig-configurable-i18n/psalm.xml similarity index 100% rename from vendor/jaimeperez/twig-configurable-i18n/psalm.xml rename to vendor/simplesamlphp/twig-configurable-i18n/psalm.xml diff --git a/vendor/jaimeperez/twig-configurable-i18n/src/Twig/Environment.php b/vendor/simplesamlphp/twig-configurable-i18n/src/Twig/Environment.php similarity index 96% rename from vendor/jaimeperez/twig-configurable-i18n/src/Twig/Environment.php rename to vendor/simplesamlphp/twig-configurable-i18n/src/Twig/Environment.php index a0013d97685049d518c755df42f316abf871c10b..5320d4262958a62b5b85a8c2da71489890d403bf 100644 --- a/vendor/jaimeperez/twig-configurable-i18n/src/Twig/Environment.php +++ b/vendor/simplesamlphp/twig-configurable-i18n/src/Twig/Environment.php @@ -7,7 +7,7 @@ * * @author Jaime Pérez Crespo */ -namespace JaimePerez\TwigConfigurableI18n\Twig; +namespace SimpleSAML\TwigConfigurableI18n\Twig; class Environment extends \Twig\Environment { diff --git a/vendor/jaimeperez/twig-configurable-i18n/src/Twig/Extensions/Extension/I18n.php b/vendor/simplesamlphp/twig-configurable-i18n/src/Twig/Extensions/Extension/I18n.php similarity index 90% rename from vendor/jaimeperez/twig-configurable-i18n/src/Twig/Extensions/Extension/I18n.php rename to vendor/simplesamlphp/twig-configurable-i18n/src/Twig/Extensions/Extension/I18n.php index d0fa671fd63269e64bf9e9a5dc41d3251837e615..835c015fb37abed72b76c63a27bb74f5052fe474 100644 --- a/vendor/jaimeperez/twig-configurable-i18n/src/Twig/Extensions/Extension/I18n.php +++ b/vendor/simplesamlphp/twig-configurable-i18n/src/Twig/Extensions/Extension/I18n.php @@ -4,9 +4,9 @@ * * @author Jaime Pérez Crespo */ -namespace JaimePerez\TwigConfigurableI18n\Twig\Extensions\Extension; +namespace SimpleSAML\TwigConfigurableI18n\Twig\Extensions\Extension; -use JaimePerez\TwigConfigurableI18n\Twig\Extensions\TokenParser\Trans; +use SimpleSAML\TwigConfigurableI18n\Twig\Extensions\TokenParser\Trans; class I18n extends \Twig\Extensions\I18nExtension { @@ -63,7 +63,7 @@ public function translateSingular() $singular = 'gettext'; $args = func_get_args(); - /** @var \JaimePerez\TwigConfigurableI18n\Twig\Environment $env */ + /** @var \SimpleSAML\TwigConfigurableI18n\Twig\Environment $env */ $env = array_shift($args); $options = $env->getOptions(); if (array_key_exists('translation_function', $options) && @@ -87,7 +87,7 @@ public function translatePlural() $plural = 'ngettext'; $args = func_get_args(); - /** @var \JaimePerez\TwigConfigurableI18n\Twig\Environment $env */ + /** @var \SimpleSAML\TwigConfigurableI18n\Twig\Environment $env */ $env = array_shift($args); $options = $env->getOptions(); diff --git a/vendor/jaimeperez/twig-configurable-i18n/src/Twig/Extensions/Node/Trans.php b/vendor/simplesamlphp/twig-configurable-i18n/src/Twig/Extensions/Node/Trans.php similarity index 89% rename from vendor/jaimeperez/twig-configurable-i18n/src/Twig/Extensions/Node/Trans.php rename to vendor/simplesamlphp/twig-configurable-i18n/src/Twig/Extensions/Node/Trans.php index 1b5042d77ce9988e5d04b68e1d0f200f0b5be6ad..0c1056d86cbe1a74e08ba419d0c3f235f54634f6 100644 --- a/vendor/jaimeperez/twig-configurable-i18n/src/Twig/Extensions/Node/Trans.php +++ b/vendor/simplesamlphp/twig-configurable-i18n/src/Twig/Extensions/Node/Trans.php @@ -5,7 +5,7 @@ * @author Jaime Pérez Crespo */ -namespace JaimePerez\TwigConfigurableI18n\Twig\Extensions\Node; +namespace SimpleSAML\TwigConfigurableI18n\Twig\Extensions\Node; use ReflectionClass; use Twig\Compiler; @@ -15,7 +15,7 @@ class Trans extends \Twig\Extensions\Node\TransNode /** * Compiles the node to PHP. * - * If JaimePerez\TwigConfigurableI18n\Twig\Environment was used to configure Twig, and the version of + * If SimpleSAML\TwigConfigurableI18n\Twig\Environment was used to configure Twig, and the version of * Twig_Extensions_Extension_I18n allows it, we will try to change all calls to the default translation methods * to whatever is configured in the environment. * @@ -39,8 +39,8 @@ public function compile(Compiler $compiler) // now, if we have proper configuration, rename the calls to gettext with the ones configured in the environment $env = $compiler->getEnvironment(); - if (is_a($env, \JaimePerez\TwigConfigurableI18n\Twig\Environment::class)) { - /** @var \JaimePerez\TwigConfigurableI18n\Twig\Environment $env */ + if (is_a($env, \SimpleSAML\TwigConfigurableI18n\Twig\Environment::class)) { + /** @var \SimpleSAML\TwigConfigurableI18n\Twig\Environment $env */ $options = $env->getOptions(); $source = $compiler->getSource(); if (array_key_exists('translation_function', $options) && diff --git a/vendor/jaimeperez/twig-configurable-i18n/src/Twig/Extensions/TokenParser/Trans.php b/vendor/simplesamlphp/twig-configurable-i18n/src/Twig/Extensions/TokenParser/Trans.php similarity index 65% rename from vendor/jaimeperez/twig-configurable-i18n/src/Twig/Extensions/TokenParser/Trans.php rename to vendor/simplesamlphp/twig-configurable-i18n/src/Twig/Extensions/TokenParser/Trans.php index 2f4d79e397b111e0b891ff7186dec8b621e437a0..c659422edd9e7edd849b5d237e2678cb9a457862 100644 --- a/vendor/jaimeperez/twig-configurable-i18n/src/Twig/Extensions/TokenParser/Trans.php +++ b/vendor/simplesamlphp/twig-configurable-i18n/src/Twig/Extensions/TokenParser/Trans.php @@ -4,9 +4,9 @@ * * @author Jaime Pérez Crespo */ -namespace JaimePerez\TwigConfigurableI18n\Twig\Extensions\TokenParser; +namespace SimpleSAML\TwigConfigurableI18n\Twig\Extensions\TokenParser; -use JaimePerez\TwigConfigurableI18n\Twig\Extensions\Node\Trans as NodeTrans; +use SimpleSAML\TwigConfigurableI18n\Twig\Extensions\Node\Trans as NodeTrans; use Twig\Token; class Trans extends \Twig\Extensions\TokenParser\TransTokenParser @@ -21,13 +21,13 @@ class Trans extends \Twig\Extensions\TokenParser\TransTokenParser public function parse(Token $token) { $parsed = parent::parse($token); - $body = ($parsed->hasNode('body')) ? $parsed->getNode('body') : null; + $body = $parsed->getNode('body'); $plural = ($parsed->hasNode('plural')) ? $parsed->getNode('plural') : null; + /** @var \Twig\Node\Expression\AbstractExpression|null */ $count = ($parsed->hasNode('count')) ? $parsed->getNode('count') : null; $notes = ($parsed->hasNode('notes')) ? $parsed->getNode('notes') : null; - /** @var \Twig\Node\Node $retval */ - $retval = new NodeTrans($body, $plural, $count, $notes, $parsed->getTemplateLine(), $parsed->getNodeTag()); - return $retval; + /** @var \Twig\Node\Node */ + return new NodeTrans($body, $plural, $count, $notes, $parsed->getTemplateLine(), $parsed->getNodeTag()); } } diff --git a/vendor/jaimeperez/twig-configurable-i18n/tests/bootstrap.php b/vendor/simplesamlphp/twig-configurable-i18n/tests/bootstrap.php similarity index 100% rename from vendor/jaimeperez/twig-configurable-i18n/tests/bootstrap.php rename to vendor/simplesamlphp/twig-configurable-i18n/tests/bootstrap.php diff --git a/vendor/symfony/config/CHANGELOG.md b/vendor/symfony/config/CHANGELOG.md index 7813ac53ede4745cdf40565a892521a82e49f974..6cb610c478694e978eb4e2d88ecf663e424835d1 100644 --- a/vendor/symfony/config/CHANGELOG.md +++ b/vendor/symfony/config/CHANGELOG.md @@ -34,7 +34,7 @@ The edge case of defining just one value for nodes of type Enum is now allowed: $rootNode ->children() ->enumNode('variable') - ->values(array('value')) + ->values(['value']) ->end() ->end() ; diff --git a/vendor/symfony/config/ConfigCache.php b/vendor/symfony/config/ConfigCache.php index 591c89bc4ff029616e7895bf2dbf9028d031d18d..b2a39076f9d4a70352bc060c07abf516824aba56 100644 --- a/vendor/symfony/config/ConfigCache.php +++ b/vendor/symfony/config/ConfigCache.php @@ -35,9 +35,9 @@ public function __construct($file, $debug) { $this->debug = (bool) $debug; - $checkers = array(); + $checkers = []; if (true === $this->debug) { - $checkers = array(new SelfCheckingResourceChecker()); + $checkers = [new SelfCheckingResourceChecker()]; } parent::__construct($file, $checkers); diff --git a/vendor/symfony/config/ConfigCacheFactoryInterface.php b/vendor/symfony/config/ConfigCacheFactoryInterface.php index bd614c4b6b39357e515a29107d5bc5cb5bc7ad32..8e80142b7816d100cbf5cb46d5b7ad465e653787 100644 --- a/vendor/symfony/config/ConfigCacheFactoryInterface.php +++ b/vendor/symfony/config/ConfigCacheFactoryInterface.php @@ -26,7 +26,7 @@ interface ConfigCacheFactoryInterface * @param string $file The absolute cache file path * @param callable $callable The callable to be executed when the cache needs to be filled (i. e. is not fresh). The cache will be passed as the only parameter to this callback * - * @return ConfigCacheInterface $configCache The cache instance + * @return ConfigCacheInterface The cache instance */ public function cache($file, $callable); } diff --git a/vendor/symfony/config/Definition/ArrayNode.php b/vendor/symfony/config/Definition/ArrayNode.php index 61e873634c2ba8997d6073d178fac9a1eb59c7e6..83bab205ecfc2eab142cacf1e6ebdf79d1f323fe 100644 --- a/vendor/symfony/config/Definition/ArrayNode.php +++ b/vendor/symfony/config/Definition/ArrayNode.php @@ -22,8 +22,8 @@ */ class ArrayNode extends BaseNode implements PrototypeNodeInterface { - protected $xmlRemappings = array(); - protected $children = array(); + protected $xmlRemappings = []; + protected $children = []; protected $allowFalse = false; protected $allowNewKeys = true; protected $addIfNotSet = false; @@ -38,17 +38,13 @@ public function setNormalizeKeys($normalizeKeys) } /** - * Normalizes keys between the different configuration formats. + * {@inheritdoc} * * Namely, you mostly have foo_bar in YAML while you have foo-bar in XML. * After running this method, all keys are normalized to foo_bar. * * If you have a mixed key like foo-bar_moo, it will not be altered. * The key will also not be altered if the target key already exists. - * - * @param mixed $value - * - * @return array The value with normalized keys */ protected function preNormalize($value) { @@ -56,10 +52,10 @@ protected function preNormalize($value) return $value; } - $normalized = array(); + $normalized = []; foreach ($value as $k => $v) { - if (false !== strpos($k, '-') && false === strpos($k, '_') && !array_key_exists($normalizedKey = str_replace('-', '_', $k), $value)) { + if (false !== strpos($k, '-') && false === strpos($k, '_') && !\array_key_exists($normalizedKey = str_replace('-', '_', $k), $value)) { $normalized[$normalizedKey] = $v; } else { $normalized[$k] = $v; @@ -82,7 +78,7 @@ public function getChildren() /** * Sets the xml remappings that should be performed. * - * @param array $remappings An array of the form array(array(string, string)) + * @param array $remappings An array of the form [[string, string]] */ public function setXmlRemappings(array $remappings) { @@ -92,7 +88,7 @@ public function setXmlRemappings(array $remappings) /** * Gets the xml remappings that should be performed. * - * @return array $remappings an array of the form array(array(string, string)) + * @return array an array of the form [[string, string]] */ public function getXmlRemappings() { @@ -141,7 +137,7 @@ public function setPerformDeepMerging($boolean) } /** - * Whether extra keys should just be ignore without an exception. + * Whether extra keys should just be ignored without an exception. * * @param bool $boolean To allow extra keys * @param bool $remove To remove extra keys @@ -177,7 +173,7 @@ public function getDefaultValue() throw new \RuntimeException(sprintf('The node at path "%s" has no default value.', $this->getPath())); } - $defaults = array(); + $defaults = []; foreach ($this->children as $name => $child) { if ($child->hasDefaultValue()) { $defaults[$name] = $child->getDefaultValue(); @@ -219,15 +215,13 @@ public function addChild(NodeInterface $node) protected function finalizeValue($value) { if (false === $value) { - $msg = sprintf('Unsetting key for path "%s", value: %s', $this->getPath(), json_encode($value)); - throw new UnsetKeyException($msg); + throw new UnsetKeyException(sprintf('Unsetting key for path "%s", value: "%s".', $this->getPath(), json_encode($value))); } foreach ($this->children as $name => $child) { - if (!array_key_exists($name, $value)) { + if (!\array_key_exists($name, $value)) { if ($child->isRequired()) { - $msg = sprintf('The child node "%s" at path "%s" must be configured.', $name, $this->getPath()); - $ex = new InvalidConfigurationException($msg); + $ex = new InvalidConfigurationException(sprintf('The child node "%s" at path "%s" must be configured.', $name, $this->getPath())); $ex->setPath($this->getPath()); throw $ex; @@ -264,11 +258,7 @@ protected function finalizeValue($value) protected function validateType($value) { if (!\is_array($value) && (!$this->allowFalse || false !== $value)) { - $ex = new InvalidTypeException(sprintf( - 'Invalid type for path "%s". Expected array, but got %s', - $this->getPath(), - \gettype($value) - )); + $ex = new InvalidTypeException(sprintf('Invalid type for path "%s". Expected array, but got %s', $this->getPath(), \gettype($value))); if ($hint = $this->getInfo()) { $ex->addHint($hint); } @@ -295,10 +285,13 @@ protected function normalizeValue($value) $value = $this->remapXml($value); - $normalized = array(); + $normalized = []; foreach ($value as $name => $val) { if (isset($this->children[$name])) { - $normalized[$name] = $this->children[$name]->normalize($val); + try { + $normalized[$name] = $this->children[$name]->normalize($val); + } catch (UnsetKeyException $e) { + } unset($value[$name]); } elseif (!$this->removeExtraKeys) { $normalized[$name] = $val; @@ -307,8 +300,7 @@ protected function normalizeValue($value) // if extra fields are present, throw exception if (\count($value) && !$this->ignoreExtraKeys) { - $msg = sprintf('Unrecognized option%s "%s" under "%s"', 1 === \count($value) ? '' : 's', implode(', ', array_keys($value)), $this->getPath()); - $ex = new InvalidConfigurationException($msg); + $ex = new InvalidConfigurationException(sprintf('Unrecognized option%s "%s" under "%s"', 1 === \count($value) ? '' : 's', implode(', ', array_keys($value)), $this->getPath())); $ex->setPath($this->getPath()); throw $ex; @@ -363,15 +355,9 @@ protected function mergeValues($leftSide, $rightSide) foreach ($rightSide as $k => $v) { // no conflict - if (!array_key_exists($k, $leftSide)) { + if (!\array_key_exists($k, $leftSide)) { if (!$this->allowNewKeys) { - $ex = new InvalidConfigurationException(sprintf( - 'You are not allowed to define new elements for path "%s". ' - .'Please define all elements for this path in one config file. ' - .'If you are trying to overwrite an element, make sure you redefine it ' - .'with the same name.', - $this->getPath() - )); + $ex = new InvalidConfigurationException(sprintf('You are not allowed to define new elements for path "%s". Please define all elements for this path in one config file. If you are trying to overwrite an element, make sure you redefine it with the same name.', $this->getPath())); $ex->setPath($this->getPath()); throw $ex; diff --git a/vendor/symfony/config/Definition/BaseNode.php b/vendor/symfony/config/Definition/BaseNode.php index 010098fcb2f122dc2131c75ad90a9471dd1c4b80..10bcb49c8b4950df0b54122cdf9852552fc8fadf 100644 --- a/vendor/symfony/config/Definition/BaseNode.php +++ b/vendor/symfony/config/Definition/BaseNode.php @@ -25,13 +25,13 @@ abstract class BaseNode implements NodeInterface { protected $name; protected $parent; - protected $normalizationClosures = array(); - protected $finalValidationClosures = array(); + protected $normalizationClosures = []; + protected $finalValidationClosures = []; protected $allowOverwrite = true; protected $required = false; protected $deprecationMessage = null; - protected $equivalentValues = array(); - protected $attributes = array(); + protected $equivalentValues = []; + protected $attributes = []; /** * @param string|null $name The name of the node @@ -49,21 +49,37 @@ public function __construct($name, NodeInterface $parent = null) $this->parent = $parent; } + /** + * @param string $key + */ public function setAttribute($key, $value) { $this->attributes[$key] = $value; } + /** + * @param string $key + * + * @return mixed + */ public function getAttribute($key, $default = null) { return isset($this->attributes[$key]) ? $this->attributes[$key] : $default; } + /** + * @param string $key + * + * @return bool + */ public function hasAttribute($key) { return isset($this->attributes[$key]); } + /** + * @return array + */ public function getAttributes() { return $this->attributes; @@ -74,6 +90,9 @@ public function setAttributes(array $attributes) $this->attributes = $attributes; } + /** + * @param string $key + */ public function removeAttribute($key) { unset($this->attributes[$key]); @@ -92,7 +111,7 @@ public function setInfo($info) /** * Returns info message. * - * @return string The info text + * @return string|null The info text */ public function getInfo() { @@ -112,7 +131,7 @@ public function setExample($example) /** * Retrieves the example configuration for this node. * - * @return string|array The example + * @return string|array|null The example */ public function getExample() { @@ -127,7 +146,7 @@ public function getExample() */ public function addEquivalentValue($originalValue, $equivalentValue) { - $this->equivalentValues[] = array($originalValue, $equivalentValue); + $this->equivalentValues[] = [$originalValue, $equivalentValue]; } /** @@ -211,7 +230,7 @@ public function isDeprecated() */ public function getDeprecationMessage($node, $path) { - return strtr($this->deprecationMessage, array('%node%' => $node, '%path%' => $path)); + return strtr($this->deprecationMessage, ['%node%' => $node, '%path%' => $path]); } /** @@ -242,12 +261,7 @@ public function getPath() final public function merge($leftSide, $rightSide) { if (!$this->allowOverwrite) { - throw new ForbiddenOverwriteException(sprintf( - 'Configuration path "%s" cannot be overwritten. You have to ' - .'define all options for this path, and any of its sub-paths in ' - .'one configuration section.', - $this->getPath() - )); + throw new ForbiddenOverwriteException(sprintf('Configuration path "%s" cannot be overwritten. You have to define all options for this path, and any of its sub-paths in one configuration section.', $this->getPath())); } $this->validateType($leftSide); @@ -285,9 +299,9 @@ final public function normalize($value) /** * Normalizes the value before any other normalization is applied. * - * @param $value + * @param mixed $value * - * @return $value The normalized array value + * @return mixed The normalized array value */ protected function preNormalize($value) { @@ -321,7 +335,7 @@ final public function finalize($value) } catch (Exception $e) { throw $e; } catch (\Exception $e) { - throw new InvalidConfigurationException(sprintf('Invalid configuration for path "%s": %s', $this->getPath(), $e->getMessage()), $e->getCode(), $e); + throw new InvalidConfigurationException(sprintf('Invalid configuration for path "%s": ', $this->getPath()).$e->getMessage(), $e->getCode(), $e); } } diff --git a/vendor/symfony/config/Definition/BooleanNode.php b/vendor/symfony/config/Definition/BooleanNode.php index 77e90cf7d624a98d04c260dbd1c64d31cff743b2..85f467b6bea92b5b5e234ff683aeb7eeca8f71b2 100644 --- a/vendor/symfony/config/Definition/BooleanNode.php +++ b/vendor/symfony/config/Definition/BooleanNode.php @@ -26,11 +26,7 @@ class BooleanNode extends ScalarNode protected function validateType($value) { if (!\is_bool($value)) { - $ex = new InvalidTypeException(sprintf( - 'Invalid type for path "%s". Expected boolean, but got %s.', - $this->getPath(), - \gettype($value) - )); + $ex = new InvalidTypeException(sprintf('Invalid type for path "%s". Expected boolean, but got %s.', $this->getPath(), \gettype($value))); if ($hint = $this->getInfo()) { $ex->addHint($hint); } diff --git a/vendor/symfony/config/Definition/Builder/ArrayNodeDefinition.php b/vendor/symfony/config/Definition/Builder/ArrayNodeDefinition.php index b774a3e2c17624c346c1a200af108b9a670136ec..29d1e154fce8940053a189bf6fe69be39859fdbb 100644 --- a/vendor/symfony/config/Definition/Builder/ArrayNodeDefinition.php +++ b/vendor/symfony/config/Definition/Builder/ArrayNodeDefinition.php @@ -25,7 +25,7 @@ class ArrayNodeDefinition extends NodeDefinition implements ParentNodeDefinition protected $performDeepMerging = true; protected $ignoreExtraKeys = false; protected $removeExtraKeys = true; - protected $children = array(); + protected $children = []; protected $prototype; protected $atLeastOne = false; protected $allowNewKeys = true; @@ -43,8 +43,8 @@ public function __construct($name, NodeParentInterface $parent = null) { parent::__construct($name, $parent); - $this->nullEquivalent = array(); - $this->trueEquivalent = array(); + $this->nullEquivalent = []; + $this->trueEquivalent = []; } /** @@ -214,15 +214,15 @@ public function fixXmlConfig($singular, $plural = null) * to be the key of the particular item. For example, if "id" is the * "key", then: * - * array( - * array('id' => 'my_name', 'foo' => 'bar'), - * ); + * [ + * ['id' => 'my_name', 'foo' => 'bar'], + * ]; * * becomes * - * array( - * 'my_name' => array('foo' => 'bar'), - * ); + * [ + * 'my_name' => ['foo' => 'bar'], + * ]; * * If you'd like "'id' => 'my_name'" to still be present in the resulting * array, then you can set the second argument of this method to false. @@ -275,9 +275,9 @@ public function canBeEnabled() { $this ->addDefaultsIfNotSet() - ->treatFalseLike(array('enabled' => false)) - ->treatTrueLike(array('enabled' => true)) - ->treatNullLike(array('enabled' => true)) + ->treatFalseLike(['enabled' => false]) + ->treatTrueLike(['enabled' => true]) + ->treatNullLike(['enabled' => true]) ->beforeNormalization() ->ifArray() ->then(function ($v) { @@ -305,9 +305,9 @@ public function canBeDisabled() { $this ->addDefaultsIfNotSet() - ->treatFalseLike(array('enabled' => false)) - ->treatTrueLike(array('enabled' => true)) - ->treatNullLike(array('enabled' => true)) + ->treatFalseLike(['enabled' => false]) + ->treatTrueLike(['enabled' => true]) + ->treatNullLike(['enabled' => true]) ->children() ->booleanNode('enabled') ->defaultTrue() @@ -332,10 +332,10 @@ public function performNoDeepMerging() * Allows extra config keys to be specified under an array without * throwing an exception. * - * Those config values are simply ignored and removed from the - * resulting array. This should be used only in special cases where - * you want to send an entire configuration array through a special - * tree that processes only part of the array. + * Those config values are ignored and removed from the resulting + * array. This should be used only in special cases where you want + * to send an entire configuration array through a special tree that + * processes only part of the array. * * @param bool $remove Whether to remove the extra keys * @@ -472,9 +472,7 @@ protected function validateConcreteNode(ArrayNode $node) $path = $node->getPath(); if (null !== $this->key) { - throw new InvalidDefinitionException( - sprintf('->useAttributeAsKey() is not applicable to concrete nodes at path "%s"', $path) - ); + throw new InvalidDefinitionException(sprintf('->useAttributeAsKey() is not applicable to concrete nodes at path "%s".', $path)); } if (false === $this->allowEmptyValue) { @@ -482,21 +480,15 @@ protected function validateConcreteNode(ArrayNode $node) } if (true === $this->atLeastOne) { - throw new InvalidDefinitionException( - sprintf('->requiresAtLeastOneElement() is not applicable to concrete nodes at path "%s"', $path) - ); + throw new InvalidDefinitionException(sprintf('->requiresAtLeastOneElement() is not applicable to concrete nodes at path "%s".', $path)); } if ($this->default) { - throw new InvalidDefinitionException( - sprintf('->defaultValue() is not applicable to concrete nodes at path "%s"', $path) - ); + throw new InvalidDefinitionException(sprintf('->defaultValue() is not applicable to concrete nodes at path "%s".', $path)); } if (false !== $this->addDefaultChildren) { - throw new InvalidDefinitionException( - sprintf('->addDefaultChildrenIfNoneSet() is not applicable to concrete nodes at path "%s"', $path) - ); + throw new InvalidDefinitionException(sprintf('->addDefaultChildrenIfNoneSet() is not applicable to concrete nodes at path "%s".', $path)); } } @@ -510,28 +502,20 @@ protected function validatePrototypeNode(PrototypedArrayNode $node) $path = $node->getPath(); if ($this->addDefaults) { - throw new InvalidDefinitionException( - sprintf('->addDefaultsIfNotSet() is not applicable to prototype nodes at path "%s"', $path) - ); + throw new InvalidDefinitionException(sprintf('->addDefaultsIfNotSet() is not applicable to prototype nodes at path "%s".', $path)); } if (false !== $this->addDefaultChildren) { if ($this->default) { - throw new InvalidDefinitionException( - sprintf('A default value and default children might not be used together at path "%s"', $path) - ); + throw new InvalidDefinitionException(sprintf('A default value and default children might not be used together at path "%s".', $path)); } if (null !== $this->key && (null === $this->addDefaultChildren || \is_int($this->addDefaultChildren) && $this->addDefaultChildren > 0)) { - throw new InvalidDefinitionException( - sprintf('->addDefaultChildrenIfNoneSet() should set default children names as ->useAttributeAsKey() is used at path "%s"', $path) - ); + throw new InvalidDefinitionException(sprintf('->addDefaultChildrenIfNoneSet() should set default children names as ->useAttributeAsKey() is used at path "%s".', $path)); } if (null === $this->key && (\is_string($this->addDefaultChildren) || \is_array($this->addDefaultChildren))) { - throw new InvalidDefinitionException( - sprintf('->addDefaultChildrenIfNoneSet() might not set default children names as ->useAttributeAsKey() is not used at path "%s"', $path) - ); + throw new InvalidDefinitionException(sprintf('->addDefaultChildrenIfNoneSet() might not set default children names as ->useAttributeAsKey() is not used at path "%s".', $path)); } } } diff --git a/vendor/symfony/config/Definition/Builder/ExprBuilder.php b/vendor/symfony/config/Definition/Builder/ExprBuilder.php index 5c070bee7c38181b9f04ad573bd64726e481b224..5db229dccab7f759039c635e75a9031f6042f99f 100644 --- a/vendor/symfony/config/Definition/Builder/ExprBuilder.php +++ b/vendor/symfony/config/Definition/Builder/ExprBuilder.php @@ -144,7 +144,7 @@ public function ifNotInArray(array $array) public function castToArray() { $this->ifPart = function ($v) { return !\is_array($v); }; - $this->thenPart = function ($v) { return array($v); }; + $this->thenPart = function ($v) { return [$v]; }; return $this; } @@ -168,13 +168,13 @@ public function then(\Closure $closure) */ public function thenEmptyArray() { - $this->thenPart = function ($v) { return array(); }; + $this->thenPart = function ($v) { return []; }; return $this; } /** - * Sets a closure marking the value as invalid at validation time. + * Sets a closure marking the value as invalid at processing time. * * if you want to add the value of the node in your message just use a %s placeholder. * @@ -192,7 +192,7 @@ public function thenInvalid($message) } /** - * Sets a closure unsetting this key of the array at validation time. + * Sets a closure unsetting this key of the array at processing time. * * @return $this * @@ -200,7 +200,7 @@ public function thenInvalid($message) */ public function thenUnset() { - $this->thenPart = function ($v) { throw new UnsetKeyException('Unsetting key'); }; + $this->thenPart = function ($v) { throw new UnsetKeyException('Unsetting key.'); }; return $this; } diff --git a/vendor/symfony/config/Definition/Builder/NodeBuilder.php b/vendor/symfony/config/Definition/Builder/NodeBuilder.php index 1fac66fd3702f2d14730cf01b2c7553e7a725817..2809cb6c6f601ac2cffd6d03e5d49c581af516e7 100644 --- a/vendor/symfony/config/Definition/Builder/NodeBuilder.php +++ b/vendor/symfony/config/Definition/Builder/NodeBuilder.php @@ -23,15 +23,15 @@ class NodeBuilder implements NodeParentInterface public function __construct() { - $this->nodeMapping = array( - 'variable' => __NAMESPACE__.'\\VariableNodeDefinition', - 'scalar' => __NAMESPACE__.'\\ScalarNodeDefinition', - 'boolean' => __NAMESPACE__.'\\BooleanNodeDefinition', - 'integer' => __NAMESPACE__.'\\IntegerNodeDefinition', - 'float' => __NAMESPACE__.'\\FloatNodeDefinition', - 'array' => __NAMESPACE__.'\\ArrayNodeDefinition', - 'enum' => __NAMESPACE__.'\\EnumNodeDefinition', - ); + $this->nodeMapping = [ + 'variable' => VariableNodeDefinition::class, + 'scalar' => ScalarNodeDefinition::class, + 'boolean' => BooleanNodeDefinition::class, + 'integer' => IntegerNodeDefinition::class, + 'float' => FloatNodeDefinition::class, + 'array' => ArrayNodeDefinition::class, + 'enum' => EnumNodeDefinition::class, + ]; } /** @@ -133,7 +133,7 @@ public function variableNode($name) /** * Returns the parent node. * - * @return ParentNodeDefinitionInterface|NodeDefinition The parent node + * @return NodeDefinition&ParentNodeDefinitionInterface The parent node */ public function end() { diff --git a/vendor/symfony/config/Definition/Builder/NodeDefinition.php b/vendor/symfony/config/Definition/Builder/NodeDefinition.php index 7486e8c30f6199895ca983d65a777e8c30231976..cc245d7489b0d6ff3c049bd6a93583794da5fab5 100644 --- a/vendor/symfony/config/Definition/Builder/NodeDefinition.php +++ b/vendor/symfony/config/Definition/Builder/NodeDefinition.php @@ -34,7 +34,7 @@ abstract class NodeDefinition implements NodeParentInterface protected $trueEquivalent = true; protected $falseEquivalent = false; protected $parent; - protected $attributes = array(); + protected $attributes = []; /** * @param string|null $name The name of the node @@ -345,7 +345,7 @@ protected function normalization() /** * Instantiate and configure the node according to this definition. * - * @return NodeInterface $node The node instance + * @return NodeInterface The node instance * * @throws InvalidDefinitionException When the definition is invalid */ diff --git a/vendor/symfony/config/Definition/Builder/NormalizationBuilder.php b/vendor/symfony/config/Definition/Builder/NormalizationBuilder.php index 35e30487a60ebd21106ecb15c04ade3aa5ff700d..d3cdca90df1c3e630856e2e5761176c3ff42fdee 100644 --- a/vendor/symfony/config/Definition/Builder/NormalizationBuilder.php +++ b/vendor/symfony/config/Definition/Builder/NormalizationBuilder.php @@ -19,8 +19,8 @@ class NormalizationBuilder { protected $node; - public $before = array(); - public $remappings = array(); + public $before = []; + public $remappings = []; public function __construct(NodeDefinition $node) { @@ -37,7 +37,7 @@ public function __construct(NodeDefinition $node) */ public function remap($key, $plural = null) { - $this->remappings[] = array($key, null === $plural ? $key.'s' : $plural); + $this->remappings[] = [$key, null === $plural ? $key.'s' : $plural]; return $this; } diff --git a/vendor/symfony/config/Definition/Builder/NumericNodeDefinition.php b/vendor/symfony/config/Definition/Builder/NumericNodeDefinition.php index 0d0207ca4fc797ea1c02b91545c2aef2ca44ab2c..390b1136567e6ce3e175ffffc28ba6af92688388 100644 --- a/vendor/symfony/config/Definition/Builder/NumericNodeDefinition.php +++ b/vendor/symfony/config/Definition/Builder/NumericNodeDefinition.php @@ -35,7 +35,7 @@ abstract class NumericNodeDefinition extends ScalarNodeDefinition public function max($max) { if (isset($this->min) && $this->min > $max) { - throw new \InvalidArgumentException(sprintf('You cannot define a max(%s) as you already have a min(%s)', $max, $this->min)); + throw new \InvalidArgumentException(sprintf('You cannot define a max(%s) as you already have a min(%s).', $max, $this->min)); } $this->max = $max; @@ -54,7 +54,7 @@ public function max($max) public function min($min) { if (isset($this->max) && $this->max < $min) { - throw new \InvalidArgumentException(sprintf('You cannot define a min(%s) as you already have a max(%s)', $min, $this->max)); + throw new \InvalidArgumentException(sprintf('You cannot define a min(%s) as you already have a max(%s).', $min, $this->max)); } $this->min = $min; diff --git a/vendor/symfony/config/Definition/Builder/ValidationBuilder.php b/vendor/symfony/config/Definition/Builder/ValidationBuilder.php index bb2b9eb33924b62cbd4269efba97fdb43429676d..4efc726c0cf2d3be24060180bdca74398a50c1fd 100644 --- a/vendor/symfony/config/Definition/Builder/ValidationBuilder.php +++ b/vendor/symfony/config/Definition/Builder/ValidationBuilder.php @@ -19,7 +19,7 @@ class ValidationBuilder { protected $node; - public $rules = array(); + public $rules = []; public function __construct(NodeDefinition $node) { diff --git a/vendor/symfony/config/Definition/Dumper/XmlReferenceDumper.php b/vendor/symfony/config/Definition/Dumper/XmlReferenceDumper.php index 881457c923446ab1506765858316c35aedffec66..744f15fd81b5aa63f7128b764c18f0214e24944f 100644 --- a/vendor/symfony/config/Definition/Dumper/XmlReferenceDumper.php +++ b/vendor/symfony/config/Definition/Dumper/XmlReferenceDumper.php @@ -42,10 +42,9 @@ public function dumpNode(NodeInterface $node, $namespace = null) } /** - * @param NodeInterface $node - * @param int $depth - * @param bool $root If the node is the root node - * @param string $namespace The namespace of the node + * @param int $depth + * @param bool $root If the node is the root node + * @param string $namespace The namespace of the node */ private function writeNode(NodeInterface $node, $depth = 0, $root = false, $namespace = null) { @@ -65,10 +64,10 @@ private function writeNode(NodeInterface $node, $depth = 0, $root = false, $name } $rootName = str_replace('_', '-', $rootName); - $rootAttributes = array(); - $rootAttributeComments = array(); - $rootChildren = array(); - $rootComments = array(); + $rootAttributes = []; + $rootAttributeComments = []; + $rootChildren = []; + $rootComments = []; if ($node instanceof ArrayNode) { $children = $node->getChildren(); @@ -98,7 +97,7 @@ private function writeNode(NodeInterface $node, $depth = 0, $root = false, $name if ($prototype instanceof PrototypedArrayNode) { $prototype->setName($key); - $children = array($key => $prototype); + $children = [$key => $prototype]; } elseif ($prototype instanceof ArrayNode) { $children = $prototype->getChildren(); } else { @@ -140,7 +139,7 @@ private function writeNode(NodeInterface $node, $depth = 0, $root = false, $name $value = '%%%%not_defined%%%%'; // use a string which isn't used in the normal world // comments - $comments = array(); + $comments = []; if ($info = $child->getInfo()) { $comments[] = $info; } @@ -307,5 +306,7 @@ private function writeValue($value) if (\is_array($value)) { return implode(',', $value); } + + return ''; } } diff --git a/vendor/symfony/config/Definition/Dumper/YamlReferenceDumper.php b/vendor/symfony/config/Definition/Dumper/YamlReferenceDumper.php index fc5d20a2e70408d1423bd439b4adfcddf9f8f610..ba355394602f7f8309c1869107b9e1b657222ca1 100644 --- a/vendor/symfony/config/Definition/Dumper/YamlReferenceDumper.php +++ b/vendor/symfony/config/Definition/Dumper/YamlReferenceDumper.php @@ -39,7 +39,7 @@ public function dumpAtPath(ConfigurationInterface $configuration, $path) foreach (explode('.', $path) as $step) { if (!$node instanceof ArrayNode) { - throw new \UnexpectedValueException(sprintf('Unable to find node at path "%s.%s"', $rootNode->getName(), $path)); + throw new \UnexpectedValueException(sprintf('Unable to find node at path "%s.%s".', $rootNode->getName(), $path)); } /** @var NodeInterface[] $children */ @@ -53,7 +53,7 @@ public function dumpAtPath(ConfigurationInterface $configuration, $path) } } - throw new \UnexpectedValueException(sprintf('Unable to find node at path "%s.%s"', $rootNode->getName(), $path)); + throw new \UnexpectedValueException(sprintf('Unable to find node at path "%s.%s".', $rootNode->getName(), $path)); } return $this->dumpNode($node); @@ -70,14 +70,12 @@ public function dumpNode(NodeInterface $node) } /** - * @param NodeInterface $node - * @param NodeInterface|null $parentNode - * @param int $depth - * @param bool $prototypedArray + * @param int $depth + * @param bool $prototypedArray */ private function writeNode(NodeInterface $node, NodeInterface $parentNode = null, $depth = 0, $prototypedArray = false) { - $comments = array(); + $comments = []; $default = ''; $defaultArray = null; $children = null; @@ -215,8 +213,6 @@ private function writeArray(array $array, $depth) } /** - * @param PrototypedArrayNode $node - * * @return array */ private function getPrototypeChildren(PrototypedArrayNode $node) @@ -251,6 +247,6 @@ private function getPrototypeChildren(PrototypedArrayNode $node) } $keyNode->setInfo($info); - return array($key => $keyNode); + return [$key => $keyNode]; } } diff --git a/vendor/symfony/config/Definition/EnumNode.php b/vendor/symfony/config/Definition/EnumNode.php index 0cb40018b04fea200956eded49602fc3e2ecc75f..15c8db3e66e52c94824410392cbab761684a51ac 100644 --- a/vendor/symfony/config/Definition/EnumNode.php +++ b/vendor/symfony/config/Definition/EnumNode.php @@ -22,7 +22,7 @@ class EnumNode extends ScalarNode { private $values; - public function __construct($name, NodeInterface $parent = null, array $values = array()) + public function __construct($name, NodeInterface $parent = null, array $values = []) { $values = array_unique($values); if (empty($values)) { @@ -43,11 +43,7 @@ protected function finalizeValue($value) $value = parent::finalizeValue($value); if (!\in_array($value, $this->values, true)) { - $ex = new InvalidConfigurationException(sprintf( - 'The value %s is not allowed for path "%s". Permissible values: %s', - json_encode($value), - $this->getPath(), - implode(', ', array_map('json_encode', $this->values)))); + $ex = new InvalidConfigurationException(sprintf('The value %s is not allowed for path "%s". Permissible values: %s', json_encode($value), $this->getPath(), implode(', ', array_map('json_encode', $this->values)))); $ex->setPath($this->getPath()); throw $ex; diff --git a/vendor/symfony/config/Definition/Processor.php b/vendor/symfony/config/Definition/Processor.php index 3e0feab8693e154897771ccb4a60aa3403284222..0a935eeb7ff1d1deeb48a95e373ffe2ab84bcc51 100644 --- a/vendor/symfony/config/Definition/Processor.php +++ b/vendor/symfony/config/Definition/Processor.php @@ -28,7 +28,7 @@ class Processor */ public function process(NodeInterface $configTree, array $configs) { - $currentConfig = array(); + $currentConfig = []; foreach ($configs as $config) { $config = $configTree->normalize($config); $currentConfig = $configTree->merge($currentConfig, $config); @@ -86,12 +86,12 @@ public static function normalizeConfig($config, $key, $plural = null) if (isset($config[$key])) { if (\is_string($config[$key]) || !\is_int(key($config[$key]))) { // only one - return array($config[$key]); + return [$config[$key]]; } return $config[$key]; } - return array(); + return []; } } diff --git a/vendor/symfony/config/Definition/PrototypedArrayNode.php b/vendor/symfony/config/Definition/PrototypedArrayNode.php index 6af4a61e475d4896d8eb13855c36f8e7f27ba26b..d18a109abc6a40640a9b29ed91bf72caa1e2d682 100644 --- a/vendor/symfony/config/Definition/PrototypedArrayNode.php +++ b/vendor/symfony/config/Definition/PrototypedArrayNode.php @@ -27,12 +27,12 @@ class PrototypedArrayNode extends ArrayNode protected $keyAttribute; protected $removeKeyAttribute = false; protected $minNumberOfElements = 0; - protected $defaultValue = array(); + protected $defaultValue = []; protected $defaultChildren; /** * @var NodeInterface[] An array of the prototypes of the simplified value children */ - private $valuePrototypes = array(); + private $valuePrototypes = []; /** * Sets the minimum number of elements that a prototype based node must @@ -53,15 +53,15 @@ public function setMinNumberOfElements($number) * to be the key of the particular item. For example, if "id" is the * "key", then: * - * array( - * array('id' => 'my_name', 'foo' => 'bar'), - * ); + * [ + * ['id' => 'my_name', 'foo' => 'bar'], + * ]; * * becomes * - * array( - * 'my_name' => array('foo' => 'bar'), - * ); + * [ + * 'my_name' => ['foo' => 'bar'], + * ]; * * If you'd like "'id' => 'my_name'" to still be present in the resulting * array, then you can set the second argument of this method to false. @@ -78,7 +78,7 @@ public function setKeyAttribute($attribute, $remove = true) /** * Retrieves the name of the attribute which value should be used as key. * - * @return string The name of the attribute + * @return string|null The name of the attribute */ public function getKeyAttribute() { @@ -114,10 +114,10 @@ public function hasDefaultValue() * * @param int|string|array|null $children The number of children|The child name|The children names to be added */ - public function setAddChildrenIfNoneSet($children = array('defaults')) + public function setAddChildrenIfNoneSet($children = ['defaults']) { if (null === $children) { - $this->defaultChildren = array('defaults'); + $this->defaultChildren = ['defaults']; } else { $this->defaultChildren = \is_int($children) && $children > 0 ? range(1, $children) : (array) $children; } @@ -132,8 +132,8 @@ public function setAddChildrenIfNoneSet($children = array('defaults')) public function getDefaultValue() { if (null !== $this->defaultChildren) { - $default = $this->prototype->hasDefaultValue() ? $this->prototype->getDefaultValue() : array(); - $defaults = array(); + $default = $this->prototype->hasDefaultValue() ? $this->prototype->getDefaultValue() : []; + $defaults = []; foreach (array_values($this->defaultChildren) as $i => $name) { $defaults[null === $this->keyAttribute ? $i : $name] = $default; } @@ -185,8 +185,7 @@ public function addChild(NodeInterface $node) protected function finalizeValue($value) { if (false === $value) { - $msg = sprintf('Unsetting key for path "%s", value: %s', $this->getPath(), json_encode($value)); - throw new UnsetKeyException($msg); + throw new UnsetKeyException(sprintf('Unsetting key for path "%s", value: "%s".', $this->getPath(), json_encode($value))); } foreach ($value as $k => $v) { @@ -199,8 +198,7 @@ protected function finalizeValue($value) } if (\count($value) < $this->minNumberOfElements) { - $msg = sprintf('The path "%s" should have at least %d element(s) defined.', $this->getPath(), $this->minNumberOfElements); - $ex = new InvalidConfigurationException($msg); + $ex = new InvalidConfigurationException(sprintf('The path "%s" should have at least %d element(s) defined.', $this->getPath(), $this->minNumberOfElements)); $ex->setPath($this->getPath()); throw $ex; @@ -228,12 +226,11 @@ protected function normalizeValue($value) $value = $this->remapXml($value); $isAssoc = array_keys($value) !== range(0, \count($value) - 1); - $normalized = array(); + $normalized = []; foreach ($value as $k => $v) { if (null !== $this->keyAttribute && \is_array($v)) { if (!isset($v[$this->keyAttribute]) && \is_int($k) && !$isAssoc) { - $msg = sprintf('The attribute "%s" must be set for path "%s".', $this->keyAttribute, $this->getPath()); - $ex = new InvalidConfigurationException($msg); + $ex = new InvalidConfigurationException(sprintf('The attribute "%s" must be set for path "%s".', $this->keyAttribute, $this->getPath())); $ex->setPath($this->getPath()); throw $ex; @@ -246,9 +243,9 @@ protected function normalizeValue($value) } // if only "value" is left - if (array_keys($v) === array('value')) { + if (array_keys($v) === ['value']) { $v = $v['value']; - if ($this->prototype instanceof ArrayNode && ($children = $this->prototype->getChildren()) && array_key_exists('value', $children)) { + if ($this->prototype instanceof ArrayNode && ($children = $this->prototype->getChildren()) && \array_key_exists('value', $children)) { $valuePrototype = current($this->valuePrototypes) ?: clone $children['value']; $valuePrototype->parent = $this; $originalClosures = $this->prototype->normalizationClosures; @@ -261,9 +258,8 @@ protected function normalizeValue($value) } } - if (array_key_exists($k, $normalized)) { - $msg = sprintf('Duplicate key "%s" for path "%s".', $k, $this->getPath()); - $ex = new DuplicateKeyException($msg); + if (\array_key_exists($k, $normalized)) { + $ex = new DuplicateKeyException(sprintf('Duplicate key "%s" for path "%s".', $k, $this->getPath())); $ex->setPath($this->getPath()); throw $ex; @@ -305,20 +301,16 @@ protected function mergeValues($leftSide, $rightSide) } foreach ($rightSide as $k => $v) { - // prototype, and key is irrelevant, so simply append the element + // prototype, and key is irrelevant, append the element if (null === $this->keyAttribute) { $leftSide[] = $v; continue; } // no conflict - if (!array_key_exists($k, $leftSide)) { + if (!\array_key_exists($k, $leftSide)) { if (!$this->allowNewKeys) { - $ex = new InvalidConfigurationException(sprintf( - 'You are not allowed to define new elements for path "%s". '. - 'Please define all elements for this path in one config file.', - $this->getPath() - )); + $ex = new InvalidConfigurationException(sprintf('You are not allowed to define new elements for path "%s". Please define all elements for this path in one config file.', $this->getPath())); $ex->setPath($this->getPath()); throw $ex; @@ -342,27 +334,31 @@ protected function mergeValues($leftSide, $rightSide) * one is same as this->keyAttribute and the other is 'value', then the prototype will be different. * * For example, assume $this->keyAttribute is 'name' and the value array is as follows: - * array( - * array( - * 'name' => 'name001', - * 'value' => 'value001' - * ) - * ) + * + * [ + * [ + * 'name' => 'name001', + * 'value' => 'value001' + * ] + * ] * * Now, the key is 0 and the child node is: - * array( - * 'name' => 'name001', - * 'value' => 'value001' - * ) + * + * [ + * 'name' => 'name001', + * 'value' => 'value001' + * ] * * When normalizing the value array, the 'name' element will removed from the child node * and its value becomes the new key of the child node: - * array( - * 'name001' => array('value' => 'value001') - * ) + * + * [ + * 'name001' => ['value' => 'value001'] + * ] * * Now only 'value' element is left in the child node which can be further simplified into a string: - * array('name001' => 'value001') + * + * ['name001' => 'value001'] * * Now, the key becomes 'name001' and the child node becomes 'value001' and * the prototype of child node 'name001' should be a ScalarNode instead of an ArrayNode instance. diff --git a/vendor/symfony/config/Definition/ScalarNode.php b/vendor/symfony/config/Definition/ScalarNode.php index e63f3f227f7028a55746d919da716a6724120b60..53c1ed29c299d4608333b946866199ac402e0eb1 100644 --- a/vendor/symfony/config/Definition/ScalarNode.php +++ b/vendor/symfony/config/Definition/ScalarNode.php @@ -33,11 +33,7 @@ class ScalarNode extends VariableNode protected function validateType($value) { if (!is_scalar($value) && null !== $value) { - $ex = new InvalidTypeException(sprintf( - 'Invalid type for path "%s". Expected scalar, but got %s.', - $this->getPath(), - \gettype($value) - )); + $ex = new InvalidTypeException(sprintf('Invalid type for path "%s". Expected scalar, but got %s.', $this->getPath(), \gettype($value))); if ($hint = $this->getInfo()) { $ex->addHint($hint); } diff --git a/vendor/symfony/config/Definition/VariableNode.php b/vendor/symfony/config/Definition/VariableNode.php index 0cd84c72bf303431690dab26a7d6055fae5b7343..1a3442d9613db1ca1223c5f659449cb22b608728 100644 --- a/vendor/symfony/config/Definition/VariableNode.php +++ b/vendor/symfony/config/Definition/VariableNode.php @@ -82,11 +82,7 @@ protected function validateType($value) protected function finalizeValue($value) { if (!$this->allowEmptyValue && $this->isValueEmpty($value)) { - $ex = new InvalidConfigurationException(sprintf( - 'The path "%s" cannot contain an empty value, but got %s.', - $this->getPath(), - json_encode($value) - )); + $ex = new InvalidConfigurationException(sprintf('The path "%s" cannot contain an empty value, but got %s.', $this->getPath(), json_encode($value))); if ($hint = $this->getInfo()) { $ex->addHint($hint); } diff --git a/vendor/symfony/config/Exception/FileLoaderLoadException.php b/vendor/symfony/config/Exception/FileLoaderLoadException.php index e74bd673d54761e796c1ef16070ce5388f93a478..82d90eb39b6efe067e0dc760bf3f496a22885007 100644 --- a/vendor/symfony/config/Exception/FileLoaderLoadException.php +++ b/vendor/symfony/config/Exception/FileLoaderLoadException.php @@ -80,7 +80,7 @@ protected function varToString($var) } if (\is_array($var)) { - $a = array(); + $a = []; foreach ($var as $k => $v) { $a[] = sprintf('%s => %s', $k, $this->varToString($v)); } diff --git a/vendor/symfony/config/Exception/FileLocatorFileNotFoundException.php b/vendor/symfony/config/Exception/FileLocatorFileNotFoundException.php index af764eb4718d8f7baede6f9eda64a611480ded38..648cf0e70769050791b198711eade17f298c343a 100644 --- a/vendor/symfony/config/Exception/FileLocatorFileNotFoundException.php +++ b/vendor/symfony/config/Exception/FileLocatorFileNotFoundException.php @@ -20,7 +20,7 @@ class FileLocatorFileNotFoundException extends \InvalidArgumentException { private $paths; - public function __construct($message = '', $code = 0, $previous = null, array $paths = array()) + public function __construct($message = '', $code = 0, $previous = null, array $paths = []) { parent::__construct($message, $code, $previous); diff --git a/vendor/symfony/config/FileLocator.php b/vendor/symfony/config/FileLocator.php index 2c9cea047c2a426fb9afe79730438b289558addc..c125ba0b1377170c3ac5475af1fd46e5228b3e65 100644 --- a/vendor/symfony/config/FileLocator.php +++ b/vendor/symfony/config/FileLocator.php @@ -25,7 +25,7 @@ class FileLocator implements FileLocatorInterface /** * @param string|array $paths A path or an array of paths where to look for resources */ - public function __construct($paths = array()) + public function __construct($paths = []) { $this->paths = (array) $paths; } @@ -41,7 +41,7 @@ public function locate($name, $currentPath = null, $first = true) if ($this->isAbsolutePath($name)) { if (!file_exists($name)) { - throw new FileLocatorFileNotFoundException(sprintf('The file "%s" does not exist.', $name), 0, null, array($name)); + throw new FileLocatorFileNotFoundException(sprintf('The file "%s" does not exist.', $name), 0, null, [$name]); } return $name; @@ -54,7 +54,7 @@ public function locate($name, $currentPath = null, $first = true) } $paths = array_unique($paths); - $filepaths = $notfound = array(); + $filepaths = $notfound = []; foreach ($paths as $path) { if (@file_exists($file = $path.\DIRECTORY_SEPARATOR.$name)) { @@ -68,7 +68,7 @@ public function locate($name, $currentPath = null, $first = true) } if (!$filepaths) { - throw new FileLocatorFileNotFoundException(sprintf('The file "%s" does not exist (in: %s).', $name, implode(', ', $paths)), 0, null, $notfound); + throw new FileLocatorFileNotFoundException(sprintf('The file "%s" does not exist (in: "%s").', $name, implode('", "', $paths)), 0, null, $notfound); } return $filepaths; diff --git a/vendor/symfony/config/LICENSE b/vendor/symfony/config/LICENSE index 21d7fb9e2f29b50caca3a76f0647e94e2cc8ddc1..9e936ec0448b8549e5edf08e5ac5f01491a8bfc8 100644 --- a/vendor/symfony/config/LICENSE +++ b/vendor/symfony/config/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2020 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/config/Loader/FileLoader.php b/vendor/symfony/config/Loader/FileLoader.php index 016ac4120fc9d76c8282119b3df82a3ecb117965..2f1d471bddc0e7ba9648576b1d094814a1ae146e 100644 --- a/vendor/symfony/config/Loader/FileLoader.php +++ b/vendor/symfony/config/Loader/FileLoader.php @@ -25,7 +25,7 @@ */ abstract class FileLoader extends Loader { - protected static $loading = array(); + protected static $loading = []; protected $locator; @@ -73,10 +73,10 @@ public function getLocator() public function import($resource, $type = null, $ignoreErrors = false, $sourceResource = null) { if (\is_string($resource) && \strlen($resource) !== $i = strcspn($resource, '*?{[')) { - $ret = array(); + $ret = []; $isSubpath = 0 !== $i && false !== strpos(substr($resource, 0, $i), '/'); foreach ($this->glob($resource, false, $_, $ignoreErrors || !$isSubpath) as $path => $info) { - if (null !== $res = $this->doImport($path, $type, $ignoreErrors, $sourceResource)) { + if (null !== $res = $this->doImport($path, 'glob' === $type ? null : $type, $ignoreErrors, $sourceResource)) { $ret[] = $res; } $isSubpath = true; @@ -113,7 +113,7 @@ protected function glob($pattern, $recursive, &$resource = null, $ignoreErrors = throw $e; } - $resource = array(); + $resource = []; foreach ($e->getPaths() as $path) { $resource[] = new FileExistenceResource($path); } @@ -136,7 +136,7 @@ private function doImport($resource, $type = null, $ignoreErrors = false, $sourc $resource = $loader->getLocator()->locate($resource, $this->currentDir, false); } - $resources = \is_array($resource) ? $resource : array($resource); + $resources = \is_array($resource) ? $resource : [$resource]; for ($i = 0; $i < $resourcesCount = \count($resources); ++$i) { if (isset(self::$loading[$resources[$i]])) { if ($i == $resourcesCount - 1) { @@ -168,5 +168,7 @@ private function doImport($resource, $type = null, $ignoreErrors = false, $sourc throw new FileLoaderLoadException($resource, $sourceResource, null, $e, $type); } } + + return null; } } diff --git a/vendor/symfony/config/Loader/LoaderResolver.php b/vendor/symfony/config/Loader/LoaderResolver.php index 9299bc000f5f45a5ca52ac6e4a15b0f4e06d0797..c99efda4fd365fe6b561f406729545e0cd86018d 100644 --- a/vendor/symfony/config/Loader/LoaderResolver.php +++ b/vendor/symfony/config/Loader/LoaderResolver.php @@ -24,12 +24,12 @@ class LoaderResolver implements LoaderResolverInterface /** * @var LoaderInterface[] An array of LoaderInterface objects */ - private $loaders = array(); + private $loaders = []; /** * @param LoaderInterface[] $loaders An array of loaders */ - public function __construct(array $loaders = array()) + public function __construct(array $loaders = []) { foreach ($loaders as $loader) { $this->addLoader($loader); diff --git a/vendor/symfony/config/README.md b/vendor/symfony/config/README.md index bf400da196b224a49b83f7caf696a90216e6d3e5..0bbde55230a21e7225cde197420af171bf8c2547 100644 --- a/vendor/symfony/config/README.md +++ b/vendor/symfony/config/README.md @@ -8,7 +8,7 @@ may be (YAML, XML, INI files, or for instance a database). Resources --------- - * [Documentation](https://symfony.com/doc/current/components/config/index.html) + * [Documentation](https://symfony.com/doc/current/components/config.html) * [Contributing](https://symfony.com/doc/current/contributing/index.html) * [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls) diff --git a/vendor/symfony/config/Resource/ClassExistenceResource.php b/vendor/symfony/config/Resource/ClassExistenceResource.php index 9a1d7ba57b2caaea6f9f0ec54756af74c145c697..fc0259f418922cfe35a2dccb0560f87ba114e63e 100644 --- a/vendor/symfony/config/Resource/ClassExistenceResource.php +++ b/vendor/symfony/config/Resource/ClassExistenceResource.php @@ -26,7 +26,7 @@ class ClassExistenceResource implements SelfCheckingResourceInterface, \Serializ private static $autoloadLevel = 0; private static $autoloadedClass; - private static $existsCache = array(); + private static $existsCache = []; /** * @param string $resource The fully-qualified class name @@ -36,7 +36,7 @@ public function __construct($resource, $exists = null) { $this->resource = $resource; if (null !== $exists) { - $this->exists = (bool) $exists; + $this->exists = [(bool) $exists, null]; } } @@ -65,22 +65,35 @@ public function isFresh($timestamp) { $loaded = class_exists($this->resource, false) || interface_exists($this->resource, false) || trait_exists($this->resource, false); - if (null !== $exists = &self::$existsCache[(int) (0 >= $timestamp)][$this->resource]) { - $exists = $exists || $loaded; - } elseif (!$exists = $loaded) { + if (null !== $exists = &self::$existsCache[$this->resource]) { + if ($loaded) { + $exists = [true, null]; + } elseif (0 >= $timestamp && !$exists[0] && null !== $exists[1]) { + throw new \ReflectionException($exists[1]); + } + } elseif ([false, null] === $exists = [$loaded, null]) { if (!self::$autoloadLevel++) { spl_autoload_register(__CLASS__.'::throwOnRequiredClass'); } $autoloadedClass = self::$autoloadedClass; - self::$autoloadedClass = $this->resource; + self::$autoloadedClass = ltrim($this->resource, '\\'); try { - $exists = class_exists($this->resource) || interface_exists($this->resource, false) || trait_exists($this->resource, false); - } catch (\ReflectionException $e) { - if (0 >= $timestamp) { - unset(self::$existsCache[1][$this->resource]); - throw $e; + $exists[0] = class_exists($this->resource) || interface_exists($this->resource, false) || trait_exists($this->resource, false); + } catch (\Exception $e) { + $exists[1] = $e->getMessage(); + + try { + self::throwOnRequiredClass($this->resource, $e); + } catch (\ReflectionException $e) { + if (0 >= $timestamp) { + throw $e; + } } + } catch (\Throwable $e) { + $exists[1] = $e->getMessage(); + + throw $e; } finally { self::$autoloadedClass = $autoloadedClass; if (!--self::$autoloadLevel) { @@ -93,11 +106,11 @@ public function isFresh($timestamp) $this->exists = $exists; } - return $this->exists xor !$exists; + return $this->exists[0] xor !$exists[0]; } /** - * {@inheritdoc} + * @internal */ public function serialize() { @@ -105,34 +118,83 @@ public function serialize() $this->isFresh(0); } - return serialize(array($this->resource, $this->exists)); + return serialize([$this->resource, $this->exists]); } /** - * {@inheritdoc} + * @internal */ public function unserialize($serialized) { list($this->resource, $this->exists) = unserialize($serialized); + + if (\is_bool($this->exists)) { + $this->exists = [$this->exists, null]; + } } /** - * @throws \ReflectionException When $class is not found and is required + * Throws a reflection exception when the passed class does not exist but is required. + * + * A class is considered "not required" when it's loaded as part of a "class_exists" or similar check. + * + * This function can be used as an autoload function to throw a reflection + * exception if the class was not found by previous autoload functions. + * + * A previous exception can be passed. In this case, the class is considered as being + * required totally, so if it doesn't exist, a reflection exception is always thrown. + * If it exists, the previous exception is rethrown. + * + * @throws \ReflectionException + * + * @internal */ - private static function throwOnRequiredClass($class) + public static function throwOnRequiredClass($class, \Exception $previous = null) { - if (self::$autoloadedClass === $class) { + // If the passed class is the resource being checked, we shouldn't throw. + if (null === $previous && self::$autoloadedClass === $class) { + return; + } + + if (class_exists($class, false) || interface_exists($class, false) || trait_exists($class, false)) { + if (null !== $previous) { + throw $previous; + } + return; } - $e = new \ReflectionException("Class $class not found"); - $trace = $e->getTrace(); - $autoloadFrame = array( + + if ($previous instanceof \ReflectionException) { + throw $previous; + } + + $message = sprintf('Class "%s" not found.', $class); + + if (self::$autoloadedClass !== $class) { + $message = substr_replace($message, sprintf(' while loading "%s"', self::$autoloadedClass), -1, 0); + } + + if (null !== $previous) { + $message = $previous->getMessage(); + } + + $e = new \ReflectionException($message, 0, $previous); + + if (null !== $previous) { + throw $e; + } + + $trace = debug_backtrace(); + $autoloadFrame = [ 'function' => 'spl_autoload_call', - 'args' => array($class), - ); - $i = 1 + array_search($autoloadFrame, $trace, true); + 'args' => [$class], + ]; - if (isset($trace[$i]['function']) && !isset($trace[$i]['class'])) { + if (false === $i = array_search($autoloadFrame, $trace, true)) { + throw $e; + } + + if (isset($trace[++$i]['function']) && !isset($trace[$i]['class'])) { switch ($trace[$i]['function']) { case 'get_class_methods': case 'get_class_vars': @@ -151,16 +213,18 @@ private static function throwOnRequiredClass($class) return; } - $props = array( - 'file' => $trace[$i]['file'], - 'line' => $trace[$i]['line'], + $props = [ + 'file' => isset($trace[$i]['file']) ? $trace[$i]['file'] : null, + 'line' => isset($trace[$i]['line']) ? $trace[$i]['line'] : null, 'trace' => \array_slice($trace, 1 + $i), - ); + ]; foreach ($props as $p => $v) { - $r = new \ReflectionProperty('Exception', $p); - $r->setAccessible(true); - $r->setValue($e, $v); + if (null !== $v) { + $r = new \ReflectionProperty('Exception', $p); + $r->setAccessible(true); + $r->setValue($e, $v); + } } } diff --git a/vendor/symfony/config/Resource/ComposerResource.php b/vendor/symfony/config/Resource/ComposerResource.php index 9c170c077509abd32253c40d02f06597157f5024..9fb304bea8f0602c8742811d4d15b59923e274b0 100644 --- a/vendor/symfony/config/Resource/ComposerResource.php +++ b/vendor/symfony/config/Resource/ComposerResource.php @@ -48,14 +48,20 @@ public function isFresh($timestamp) { self::refresh(); - return self::$runtimeVendors === $this->vendors; + return array_values(self::$runtimeVendors) === array_values($this->vendors); } + /** + * @internal + */ public function serialize() { return serialize($this->vendors); } + /** + * @internal + */ public function unserialize($serialized) { $this->vendors = unserialize($serialized); @@ -63,7 +69,7 @@ public function unserialize($serialized) private static function refresh() { - self::$runtimeVendors = array(); + self::$runtimeVendors = []; foreach (get_declared_classes() as $class) { if ('C' === $class[0] && 0 === strpos($class, 'ComposerAutoloaderInit')) { diff --git a/vendor/symfony/config/Resource/DirectoryResource.php b/vendor/symfony/config/Resource/DirectoryResource.php index b1786397d18655ebba9a165385c237a106749d9f..e79b19ec2d7a0fa65c8a8e293988612e07cdaa01 100644 --- a/vendor/symfony/config/Resource/DirectoryResource.php +++ b/vendor/symfony/config/Resource/DirectoryResource.php @@ -42,7 +42,7 @@ public function __construct($resource, $pattern = null) */ public function __toString() { - return md5(serialize(array($this->resource, $this->pattern))); + return md5(serialize([$this->resource, $this->pattern])); } /** @@ -104,11 +104,17 @@ public function isFresh($timestamp) return true; } + /** + * @internal + */ public function serialize() { - return serialize(array($this->resource, $this->pattern)); + return serialize([$this->resource, $this->pattern]); } + /** + * @internal + */ public function unserialize($serialized) { list($this->resource, $this->pattern) = unserialize($serialized); diff --git a/vendor/symfony/config/Resource/FileExistenceResource.php b/vendor/symfony/config/Resource/FileExistenceResource.php index 6396ddd524852ffe2a888b19e3a9232c32981015..34047651b7022324cc3973375420eb8d867194d8 100644 --- a/vendor/symfony/config/Resource/FileExistenceResource.php +++ b/vendor/symfony/config/Resource/FileExistenceResource.php @@ -59,15 +59,15 @@ public function isFresh($timestamp) } /** - * {@inheritdoc} + * @internal */ public function serialize() { - return serialize(array($this->resource, $this->exists)); + return serialize([$this->resource, $this->exists]); } /** - * {@inheritdoc} + * @internal */ public function unserialize($serialized) { diff --git a/vendor/symfony/config/Resource/FileResource.php b/vendor/symfony/config/Resource/FileResource.php index 1d373a623acfc40e8f12200a5c1d4088db10d10d..bee062377b6b26f8444820f941578bd80f747574 100644 --- a/vendor/symfony/config/Resource/FileResource.php +++ b/vendor/symfony/config/Resource/FileResource.php @@ -63,11 +63,17 @@ public function isFresh($timestamp) return false !== ($filemtime = @filemtime($this->resource)) && $filemtime <= $timestamp; } + /** + * @internal + */ public function serialize() { return serialize($this->resource); } + /** + * @internal + */ public function unserialize($serialized) { $this->resource = unserialize($serialized); diff --git a/vendor/symfony/config/Resource/GlobResource.php b/vendor/symfony/config/Resource/GlobResource.php index e3c3be12cffe58bcd88bba516cb3c503160d857d..13d2ee7d703d737610fbe8e8c6e06c5f5877c532 100644 --- a/vendor/symfony/config/Resource/GlobResource.php +++ b/vendor/symfony/config/Resource/GlobResource.php @@ -73,15 +73,21 @@ public function isFresh($timestamp) return $this->hash === $hash; } + /** + * @internal + */ public function serialize() { if (null === $this->hash) { $this->hash = $this->computeHash(); } - return serialize(array($this->prefix, $this->pattern, $this->recursive, $this->hash)); + return serialize([$this->prefix, $this->pattern, $this->recursive, $this->hash]); } + /** + * @internal + */ public function unserialize($serialized) { list($this->prefix, $this->pattern, $this->recursive, $this->hash) = unserialize($serialized); @@ -94,7 +100,9 @@ public function getIterator() } if (0 !== strpos($this->prefix, 'phar://') && false === strpos($this->pattern, '/**/') && (\defined('GLOB_BRACE') || false === strpos($this->pattern, '{'))) { - foreach (glob($this->prefix.$this->pattern, \defined('GLOB_BRACE') ? GLOB_BRACE : 0) as $path) { + $paths = glob($this->prefix.$this->pattern, GLOB_NOSORT | (\defined('GLOB_BRACE') ? GLOB_BRACE : 0)); + sort($paths); + foreach ($paths as $path) { if ($this->recursive && is_dir($path)) { $files = iterator_to_array(new \RecursiveIteratorIterator( new \RecursiveCallbackFilterIterator( diff --git a/vendor/symfony/config/Resource/ReflectionClassResource.php b/vendor/symfony/config/Resource/ReflectionClassResource.php index 65156a06de779a0ffaaa4634659ea15b7e1c0dbe..cfab1f6c10a655571a1e0c2ed32019ead5754216 100644 --- a/vendor/symfony/config/Resource/ReflectionClassResource.php +++ b/vendor/symfony/config/Resource/ReflectionClassResource.php @@ -19,13 +19,13 @@ */ class ReflectionClassResource implements SelfCheckingResourceInterface, \Serializable { - private $files = array(); + private $files = []; private $className; private $classReflector; - private $excludedVendors = array(); + private $excludedVendors = []; private $hash; - public function __construct(\ReflectionClass $classReflector, $excludedVendors = array()) + public function __construct(\ReflectionClass $classReflector, $excludedVendors = []) { $this->className = $classReflector->name; $this->classReflector = $classReflector; @@ -57,6 +57,9 @@ public function __toString() return 'reflection.'.$this->className; } + /** + * @internal + */ public function serialize() { if (null === $this->hash) { @@ -64,9 +67,12 @@ public function serialize() $this->loadFiles($this->classReflector); } - return serialize(array($this->files, $this->className, $this->hash)); + return serialize([$this->files, $this->className, $this->hash]); } + /** + * @internal + */ public function unserialize($serialized) { list($this->files, $this->className, $this->hash) = unserialize($serialized); @@ -133,8 +139,12 @@ private function generateSignature(\ReflectionClass $class) $defaults = $class->getDefaultProperties(); foreach ($class->getProperties(\ReflectionProperty::IS_PUBLIC | \ReflectionProperty::IS_PROTECTED) as $p) { - yield $p->getDocComment().$p; - yield print_r($defaults[$p->name], true); + yield $p->getDocComment(); + yield $p->isDefault() ? '<default>' : ''; + yield $p->isPublic() ? 'public' : 'protected'; + yield $p->isStatic() ? 'static' : ''; + yield '$'.$p->name; + yield print_r(isset($defaults[$p->name]) && !\is_object($defaults[$p->name]) ? $defaults[$p->name] : null, true); } } @@ -145,12 +155,56 @@ private function generateSignature(\ReflectionClass $class) } } else { foreach ($class->getMethods(\ReflectionMethod::IS_PUBLIC | \ReflectionMethod::IS_PROTECTED) as $m) { - yield preg_replace('/^ @@.*/m', '', $m); - - $defaults = array(); + $defaults = []; + $parametersWithUndefinedConstants = []; foreach ($m->getParameters() as $p) { - $defaults[$p->name] = $p->isDefaultValueAvailable() ? $p->getDefaultValue() : null; + if (!$p->isDefaultValueAvailable()) { + $defaults[$p->name] = null; + + continue; + } + + if (!$p->isDefaultValueConstant() || \defined($p->getDefaultValueConstantName())) { + $defaults[$p->name] = $p->getDefaultValue(); + + continue; + } + + $defaults[$p->name] = $p->getDefaultValueConstantName(); + $parametersWithUndefinedConstants[$p->name] = true; + } + + if (!$parametersWithUndefinedConstants) { + yield preg_replace('/^ @@.*/m', '', $m); + } else { + $stack = [ + $m->getDocComment(), + $m->getName(), + $m->isAbstract(), + $m->isFinal(), + $m->isStatic(), + $m->isPublic(), + $m->isPrivate(), + $m->isProtected(), + $m->returnsReference(), + \PHP_VERSION_ID >= 70000 && $m->hasReturnType() ? (\PHP_VERSION_ID >= 70100 ? $m->getReturnType()->getName() : (string) $m->getReturnType()) : '', + ]; + + foreach ($m->getParameters() as $p) { + if (!isset($parametersWithUndefinedConstants[$p->name])) { + $stack[] = (string) $p; + } else { + $stack[] = $p->isOptional(); + $stack[] = \PHP_VERSION_ID >= 70000 && $p->hasType() ? (\PHP_VERSION_ID >= 70100 ? $p->getType()->getName() : (string) $p->getType()) : ''; + $stack[] = $p->isPassedByReference(); + $stack[] = \PHP_VERSION_ID >= 50600 ? $p->isVariadic() : ''; + $stack[] = $p->getName(); + } + } + + yield implode(',', $stack); } + yield print_r($defaults, true); } } @@ -161,12 +215,12 @@ private function generateSignature(\ReflectionClass $class) if (interface_exists(EventSubscriberInterface::class, false) && $class->isSubclassOf(EventSubscriberInterface::class)) { yield EventSubscriberInterface::class; - yield print_r(\call_user_func(array($class->name, 'getSubscribedEvents')), true); + yield print_r(\call_user_func([$class->name, 'getSubscribedEvents']), true); } if (interface_exists(ServiceSubscriberInterface::class, false) && $class->isSubclassOf(ServiceSubscriberInterface::class)) { yield ServiceSubscriberInterface::class; - yield print_r(\call_user_func(array($class->name, 'getSubscribedServices')), true); + yield print_r(\call_user_func([$class->name, 'getSubscribedServices']), true); } } } @@ -178,10 +232,10 @@ class ReflectionMethodHhvmWrapper extends \ReflectionMethod { public function getParameters() { - $params = array(); + $params = []; foreach (parent::getParameters() as $i => $p) { - $params[] = new ReflectionParameterHhvmWrapper(array($this->class, $this->name), $i); + $params[] = new ReflectionParameterHhvmWrapper([$this->class, $this->name], $i); } return $params; @@ -195,6 +249,6 @@ class ReflectionParameterHhvmWrapper extends \ReflectionParameter { public function getDefaultValue() { - return array($this->isVariadic(), $this->isDefaultValueAvailable() ? parent::getDefaultValue() : null); + return [$this->isVariadic(), $this->isDefaultValueAvailable() ? parent::getDefaultValue() : null]; } } diff --git a/vendor/symfony/config/ResourceCheckerConfigCache.php b/vendor/symfony/config/ResourceCheckerConfigCache.php index 87e2c5d9f063ec6f254692d403ef5a79ee282d13..092b95bf0188b17ba38c63db81f8da267ccef189 100644 --- a/vendor/symfony/config/ResourceCheckerConfigCache.php +++ b/vendor/symfony/config/ResourceCheckerConfigCache.php @@ -37,7 +37,7 @@ class ResourceCheckerConfigCache implements ConfigCacheInterface * @param string $file The absolute cache path * @param iterable|ResourceCheckerInterface[] $resourceCheckers The ResourceCheckers to use for the freshness check */ - public function __construct($file, $resourceCheckers = array()) + public function __construct($file, $resourceCheckers = []) { $this->file = $file; $this->resourceCheckers = $resourceCheckers; @@ -137,7 +137,7 @@ public function write($content, array $metadata = null) } } - if (\function_exists('opcache_invalidate') && ini_get('opcache.enable')) { + if (\function_exists('opcache_invalidate') && filter_var(ini_get('opcache.enable'), FILTER_VALIDATE_BOOLEAN)) { @opcache_invalidate($this->file, true); } } @@ -156,10 +156,11 @@ private function safelyUnserialize($file) { $e = null; $meta = false; + $content = file_get_contents($file); $signalingException = new \UnexpectedValueException(); $prevUnserializeHandler = ini_set('unserialize_callback_func', ''); - $prevErrorHandler = set_error_handler(function ($type, $msg, $file, $line, $context = array()) use (&$prevErrorHandler, $signalingException) { - if (E_WARNING === $type && 'Class __PHP_Incomplete_Class has no unserializer' === $msg) { + $prevErrorHandler = set_error_handler(function ($type, $msg, $file, $line, $context = []) use (&$prevErrorHandler, $signalingException) { + if (__FILE__ === $file) { throw $signalingException; } @@ -167,7 +168,7 @@ private function safelyUnserialize($file) }); try { - $meta = unserialize(file_get_contents($file)); + $meta = unserialize($content); } catch (\Error $e) { } catch (\Exception $e) { } diff --git a/vendor/symfony/config/ResourceCheckerConfigCacheFactory.php b/vendor/symfony/config/ResourceCheckerConfigCacheFactory.php index 2e27eab711dc7d34fe872c2eed02dd5cb793844e..c00fa7db1b037c81dcbea16836d63792bb8d98a7 100644 --- a/vendor/symfony/config/ResourceCheckerConfigCacheFactory.php +++ b/vendor/symfony/config/ResourceCheckerConfigCacheFactory.php @@ -19,12 +19,12 @@ */ class ResourceCheckerConfigCacheFactory implements ConfigCacheFactoryInterface { - private $resourceCheckers = array(); + private $resourceCheckers = []; /** * @param iterable|ResourceCheckerInterface[] $resourceCheckers */ - public function __construct($resourceCheckers = array()) + public function __construct($resourceCheckers = []) { $this->resourceCheckers = $resourceCheckers; } diff --git a/vendor/symfony/config/Tests/ConfigCacheFactoryTest.php b/vendor/symfony/config/Tests/ConfigCacheFactoryTest.php index 24e3224ce5ba00ea5cdf01689b6a25130dca8908..6190b9b450b4079eef6788000c22f5db3f770d3a 100644 --- a/vendor/symfony/config/Tests/ConfigCacheFactoryTest.php +++ b/vendor/symfony/config/Tests/ConfigCacheFactoryTest.php @@ -16,12 +16,10 @@ class ConfigCacheFactoryTest extends TestCase { - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage Invalid type for callback argument. Expected callable, but got "object". - */ public function testCacheWithInvalidCallback() { + $this->expectException('InvalidArgumentException'); + $this->expectExceptionMessage('Invalid type for callback argument. Expected callable, but got "object".'); $cacheFactory = new ConfigCacheFactory(true); $cacheFactory->cache('file', new \stdClass()); diff --git a/vendor/symfony/config/Tests/ConfigCacheTest.php b/vendor/symfony/config/Tests/ConfigCacheTest.php index bf8131d514bda36a14494852c10c3d623b9a2cc8..d0b70899b513a7cf64fe8dbcc04cc36fefe7d1a2 100644 --- a/vendor/symfony/config/Tests/ConfigCacheTest.php +++ b/vendor/symfony/config/Tests/ConfigCacheTest.php @@ -26,7 +26,7 @@ protected function setUp() protected function tearDown() { - $files = array($this->cacheFile, $this->cacheFile.'.meta'); + $files = [$this->cacheFile, $this->cacheFile.'.meta']; foreach ($files as $file) { if (file_exists($file)) { @@ -52,7 +52,7 @@ public function testIsAlwaysFreshInProduction() $staleResource->setFresh(false); $cache = new ConfigCache($this->cacheFile, false); - $cache->write('', array($staleResource)); + $cache->write('', [$staleResource]); $this->assertTrue($cache->isFresh()); } @@ -63,7 +63,7 @@ public function testIsAlwaysFreshInProduction() public function testIsFreshWhenNoResourceProvided($debug) { $cache = new ConfigCache($this->cacheFile, $debug); - $cache->write('', array()); + $cache->write('', []); $this->assertTrue($cache->isFresh()); } @@ -73,7 +73,7 @@ public function testFreshResourceInDebug() $freshResource->setFresh(true); $cache = new ConfigCache($this->cacheFile, true); - $cache->write('', array($freshResource)); + $cache->write('', [$freshResource]); $this->assertTrue($cache->isFresh()); } @@ -84,16 +84,16 @@ public function testStaleResourceInDebug() $staleResource->setFresh(false); $cache = new ConfigCache($this->cacheFile, true); - $cache->write('', array($staleResource)); + $cache->write('', [$staleResource]); $this->assertFalse($cache->isFresh()); } public function debugModes() { - return array( - array(true), - array(false), - ); + return [ + [true], + [false], + ]; } } diff --git a/vendor/symfony/config/Tests/Definition/ArrayNodeTest.php b/vendor/symfony/config/Tests/Definition/ArrayNodeTest.php index 089cb56638d352b8ecdb344380eff61cfe58f299..25c2cfc6990474f6ae94becaa65393a6be08f697 100644 --- a/vendor/symfony/config/Tests/Definition/ArrayNodeTest.php +++ b/vendor/symfony/config/Tests/Definition/ArrayNodeTest.php @@ -18,35 +18,31 @@ class ArrayNodeTest extends TestCase { - /** - * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidTypeException - */ public function testNormalizeThrowsExceptionWhenFalseIsNotAllowed() { + $this->expectException('Symfony\Component\Config\Definition\Exception\InvalidTypeException'); $node = new ArrayNode('root'); $node->normalize(false); } - /** - * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidConfigurationException - * @expectedExceptionMessage Unrecognized option "foo" under "root" - */ public function testExceptionThrownOnUnrecognizedChild() { + $this->expectException('Symfony\Component\Config\Definition\Exception\InvalidConfigurationException'); + $this->expectExceptionMessage('Unrecognized option "foo" under "root"'); $node = new ArrayNode('root'); - $node->normalize(array('foo' => 'bar')); + $node->normalize(['foo' => 'bar']); } public function ignoreAndRemoveMatrixProvider() { $unrecognizedOptionException = new InvalidConfigurationException('Unrecognized option "foo" under "root"'); - return array( - array(true, true, array(), 'no exception is thrown for an unrecognized child if the ignoreExtraKeys option is set to true'), - array(true, false, array('foo' => 'bar'), 'extra keys are not removed when ignoreExtraKeys second option is set to false'), - array(false, true, $unrecognizedOptionException), - array(false, false, $unrecognizedOptionException), - ); + return [ + [true, true, [], 'no exception is thrown for an unrecognized child if the ignoreExtraKeys option is set to true'], + [true, false, ['foo' => 'bar'], 'extra keys are not removed when ignoreExtraKeys second option is set to false'], + [false, true, $unrecognizedOptionException], + [false, false, $unrecognizedOptionException], + ]; } /** @@ -55,16 +51,12 @@ public function ignoreAndRemoveMatrixProvider() public function testIgnoreAndRemoveBehaviors($ignore, $remove, $expected, $message = '') { if ($expected instanceof \Exception) { - if (method_exists($this, 'expectException')) { - $this->expectException(\get_class($expected)); - $this->expectExceptionMessage($expected->getMessage()); - } else { - $this->setExpectedException(\get_class($expected), $expected->getMessage()); - } + $this->expectException(\get_class($expected)); + $this->expectExceptionMessage($expected->getMessage()); } $node = new ArrayNode('root'); $node->setIgnoreExtraKeys($ignore, $remove); - $result = $node->normalize(array('foo' => 'bar')); + $result = $node->normalize(['foo' => 'bar']); $this->assertSame($expected, $result, $message); } @@ -83,24 +75,24 @@ public function testPreNormalize($denormalized, $normalized) public function getPreNormalizationTests() { - return array( - array( - array('foo-bar' => 'foo'), - array('foo_bar' => 'foo'), - ), - array( - array('foo-bar_moo' => 'foo'), - array('foo-bar_moo' => 'foo'), - ), - array( - array('anything-with-dash-and-no-underscore' => 'first', 'no_dash' => 'second'), - array('anything_with_dash_and_no_underscore' => 'first', 'no_dash' => 'second'), - ), - array( - array('foo-bar' => null, 'foo_bar' => 'foo'), - array('foo-bar' => null, 'foo_bar' => 'foo'), - ), - ); + return [ + [ + ['foo-bar' => 'foo'], + ['foo_bar' => 'foo'], + ], + [ + ['foo-bar_moo' => 'foo'], + ['foo-bar_moo' => 'foo'], + ], + [ + ['anything-with-dash-and-no-underscore' => 'first', 'no_dash' => 'second'], + ['anything_with_dash_and_no_underscore' => 'first', 'no_dash' => 'second'], + ], + [ + ['foo-bar' => null, 'foo_bar' => 'foo'], + ['foo-bar' => null, 'foo_bar' => 'foo'], + ], + ]; } /** @@ -125,30 +117,30 @@ public function testNodeNameCanBeZero($denormalized, $normalized) public function getZeroNamedNodeExamplesData() { - return array( - array( - array( - 0 => array( + return [ + [ + [ + 0 => [ 'name' => 'something', - ), - 5 => array( + ], + 5 => [ 0 => 'this won\'t work too', 'new_key' => 'some other value', - ), + ], 'string_key' => 'just value', - ), - array( - 0 => array( + ], + [ + 0 => [ 'name' => 'something', - ), - 5 => array( + ], + 5 => [ 0 => 'this won\'t work too', 'new_key' => 'some other value', - ), + ], 'string_key' => 'just value', - ), - ), - ); + ], + ], + ]; } /** @@ -172,32 +164,28 @@ public function testChildrenOrderIsMaintainedOnNormalizeValue($prenormalized, $n public function getPreNormalizedNormalizedOrderedData() { - return array( - array( - array('2' => 'two', '1' => 'one', '3' => 'three'), - array('2' => 'two', '1' => 'one', '3' => 'three'), - ), - ); + return [ + [ + ['2' => 'two', '1' => 'one', '3' => 'three'], + ['2' => 'two', '1' => 'one', '3' => 'three'], + ], + ]; } - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage Child nodes must be named. - */ public function testAddChildEmptyName() { + $this->expectException('InvalidArgumentException'); + $this->expectExceptionMessage('Child nodes must be named.'); $node = new ArrayNode('root'); $childNode = new ArrayNode(''); $node->addChild($childNode); } - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage A child node named "foo" already exists. - */ public function testAddChildNameAlreadyExists() { + $this->expectException('InvalidArgumentException'); + $this->expectExceptionMessage('A child node named "foo" already exists.'); $node = new ArrayNode('root'); $childNode = new ArrayNode('foo'); @@ -207,12 +195,10 @@ public function testAddChildNameAlreadyExists() $node->addChild($childNodeWithSameName); } - /** - * @expectedException \RuntimeException - * @expectedExceptionMessage The node at path "foo" has no default value. - */ public function testGetDefaultValueWithoutDefaultValue() { + $this->expectException('RuntimeException'); + $this->expectExceptionMessage('The node at path "foo" has no default value.'); $node = new ArrayNode('foo'); $node->getDefaultValue(); } @@ -238,13 +224,13 @@ public function testSetDeprecated() }; $prevErrorHandler = set_error_handler($deprecationHandler); - $node->finalize(array()); + $node->finalize([]); restore_error_handler(); $this->assertFalse($deprecationTriggered, '->finalize() should not trigger if the deprecated node is not set'); $prevErrorHandler = set_error_handler($deprecationHandler); - $node->finalize(array('foo' => array())); + $node->finalize(['foo' => []]); restore_error_handler(); $this->assertTrue($deprecationTriggered, '->finalize() should trigger if the deprecated node is set'); } diff --git a/vendor/symfony/config/Tests/Definition/BooleanNodeTest.php b/vendor/symfony/config/Tests/Definition/BooleanNodeTest.php index ab1d3164145d0e64935a67729f7294a1e755975c..8552eeba39b75b1e39c882e4d82a9ce11dc5a6c7 100644 --- a/vendor/symfony/config/Tests/Definition/BooleanNodeTest.php +++ b/vendor/symfony/config/Tests/Definition/BooleanNodeTest.php @@ -40,35 +40,35 @@ public function testValidNonEmptyValues($value) public function getValidValues() { - return array( - array(false), - array(true), - ); + return [ + [false], + [true], + ]; } /** * @dataProvider getInvalidValues - * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidTypeException */ public function testNormalizeThrowsExceptionOnInvalidValues($value) { + $this->expectException('Symfony\Component\Config\Definition\Exception\InvalidTypeException'); $node = new BooleanNode('test'); $node->normalize($value); } public function getInvalidValues() { - return array( - array(null), - array(''), - array('foo'), - array(0), - array(1), - array(0.0), - array(0.1), - array(array()), - array(array('foo' => 'bar')), - array(new \stdClass()), - ); + return [ + [null], + [''], + ['foo'], + [0], + [1], + [0.0], + [0.1], + [[]], + [['foo' => 'bar']], + [new \stdClass()], + ]; } } diff --git a/vendor/symfony/config/Tests/Definition/Builder/ArrayNodeDefinitionTest.php b/vendor/symfony/config/Tests/Definition/Builder/ArrayNodeDefinitionTest.php index ba059ff0f3199994d331892ec14f7dea13230c9d..1123b41599021d321a464fa468c84169686dd607 100644 --- a/vendor/symfony/config/Tests/Definition/Builder/ArrayNodeDefinitionTest.php +++ b/vendor/symfony/config/Tests/Definition/Builder/ArrayNodeDefinitionTest.php @@ -36,33 +36,31 @@ public function testAppendingSomeNode() } /** - * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidDefinitionException * @dataProvider providePrototypeNodeSpecificCalls */ public function testPrototypeNodeSpecificOption($method, $args) { + $this->expectException('Symfony\Component\Config\Definition\Exception\InvalidDefinitionException'); $node = new ArrayNodeDefinition('root'); - \call_user_func_array(array($node, $method), $args); + \call_user_func_array([$node, $method], $args); $node->getNode(); } public function providePrototypeNodeSpecificCalls() { - return array( - array('defaultValue', array(array())), - array('addDefaultChildrenIfNoneSet', array()), - array('requiresAtLeastOneElement', array()), - array('useAttributeAsKey', array('foo')), - ); + return [ + ['defaultValue', [[]]], + ['addDefaultChildrenIfNoneSet', []], + ['requiresAtLeastOneElement', []], + ['useAttributeAsKey', ['foo']], + ]; } - /** - * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidDefinitionException - */ public function testConcreteNodeSpecificOption() { + $this->expectException('Symfony\Component\Config\Definition\Exception\InvalidDefinitionException'); $node = new ArrayNodeDefinition('root'); $node ->addDefaultsIfNotSet() @@ -71,14 +69,12 @@ public function testConcreteNodeSpecificOption() $node->getNode(); } - /** - * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidDefinitionException - */ public function testPrototypeNodesCantHaveADefaultValueWhenUsingDefaultChildren() { + $this->expectException('Symfony\Component\Config\Definition\Exception\InvalidDefinitionException'); $node = new ArrayNodeDefinition('root'); $node - ->defaultValue(array()) + ->defaultValue([]) ->addDefaultChildrenIfNoneSet('foo') ->prototype('array') ; @@ -93,7 +89,7 @@ public function testPrototypedArrayNodeDefaultWhenUsingDefaultChildren() ->prototype('array') ; $tree = $node->getNode(); - $this->assertEquals(array(array()), $tree->getDefaultValue()); + $this->assertEquals([[]], $tree->getDefaultValue()); } /** @@ -133,14 +129,14 @@ public function testPrototypedArrayNodeDefault($args, $shouldThrowWhenUsingAttrA public function providePrototypedArrayNodeDefaults() { - return array( - array(null, true, false, array(array())), - array(2, true, false, array(array(), array())), - array('2', false, true, array('2' => array())), - array('foo', false, true, array('foo' => array())), - array(array('foo'), false, true, array('foo' => array())), - array(array('foo', 'bar'), false, true, array('foo' => array(), 'bar' => array())), - ); + return [ + [null, true, false, [[]]], + [2, true, false, [[], []]], + ['2', false, true, ['2' => []]], + ['foo', false, true, ['foo' => []]], + [['foo'], false, true, ['foo' => []]], + [['foo', 'bar'], false, true, ['foo' => [], 'bar' => []]], + ]; } public function testNestedPrototypedArrayNodes() @@ -166,7 +162,7 @@ public function testEnabledNodeDefaults() ->scalarNode('foo')->defaultValue('bar')->end() ; - $this->assertEquals(array('enabled' => false, 'foo' => 'bar'), $node->getNode()->getDefaultValue()); + $this->assertEquals(['enabled' => false, 'foo' => 'bar'], $node->getNode()->getDefaultValue()); } /** @@ -195,9 +191,9 @@ public function testCanBeDisabled() $node->canBeDisabled(); $this->assertTrue($this->getField($node, 'addDefaults')); - $this->assertEquals(array('enabled' => false), $this->getField($node, 'falseEquivalent')); - $this->assertEquals(array('enabled' => true), $this->getField($node, 'trueEquivalent')); - $this->assertEquals(array('enabled' => true), $this->getField($node, 'nullEquivalent')); + $this->assertEquals(['enabled' => false], $this->getField($node, 'falseEquivalent')); + $this->assertEquals(['enabled' => true], $this->getField($node, 'trueEquivalent')); + $this->assertEquals(['enabled' => true], $this->getField($node, 'nullEquivalent')); $nodeChildren = $this->getField($node, 'children'); $this->assertArrayHasKey('enabled', $nodeChildren); @@ -231,6 +227,25 @@ public function testNormalizeKeys() $this->assertFalse($this->getField($node, 'normalizeKeys')); } + public function testUnsetChild() + { + $node = new ArrayNodeDefinition('root'); + $node + ->children() + ->scalarNode('value') + ->beforeNormalization() + ->ifTrue(function ($value) { + return empty($value); + }) + ->thenUnset() + ->end() + ->end() + ->end() + ; + + $this->assertSame([], $node->getNode()->normalize(['value' => null])); + } + public function testPrototypeVariable() { $node = new ArrayNodeDefinition('root'); @@ -275,14 +290,14 @@ public function testPrototypeEnum() public function getEnableableNodeFixtures() { - return array( - array(array('enabled' => true, 'foo' => 'bar'), array(true), 'true enables an enableable node'), - array(array('enabled' => true, 'foo' => 'bar'), array(null), 'null enables an enableable node'), - array(array('enabled' => true, 'foo' => 'bar'), array(array('enabled' => true)), 'An enableable node can be enabled'), - array(array('enabled' => true, 'foo' => 'baz'), array(array('foo' => 'baz')), 'any configuration enables an enableable node'), - array(array('enabled' => false, 'foo' => 'baz'), array(array('foo' => 'baz', 'enabled' => false)), 'An enableable node can be disabled'), - array(array('enabled' => false, 'foo' => 'bar'), array(false), 'false disables an enableable node'), - ); + return [ + [['enabled' => true, 'foo' => 'bar'], [true], 'true enables an enableable node'], + [['enabled' => true, 'foo' => 'bar'], [null], 'null enables an enableable node'], + [['enabled' => true, 'foo' => 'bar'], [['enabled' => true]], 'An enableable node can be enabled'], + [['enabled' => true, 'foo' => 'baz'], [['foo' => 'baz']], 'any configuration enables an enableable node'], + [['enabled' => false, 'foo' => 'baz'], [['foo' => 'baz', 'enabled' => false]], 'An enableable node can be disabled'], + [['enabled' => false, 'foo' => 'bar'], [false], 'false disables an enableable node'], + ]; } public function testRequiresAtLeastOneElement() @@ -292,7 +307,7 @@ public function testRequiresAtLeastOneElement() ->requiresAtLeastOneElement() ->integerPrototype(); - $node->getNode()->finalize(array(1)); + $node->getNode()->finalize([1]); $this->addToAssertionCount(1); } @@ -308,7 +323,7 @@ public function testCannotBeEmpty() ->cannotBeEmpty() ->integerPrototype(); - $node->getNode()->finalize(array()); + $node->getNode()->finalize([]); } public function testSetDeprecated() @@ -334,7 +349,7 @@ public function testCannotBeEmptyOnConcreteNode() $node = new ArrayNodeDefinition('root'); $node->cannotBeEmpty(); - $node->getNode()->finalize(array()); + $node->getNode()->finalize([]); } protected function getField($object, $field) diff --git a/vendor/symfony/config/Tests/Definition/Builder/BooleanNodeDefinitionTest.php b/vendor/symfony/config/Tests/Definition/Builder/BooleanNodeDefinitionTest.php index c0d347f3d3191ca3e6ee32875e678fc5d74332f6..6f568a2df64f7abde95139bf7d63583ab9c6159e 100644 --- a/vendor/symfony/config/Tests/Definition/Builder/BooleanNodeDefinitionTest.php +++ b/vendor/symfony/config/Tests/Definition/Builder/BooleanNodeDefinitionTest.php @@ -16,12 +16,10 @@ class BooleanNodeDefinitionTest extends TestCase { - /** - * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidDefinitionException - * @expectedExceptionMessage ->cannotBeEmpty() is not applicable to BooleanNodeDefinition. - */ public function testCannotBeEmptyThrowsAnException() { + $this->expectException('Symfony\Component\Config\Definition\Exception\InvalidDefinitionException'); + $this->expectExceptionMessage('->cannotBeEmpty() is not applicable to BooleanNodeDefinition.'); $def = new BooleanNodeDefinition('foo'); $def->cannotBeEmpty(); } diff --git a/vendor/symfony/config/Tests/Definition/Builder/EnumNodeDefinitionTest.php b/vendor/symfony/config/Tests/Definition/Builder/EnumNodeDefinitionTest.php index 9c0aa0e11cf97d00a1ce5c34d0f82d89a94aedf1..2e43a1354de11818be4f2422e17f196437a42942 100644 --- a/vendor/symfony/config/Tests/Definition/Builder/EnumNodeDefinitionTest.php +++ b/vendor/symfony/config/Tests/Definition/Builder/EnumNodeDefinitionTest.php @@ -19,54 +19,50 @@ class EnumNodeDefinitionTest extends TestCase public function testWithOneValue() { $def = new EnumNodeDefinition('foo'); - $def->values(array('foo')); + $def->values(['foo']); $node = $def->getNode(); - $this->assertEquals(array('foo'), $node->getValues()); + $this->assertEquals(['foo'], $node->getValues()); } public function testWithOneDistinctValue() { $def = new EnumNodeDefinition('foo'); - $def->values(array('foo', 'foo')); + $def->values(['foo', 'foo']); $node = $def->getNode(); - $this->assertEquals(array('foo'), $node->getValues()); + $this->assertEquals(['foo'], $node->getValues()); } - /** - * @expectedException \RuntimeException - * @expectedExceptionMessage You must call ->values() on enum nodes. - */ public function testNoValuesPassed() { + $this->expectException('RuntimeException'); + $this->expectExceptionMessage('You must call ->values() on enum nodes.'); $def = new EnumNodeDefinition('foo'); $def->getNode(); } - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage ->values() must be called with at least one value. - */ public function testWithNoValues() { + $this->expectException('InvalidArgumentException'); + $this->expectExceptionMessage('->values() must be called with at least one value.'); $def = new EnumNodeDefinition('foo'); - $def->values(array()); + $def->values([]); } public function testGetNode() { $def = new EnumNodeDefinition('foo'); - $def->values(array('foo', 'bar')); + $def->values(['foo', 'bar']); $node = $def->getNode(); - $this->assertEquals(array('foo', 'bar'), $node->getValues()); + $this->assertEquals(['foo', 'bar'], $node->getValues()); } public function testSetDeprecated() { $def = new EnumNodeDefinition('foo'); - $def->values(array('foo', 'bar')); + $def->values(['foo', 'bar']); $def->setDeprecated('The "%path%" node is deprecated.'); $node = $def->getNode(); diff --git a/vendor/symfony/config/Tests/Definition/Builder/ExprBuilderTest.php b/vendor/symfony/config/Tests/Definition/Builder/ExprBuilderTest.php index 99a10413768b484246394a1e16db2f1d0ef60be2..2dfb7a0a39f8f02fe0704c212a9459eed0562b4f 100644 --- a/vendor/symfony/config/Tests/Definition/Builder/ExprBuilderTest.php +++ b/vendor/symfony/config/Tests/Definition/Builder/ExprBuilderTest.php @@ -31,7 +31,7 @@ public function testIfTrueExpression() ->ifTrue() ->then($this->returnClosure('new_value')) ->end(); - $this->assertFinalizedValueIs('new_value', $test, array('key' => true)); + $this->assertFinalizedValueIs('new_value', $test, ['key' => true]); $test = $this->getTestBuilder() ->ifTrue(function ($v) { return true; }) @@ -58,7 +58,7 @@ public function testIfStringExpression() ->ifString() ->then($this->returnClosure('new_value')) ->end(); - $this->assertFinalizedValueIs(45, $test, array('key' => 45)); + $this->assertFinalizedValueIs(45, $test, ['key' => 45]); } public function testIfNullExpression() @@ -67,7 +67,7 @@ public function testIfNullExpression() ->ifNull() ->then($this->returnClosure('new_value')) ->end(); - $this->assertFinalizedValueIs('new_value', $test, array('key' => null)); + $this->assertFinalizedValueIs('new_value', $test, ['key' => null]); $test = $this->getTestBuilder() ->ifNull() @@ -82,7 +82,7 @@ public function testIfEmptyExpression() ->ifEmpty() ->then($this->returnClosure('new_value')) ->end(); - $this->assertFinalizedValueIs('new_value', $test, array('key' => array())); + $this->assertFinalizedValueIs('new_value', $test, ['key' => []]); $test = $this->getTestBuilder() ->ifEmpty() @@ -97,7 +97,7 @@ public function testIfArrayExpression() ->ifArray() ->then($this->returnClosure('new_value')) ->end(); - $this->assertFinalizedValueIs('new_value', $test, array('key' => array())); + $this->assertFinalizedValueIs('new_value', $test, ['key' => []]); $test = $this->getTestBuilder() ->ifArray() @@ -109,13 +109,13 @@ public function testIfArrayExpression() public function testIfInArrayExpression() { $test = $this->getTestBuilder() - ->ifInArray(array('foo', 'bar', 'value')) + ->ifInArray(['foo', 'bar', 'value']) ->then($this->returnClosure('new_value')) ->end(); $this->assertFinalizedValueIs('new_value', $test); $test = $this->getTestBuilder() - ->ifInArray(array('foo', 'bar')) + ->ifInArray(['foo', 'bar']) ->then($this->returnClosure('new_value')) ->end(); $this->assertFinalizedValueIs('value', $test); @@ -124,13 +124,13 @@ public function testIfInArrayExpression() public function testIfNotInArrayExpression() { $test = $this->getTestBuilder() - ->ifNotInArray(array('foo', 'bar')) + ->ifNotInArray(['foo', 'bar']) ->then($this->returnClosure('new_value')) ->end(); $this->assertFinalizedValueIs('new_value', $test); $test = $this->getTestBuilder() - ->ifNotInArray(array('foo', 'bar', 'value_from_config')) + ->ifNotInArray(['foo', 'bar', 'value_from_config']) ->then($this->returnClosure('new_value')) ->end(); $this->assertFinalizedValueIs('new_value', $test); @@ -142,33 +142,31 @@ public function testThenEmptyArrayExpression() ->ifString() ->thenEmptyArray() ->end(); - $this->assertFinalizedValueIs(array(), $test); + $this->assertFinalizedValueIs([], $test); } /** * @dataProvider castToArrayValues */ - public function testcastToArrayExpression($configValue, $expectedValue) + public function testCastToArrayExpression($configValue, $expectedValue) { $test = $this->getTestBuilder() ->castToArray() ->end(); - $this->assertFinalizedValueIs($expectedValue, $test, array('key' => $configValue)); + $this->assertFinalizedValueIs($expectedValue, $test, ['key' => $configValue]); } public function castToArrayValues() { - yield array('value', array('value')); - yield array(-3.14, array(-3.14)); - yield array(null, array(null)); - yield array(array('value'), array('value')); + yield ['value', ['value']]; + yield [-3.14, [-3.14]]; + yield [null, [null]]; + yield [['value'], ['value']]; } - /** - * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidConfigurationException - */ public function testThenInvalid() { + $this->expectException('Symfony\Component\Config\Definition\Exception\InvalidConfigurationException'); $test = $this->getTestBuilder() ->ifString() ->thenInvalid('Invalid value') @@ -182,24 +180,20 @@ public function testThenUnsetExpression() ->ifString() ->thenUnset() ->end(); - $this->assertEquals(array(), $this->finalizeTestBuilder($test)); + $this->assertEquals([], $this->finalizeTestBuilder($test)); } - /** - * @expectedException \RuntimeException - * @expectedExceptionMessage You must specify an if part. - */ public function testEndIfPartNotSpecified() { + $this->expectException('RuntimeException'); + $this->expectExceptionMessage('You must specify an if part.'); $this->getTestBuilder()->end(); } - /** - * @expectedException \RuntimeException - * @expectedExceptionMessage You must specify a then part. - */ public function testEndThenPartNotSpecified() { + $this->expectException('RuntimeException'); + $this->expectExceptionMessage('You must specify a then part.'); $builder = $this->getTestBuilder(); $builder->ifPart = 'test'; $builder->end(); @@ -227,7 +221,7 @@ protected function getTestBuilder() * * @param TreeBuilder $testBuilder The tree builder to finalize * @param array $config The config you want to use for the finalization, if nothing provided - * a simple array('key'=>'value') will be used + * a simple ['key'=>'value'] will be used * * @return array The finalized config values */ @@ -238,7 +232,7 @@ protected function finalizeTestBuilder($testBuilder, $config = null) ->end() ->end() ->buildTree() - ->finalize(null === $config ? array('key' => 'value') : $config) + ->finalize(null === $config ? ['key' => 'value'] : $config) ; } @@ -265,6 +259,6 @@ protected function returnClosure($val) */ protected function assertFinalizedValueIs($value, $treeBuilder, $config = null) { - $this->assertEquals(array('key' => $value), $this->finalizeTestBuilder($treeBuilder, $config)); + $this->assertEquals(['key' => $value], $this->finalizeTestBuilder($treeBuilder, $config)); } } diff --git a/vendor/symfony/config/Tests/Definition/Builder/NodeBuilderTest.php b/vendor/symfony/config/Tests/Definition/Builder/NodeBuilderTest.php index cd77dd702bce6f64f8c50cb2922982c4688378c8..46518c659afbd058bc3b55685f86dc587cb37953 100644 --- a/vendor/symfony/config/Tests/Definition/Builder/NodeBuilderTest.php +++ b/vendor/symfony/config/Tests/Definition/Builder/NodeBuilderTest.php @@ -17,20 +17,16 @@ class NodeBuilderTest extends TestCase { - /** - * @expectedException \RuntimeException - */ public function testThrowsAnExceptionWhenTryingToCreateANonRegisteredNodeType() { + $this->expectException('RuntimeException'); $builder = new BaseNodeBuilder(); $builder->node('', 'foobar'); } - /** - * @expectedException \RuntimeException - */ public function testThrowsAnExceptionWhenTheNodeClassIsNotFound() { + $this->expectException('RuntimeException'); $builder = new BaseNodeBuilder(); $builder ->setNodeClass('noclasstype', '\\foo\\bar\\noclass') @@ -39,7 +35,7 @@ public function testThrowsAnExceptionWhenTheNodeClassIsNotFound() public function testAddingANewNodeType() { - $class = __NAMESPACE__.'\\SomeNodeDefinition'; + $class = SomeNodeDefinition::class; $builder = new BaseNodeBuilder(); $node = $builder @@ -51,7 +47,7 @@ public function testAddingANewNodeType() public function testOverridingAnExistingNodeType() { - $class = __NAMESPACE__.'\\SomeNodeDefinition'; + $class = SomeNodeDefinition::class; $builder = new BaseNodeBuilder(); $node = $builder @@ -70,7 +66,7 @@ public function testNodeTypesAreNotCaseSensitive() $this->assertInstanceOf(\get_class($node1), $node2); - $builder->setNodeClass('CuStOm', __NAMESPACE__.'\\SomeNodeDefinition'); + $builder->setNodeClass('CuStOm', SomeNodeDefinition::class); $node1 = $builder->node('', 'CUSTOM'); $node2 = $builder->node('', 'custom'); diff --git a/vendor/symfony/config/Tests/Definition/Builder/NumericNodeDefinitionTest.php b/vendor/symfony/config/Tests/Definition/Builder/NumericNodeDefinitionTest.php index 31342503d8d08084d8989556925a7c793e05c9ff..aa938bbaa7ed1e6b9db38752f58babb000c70e98 100644 --- a/vendor/symfony/config/Tests/Definition/Builder/NumericNodeDefinitionTest.php +++ b/vendor/symfony/config/Tests/Definition/Builder/NumericNodeDefinitionTest.php @@ -14,46 +14,37 @@ use PHPUnit\Framework\TestCase; use Symfony\Component\Config\Definition\Builder\FloatNodeDefinition; use Symfony\Component\Config\Definition\Builder\IntegerNodeDefinition; -use Symfony\Component\Config\Definition\Builder\IntegerNodeDefinition as NumericNodeDefinition; class NumericNodeDefinitionTest extends TestCase { - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage You cannot define a min(4) as you already have a max(3) - */ public function testIncoherentMinAssertion() { - $def = new NumericNodeDefinition('foo'); + $this->expectException('InvalidArgumentException'); + $this->expectExceptionMessage('You cannot define a min(4) as you already have a max(3)'); + $def = new IntegerNodeDefinition('foo'); $def->max(3)->min(4); } - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage You cannot define a max(2) as you already have a min(3) - */ public function testIncoherentMaxAssertion() { - $node = new NumericNodeDefinition('foo'); + $this->expectException('InvalidArgumentException'); + $this->expectExceptionMessage('You cannot define a max(2) as you already have a min(3)'); + $node = new IntegerNodeDefinition('foo'); $node->min(3)->max(2); } - /** - * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidConfigurationException - * @expectedExceptionMessage The value 4 is too small for path "foo". Should be greater than or equal to 5 - */ public function testIntegerMinAssertion() { + $this->expectException('Symfony\Component\Config\Definition\Exception\InvalidConfigurationException'); + $this->expectExceptionMessage('The value 4 is too small for path "foo". Should be greater than or equal to 5'); $def = new IntegerNodeDefinition('foo'); $def->min(5)->getNode()->finalize(4); } - /** - * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidConfigurationException - * @expectedExceptionMessage The value 4 is too big for path "foo". Should be less than or equal to 3 - */ public function testIntegerMaxAssertion() { + $this->expectException('Symfony\Component\Config\Definition\Exception\InvalidConfigurationException'); + $this->expectExceptionMessage('The value 4 is too big for path "foo". Should be less than or equal to 3'); $def = new IntegerNodeDefinition('foo'); $def->max(3)->getNode()->finalize(4); } @@ -65,22 +56,18 @@ public function testIntegerValidMinMaxAssertion() $this->assertEquals(4, $node->finalize(4)); } - /** - * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidConfigurationException - * @expectedExceptionMessage The value 400 is too small for path "foo". Should be greater than or equal to 500 - */ public function testFloatMinAssertion() { + $this->expectException('Symfony\Component\Config\Definition\Exception\InvalidConfigurationException'); + $this->expectExceptionMessage('The value 400 is too small for path "foo". Should be greater than or equal to 500'); $def = new FloatNodeDefinition('foo'); $def->min(5E2)->getNode()->finalize(4e2); } - /** - * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidConfigurationException - * @expectedExceptionMessage The value 4.3 is too big for path "foo". Should be less than or equal to 0.3 - */ public function testFloatMaxAssertion() { + $this->expectException('Symfony\Component\Config\Definition\Exception\InvalidConfigurationException'); + $this->expectExceptionMessage('The value 4.3 is too big for path "foo". Should be less than or equal to 0.3'); $def = new FloatNodeDefinition('foo'); $def->max(0.3)->getNode()->finalize(4.3); } @@ -92,13 +79,11 @@ public function testFloatValidMinMaxAssertion() $this->assertEquals(4.5, $node->finalize(4.5)); } - /** - * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidDefinitionException - * @expectedExceptionMessage ->cannotBeEmpty() is not applicable to NumericNodeDefinition. - */ public function testCannotBeEmptyThrowsAnException() { - $def = new NumericNodeDefinition('foo'); + $this->expectException('Symfony\Component\Config\Definition\Exception\InvalidDefinitionException'); + $this->expectExceptionMessage('->cannotBeEmpty() is not applicable to NumericNodeDefinition.'); + $def = new IntegerNodeDefinition('foo'); $def->cannotBeEmpty(); } } diff --git a/vendor/symfony/config/Tests/Definition/Builder/TreeBuilderTest.php b/vendor/symfony/config/Tests/Definition/Builder/TreeBuilderTest.php index c425f0ed3d6d1af47d1e8971fb79d47a3392005e..53c9c256b32a09e5d18cf75aaec85a8c70253a6c 100644 --- a/vendor/symfony/config/Tests/Definition/Builder/TreeBuilderTest.php +++ b/vendor/symfony/config/Tests/Definition/Builder/TreeBuilderTest.php @@ -119,7 +119,7 @@ public function testDefinitionExampleGetsTransferredToNode() $builder = new TreeBuilder(); $builder->root('test') - ->example(array('key' => 'value')) + ->example(['key' => 'value']) ->children() ->node('child', 'variable')->info('child info')->defaultValue('default')->example('example') ->end() @@ -128,7 +128,7 @@ public function testDefinitionExampleGetsTransferredToNode() $tree = $builder->buildTree(); $children = $tree->getChildren(); - $this->assertInternalType('array', $tree->getExample()); + $this->assertIsArray($tree->getExample()); $this->assertEquals('example', $children['child']->getExample()); } } diff --git a/vendor/symfony/config/Tests/Definition/Dumper/YamlReferenceDumperTest.php b/vendor/symfony/config/Tests/Definition/Dumper/YamlReferenceDumperTest.php index bf4db95f4154330dc04a0a6a55269726193230f1..3cb9121ba60221a03b6bc24ea7426626c568ad6d 100644 --- a/vendor/symfony/config/Tests/Definition/Dumper/YamlReferenceDumperTest.php +++ b/vendor/symfony/config/Tests/Definition/Dumper/YamlReferenceDumperTest.php @@ -28,12 +28,12 @@ public function testDumper() public function provideDumpAtPath() { - return array( - 'Regular node' => array('scalar_true', <<<EOL + return [ + 'Regular node' => ['scalar_true', <<<EOL scalar_true: true EOL - ), - 'Array node' => array('array', <<<EOL + ], + 'Array node' => ['array', <<<EOL # some info array: child1: ~ @@ -44,12 +44,12 @@ public function provideDumpAtPath() # which should be indented child3: ~ # Example: example setting EOL - ), - 'Regular nested' => array('array.child2', <<<EOL + ], + 'Regular nested' => ['array.child2', <<<EOL child2: ~ EOL - ), - 'Prototype' => array('cms_pages.page', <<<EOL + ], + 'Prototype' => ['cms_pages.page', <<<EOL # Prototype page: @@ -58,15 +58,15 @@ public function provideDumpAtPath() title: ~ # Required path: ~ # Required EOL - ), - 'Nested prototype' => array('cms_pages.page.locale', <<<EOL + ], + 'Nested prototype' => ['cms_pages.page.locale', <<<EOL # Prototype locale: title: ~ # Required path: ~ # Required EOL - ), - ); + ], + ]; } /** diff --git a/vendor/symfony/config/Tests/Definition/EnumNodeTest.php b/vendor/symfony/config/Tests/Definition/EnumNodeTest.php index e3e7ef05946fc3fe488e4bb09dddb9c09b3c36f5..fa89eea23870b53cc25df71bd8e03f8c8a868da8 100644 --- a/vendor/symfony/config/Tests/Definition/EnumNodeTest.php +++ b/vendor/symfony/config/Tests/Definition/EnumNodeTest.php @@ -18,38 +18,34 @@ class EnumNodeTest extends TestCase { public function testFinalizeValue() { - $node = new EnumNode('foo', null, array('foo', 'bar')); + $node = new EnumNode('foo', null, ['foo', 'bar']); $this->assertSame('foo', $node->finalize('foo')); } - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage $values must contain at least one element. - */ public function testConstructionWithNoValues() { - new EnumNode('foo', null, array()); + $this->expectException('InvalidArgumentException'); + $this->expectExceptionMessage('$values must contain at least one element.'); + new EnumNode('foo', null, []); } public function testConstructionWithOneValue() { - $node = new EnumNode('foo', null, array('foo')); + $node = new EnumNode('foo', null, ['foo']); $this->assertSame('foo', $node->finalize('foo')); } public function testConstructionWithOneDistinctValue() { - $node = new EnumNode('foo', null, array('foo', 'foo')); + $node = new EnumNode('foo', null, ['foo', 'foo']); $this->assertSame('foo', $node->finalize('foo')); } - /** - * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidConfigurationException - * @expectedExceptionMessage The value "foobar" is not allowed for path "foo". Permissible values: "foo", "bar" - */ public function testFinalizeWithInvalidValue() { - $node = new EnumNode('foo', null, array('foo', 'bar')); + $this->expectException('Symfony\Component\Config\Definition\Exception\InvalidConfigurationException'); + $this->expectExceptionMessage('The value "foobar" is not allowed for path "foo". Permissible values: "foo", "bar"'); + $node = new EnumNode('foo', null, ['foo', 'bar']); $node->finalize('foobar'); } } diff --git a/vendor/symfony/config/Tests/Definition/FinalizationTest.php b/vendor/symfony/config/Tests/Definition/FinalizationTest.php index d19fbd69ae88d2cc26f408155b9012ef9822bcbc..be68a27c6906c51b0f18fe206dd6f6f0b80352b7 100644 --- a/vendor/symfony/config/Tests/Definition/FinalizationTest.php +++ b/vendor/symfony/config/Tests/Definition/FinalizationTest.php @@ -42,27 +42,27 @@ public function testUnsetKeyWithDeepHierarchy() ->buildTree() ; - $a = array( - 'level1' => array( - 'level2' => array( + $a = [ + 'level1' => [ + 'level2' => [ 'somevalue' => 'foo', 'anothervalue' => 'bar', - ), + ], 'level1_scalar' => 'foo', - ), - ); + ], + ]; - $b = array( - 'level1' => array( + $b = [ + 'level1' => [ 'level2' => false, - ), - ); + ], + ]; - $this->assertEquals(array( - 'level1' => array( + $this->assertEquals([ + 'level1' => [ 'level1_scalar' => 'foo', - ), - ), $this->process($tree, array($a, $b))); + ], + ], $this->process($tree, [$a, $b])); } protected function process(NodeInterface $tree, array $configs) diff --git a/vendor/symfony/config/Tests/Definition/FloatNodeTest.php b/vendor/symfony/config/Tests/Definition/FloatNodeTest.php index b7ec12fa739af9459323bf249b45372cb3dedd1f..fed9f013db8ad62d99a50e0fb057d17bcb63820e 100644 --- a/vendor/symfony/config/Tests/Definition/FloatNodeTest.php +++ b/vendor/symfony/config/Tests/Definition/FloatNodeTest.php @@ -40,39 +40,39 @@ public function testValidNonEmptyValues($value) public function getValidValues() { - return array( - array(1798.0), - array(-678.987), - array(12.56E45), - array(0.0), + return [ + [1798.0], + [-678.987], + [12.56E45], + [0.0], // Integer are accepted too, they will be cast - array(17), - array(-10), - array(0), - ); + [17], + [-10], + [0], + ]; } /** * @dataProvider getInvalidValues - * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidTypeException */ public function testNormalizeThrowsExceptionOnInvalidValues($value) { + $this->expectException('Symfony\Component\Config\Definition\Exception\InvalidTypeException'); $node = new FloatNode('test'); $node->normalize($value); } public function getInvalidValues() { - return array( - array(null), - array(''), - array('foo'), - array(true), - array(false), - array(array()), - array(array('foo' => 'bar')), - array(new \stdClass()), - ); + return [ + [null], + [''], + ['foo'], + [true], + [false], + [[]], + [['foo' => 'bar']], + [new \stdClass()], + ]; } } diff --git a/vendor/symfony/config/Tests/Definition/IntegerNodeTest.php b/vendor/symfony/config/Tests/Definition/IntegerNodeTest.php index 55e8a137b648a20f961f3d9326a81226dd09c066..3fb1b771e5f94aa71f6a680d7a5bc749e6c9083f 100644 --- a/vendor/symfony/config/Tests/Definition/IntegerNodeTest.php +++ b/vendor/symfony/config/Tests/Definition/IntegerNodeTest.php @@ -40,36 +40,36 @@ public function testValidNonEmptyValues($value) public function getValidValues() { - return array( - array(1798), - array(-678), - array(0), - ); + return [ + [1798], + [-678], + [0], + ]; } /** * @dataProvider getInvalidValues - * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidTypeException */ public function testNormalizeThrowsExceptionOnInvalidValues($value) { + $this->expectException('Symfony\Component\Config\Definition\Exception\InvalidTypeException'); $node = new IntegerNode('test'); $node->normalize($value); } public function getInvalidValues() { - return array( - array(null), - array(''), - array('foo'), - array(true), - array(false), - array(0.0), - array(0.1), - array(array()), - array(array('foo' => 'bar')), - array(new \stdClass()), - ); + return [ + [null], + [''], + ['foo'], + [true], + [false], + [0.0], + [0.1], + [[]], + [['foo' => 'bar']], + [new \stdClass()], + ]; } } diff --git a/vendor/symfony/config/Tests/Definition/MergeTest.php b/vendor/symfony/config/Tests/Definition/MergeTest.php index e539e25f3d02f2851b5bc0bfcb9b6fc11927ddf7..8fee2635c7622d1b8d4fb91ee2185ecd14b45167 100644 --- a/vendor/symfony/config/Tests/Definition/MergeTest.php +++ b/vendor/symfony/config/Tests/Definition/MergeTest.php @@ -16,11 +16,9 @@ class MergeTest extends TestCase { - /** - * @expectedException \Symfony\Component\Config\Definition\Exception\ForbiddenOverwriteException - */ public function testForbiddenOverwrite() { + $this->expectException('Symfony\Component\Config\Definition\Exception\ForbiddenOverwriteException'); $tb = new TreeBuilder(); $tree = $tb ->root('root', 'array') @@ -33,13 +31,13 @@ public function testForbiddenOverwrite() ->buildTree() ; - $a = array( + $a = [ 'foo' => 'bar', - ); + ]; - $b = array( + $b = [ 'foo' => 'moo', - ); + ]; $tree->merge($a, $b); } @@ -68,35 +66,33 @@ public function testUnsetKey() ->buildTree() ; - $a = array( + $a = [ 'foo' => 'bar', - 'unsettable' => array( + 'unsettable' => [ 'foo' => 'a', 'bar' => 'b', - ), + ], 'unsetted' => false, - ); + ]; - $b = array( + $b = [ 'foo' => 'moo', 'bar' => 'b', 'unsettable' => false, - 'unsetted' => array('a', 'b'), - ); + 'unsetted' => ['a', 'b'], + ]; - $this->assertEquals(array( + $this->assertEquals([ 'foo' => 'moo', 'bar' => 'b', 'unsettable' => false, - 'unsetted' => array('a', 'b'), - ), $tree->merge($a, $b)); + 'unsetted' => ['a', 'b'], + ], $tree->merge($a, $b)); } - /** - * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidConfigurationException - */ public function testDoesNotAllowNewKeysInSubsequentConfigs() { + $this->expectException('Symfony\Component\Config\Definition\Exception\InvalidConfigurationException'); $tb = new TreeBuilder(); $tree = $tb ->root('config', 'array') @@ -114,17 +110,17 @@ public function testDoesNotAllowNewKeysInSubsequentConfigs() ->end() ->buildTree(); - $a = array( - 'test' => array( - 'a' => array('value' => 'foo'), - ), - ); + $a = [ + 'test' => [ + 'a' => ['value' => 'foo'], + ], + ]; - $b = array( - 'test' => array( - 'b' => array('value' => 'foo'), - ), - ); + $b = [ + 'test' => [ + 'b' => ['value' => 'foo'], + ], + ]; $tree->merge($a, $b); } @@ -148,24 +144,24 @@ public function testPerformsNoDeepMerging() ->buildTree() ; - $a = array( - 'no_deep_merging' => array( + $a = [ + 'no_deep_merging' => [ 'foo' => 'a', 'bar' => 'b', - ), - ); + ], + ]; - $b = array( - 'no_deep_merging' => array( + $b = [ + 'no_deep_merging' => [ 'c' => 'd', - ), - ); + ], + ]; - $this->assertEquals(array( - 'no_deep_merging' => array( + $this->assertEquals([ + 'no_deep_merging' => [ 'c' => 'd', - ), - ), $tree->merge($a, $b)); + ], + ], $tree->merge($a, $b)); } public function testPrototypeWithoutAKeyAttribute() @@ -183,14 +179,14 @@ public function testPrototypeWithoutAKeyAttribute() ->buildTree() ; - $a = array( - 'append_elements' => array('a', 'b'), - ); + $a = [ + 'append_elements' => ['a', 'b'], + ]; - $b = array( - 'append_elements' => array('c', 'd'), - ); + $b = [ + 'append_elements' => ['c', 'd'], + ]; - $this->assertEquals(array('append_elements' => array('a', 'b', 'c', 'd')), $tree->merge($a, $b)); + $this->assertEquals(['append_elements' => ['a', 'b', 'c', 'd']], $tree->merge($a, $b)); } } diff --git a/vendor/symfony/config/Tests/Definition/NormalizationTest.php b/vendor/symfony/config/Tests/Definition/NormalizationTest.php index 3273c78668f1380c75517b422de32257351c199f..200a985944f38a5b01311aca0b703ec089350920 100644 --- a/vendor/symfony/config/Tests/Definition/NormalizationTest.php +++ b/vendor/symfony/config/Tests/Definition/NormalizationTest.php @@ -30,7 +30,7 @@ public function testNormalizeEncoders($denormalized) ->node('encoders', 'array') ->useAttributeAsKey('class') ->prototype('array') - ->beforeNormalization()->ifString()->then(function ($v) { return array('algorithm' => $v); })->end() + ->beforeNormalization()->ifString()->then(function ($v) { return ['algorithm' => $v]; })->end() ->children() ->node('algorithm', 'scalar')->end() ->end() @@ -41,54 +41,54 @@ public function testNormalizeEncoders($denormalized) ->buildTree() ; - $normalized = array( - 'encoders' => array( - 'foo' => array('algorithm' => 'plaintext'), - ), - ); + $normalized = [ + 'encoders' => [ + 'foo' => ['algorithm' => 'plaintext'], + ], + ]; $this->assertNormalized($tree, $denormalized, $normalized); } public function getEncoderTests() { - $configs = array(); + $configs = []; // XML - $configs[] = array( - 'encoder' => array( - array('class' => 'foo', 'algorithm' => 'plaintext'), - ), - ); + $configs[] = [ + 'encoder' => [ + ['class' => 'foo', 'algorithm' => 'plaintext'], + ], + ]; // XML when only one element of this type - $configs[] = array( - 'encoder' => array('class' => 'foo', 'algorithm' => 'plaintext'), - ); + $configs[] = [ + 'encoder' => ['class' => 'foo', 'algorithm' => 'plaintext'], + ]; // YAML/PHP - $configs[] = array( - 'encoders' => array( - array('class' => 'foo', 'algorithm' => 'plaintext'), - ), - ); + $configs[] = [ + 'encoders' => [ + ['class' => 'foo', 'algorithm' => 'plaintext'], + ], + ]; // YAML/PHP - $configs[] = array( - 'encoders' => array( + $configs[] = [ + 'encoders' => [ 'foo' => 'plaintext', - ), - ); + ], + ]; // YAML/PHP - $configs[] = array( - 'encoders' => array( - 'foo' => array('algorithm' => 'plaintext'), - ), - ); + $configs[] = [ + 'encoders' => [ + 'foo' => ['algorithm' => 'plaintext'], + ], + ]; return array_map(function ($v) { - return array($v); + return [$v]; }, $configs); } @@ -114,28 +114,28 @@ public function testAnonymousKeysArray($denormalized) ->buildTree() ; - $normalized = array('logout' => array('handlers' => array('a', 'b', 'c'))); + $normalized = ['logout' => ['handlers' => ['a', 'b', 'c']]]; $this->assertNormalized($tree, $denormalized, $normalized); } public function getAnonymousKeysTests() { - $configs = array(); + $configs = []; - $configs[] = array( - 'logout' => array( - 'handlers' => array('a', 'b', 'c'), - ), - ); + $configs[] = [ + 'logout' => [ + 'handlers' => ['a', 'b', 'c'], + ], + ]; - $configs[] = array( - 'logout' => array( - 'handler' => array('a', 'b', 'c'), - ), - ); + $configs[] = [ + 'logout' => [ + 'handler' => ['a', 'b', 'c'], + ], + ]; - return array_map(function ($v) { return array($v); }, $configs); + return array_map(function ($v) { return [$v]; }, $configs); } /** @@ -143,45 +143,43 @@ public function getAnonymousKeysTests() */ public function testNumericKeysAsAttributes($denormalized) { - $normalized = array( - 'thing' => array(42 => array('foo', 'bar'), 1337 => array('baz', 'qux')), - ); + $normalized = [ + 'thing' => [42 => ['foo', 'bar'], 1337 => ['baz', 'qux']], + ]; $this->assertNormalized($this->getNumericKeysTestTree(), $denormalized, $normalized); } public function getNumericKeysTests() { - $configs = array(); + $configs = []; - $configs[] = array( - 'thing' => array( - 42 => array('foo', 'bar'), 1337 => array('baz', 'qux'), - ), - ); + $configs[] = [ + 'thing' => [ + 42 => ['foo', 'bar'], 1337 => ['baz', 'qux'], + ], + ]; - $configs[] = array( - 'thing' => array( - array('foo', 'bar', 'id' => 42), array('baz', 'qux', 'id' => 1337), - ), - ); + $configs[] = [ + 'thing' => [ + ['foo', 'bar', 'id' => 42], ['baz', 'qux', 'id' => 1337], + ], + ]; - return array_map(function ($v) { return array($v); }, $configs); + return array_map(function ($v) { return [$v]; }, $configs); } - /** - * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidConfigurationException - * @expectedExceptionMessage The attribute "id" must be set for path "root.thing". - */ public function testNonAssociativeArrayThrowsExceptionIfAttributeNotSet() { - $denormalized = array( - 'thing' => array( - array('foo', 'bar'), array('baz', 'qux'), - ), - ); - - $this->assertNormalized($this->getNumericKeysTestTree(), $denormalized, array()); + $this->expectException('Symfony\Component\Config\Definition\Exception\InvalidConfigurationException'); + $this->expectExceptionMessage('The attribute "id" must be set for path "root.thing".'); + $denormalized = [ + 'thing' => [ + ['foo', 'bar'], ['baz', 'qux'], + ], + ]; + + $this->assertNormalized($this->getNumericKeysTestTree(), $denormalized, []); } public function testAssociativeArrayPreserveKeys() @@ -198,7 +196,7 @@ public function testAssociativeArrayPreserveKeys() ->buildTree() ; - $data = array('first' => array('foo' => 'bar')); + $data = ['first' => ['foo' => 'bar']]; $this->assertNormalized($tree, $data, $data); } diff --git a/vendor/symfony/config/Tests/Definition/PrototypedArrayNodeTest.php b/vendor/symfony/config/Tests/Definition/PrototypedArrayNodeTest.php index 731d7af25fa7166a91535d5d4d517a275554e6f3..7a58ead8da9676e13cc190341dac9364c300d057 100644 --- a/vendor/symfony/config/Tests/Definition/PrototypedArrayNodeTest.php +++ b/vendor/symfony/config/Tests/Definition/PrototypedArrayNodeTest.php @@ -32,8 +32,8 @@ public function testGetDefaultValueReturnsDefaultValueForPrototypes() $node = new PrototypedArrayNode('root'); $prototype = new ArrayNode(null, $node); $node->setPrototype($prototype); - $node->setDefaultValue(array('test')); - $this->assertEquals(array('test'), $node->getDefaultValue()); + $node->setDefaultValue(['test']); + $this->assertEquals(['test'], $node->getDefaultValue()); } // a remapped key (e.g. "mapping" -> "mappings") should be unset after being used @@ -47,12 +47,12 @@ public function testRemappedKeysAreUnset() $prototype = new ScalarNode(null, $mappingsNode); $mappingsNode->setPrototype($prototype); - $remappings = array(); - $remappings[] = array('mapping', 'mappings'); + $remappings = []; + $remappings[] = ['mapping', 'mappings']; $node->setXmlRemappings($remappings); - $normalized = $node->normalize(array('mapping' => array('foo', 'bar'))); - $this->assertEquals(array('mappings' => array('foo', 'bar')), $normalized); + $normalized = $node->normalize(['mapping' => ['foo', 'bar']]); + $this->assertEquals(['mappings' => ['foo', 'bar']], $normalized); } /** @@ -66,12 +66,12 @@ public function testRemappedKeysAreUnset() * The above should finally be mapped to an array that looks like this * (because "id" is the key attribute). * - * array( - * 'things' => array( + * [ + * 'things' => [ * 'option1' => 'foo', * 'option2' => 'bar', - * ) - * ) + * ] + * ] */ public function testMappedAttributeKeyIsRemoved() { @@ -83,12 +83,12 @@ public function testMappedAttributeKeyIsRemoved() $prototype->addChild(new ScalarNode('foo')); $node->setPrototype($prototype); - $children = array(); - $children[] = array('id' => 'item_name', 'foo' => 'bar'); + $children = []; + $children[] = ['id' => 'item_name', 'foo' => 'bar']; $normalized = $node->normalize($children); - $expected = array(); - $expected['item_name'] = array('foo' => 'bar'); + $expected = []; + $expected['item_name'] = ['foo' => 'bar']; $this->assertEquals($expected, $normalized); } @@ -107,12 +107,12 @@ public function testMappedAttributeKeyNotRemoved() $prototype->addChild(new ScalarNode('id')); // the key attribute will remain $node->setPrototype($prototype); - $children = array(); - $children[] = array('id' => 'item_name', 'foo' => 'bar'); + $children = []; + $children[] = ['id' => 'item_name', 'foo' => 'bar']; $normalized = $node->normalize($children); - $expected = array(); - $expected['item_name'] = array('id' => 'item_name', 'foo' => 'bar'); + $expected = []; + $expected['item_name'] = ['id' => 'item_name', 'foo' => 'bar']; $this->assertEquals($expected, $normalized); } @@ -121,50 +121,50 @@ public function testAddDefaultChildren() $node = $this->getPrototypeNodeWithDefaultChildren(); $node->setAddChildrenIfNoneSet(); $this->assertTrue($node->hasDefaultValue()); - $this->assertEquals(array(array('foo' => 'bar')), $node->getDefaultValue()); + $this->assertEquals([['foo' => 'bar']], $node->getDefaultValue()); $node = $this->getPrototypeNodeWithDefaultChildren(); $node->setKeyAttribute('foobar'); $node->setAddChildrenIfNoneSet(); $this->assertTrue($node->hasDefaultValue()); - $this->assertEquals(array('defaults' => array('foo' => 'bar')), $node->getDefaultValue()); + $this->assertEquals(['defaults' => ['foo' => 'bar']], $node->getDefaultValue()); $node = $this->getPrototypeNodeWithDefaultChildren(); $node->setKeyAttribute('foobar'); $node->setAddChildrenIfNoneSet('defaultkey'); $this->assertTrue($node->hasDefaultValue()); - $this->assertEquals(array('defaultkey' => array('foo' => 'bar')), $node->getDefaultValue()); + $this->assertEquals(['defaultkey' => ['foo' => 'bar']], $node->getDefaultValue()); $node = $this->getPrototypeNodeWithDefaultChildren(); $node->setKeyAttribute('foobar'); - $node->setAddChildrenIfNoneSet(array('defaultkey')); + $node->setAddChildrenIfNoneSet(['defaultkey']); $this->assertTrue($node->hasDefaultValue()); - $this->assertEquals(array('defaultkey' => array('foo' => 'bar')), $node->getDefaultValue()); + $this->assertEquals(['defaultkey' => ['foo' => 'bar']], $node->getDefaultValue()); $node = $this->getPrototypeNodeWithDefaultChildren(); $node->setKeyAttribute('foobar'); - $node->setAddChildrenIfNoneSet(array('dk1', 'dk2')); + $node->setAddChildrenIfNoneSet(['dk1', 'dk2']); $this->assertTrue($node->hasDefaultValue()); - $this->assertEquals(array('dk1' => array('foo' => 'bar'), 'dk2' => array('foo' => 'bar')), $node->getDefaultValue()); + $this->assertEquals(['dk1' => ['foo' => 'bar'], 'dk2' => ['foo' => 'bar']], $node->getDefaultValue()); $node = $this->getPrototypeNodeWithDefaultChildren(); - $node->setAddChildrenIfNoneSet(array(5, 6)); + $node->setAddChildrenIfNoneSet([5, 6]); $this->assertTrue($node->hasDefaultValue()); - $this->assertEquals(array(0 => array('foo' => 'bar'), 1 => array('foo' => 'bar')), $node->getDefaultValue()); + $this->assertEquals([0 => ['foo' => 'bar'], 1 => ['foo' => 'bar']], $node->getDefaultValue()); $node = $this->getPrototypeNodeWithDefaultChildren(); $node->setAddChildrenIfNoneSet(2); $this->assertTrue($node->hasDefaultValue()); - $this->assertEquals(array(array('foo' => 'bar'), array('foo' => 'bar')), $node->getDefaultValue()); + $this->assertEquals([['foo' => 'bar'], ['foo' => 'bar']], $node->getDefaultValue()); } public function testDefaultChildrenWinsOverDefaultValue() { $node = $this->getPrototypeNodeWithDefaultChildren(); $node->setAddChildrenIfNoneSet(); - $node->setDefaultValue(array('bar' => 'foo')); + $node->setDefaultValue(['bar' => 'foo']); $this->assertTrue($node->hasDefaultValue()); - $this->assertEquals(array(array('foo' => 'bar')), $node->getDefaultValue()); + $this->assertEquals([['foo' => 'bar']], $node->getDefaultValue()); } protected function getPrototypeNodeWithDefaultChildren() @@ -191,11 +191,11 @@ protected function getPrototypeNodeWithDefaultChildren() * The above should finally be mapped to an array that looks like this * (because "id" is the key attribute). * - * array( - * 'things' => array( + * [ + * 'things' => [ * 'option1' => 'value1' - * ) - * ) + * ] + * ] * * It's also possible to mix 'value-only' and 'non-value-only' elements in the array. * @@ -206,15 +206,15 @@ protected function getPrototypeNodeWithDefaultChildren() * * The above should finally be mapped to an array as follows * - * array( - * 'things' => array( + * [ + * 'things' => [ * 'option1' => 'value1', - * 'option2' => array( + * 'option2' => [ * 'value' => 'value2', * 'foo' => 'foo2' - * ) - * ) - * ) + * ] + * ] + * ] * * The 'value' element can also be ArrayNode: * @@ -229,14 +229,14 @@ protected function getPrototypeNodeWithDefaultChildren() * * The above should be finally be mapped to an array as follows * - * array( - * 'things' => array( - * 'option1' => array( + * [ + * 'things' => [ + * 'option1' => [ * 'foo' => 'foo1', * 'bar' => 'bar1' - * ) - * ) - * ) + * ] + * ] + * ] * * If using VariableNode for value node, it's also possible to mix different types of value nodes: * @@ -252,16 +252,15 @@ protected function getPrototypeNodeWithDefaultChildren() * * The above should be finally mapped to an array as follows * - * array( - * 'things' => array( - * 'option1' => array( + * [ + * 'things' => [ + * 'option1' => [ * 'foo' => 'foo1', * 'bar' => 'bar1' - * ), + * ], * 'option2' => 'value2' - * ) - * ) - * + * ] + * ] * * @dataProvider getDataForKeyRemovedLeftValueOnly */ @@ -291,52 +290,52 @@ public function getDataForKeyRemovedLeftValueOnly() $variableValue = new VariableNode('value'); - return array( - array( + return [ + [ $scalarValue, - array( - array('id' => 'option1', 'value' => 'value1'), - ), - array('option1' => 'value1'), - ), + [ + ['id' => 'option1', 'value' => 'value1'], + ], + ['option1' => 'value1'], + ], - array( + [ $scalarValue, - array( - array('id' => 'option1', 'value' => 'value1'), - array('id' => 'option2', 'value' => 'value2', 'foo' => 'foo2'), - ), - array( + [ + ['id' => 'option1', 'value' => 'value1'], + ['id' => 'option2', 'value' => 'value2', 'foo' => 'foo2'], + ], + [ 'option1' => 'value1', - 'option2' => array('value' => 'value2', 'foo' => 'foo2'), - ), - ), + 'option2' => ['value' => 'value2', 'foo' => 'foo2'], + ], + ], - array( + [ $arrayValue, - array( - array( + [ + [ 'id' => 'option1', - 'value' => array('foo' => 'foo1', 'bar' => 'bar1'), - ), - ), - array( - 'option1' => array('foo' => 'foo1', 'bar' => 'bar1'), - ), - ), - - array($variableValue, - array( - array( - 'id' => 'option1', 'value' => array('foo' => 'foo1', 'bar' => 'bar1'), - ), - array('id' => 'option2', 'value' => 'value2'), - ), - array( - 'option1' => array('foo' => 'foo1', 'bar' => 'bar1'), + 'value' => ['foo' => 'foo1', 'bar' => 'bar1'], + ], + ], + [ + 'option1' => ['foo' => 'foo1', 'bar' => 'bar1'], + ], + ], + + [$variableValue, + [ + [ + 'id' => 'option1', 'value' => ['foo' => 'foo1', 'bar' => 'bar1'], + ], + ['id' => 'option2', 'value' => 'value2'], + ], + [ + 'option1' => ['foo' => 'foo1', 'bar' => 'bar1'], 'option2' => 'value2', - ), - ), - ); + ], + ], + ]; } } diff --git a/vendor/symfony/config/Tests/Definition/ScalarNodeTest.php b/vendor/symfony/config/Tests/Definition/ScalarNodeTest.php index 481ef3f4969cf7846af481df9f7cc5a4bac78389..4413baf3c784141dd1dfbaef8cc433e9d742e786 100644 --- a/vendor/symfony/config/Tests/Definition/ScalarNodeTest.php +++ b/vendor/symfony/config/Tests/Definition/ScalarNodeTest.php @@ -28,17 +28,17 @@ public function testNormalize($value) public function getValidValues() { - return array( - array(false), - array(true), - array(null), - array(''), - array('foo'), - array(0), - array(1), - array(0.0), - array(0.1), - ); + return [ + [false], + [true], + [null], + [''], + ['foo'], + [0], + [1], + [0.0], + [0.1], + ]; } public function testSetDeprecated() @@ -62,47 +62,43 @@ public function testSetDeprecated() }; $prevErrorHandler = set_error_handler($deprecationHandler); - $node->finalize(array()); + $node->finalize([]); restore_error_handler(); $this->assertSame(0, $deprecationTriggered, '->finalize() should not trigger if the deprecated node is not set'); $prevErrorHandler = set_error_handler($deprecationHandler); - $node->finalize(array('foo' => '')); + $node->finalize(['foo' => '']); restore_error_handler(); $this->assertSame(1, $deprecationTriggered, '->finalize() should trigger if the deprecated node is set'); } /** * @dataProvider getInvalidValues - * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidTypeException */ public function testNormalizeThrowsExceptionOnInvalidValues($value) { + $this->expectException('Symfony\Component\Config\Definition\Exception\InvalidTypeException'); $node = new ScalarNode('test'); $node->normalize($value); } public function getInvalidValues() { - return array( - array(array()), - array(array('foo' => 'bar')), - array(new \stdClass()), - ); + return [ + [[]], + [['foo' => 'bar']], + [new \stdClass()], + ]; } public function testNormalizeThrowsExceptionWithoutHint() { $node = new ScalarNode('test'); - if (method_exists($this, 'expectException')) { - $this->expectException('Symfony\Component\Config\Definition\Exception\InvalidTypeException'); - $this->expectExceptionMessage('Invalid type for path "test". Expected scalar, but got array.'); - } else { - $this->setExpectedException('Symfony\Component\Config\Definition\Exception\InvalidTypeException', 'Invalid type for path "test". Expected scalar, but got array.'); - } + $this->expectException('Symfony\Component\Config\Definition\Exception\InvalidTypeException'); + $this->expectExceptionMessage('Invalid type for path "test". Expected scalar, but got array.'); - $node->normalize(array()); + $node->normalize([]); } public function testNormalizeThrowsExceptionWithErrorMessage() @@ -110,14 +106,10 @@ public function testNormalizeThrowsExceptionWithErrorMessage() $node = new ScalarNode('test'); $node->setInfo('"the test value"'); - if (method_exists($this, 'expectException')) { - $this->expectException('Symfony\Component\Config\Definition\Exception\InvalidTypeException'); - $this->expectExceptionMessage("Invalid type for path \"test\". Expected scalar, but got array.\nHint: \"the test value\""); - } else { - $this->setExpectedException('Symfony\Component\Config\Definition\Exception\InvalidTypeException', "Invalid type for path \"test\". Expected scalar, but got array.\nHint: \"the test value\""); - } + $this->expectException('Symfony\Component\Config\Definition\Exception\InvalidTypeException'); + $this->expectExceptionMessage("Invalid type for path \"test\". Expected scalar, but got array.\nHint: \"the test value\""); - $node->normalize(array()); + $node->normalize([]); } /** @@ -135,25 +127,25 @@ public function testValidNonEmptyValues($value) public function getValidNonEmptyValues() { - return array( - array(false), - array(true), - array('foo'), - array(0), - array(1), - array(0.0), - array(0.1), - ); + return [ + [false], + [true], + ['foo'], + [0], + [1], + [0.0], + [0.1], + ]; } /** * @dataProvider getEmptyValues - * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidConfigurationException * * @param mixed $value */ public function testNotAllowedEmptyValuesThrowException($value) { + $this->expectException('Symfony\Component\Config\Definition\Exception\InvalidConfigurationException'); $node = new ScalarNode('test'); $node->setAllowEmptyValue(false); $node->finalize($value); @@ -161,9 +153,9 @@ public function testNotAllowedEmptyValuesThrowException($value) public function getEmptyValues() { - return array( - array(null), - array(''), - ); + return [ + [null], + [''], + ]; } } diff --git a/vendor/symfony/config/Tests/DependencyInjection/ConfigCachePassTest.php b/vendor/symfony/config/Tests/DependencyInjection/ConfigCachePassTest.php index 58aeda682689f8e8df6b59adac799d3572c1f57e..c2b95195dcc4041f0c48fc0f7a0b86422eb200d9 100644 --- a/vendor/symfony/config/Tests/DependencyInjection/ConfigCachePassTest.php +++ b/vendor/symfony/config/Tests/DependencyInjection/ConfigCachePassTest.php @@ -27,18 +27,18 @@ public function testThatCheckersAreProcessedInPriorityOrder() $container = new ContainerBuilder(); $definition = $container->register('config_cache_factory')->addArgument(null); - $container->register('checker_2')->addTag('config_cache.resource_checker', array('priority' => 100)); - $container->register('checker_1')->addTag('config_cache.resource_checker', array('priority' => 200)); + $container->register('checker_2')->addTag('config_cache.resource_checker', ['priority' => 100]); + $container->register('checker_1')->addTag('config_cache.resource_checker', ['priority' => 200]); $container->register('checker_3')->addTag('config_cache.resource_checker'); $pass = new ConfigCachePass(); $pass->process($container); - $expected = new IteratorArgument(array( + $expected = new IteratorArgument([ new Reference('checker_1'), new Reference('checker_2'), new Reference('checker_3'), - )); + ]); $this->assertEquals($expected, $definition->getArgument(0)); } diff --git a/vendor/symfony/config/Tests/FileLocatorTest.php b/vendor/symfony/config/Tests/FileLocatorTest.php index 71205041315252dcee7f4df9d91fa616febb82ff..e931916af91871a90434802875eebca9ded51356 100644 --- a/vendor/symfony/config/Tests/FileLocatorTest.php +++ b/vendor/symfony/config/Tests/FileLocatorTest.php @@ -21,7 +21,7 @@ class FileLocatorTest extends TestCase */ public function testIsAbsolutePath($path) { - $loader = new FileLocator(array()); + $loader = new FileLocator([]); $r = new \ReflectionObject($loader); $m = $r->getMethod('isAbsolutePath'); $m->setAccessible(true); @@ -31,14 +31,14 @@ public function testIsAbsolutePath($path) public function getIsAbsolutePathTests() { - return array( - array('/foo.xml'), - array('c:\\\\foo.xml'), - array('c:/foo.xml'), - array('\\server\\foo.xml'), - array('https://server/foo.xml'), - array('phar://server/foo.xml'), - ); + return [ + ['/foo.xml'], + ['c:\\\\foo.xml'], + ['c:/foo.xml'], + ['\\server\\foo.xml'], + ['https://server/foo.xml'], + ['phar://server/foo.xml'], + ]; } public function testLocate() @@ -63,16 +63,16 @@ public function testLocate() '->locate() returns the absolute filename if the file exists in one of the paths given in the constructor' ); - $loader = new FileLocator(array(__DIR__.'/Fixtures', __DIR__.'/Fixtures/Again')); + $loader = new FileLocator([__DIR__.'/Fixtures', __DIR__.'/Fixtures/Again']); $this->assertEquals( - array(__DIR__.'/Fixtures'.\DIRECTORY_SEPARATOR.'foo.xml', __DIR__.'/Fixtures/Again'.\DIRECTORY_SEPARATOR.'foo.xml'), + [__DIR__.'/Fixtures'.\DIRECTORY_SEPARATOR.'foo.xml', __DIR__.'/Fixtures/Again'.\DIRECTORY_SEPARATOR.'foo.xml'], $loader->locate('foo.xml', __DIR__, false), '->locate() returns an array of absolute filenames' ); $this->assertEquals( - array(__DIR__.'/Fixtures'.\DIRECTORY_SEPARATOR.'foo.xml', __DIR__.'/Fixtures/Again'.\DIRECTORY_SEPARATOR.'foo.xml'), + [__DIR__.'/Fixtures'.\DIRECTORY_SEPARATOR.'foo.xml', __DIR__.'/Fixtures/Again'.\DIRECTORY_SEPARATOR.'foo.xml'], $loader->locate('foo.xml', __DIR__.'/Fixtures', false), '->locate() returns an array of absolute filenames' ); @@ -80,40 +80,34 @@ public function testLocate() $loader = new FileLocator(__DIR__.'/Fixtures/Again'); $this->assertEquals( - array(__DIR__.'/Fixtures'.\DIRECTORY_SEPARATOR.'foo.xml', __DIR__.'/Fixtures/Again'.\DIRECTORY_SEPARATOR.'foo.xml'), + [__DIR__.'/Fixtures'.\DIRECTORY_SEPARATOR.'foo.xml', __DIR__.'/Fixtures/Again'.\DIRECTORY_SEPARATOR.'foo.xml'], $loader->locate('foo.xml', __DIR__.'/Fixtures', false), '->locate() returns an array of absolute filenames' ); } - /** - * @expectedException \Symfony\Component\Config\Exception\FileLocatorFileNotFoundException - * @expectedExceptionMessage The file "foobar.xml" does not exist - */ public function testLocateThrowsAnExceptionIfTheFileDoesNotExists() { - $loader = new FileLocator(array(__DIR__.'/Fixtures')); + $this->expectException('Symfony\Component\Config\Exception\FileLocatorFileNotFoundException'); + $this->expectExceptionMessage('The file "foobar.xml" does not exist'); + $loader = new FileLocator([__DIR__.'/Fixtures']); $loader->locate('foobar.xml', __DIR__); } - /** - * @expectedException \Symfony\Component\Config\Exception\FileLocatorFileNotFoundException - */ public function testLocateThrowsAnExceptionIfTheFileDoesNotExistsInAbsolutePath() { - $loader = new FileLocator(array(__DIR__.'/Fixtures')); + $this->expectException('Symfony\Component\Config\Exception\FileLocatorFileNotFoundException'); + $loader = new FileLocator([__DIR__.'/Fixtures']); $loader->locate(__DIR__.'/Fixtures/foobar.xml', __DIR__); } - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage An empty file name is not valid to be located. - */ public function testLocateEmpty() { - $loader = new FileLocator(array(__DIR__.'/Fixtures')); + $this->expectException('InvalidArgumentException'); + $this->expectExceptionMessage('An empty file name is not valid to be located.'); + $loader = new FileLocator([__DIR__.'/Fixtures']); $loader->locate(null, __DIR__); } diff --git a/vendor/symfony/config/Tests/Fixtures/BadFileName.php b/vendor/symfony/config/Tests/Fixtures/BadFileName.php new file mode 100644 index 0000000000000000000000000000000000000000..0f79bdd523a7f25d18d41f13f2c8ce4c0877624f --- /dev/null +++ b/vendor/symfony/config/Tests/Fixtures/BadFileName.php @@ -0,0 +1,9 @@ +<?php + +namespace Symfony\Component\Config\Tests\Fixtures; + +class FileNameMismatchOnPurpose +{ +} + +throw new \RuntimeException('Mismatch between file name and class name.'); diff --git a/vendor/symfony/config/Tests/Fixtures/Configuration/ExampleConfiguration.php b/vendor/symfony/config/Tests/Fixtures/Configuration/ExampleConfiguration.php index d44b67cc1997ffa4983de467a31d2fb177c2ab8f..3f02700a18185ba1fe29ea56b7154419678971c7 100644 --- a/vendor/symfony/config/Tests/Fixtures/Configuration/ExampleConfiguration.php +++ b/vendor/symfony/config/Tests/Fixtures/Configuration/ExampleConfiguration.php @@ -32,14 +32,14 @@ public function getConfigTreeBuilder() ->scalarNode('scalar_true')->defaultTrue()->end() ->scalarNode('scalar_false')->defaultFalse()->end() ->scalarNode('scalar_default')->defaultValue('default')->end() - ->scalarNode('scalar_array_empty')->defaultValue(array())->end() - ->scalarNode('scalar_array_defaults')->defaultValue(array('elem1', 'elem2'))->end() + ->scalarNode('scalar_array_empty')->defaultValue([])->end() + ->scalarNode('scalar_array_defaults')->defaultValue(['elem1', 'elem2'])->end() ->scalarNode('scalar_required')->isRequired()->end() ->scalarNode('scalar_deprecated')->setDeprecated()->end() ->scalarNode('scalar_deprecated_with_message')->setDeprecated('Deprecation custom message for "%node%" at "%path%"')->end() ->scalarNode('node_with_a_looong_name')->end() - ->enumNode('enum_with_default')->values(array('this', 'that'))->defaultValue('this')->end() - ->enumNode('enum')->values(array('this', 'that'))->end() + ->enumNode('enum_with_default')->values(['this', 'that'])->defaultValue('this')->end() + ->enumNode('enum')->values(['this', 'that'])->end() ->arrayNode('array') ->info('some info') ->canBeUnset() diff --git a/vendor/symfony/config/Tests/Fixtures/ParseError.php b/vendor/symfony/config/Tests/Fixtures/ParseError.php new file mode 100644 index 0000000000000000000000000000000000000000..6bb2213824830d8fd7d391430125c62722f8bada --- /dev/null +++ b/vendor/symfony/config/Tests/Fixtures/ParseError.php @@ -0,0 +1,7 @@ +<?php + +namespace Symfony\Component\Config\Tests\Fixtures; + +class ParseError +{ +// missing closing bracket diff --git a/vendor/symfony/config/Tests/Fixtures/Util/not_readable.xml b/vendor/symfony/config/Tests/Fixtures/Util/not_readable.xml new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/vendor/symfony/config/Tests/Loader/DelegatingLoaderTest.php b/vendor/symfony/config/Tests/Loader/DelegatingLoaderTest.php index 3f4b21f34b090306aed8d4dc736ef423ce22b420..38ae6ff7b85298e6ff36e2388f5ae24aa3e7d338 100644 --- a/vendor/symfony/config/Tests/Loader/DelegatingLoaderTest.php +++ b/vendor/symfony/config/Tests/Loader/DelegatingLoaderTest.php @@ -19,7 +19,7 @@ class DelegatingLoaderTest extends TestCase { public function testConstructor() { - $loader = new DelegatingLoader($resolver = new LoaderResolver()); + new DelegatingLoader($resolver = new LoaderResolver()); $this->assertTrue(true, '__construct() takes a loader resolver as its first argument'); } @@ -35,35 +35,33 @@ public function testGetSetResolver() public function testSupports() { $loader1 = $this->getMockBuilder('Symfony\Component\Config\Loader\LoaderInterface')->getMock(); - $loader1->expects($this->once())->method('supports')->will($this->returnValue(true)); - $loader = new DelegatingLoader(new LoaderResolver(array($loader1))); + $loader1->expects($this->once())->method('supports')->willReturn(true); + $loader = new DelegatingLoader(new LoaderResolver([$loader1])); $this->assertTrue($loader->supports('foo.xml'), '->supports() returns true if the resource is loadable'); $loader1 = $this->getMockBuilder('Symfony\Component\Config\Loader\LoaderInterface')->getMock(); - $loader1->expects($this->once())->method('supports')->will($this->returnValue(false)); - $loader = new DelegatingLoader(new LoaderResolver(array($loader1))); + $loader1->expects($this->once())->method('supports')->willReturn(false); + $loader = new DelegatingLoader(new LoaderResolver([$loader1])); $this->assertFalse($loader->supports('foo.foo'), '->supports() returns false if the resource is not loadable'); } public function testLoad() { $loader = $this->getMockBuilder('Symfony\Component\Config\Loader\LoaderInterface')->getMock(); - $loader->expects($this->once())->method('supports')->will($this->returnValue(true)); + $loader->expects($this->once())->method('supports')->willReturn(true); $loader->expects($this->once())->method('load'); - $resolver = new LoaderResolver(array($loader)); + $resolver = new LoaderResolver([$loader]); $loader = new DelegatingLoader($resolver); $loader->load('foo'); } - /** - * @expectedException \Symfony\Component\Config\Exception\FileLoaderLoadException - */ public function testLoadThrowsAnExceptionIfTheResourceCannotBeLoaded() { + $this->expectException('Symfony\Component\Config\Exception\FileLoaderLoadException'); $loader = $this->getMockBuilder('Symfony\Component\Config\Loader\LoaderInterface')->getMock(); - $loader->expects($this->once())->method('supports')->will($this->returnValue(false)); - $resolver = new LoaderResolver(array($loader)); + $loader->expects($this->once())->method('supports')->willReturn(false); + $resolver = new LoaderResolver([$loader]); $loader = new DelegatingLoader($resolver); $loader->load('foo'); diff --git a/vendor/symfony/config/Tests/Loader/FileLoaderTest.php b/vendor/symfony/config/Tests/Loader/FileLoaderTest.php index f8409df9d74303a7b81875ca93e5164dccc654b6..b59ace46f937aea9fb4f65dc02c7141897f25bec 100644 --- a/vendor/symfony/config/Tests/Loader/FileLoaderTest.php +++ b/vendor/symfony/config/Tests/Loader/FileLoaderTest.php @@ -24,11 +24,11 @@ public function testImportWithFileLocatorDelegation() $locatorMockForAdditionalLoader = $this->getMockBuilder('Symfony\Component\Config\FileLocatorInterface')->getMock(); $locatorMockForAdditionalLoader->expects($this->any())->method('locate')->will($this->onConsecutiveCalls( - array('path/to/file1'), // Default - array('path/to/file1', 'path/to/file2'), // First is imported - array('path/to/file1', 'path/to/file2'), // Second is imported - array('path/to/file1'), // Exception - array('path/to/file1', 'path/to/file2') // Exception + ['path/to/file1'], // Default + ['path/to/file1', 'path/to/file2'], // First is imported + ['path/to/file1', 'path/to/file2'], // Second is imported + ['path/to/file1'], // Exception + ['path/to/file1', 'path/to/file2'] // Exception )); $fileLoader = new TestFileLoader($locatorMock); @@ -38,7 +38,7 @@ public function testImportWithFileLocatorDelegation() $additionalLoader = new TestFileLoader($locatorMockForAdditionalLoader); $additionalLoader->setCurrentDir('.'); - $fileLoader->setResolver($loaderResolver = new LoaderResolver(array($fileLoader, $additionalLoader))); + $fileLoader->setResolver($loaderResolver = new LoaderResolver([$fileLoader, $additionalLoader])); // Default case $this->assertSame('path/to/file1', $fileLoader->import('my_resource')); @@ -118,7 +118,7 @@ public function removeLoading($resource) public function clearLoading() { - self::$loading = array(); + self::$loading = []; } public function setSupports($supports) diff --git a/vendor/symfony/config/Tests/Loader/LoaderResolverTest.php b/vendor/symfony/config/Tests/Loader/LoaderResolverTest.php index 0bf56b610ebdc59183b9010baf9f24d704c0dff3..aabc2a600d8dd43d5c36a859fb2b0c04ada9f300 100644 --- a/vendor/symfony/config/Tests/Loader/LoaderResolverTest.php +++ b/vendor/symfony/config/Tests/Loader/LoaderResolverTest.php @@ -18,22 +18,22 @@ class LoaderResolverTest extends TestCase { public function testConstructor() { - $resolver = new LoaderResolver(array( + $resolver = new LoaderResolver([ $loader = $this->getMockBuilder('Symfony\Component\Config\Loader\LoaderInterface')->getMock(), - )); + ]); - $this->assertEquals(array($loader), $resolver->getLoaders(), '__construct() takes an array of loaders as its first argument'); + $this->assertEquals([$loader], $resolver->getLoaders(), '__construct() takes an array of loaders as its first argument'); } public function testResolve() { $loader = $this->getMockBuilder('Symfony\Component\Config\Loader\LoaderInterface')->getMock(); - $resolver = new LoaderResolver(array($loader)); + $resolver = new LoaderResolver([$loader]); $this->assertFalse($resolver->resolve('foo.foo'), '->resolve() returns false if no loader is able to load the resource'); $loader = $this->getMockBuilder('Symfony\Component\Config\Loader\LoaderInterface')->getMock(); - $loader->expects($this->once())->method('supports')->will($this->returnValue(true)); - $resolver = new LoaderResolver(array($loader)); + $loader->expects($this->once())->method('supports')->willReturn(true); + $resolver = new LoaderResolver([$loader]); $this->assertEquals($loader, $resolver->resolve(function () {}), '->resolve() returns the loader for the given resource'); } @@ -42,6 +42,6 @@ public function testLoaders() $resolver = new LoaderResolver(); $resolver->addLoader($loader = $this->getMockBuilder('Symfony\Component\Config\Loader\LoaderInterface')->getMock()); - $this->assertEquals(array($loader), $resolver->getLoaders(), 'addLoader() adds a loader'); + $this->assertEquals([$loader], $resolver->getLoaders(), 'addLoader() adds a loader'); } } diff --git a/vendor/symfony/config/Tests/Loader/LoaderTest.php b/vendor/symfony/config/Tests/Loader/LoaderTest.php index 30167e3836f852a8600057bdea04b312293d4b25..35a911ef3a2d9d046cb42802e3905b8a07106d04 100644 --- a/vendor/symfony/config/Tests/Loader/LoaderTest.php +++ b/vendor/symfony/config/Tests/Loader/LoaderTest.php @@ -34,7 +34,7 @@ public function testResolve() $resolver->expects($this->once()) ->method('resolve') ->with('foo.xml') - ->will($this->returnValue($resolvedLoader)); + ->willReturn($resolvedLoader); $loader = new ProjectLoader1(); $loader->setResolver($resolver); @@ -43,16 +43,14 @@ public function testResolve() $this->assertSame($resolvedLoader, $loader->resolve('foo.xml'), '->resolve() finds a loader'); } - /** - * @expectedException \Symfony\Component\Config\Exception\FileLoaderLoadException - */ public function testResolveWhenResolverCannotFindLoader() { + $this->expectException('Symfony\Component\Config\Exception\FileLoaderLoadException'); $resolver = $this->getMockBuilder('Symfony\Component\Config\Loader\LoaderResolverInterface')->getMock(); $resolver->expects($this->once()) ->method('resolve') ->with('FOOBAR') - ->will($this->returnValue(false)); + ->willReturn(false); $loader = new ProjectLoader1(); $loader->setResolver($resolver); @@ -66,13 +64,13 @@ public function testImport() $resolvedLoader->expects($this->once()) ->method('load') ->with('foo') - ->will($this->returnValue('yes')); + ->willReturn('yes'); $resolver = $this->getMockBuilder('Symfony\Component\Config\Loader\LoaderResolverInterface')->getMock(); $resolver->expects($this->once()) ->method('resolve') ->with('foo') - ->will($this->returnValue($resolvedLoader)); + ->willReturn($resolvedLoader); $loader = new ProjectLoader1(); $loader->setResolver($resolver); @@ -86,13 +84,13 @@ public function testImportWithType() $resolvedLoader->expects($this->once()) ->method('load') ->with('foo', 'bar') - ->will($this->returnValue('yes')); + ->willReturn('yes'); $resolver = $this->getMockBuilder('Symfony\Component\Config\Loader\LoaderResolverInterface')->getMock(); $resolver->expects($this->once()) ->method('resolve') ->with('foo', 'bar') - ->will($this->returnValue($resolvedLoader)); + ->willReturn($resolvedLoader); $loader = new ProjectLoader1(); $loader->setResolver($resolver); diff --git a/vendor/symfony/config/Tests/Resource/ClassExistenceResourceTest.php b/vendor/symfony/config/Tests/Resource/ClassExistenceResourceTest.php index 79bc64d69b9ade92dc7149582fcbf054094a356c..8020a57884e73ee31f6e249f6fb3298142019046 100644 --- a/vendor/symfony/config/Tests/Resource/ClassExistenceResourceTest.php +++ b/vendor/symfony/config/Tests/Resource/ClassExistenceResourceTest.php @@ -13,7 +13,9 @@ use PHPUnit\Framework\TestCase; use Symfony\Component\Config\Resource\ClassExistenceResource; +use Symfony\Component\Config\Tests\Fixtures\BadFileName; use Symfony\Component\Config\Tests\Fixtures\BadParent; +use Symfony\Component\Config\Tests\Fixtures\ParseError; use Symfony\Component\Config\Tests\Fixtures\Resource\ConditionalClass; class ClassExistenceResourceTest extends TestCase @@ -67,7 +69,7 @@ public function testExistsKo() $loadedClass = 123; - $res = new ClassExistenceResource('MissingFooClass', false); + new ClassExistenceResource('MissingFooClass', false); $this->assertSame(123, $loadedClass); } finally { @@ -81,20 +83,48 @@ public function testBadParentWithTimestamp() $this->assertTrue($res->isFresh(time())); } - /** - * @expectedException \ReflectionException - * @expectedExceptionMessage Class Symfony\Component\Config\Tests\Fixtures\MissingParent not found - */ public function testBadParentWithNoTimestamp() { + $this->expectException('ReflectionException'); + $this->expectExceptionMessage('Class "Symfony\Component\Config\Tests\Fixtures\MissingParent" not found while loading "Symfony\Component\Config\Tests\Fixtures\BadParent".'); + $res = new ClassExistenceResource(BadParent::class, false); $res->isFresh(0); } + public function testBadFileName() + { + $this->expectException('ReflectionException'); + $this->expectExceptionMessage('Mismatch between file name and class name.'); + + $res = new ClassExistenceResource(BadFileName::class, false); + $res->isFresh(0); + } + + public function testBadFileNameBis() + { + $this->expectException('ReflectionException'); + $this->expectExceptionMessage('Mismatch between file name and class name.'); + + $res = new ClassExistenceResource(BadFileName::class, false); + $res->isFresh(0); + } + public function testConditionalClass() { $res = new ClassExistenceResource(ConditionalClass::class, false); $this->assertFalse($res->isFresh(0)); } + + /** + * @requires PHP 7 + */ + public function testParseError() + { + $this->expectException('ParseError'); + + $res = new ClassExistenceResource(ParseError::class, false); + $res->isFresh(0); + } } diff --git a/vendor/symfony/config/Tests/Resource/DirectoryResourceTest.php b/vendor/symfony/config/Tests/Resource/DirectoryResourceTest.php index cf20e43b50027315691ec717d508204ef182745f..40b179010196d6b0556d180d48ecac169c8ad6f8 100644 --- a/vendor/symfony/config/Tests/Resource/DirectoryResourceTest.php +++ b/vendor/symfony/config/Tests/Resource/DirectoryResourceTest.php @@ -63,13 +63,11 @@ public function testGetPattern() $this->assertEquals('bar', $resource->getPattern()); } - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessageRegExp /The directory ".*" does not exist./ - */ public function testResourceDoesNotExist() { - $resource = new DirectoryResource('/____foo/foobar'.mt_rand(1, 999999)); + $this->expectException('InvalidArgumentException'); + $this->expectExceptionMessageRegExp('/The directory ".*" does not exist./'); + new DirectoryResource('/____foo/foobar'.mt_rand(1, 999999)); } public function testIsFresh() @@ -167,7 +165,7 @@ public function testSerializeUnserialize() { $resource = new DirectoryResource($this->directory, '/\.(foo|xml)$/'); - $unserialized = unserialize(serialize($resource)); + unserialize(serialize($resource)); $this->assertSame(realpath($this->directory), $resource->getResource()); $this->assertSame('/\.(foo|xml)$/', $resource->getPattern()); @@ -178,6 +176,6 @@ public function testResourcesWithDifferentPatternsAreDifferent() $resourceA = new DirectoryResource($this->directory, '/.xml$/'); $resourceB = new DirectoryResource($this->directory, '/.yaml$/'); - $this->assertCount(2, array_unique(array($resourceA, $resourceB))); + $this->assertCount(2, array_unique([$resourceA, $resourceB])); } } diff --git a/vendor/symfony/config/Tests/Resource/FileResourceTest.php b/vendor/symfony/config/Tests/Resource/FileResourceTest.php index 97781ffabfcf196414196eb5e56fde1ce54cf72b..968c7e92661694ecaba40f1c8e74ee2ae161cee5 100644 --- a/vendor/symfony/config/Tests/Resource/FileResourceTest.php +++ b/vendor/symfony/config/Tests/Resource/FileResourceTest.php @@ -53,13 +53,11 @@ public function testToString() $this->assertSame(realpath($this->file), (string) $this->resource); } - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessageRegExp /The file ".*" does not exist./ - */ public function testResourceDoesNotExist() { - $resource = new FileResource('/____foo/foobar'.mt_rand(1, 999999)); + $this->expectException('InvalidArgumentException'); + $this->expectExceptionMessageRegExp('/The file ".*" does not exist./'); + new FileResource('/____foo/foobar'.mt_rand(1, 999999)); } public function testIsFresh() @@ -78,7 +76,7 @@ public function testIsFreshForDeletedResources() public function testSerializeUnserialize() { - $unserialized = unserialize(serialize($this->resource)); + unserialize(serialize($this->resource)); $this->assertSame(realpath($this->file), $this->resource->getResource()); } diff --git a/vendor/symfony/config/Tests/Resource/GlobResourceTest.php b/vendor/symfony/config/Tests/Resource/GlobResourceTest.php index c66770c3051c20d8894f15b2cb65aa5d3ff212ea..cfbfd2b4554e2d36eeaadae1e10144a3ca67f801 100644 --- a/vendor/symfony/config/Tests/Resource/GlobResourceTest.php +++ b/vendor/symfony/config/Tests/Resource/GlobResourceTest.php @@ -33,7 +33,7 @@ public function testIterator() $paths = iterator_to_array($resource); $file = $dir.'/Resource'.\DIRECTORY_SEPARATOR.'ConditionalClass.php'; - $this->assertEquals(array($file => new \SplFileInfo($file)), $paths); + $this->assertEquals([$file => new \SplFileInfo($file)], $paths); $this->assertInstanceOf('SplFileInfo', current($paths)); $this->assertSame($dir, $resource->getPrefix()); @@ -42,7 +42,7 @@ public function testIterator() $paths = iterator_to_array($resource); $file = $dir.\DIRECTORY_SEPARATOR.'Resource'.\DIRECTORY_SEPARATOR.'ConditionalClass.php'; - $this->assertEquals(array($file => $file), $paths); + $this->assertEquals([$file => $file], $paths); $this->assertInstanceOf('SplFileInfo', current($paths)); $this->assertSame($dir, $resource->getPrefix()); } diff --git a/vendor/symfony/config/Tests/Resource/ReflectionClassResourceTest.php b/vendor/symfony/config/Tests/Resource/ReflectionClassResourceTest.php index 61b0fdf7345b142bd956cbb181474a4b81a11261..74ed6b3edc2a999c91643b39d84a643bf55d616f 100644 --- a/vendor/symfony/config/Tests/Resource/ReflectionClassResourceTest.php +++ b/vendor/symfony/config/Tests/Resource/ReflectionClassResourceTest.php @@ -63,15 +63,19 @@ public function testIsFreshForDeletedResources() /** * @dataProvider provideHashedSignature */ - public function testHashedSignature($changeExpected, $changedLine, $changedCode) + public function testHashedSignature($changeExpected, $changedLine, $changedCode, $setContext = null) { + if ($setContext) { + $setContext(); + } + $code = <<<'EOPHP' /* 0*/ /* 1*/ class %s extends ErrorException /* 2*/ { /* 3*/ const FOO = 123; /* 4*/ -/* 5*/ public $pub = array(); +/* 5*/ public $pub = []; /* 6*/ /* 7*/ protected $prot; /* 8*/ @@ -79,10 +83,12 @@ public function testHashedSignature($changeExpected, $changedLine, $changedCode) /*10*/ /*11*/ public function pub($arg = null) {} /*12*/ -/*13*/ protected function prot($a = array()) {} +/*13*/ protected function prot($a = []) {} /*14*/ /*15*/ private function priv() {} -/*16*/ } +/*16*/ +/*17*/ public function ccc($bar = A_CONSTANT_THAT_FOR_SURE_WILL_NEVER_BE_DEFINED_CCCCCC) {} +/*18*/ } EOPHP; static $expectedSignature, $generateSignature; @@ -97,7 +103,9 @@ public function testHashedSignature($changeExpected, $changedLine, $changedCode) } $code = explode("\n", $code); - $code[$changedLine] = $changedCode; + if (null !== $changedCode) { + $code[$changedLine] = $changedCode; + } eval(sprintf(implode("\n", $code), $class = 'Foo'.str_replace('.', '_', uniqid('', true)))); $signature = implode("\n", iterator_to_array($generateSignature(new \ReflectionClass($class)))); @@ -110,33 +118,45 @@ public function testHashedSignature($changeExpected, $changedLine, $changedCode) public function provideHashedSignature() { - yield array(0, 0, "// line change\n\n"); - yield array(1, 0, '/** class docblock */'); - yield array(1, 1, 'abstract class %s'); - yield array(1, 1, 'final class %s'); - yield array(1, 1, 'class %s extends Exception'); - yield array(1, 1, 'class %s implements '.DummyInterface::class); - yield array(1, 3, 'const FOO = 456;'); - yield array(1, 3, 'const BAR = 123;'); - yield array(1, 4, '/** pub docblock */'); - yield array(1, 5, 'protected $pub = array();'); - yield array(1, 5, 'public $pub = array(123);'); - yield array(1, 6, '/** prot docblock */'); - yield array(1, 7, 'private $prot;'); - yield array(0, 8, '/** priv docblock */'); - yield array(0, 9, 'private $priv = 123;'); - yield array(1, 10, '/** pub docblock */'); + yield [0, 0, "// line change\n\n"]; + yield [1, 0, '/** class docblock */']; + yield [1, 1, 'abstract class %s']; + yield [1, 1, 'final class %s']; + yield [1, 1, 'class %s extends Exception']; + yield [1, 1, 'class %s implements '.DummyInterface::class]; + yield [1, 3, 'const FOO = 456;']; + yield [1, 3, 'const BAR = 123;']; + yield [1, 4, '/** pub docblock */']; + yield [1, 5, 'protected $pub = [];']; + yield [1, 5, 'public $pub = [123];']; + yield [1, 6, '/** prot docblock */']; + yield [1, 7, 'private $prot;']; + yield [0, 8, '/** priv docblock */']; + yield [0, 9, 'private $priv = 123;']; + yield [1, 10, '/** pub docblock */']; if (\PHP_VERSION_ID >= 50600) { - yield array(1, 11, 'public function pub(...$arg) {}'); + yield [1, 11, 'public function pub(...$arg) {}']; } if (\PHP_VERSION_ID >= 70000) { - yield array(1, 11, 'public function pub($arg = null): Foo {}'); + yield [1, 11, 'public function pub($arg = null): Foo {}']; + } + yield [0, 11, "public function pub(\$arg = null) {\nreturn 123;\n}"]; + yield [1, 12, '/** prot docblock */']; + yield [1, 13, 'protected function prot($a = [123]) {}']; + yield [0, 14, '/** priv docblock */']; + yield [0, 15, '']; + + if (\PHP_VERSION_ID >= 70400) { + // PHP7.4 typed properties without default value are + // undefined, make sure this doesn't throw an error + yield [1, 5, 'public array $pub;']; + yield [0, 7, 'protected int $prot;']; + yield [0, 9, 'private string $priv;']; } - yield array(0, 11, "public function pub(\$arg = null) {\nreturn 123;\n}"); - yield array(1, 12, '/** prot docblock */'); - yield array(1, 13, 'protected function prot($a = array(123)) {}'); - yield array(0, 14, '/** priv docblock */'); - yield array(0, 15, ''); + + yield [1, 17, 'public function ccc($bar = 187) {}']; + yield [1, 17, 'public function ccc($bar = ANOTHER_ONE_THAT_WILL_NEVER_BE_DEFINED_CCCCCCCCC) {}']; + yield [1, 17, null, static function () { \define('A_CONSTANT_THAT_FOR_SURE_WILL_NEVER_BE_DEFINED_CCCCCC', 'foo'); }]; } public function testEventSubscriber() @@ -144,7 +164,7 @@ public function testEventSubscriber() $res = new ReflectionClassResource(new \ReflectionClass(TestEventSubscriber::class)); $this->assertTrue($res->isFresh(0)); - TestEventSubscriber::$subscribedEvents = array(123); + TestEventSubscriber::$subscribedEvents = [123]; $this->assertFalse($res->isFresh(0)); $res = new ReflectionClassResource(new \ReflectionClass(TestEventSubscriber::class)); @@ -156,12 +176,21 @@ public function testServiceSubscriber() $res = new ReflectionClassResource(new \ReflectionClass(TestServiceSubscriber::class)); $this->assertTrue($res->isFresh(0)); - TestServiceSubscriber::$subscribedServices = array(123); + TestServiceSubscriber::$subscribedServices = [123]; $this->assertFalse($res->isFresh(0)); $res = new ReflectionClassResource(new \ReflectionClass(TestServiceSubscriber::class)); $this->assertTrue($res->isFresh(0)); } + + public function testIgnoresObjectsInSignature() + { + $res = new ReflectionClassResource(new \ReflectionClass(TestServiceWithStaticProperty::class)); + $this->assertTrue($res->isFresh(0)); + + TestServiceWithStaticProperty::$initializedObject = new TestServiceWithStaticProperty(); + $this->assertTrue($res->isFresh(0)); + } } interface DummyInterface @@ -170,7 +199,7 @@ interface DummyInterface class TestEventSubscriber implements EventSubscriberInterface { - public static $subscribedEvents = array(); + public static $subscribedEvents = []; public static function getSubscribedEvents() { @@ -180,10 +209,15 @@ public static function getSubscribedEvents() class TestServiceSubscriber implements ServiceSubscriberInterface { - public static $subscribedServices = array(); + public static $subscribedServices = []; public static function getSubscribedServices() { return self::$subscribedServices; } } + +class TestServiceWithStaticProperty +{ + public static $initializedObject; +} diff --git a/vendor/symfony/config/Tests/ResourceCheckerConfigCacheTest.php b/vendor/symfony/config/Tests/ResourceCheckerConfigCacheTest.php index bb29ac02a4efed8368f230963545327742c85af6..a2c2eeb811b20b3ec6fa2cb344eb8a99b31ba174 100644 --- a/vendor/symfony/config/Tests/ResourceCheckerConfigCacheTest.php +++ b/vendor/symfony/config/Tests/ResourceCheckerConfigCacheTest.php @@ -27,7 +27,7 @@ protected function setUp() protected function tearDown() { - $files = array($this->cacheFile, "{$this->cacheFile}.meta"); + $files = [$this->cacheFile, "{$this->cacheFile}.meta"]; foreach ($files as $file) { if (file_exists($file)) { @@ -52,7 +52,7 @@ public function testCacheIsNotFreshIfEmpty() It does not matter if you provide checkers or not. */ unlink($this->cacheFile); // remove tempnam() side effect - $cache = new ResourceCheckerConfigCache($this->cacheFile, array($checker)); + $cache = new ResourceCheckerConfigCache($this->cacheFile, [$checker]); $this->assertFalse($cache->isFresh()); } @@ -67,7 +67,7 @@ public function testCacheIsFreshIfNoCheckerProvided() public function testCacheIsFreshIfEmptyCheckerIteratorProvided() { - $cache = new ResourceCheckerConfigCache($this->cacheFile, new \ArrayIterator(array())); + $cache = new ResourceCheckerConfigCache($this->cacheFile, new \ArrayIterator([])); $this->assertTrue($cache->isFresh()); } @@ -75,7 +75,7 @@ public function testResourcesWithoutcheckersAreIgnoredAndConsideredFresh() { /* As in the previous test, but this time we have a resource. */ $cache = new ResourceCheckerConfigCache($this->cacheFile); - $cache->write('', array(new ResourceStub())); + $cache->write('', [new ResourceStub()]); $this->assertTrue($cache->isFresh()); // no (matching) ResourceChecker passed } @@ -92,8 +92,8 @@ public function testIsFreshWithchecker() ->method('isFresh') ->willReturn(true); - $cache = new ResourceCheckerConfigCache($this->cacheFile, array($checker)); - $cache->write('', array(new ResourceStub())); + $cache = new ResourceCheckerConfigCache($this->cacheFile, [$checker]); + $cache->write('', [new ResourceStub()]); $this->assertTrue($cache->isFresh()); } @@ -110,8 +110,8 @@ public function testIsNotFreshWithchecker() ->method('isFresh') ->willReturn(false); - $cache = new ResourceCheckerConfigCache($this->cacheFile, array($checker)); - $cache->write('', array(new ResourceStub())); + $cache = new ResourceCheckerConfigCache($this->cacheFile, [$checker]); + $cache->write('', [new ResourceStub()]); $this->assertFalse($cache->isFresh()); } @@ -119,8 +119,8 @@ public function testIsNotFreshWithchecker() public function testCacheIsNotFreshWhenUnserializeFails() { $checker = $this->getMockBuilder('\Symfony\Component\Config\ResourceCheckerInterface')->getMock(); - $cache = new ResourceCheckerConfigCache($this->cacheFile, array($checker)); - $cache->write('foo', array(new FileResource(__FILE__))); + $cache = new ResourceCheckerConfigCache($this->cacheFile, [$checker]); + $cache->write('foo', [new FileResource(__FILE__)]); $metaFile = "{$this->cacheFile}.meta"; file_put_contents($metaFile, str_replace('FileResource', 'ClassNotHere', file_get_contents($metaFile))); @@ -139,8 +139,8 @@ public function testCacheKeepsContent() public function testCacheIsNotFreshIfNotExistsMetaFile() { $checker = $this->getMockBuilder('\Symfony\Component\Config\ResourceCheckerInterface')->getMock(); - $cache = new ResourceCheckerConfigCache($this->cacheFile, array($checker)); - $cache->write('foo', array(new FileResource(__FILE__))); + $cache = new ResourceCheckerConfigCache($this->cacheFile, [$checker]); + $cache->write('foo', [new FileResource(__FILE__)]); $metaFile = "{$this->cacheFile}.meta"; unlink($metaFile); diff --git a/vendor/symfony/config/Tests/Util/XmlUtilsTest.php b/vendor/symfony/config/Tests/Util/XmlUtilsTest.php index 10b4a7a9b4dc7a581495b50502d581c54555d354..2aecdf8259c657f29a74151e08919778c10079d2 100644 --- a/vendor/symfony/config/Tests/Util/XmlUtilsTest.php +++ b/vendor/symfony/config/Tests/Util/XmlUtilsTest.php @@ -20,69 +20,93 @@ public function testLoadFile() { $fixtures = __DIR__.'/../Fixtures/Util/'; + try { + XmlUtils::loadFile($fixtures); + $this->fail(); + } catch (\InvalidArgumentException $e) { + $this->assertStringContainsString('is not a file', $e->getMessage()); + } + + try { + XmlUtils::loadFile($fixtures.'non_existing.xml'); + $this->fail(); + } catch (\InvalidArgumentException $e) { + $this->assertStringContainsString('is not a file', $e->getMessage()); + } + + try { + if ('\\' === \DIRECTORY_SEPARATOR) { + $this->markTestSkipped('chmod is not supported on Windows'); + } + chmod($fixtures.'not_readable.xml', 000); + XmlUtils::loadFile($fixtures.'not_readable.xml'); + $this->fail(); + } catch (\InvalidArgumentException $e) { + chmod($fixtures.'not_readable.xml', 0644); + $this->assertStringContainsString('is not readable', $e->getMessage()); + } + try { XmlUtils::loadFile($fixtures.'invalid.xml'); $this->fail(); } catch (\InvalidArgumentException $e) { - $this->assertContains('ERROR 77', $e->getMessage()); + $this->assertStringContainsString('ERROR ', $e->getMessage()); } try { XmlUtils::loadFile($fixtures.'document_type.xml'); $this->fail(); } catch (\InvalidArgumentException $e) { - $this->assertContains('Document types are not allowed', $e->getMessage()); + $this->assertStringContainsString('Document types are not allowed', $e->getMessage()); } try { XmlUtils::loadFile($fixtures.'invalid_schema.xml', $fixtures.'schema.xsd'); $this->fail(); } catch (\InvalidArgumentException $e) { - $this->assertContains('ERROR 1845', $e->getMessage()); + $this->assertStringContainsString('ERROR 1845', $e->getMessage()); } try { XmlUtils::loadFile($fixtures.'invalid_schema.xml', 'invalid_callback_or_file'); $this->fail(); } catch (\InvalidArgumentException $e) { - $this->assertContains('XSD file or callable', $e->getMessage()); + $this->assertStringContainsString('XSD file or callable', $e->getMessage()); } - $mock = $this->getMockBuilder(__NAMESPACE__.'\Validator')->getMock(); + $mock = $this->getMockBuilder(Validator::class)->getMock(); $mock->expects($this->exactly(2))->method('validate')->will($this->onConsecutiveCalls(false, true)); try { - XmlUtils::loadFile($fixtures.'valid.xml', array($mock, 'validate')); + XmlUtils::loadFile($fixtures.'valid.xml', [$mock, 'validate']); $this->fail(); } catch (\InvalidArgumentException $e) { $this->assertRegExp('/The XML file ".+" is not valid\./', $e->getMessage()); } - $this->assertInstanceOf('DOMDocument', XmlUtils::loadFile($fixtures.'valid.xml', array($mock, 'validate'))); - $this->assertSame(array(), libxml_get_errors()); + $this->assertInstanceOf('DOMDocument', XmlUtils::loadFile($fixtures.'valid.xml', [$mock, 'validate'])); + $this->assertSame([], libxml_get_errors()); } - /** - * @expectedException \Symfony\Component\Config\Util\Exception\InvalidXmlException - * @expectedExceptionMessage The XML is not valid - */ public function testParseWithInvalidValidatorCallable() { + $this->expectException('Symfony\Component\Config\Util\Exception\InvalidXmlException'); + $this->expectExceptionMessage('The XML is not valid'); $fixtures = __DIR__.'/../Fixtures/Util/'; - $mock = $this->getMockBuilder(__NAMESPACE__.'\Validator')->getMock(); + $mock = $this->getMockBuilder(Validator::class)->getMock(); $mock->expects($this->once())->method('validate')->willReturn(false); - XmlUtils::parse(file_get_contents($fixtures.'valid.xml'), array($mock, 'validate')); + XmlUtils::parse(file_get_contents($fixtures.'valid.xml'), [$mock, 'validate']); } public function testLoadFileWithInternalErrorsEnabled() { $internalErrors = libxml_use_internal_errors(true); - $this->assertSame(array(), libxml_get_errors()); + $this->assertSame([], libxml_get_errors()); $this->assertInstanceOf('DOMDocument', XmlUtils::loadFile(__DIR__.'/../Fixtures/Util/invalid_schema.xml')); - $this->assertSame(array(), libxml_get_errors()); + $this->assertSame([], libxml_get_errors()); libxml_clear_errors(); libxml_use_internal_errors($internalErrors); @@ -101,25 +125,25 @@ public function testConvertDomToArray($expected, $xml, $root = false, $checkPref public function getDataForConvertDomToArray() { - return array( - array(null, ''), - array('bar', 'bar'), - array(array('bar' => 'foobar'), '<foo bar="foobar" />', true), - array(array('foo' => null), '<foo />'), - array(array('foo' => 'bar'), '<foo>bar</foo>'), - array(array('foo' => array('foo' => 'bar')), '<foo foo="bar"/>'), - array(array('foo' => array('foo' => 0)), '<foo><foo>0</foo></foo>'), - array(array('foo' => array('foo' => 'bar')), '<foo><foo>bar</foo></foo>'), - array(array('foo' => array('foo' => 'bar', 'value' => 'text')), '<foo foo="bar">text</foo>'), - array(array('foo' => array('attr' => 'bar', 'foo' => 'text')), '<foo attr="bar"><foo>text</foo></foo>'), - array(array('foo' => array('bar', 'text')), '<foo>bar</foo><foo>text</foo>'), - array(array('foo' => array(array('foo' => 'bar'), array('foo' => 'text'))), '<foo foo="bar"/><foo foo="text" />'), - array(array('foo' => array('foo' => array('bar', 'text'))), '<foo foo="bar"><foo>text</foo></foo>'), - array(array('foo' => 'bar'), '<foo><!-- Comment -->bar</foo>'), - array(array('foo' => 'text'), '<foo xmlns:h="http://www.example.org/bar" h:bar="bar">text</foo>'), - array(array('foo' => array('bar' => 'bar', 'value' => 'text')), '<foo xmlns:h="http://www.example.org/bar" h:bar="bar">text</foo>', false, false), - array(array('attr' => 1, 'b' => 'hello'), '<foo:a xmlns:foo="http://www.example.org/foo" xmlns:h="http://www.example.org/bar" attr="1" h:bar="bar"><foo:b>hello</foo:b><h:c>2</h:c></foo:a>', true), - ); + return [ + [null, ''], + ['bar', 'bar'], + [['bar' => 'foobar'], '<foo bar="foobar" />', true], + [['foo' => null], '<foo />'], + [['foo' => 'bar'], '<foo>bar</foo>'], + [['foo' => ['foo' => 'bar']], '<foo foo="bar"/>'], + [['foo' => ['foo' => 0]], '<foo><foo>0</foo></foo>'], + [['foo' => ['foo' => 'bar']], '<foo><foo>bar</foo></foo>'], + [['foo' => ['foo' => 'bar', 'value' => 'text']], '<foo foo="bar">text</foo>'], + [['foo' => ['attr' => 'bar', 'foo' => 'text']], '<foo attr="bar"><foo>text</foo></foo>'], + [['foo' => ['bar', 'text']], '<foo>bar</foo><foo>text</foo>'], + [['foo' => [['foo' => 'bar'], ['foo' => 'text']]], '<foo foo="bar"/><foo foo="text" />'], + [['foo' => ['foo' => ['bar', 'text']]], '<foo foo="bar"><foo>text</foo></foo>'], + [['foo' => 'bar'], '<foo><!-- Comment -->bar</foo>'], + [['foo' => 'text'], '<foo xmlns:h="http://www.example.org/bar" h:bar="bar">text</foo>'], + [['foo' => ['bar' => 'bar', 'value' => 'text']], '<foo xmlns:h="http://www.example.org/bar" h:bar="bar">text</foo>', false, false], + [['attr' => 1, 'b' => 'hello'], '<foo:a xmlns:foo="http://www.example.org/foo" xmlns:h="http://www.example.org/bar" attr="1" h:bar="bar"><foo:b>hello</foo:b><h:c>2</h:c></foo:a>', true], + ]; } /** @@ -132,46 +156,42 @@ public function testPhpize($expected, $value) public function getDataForPhpize() { - return array( - array('', ''), - array(null, 'null'), - array(true, 'true'), - array(false, 'false'), - array(null, 'Null'), - array(true, 'True'), - array(false, 'False'), - array(0, '0'), - array(1, '1'), - array(-1, '-1'), - array(0777, '0777'), - array(255, '0xFF'), - array(100.0, '1e2'), - array(-120.0, '-1.2E2'), - array(-10100.1, '-10100.1'), - array('-10,100.1', '-10,100.1'), - array('1234 5678 9101 1121 3141', '1234 5678 9101 1121 3141'), - array('1,2,3,4', '1,2,3,4'), - array('11,22,33,44', '11,22,33,44'), - array('11,222,333,4', '11,222,333,4'), - array('1,222,333,444', '1,222,333,444'), - array('11,222,333,444', '11,222,333,444'), - array('111,222,333,444', '111,222,333,444'), - array('1111,2222,3333,4444,5555', '1111,2222,3333,4444,5555'), - array('foo', 'foo'), - array(6, '0b0110'), - ); + return [ + ['', ''], + [null, 'null'], + [true, 'true'], + [false, 'false'], + [null, 'Null'], + [true, 'True'], + [false, 'False'], + [0, '0'], + [1, '1'], + [-1, '-1'], + [0777, '0777'], + [255, '0xFF'], + [100.0, '1e2'], + [-120.0, '-1.2E2'], + [-10100.1, '-10100.1'], + ['-10,100.1', '-10,100.1'], + ['1234 5678 9101 1121 3141', '1234 5678 9101 1121 3141'], + ['1,2,3,4', '1,2,3,4'], + ['11,22,33,44', '11,22,33,44'], + ['11,222,333,4', '11,222,333,4'], + ['1,222,333,444', '1,222,333,444'], + ['11,222,333,444', '11,222,333,444'], + ['111,222,333,444', '111,222,333,444'], + ['1111,2222,3333,4444,5555', '1111,2222,3333,4444,5555'], + ['foo', 'foo'], + [6, '0b0110'], + ]; } public function testLoadEmptyXmlFile() { $file = __DIR__.'/../Fixtures/foo.xml'; - if (method_exists($this, 'expectException')) { - $this->expectException('InvalidArgumentException'); - $this->expectExceptionMessage(sprintf('File %s does not contain valid XML, it is empty.', $file)); - } else { - $this->setExpectedException('InvalidArgumentException', sprintf('File %s does not contain valid XML, it is empty.', $file)); - } + $this->expectException('InvalidArgumentException'); + $this->expectExceptionMessage(sprintf('File "%s" does not contain valid XML, it is empty.', $file)); XmlUtils::loadFile($file); } @@ -192,7 +212,7 @@ public function testLoadWrongEmptyXMLWithErrorHandler() XmlUtils::loadFile($file); $this->fail('An exception should have been raised'); } catch (\InvalidArgumentException $e) { - $this->assertEquals(sprintf('File %s does not contain valid XML, it is empty.', $file), $e->getMessage()); + $this->assertEquals(sprintf('File "%s" does not contain valid XML, it is empty.', $file), $e->getMessage()); } } finally { restore_error_handler(); diff --git a/vendor/symfony/config/Util/XmlUtils.php b/vendor/symfony/config/Util/XmlUtils.php index d761e4e80fbad74a3bc91758bfcf1564ca81853c..c925f315e5ed3954020f2319644217a040b70d4a 100644 --- a/vendor/symfony/config/Util/XmlUtils.php +++ b/vendor/symfony/config/Util/XmlUtils.php @@ -122,9 +122,18 @@ public static function parse($content, $schemaOrCallable = null) */ public static function loadFile($file, $schemaOrCallable = null) { + if (!is_file($file)) { + throw new \InvalidArgumentException(sprintf('Resource "%s" is not a file.', $file)); + } + + if (!is_readable($file)) { + throw new \InvalidArgumentException(sprintf('File "%s" is not readable.', $file)); + } + $content = @file_get_contents($file); + if ('' === trim($content)) { - throw new \InvalidArgumentException(sprintf('File %s does not contain valid XML, it is empty.', $file)); + throw new \InvalidArgumentException(sprintf('File "%s" does not contain valid XML, it is empty.', $file)); } try { @@ -152,15 +161,15 @@ public static function loadFile($file, $schemaOrCallable = null) * @param \DOMElement $element A \DOMElement instance * @param bool $checkPrefix Check prefix in an element or an attribute name * - * @return array A PHP array + * @return mixed */ public static function convertDomElementToArray(\DOMElement $element, $checkPrefix = true) { $prefix = (string) $element->prefix; $empty = true; - $config = array(); + $config = []; foreach ($element->attributes as $name => $node) { - if ($checkPrefix && !\in_array((string) $node->prefix, array('', $prefix), true)) { + if ($checkPrefix && !\in_array((string) $node->prefix, ['', $prefix], true)) { continue; } $config[$name] = static::phpize($node->value); @@ -182,7 +191,7 @@ public static function convertDomElementToArray(\DOMElement $element, $checkPref $key = $node->localName; if (isset($config[$key])) { if (!\is_array($config[$key]) || !\is_int(key($config[$key]))) { - $config[$key] = array($config[$key]); + $config[$key] = [$config[$key]]; } $config[$key][] = $value; } else { @@ -219,7 +228,7 @@ public static function phpize($value) switch (true) { case 'null' === $lowercaseValue: - return; + return null; case ctype_digit($value): $raw = $value; $cast = (int) $value; @@ -234,13 +243,13 @@ public static function phpize($value) return true; case 'false' === $lowercaseValue: return false; - case isset($value[1]) && '0b' == $value[0].$value[1]: + case isset($value[1]) && '0b' == $value[0].$value[1] && preg_match('/^0b[01]*$/', $value): return bindec($value); case is_numeric($value): return '0x' === $value[0].$value[1] ? hexdec($value) : (float) $value; case preg_match('/^0x[0-9a-f]++$/i', $value): return hexdec($value); - case preg_match('/^(-|\+)?[0-9]+(\.[0-9]+)?$/', $value): + case preg_match('/^[+-]?[0-9]+(\.[0-9]+)?$/', $value): return (float) $value; default: return $value; @@ -249,7 +258,7 @@ public static function phpize($value) protected static function getXmlErrors($internalErrors) { - $errors = array(); + $errors = []; foreach (libxml_get_errors() as $error) { $errors[] = sprintf('[%s %s] %s (in %s - line %d, column %d)', LIBXML_ERR_WARNING == $error->level ? 'WARNING' : 'ERROR', diff --git a/vendor/symfony/config/phpunit.xml.dist b/vendor/symfony/config/phpunit.xml.dist index 36ef339fd78e422a39dacfcb2a6b8b6219577686..1cfdb3cdc67271a994db715a7c459921596af5da 100644 --- a/vendor/symfony/config/phpunit.xml.dist +++ b/vendor/symfony/config/phpunit.xml.dist @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd" + xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/5.2/phpunit.xsd" backupGlobals="false" colors="true" bootstrap="vendor/autoload.php" diff --git a/vendor/symfony/filesystem/Exception/IOExceptionInterface.php b/vendor/symfony/filesystem/Exception/IOExceptionInterface.php index c11965a4247ee4811f7ee38b78bc792f76acc08b..f9d4644a8727946c24276c9fa648d2f372bb48e9 100644 --- a/vendor/symfony/filesystem/Exception/IOExceptionInterface.php +++ b/vendor/symfony/filesystem/Exception/IOExceptionInterface.php @@ -21,7 +21,7 @@ interface IOExceptionInterface extends ExceptionInterface /** * Returns the associated path for the exception. * - * @return string The path + * @return string|null The path */ public function getPath(); } diff --git a/vendor/symfony/filesystem/Filesystem.php b/vendor/symfony/filesystem/Filesystem.php index 08151cbf8cfa1555795ed3bf8f57bb9244172ada..0b5297ecf0666e2f9382bc9776e79770b80f855a 100644 --- a/vendor/symfony/filesystem/Filesystem.php +++ b/vendor/symfony/filesystem/Filesystem.php @@ -52,13 +52,13 @@ public function copy($originFile, $targetFile, $overwriteNewerFiles = false) } if ($doCopy) { - // https://bugs.php.net/bug.php?id=64634 + // https://bugs.php.net/64634 if (false === $source = @fopen($originFile, 'r')) { throw new IOException(sprintf('Failed to copy "%s" to "%s" because source file could not be opened for reading.', $originFile, $targetFile), 0, null, $originFile); } // Stream context created to allow files overwrite when using FTP stream wrapper - disabled by default - if (false === $target = @fopen($targetFile, 'w', null, stream_context_create(array('ftp' => array('overwrite' => true))))) { + if (false === $target = @fopen($targetFile, 'w', null, stream_context_create(['ftp' => ['overwrite' => true]]))) { throw new IOException(sprintf('Failed to copy "%s" to "%s" because target file could not be opened for writing.', $originFile, $targetFile), 0, null, $originFile); } @@ -101,9 +101,9 @@ public function mkdir($dirs, $mode = 0777) if (!is_dir($dir)) { // The directory was not created by a concurrent process. Let's throw an exception with a developer friendly error message if we have one if (self::$lastError) { - throw new IOException(sprintf('Failed to create "%s": %s.', $dir, self::$lastError), 0, null, $dir); + throw new IOException(sprintf('Failed to create "%s": ', $dir).self::$lastError, 0, null, $dir); } - throw new IOException(sprintf('Failed to create "%s"', $dir), 0, null, $dir); + throw new IOException(sprintf('Failed to create "%s".', $dir), 0, null, $dir); } } } @@ -137,8 +137,8 @@ public function exists($files) * Sets access and modification time of file. * * @param string|iterable $files A filename, an array of files, or a \Traversable instance to create - * @param int $time The touch time as a Unix timestamp - * @param int $atime The access time as a Unix timestamp + * @param int|null $time The touch time as a Unix timestamp, if not supplied the current system time is used + * @param int|null $atime The access time as a Unix timestamp, if not supplied the current system time is used * * @throws IOException When touch fails */ @@ -164,23 +164,23 @@ public function remove($files) if ($files instanceof \Traversable) { $files = iterator_to_array($files, false); } elseif (!\is_array($files)) { - $files = array($files); + $files = [$files]; } $files = array_reverse($files); foreach ($files as $file) { if (is_link($file)) { // See https://bugs.php.net/52176 if (!(self::box('unlink', $file) || '\\' !== \DIRECTORY_SEPARATOR || self::box('rmdir', $file)) && file_exists($file)) { - throw new IOException(sprintf('Failed to remove symlink "%s": %s.', $file, self::$lastError)); + throw new IOException(sprintf('Failed to remove symlink "%s": ', $file).self::$lastError); } } elseif (is_dir($file)) { $this->remove(new \FilesystemIterator($file, \FilesystemIterator::CURRENT_AS_PATHNAME | \FilesystemIterator::SKIP_DOTS)); if (!self::box('rmdir', $file) && file_exists($file)) { - throw new IOException(sprintf('Failed to remove directory "%s": %s.', $file, self::$lastError)); + throw new IOException(sprintf('Failed to remove directory "%s": ', $file).self::$lastError); } } elseif (!self::box('unlink', $file) && file_exists($file)) { - throw new IOException(sprintf('Failed to remove file "%s": %s.', $file, self::$lastError)); + throw new IOException(sprintf('Failed to remove file "%s": ', $file).self::$lastError); } } } @@ -193,7 +193,7 @@ public function remove($files) * @param int $umask The mode mask (octal) * @param bool $recursive Whether change the mod recursively or not * - * @throws IOException When the change fail + * @throws IOException When the change fails */ public function chmod($files, $mode, $umask = 0000, $recursive = false) { @@ -211,10 +211,10 @@ public function chmod($files, $mode, $umask = 0000, $recursive = false) * Change the owner of an array of files or directories. * * @param string|iterable $files A filename, an array of files, or a \Traversable instance to change owner - * @param string $user The new owner user name + * @param string|int $user A user name or number * @param bool $recursive Whether change the owner recursively or not * - * @throws IOException When the change fail + * @throws IOException When the change fails */ public function chown($files, $user, $recursive = false) { @@ -238,10 +238,10 @@ public function chown($files, $user, $recursive = false) * Change the group of an array of files or directories. * * @param string|iterable $files A filename, an array of files, or a \Traversable instance to change group - * @param string $group The group name + * @param string|int $group A group name or number * @param bool $recursive Whether change the group recursively or not * - * @throws IOException When the change fail + * @throws IOException When the change fails */ public function chgrp($files, $group, $recursive = false) { @@ -280,8 +280,8 @@ public function rename($origin, $target, $overwrite = false) if (true !== @rename($origin, $target)) { if (is_dir($origin)) { - // See https://bugs.php.net/bug.php?id=54097 & http://php.net/manual/en/function.rename.php#113943 - $this->mirror($origin, $target, null, array('override' => $overwrite, 'delete' => $overwrite)); + // See https://bugs.php.net/54097 & https://php.net/rename#113943 + $this->mirror($origin, $target, null, ['override' => $overwrite, 'delete' => $overwrite]); $this->remove($origin); return; @@ -362,7 +362,7 @@ public function hardlink($originFile, $targetFiles) } if (!is_file($originFile)) { - throw new FileNotFoundException(sprintf('Origin file "%s" is not a file', $originFile)); + throw new FileNotFoundException(sprintf('Origin file "%s" is not a file.', $originFile)); } foreach ($this->toIterable($targetFiles) as $targetFile) { @@ -388,10 +388,10 @@ private function linkException($origin, $target, $linkType) { if (self::$lastError) { if ('\\' === \DIRECTORY_SEPARATOR && false !== strpos(self::$lastError, 'error code(1314)')) { - throw new IOException(sprintf('Unable to create %s link due to error code 1314: \'A required privilege is not held by the client\'. Do you have the required Administrator-rights?', $linkType), 0, null, $target); + throw new IOException(sprintf('Unable to create "%s" link due to error code 1314: \'A required privilege is not held by the client\'. Do you have the required Administrator-rights?', $linkType), 0, null, $target); } } - throw new IOException(sprintf('Failed to create %s link from "%s" to "%s".', $linkType, $origin, $target), 0, null, $target); + throw new IOException(sprintf('Failed to create "%s" link from "%s" to "%s".', $linkType, $origin, $target), 0, null, $target); } /** @@ -413,12 +413,12 @@ private function linkException($origin, $target, $linkType) public function readlink($path, $canonicalize = false) { if (!$canonicalize && !is_link($path)) { - return; + return null; } if ($canonicalize) { if (!$this->exists($path)) { - return; + return null; } if ('\\' === \DIRECTORY_SEPARATOR) { @@ -455,28 +455,19 @@ public function makePathRelative($endPath, $startPath) $startPath = str_replace('\\', '/', $startPath); } - $stripDriveLetter = function ($path) { - if (\strlen($path) > 2 && ':' === $path[1] && '/' === $path[2] && ctype_alpha($path[0])) { - return substr($path, 2); - } - - return $path; + $splitDriveLetter = function ($path) { + return (\strlen($path) > 2 && ':' === $path[1] && '/' === $path[2] && ctype_alpha($path[0])) + ? [substr($path, 2), strtoupper($path[0])] + : [$path, null]; }; - $endPath = $stripDriveLetter($endPath); - $startPath = $stripDriveLetter($startPath); + $splitPath = function ($path, $absolute) { + $result = []; - // Split the paths into arrays - $startPathArr = explode('/', trim($startPath, '/')); - $endPathArr = explode('/', trim($endPath, '/')); - - $normalizePathArray = function ($pathSegments, $absolute) { - $result = array(); - - foreach ($pathSegments as $segment) { + foreach (explode('/', trim($path, '/')) as $segment) { if ('..' === $segment && ($absolute || \count($result))) { array_pop($result); - } elseif ('.' !== $segment) { + } elseif ('.' !== $segment && '' !== $segment) { $result[] = $segment; } } @@ -484,8 +475,16 @@ public function makePathRelative($endPath, $startPath) return $result; }; - $startPathArr = $normalizePathArray($startPathArr, static::isAbsolutePath($startPath)); - $endPathArr = $normalizePathArray($endPathArr, static::isAbsolutePath($endPath)); + list($endPath, $endDriveLetter) = $splitDriveLetter($endPath); + list($startPath, $startDriveLetter) = $splitDriveLetter($startPath); + + $startPathArr = $splitPath($startPath, static::isAbsolutePath($startPath)); + $endPathArr = $splitPath($endPath, static::isAbsolutePath($endPath)); + + if ($endDriveLetter && $startDriveLetter && $endDriveLetter != $startDriveLetter) { + // End path is on another drive, so no relative path exists + return $endDriveLetter.':/'.($endPathArr ? implode('/', $endPathArr).'/' : ''); + } // Find for which directory the common path stops $index = 0; @@ -519,18 +518,18 @@ public function makePathRelative($endPath, $startPath) * - existing files in the target directory will be overwritten, except if they are newer (see the `override` option) * - files in the target directory that do not exist in the source directory will not be deleted (see the `delete` option) * - * @param string $originDir The origin directory - * @param string $targetDir The target directory - * @param \Traversable $iterator Iterator that filters which files and directories to copy - * @param array $options An array of boolean options - * Valid options are: - * - $options['override'] If true, target files newer than origin files are overwritten (see copy(), defaults to false) - * - $options['copy_on_windows'] Whether to copy files instead of links on Windows (see symlink(), defaults to false) - * - $options['delete'] Whether to delete files that are not in the source directory (defaults to false) + * @param string $originDir The origin directory + * @param string $targetDir The target directory + * @param \Traversable|null $iterator Iterator that filters which files and directories to copy, if null a recursive iterator is created + * @param array $options An array of boolean options + * Valid options are: + * - $options['override'] If true, target files newer than origin files are overwritten (see copy(), defaults to false) + * - $options['copy_on_windows'] Whether to copy files instead of links on Windows (see symlink(), defaults to false) + * - $options['delete'] Whether to delete files that are not in the source directory (defaults to false) * * @throws IOException When file type is unknown */ - public function mirror($originDir, $targetDir, \Traversable $iterator = null, $options = array()) + public function mirror($originDir, $targetDir, \Traversable $iterator = null, $options = []) { $targetDir = rtrim($targetDir, '/\\'); $originDir = rtrim($originDir, '/\\'); @@ -726,11 +725,11 @@ public function appendToFile($filename, $content) */ private function toIterable($files) { - return \is_array($files) || $files instanceof \Traversable ? $files : array($files); + return \is_array($files) || $files instanceof \Traversable ? $files : [$files]; } /** - * Gets a 2-tuple of scheme (may be null) and hierarchical part of a filename (e.g. file:///tmp -> array(file, tmp)). + * Gets a 2-tuple of scheme (may be null) and hierarchical part of a filename (e.g. file:///tmp -> [file, tmp]). * * @param string $filename The filename to be parsed * @@ -740,22 +739,27 @@ private function getSchemeAndHierarchy($filename) { $components = explode('://', $filename, 2); - return 2 === \count($components) ? array($components[0], $components[1]) : array(null, $components[0]); + return 2 === \count($components) ? [$components[0], $components[1]] : [null, $components[0]]; } + /** + * @param callable $func + * + * @return mixed + */ private static function box($func) { self::$lastError = null; - \set_error_handler(__CLASS__.'::handleError'); + set_error_handler(__CLASS__.'::handleError'); try { $result = \call_user_func_array($func, \array_slice(\func_get_args(), 1)); - \restore_error_handler(); + restore_error_handler(); return $result; } catch (\Throwable $e) { } catch (\Exception $e) { } - \restore_error_handler(); + restore_error_handler(); throw $e; } diff --git a/vendor/symfony/filesystem/LICENSE b/vendor/symfony/filesystem/LICENSE index 21d7fb9e2f29b50caca3a76f0647e94e2cc8ddc1..9e936ec0448b8549e5edf08e5ac5f01491a8bfc8 100644 --- a/vendor/symfony/filesystem/LICENSE +++ b/vendor/symfony/filesystem/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2020 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/filesystem/README.md b/vendor/symfony/filesystem/README.md index 877ab3543f32d0f60ee2508e799d21b0c4538b24..cb03d43c15dd25fabc83feb7b129b7037c6c6c8b 100644 --- a/vendor/symfony/filesystem/README.md +++ b/vendor/symfony/filesystem/README.md @@ -6,7 +6,7 @@ The Filesystem component provides basic utilities for the filesystem. Resources --------- - * [Documentation](https://symfony.com/doc/current/components/filesystem/index.html) + * [Documentation](https://symfony.com/doc/current/components/filesystem.html) * [Contributing](https://symfony.com/doc/current/contributing/index.html) * [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls) diff --git a/vendor/symfony/filesystem/Tests/FilesystemTest.php b/vendor/symfony/filesystem/Tests/FilesystemTest.php index e4ff91ca80bbc5d334558aba6f3dfb8a7cd7d474..8ac80437fe5dc9c04e17193622df42d7f0ffecae 100644 --- a/vendor/symfony/filesystem/Tests/FilesystemTest.php +++ b/vendor/symfony/filesystem/Tests/FilesystemTest.php @@ -29,27 +29,27 @@ public function testCopyCreatesNewFile() $this->assertStringEqualsFile($targetFilePath, 'SOURCE FILE'); } - /** - * @expectedException \Symfony\Component\Filesystem\Exception\IOException - */ public function testCopyFails() { + $this->expectException('Symfony\Component\Filesystem\Exception\IOException'); $sourceFilePath = $this->workspace.\DIRECTORY_SEPARATOR.'copy_source_file'; $targetFilePath = $this->workspace.\DIRECTORY_SEPARATOR.'copy_target_file'; $this->filesystem->copy($sourceFilePath, $targetFilePath); } - /** - * @expectedException \Symfony\Component\Filesystem\Exception\IOException - */ public function testCopyUnreadableFileFails() { + $this->expectException('Symfony\Component\Filesystem\Exception\IOException'); // skip test on Windows; PHP can't easily set file as unreadable on Windows if ('\\' === \DIRECTORY_SEPARATOR) { $this->markTestSkipped('This test cannot run on Windows.'); } + if (!getenv('USER') || 'root' === getenv('USER')) { + $this->markTestSkipped('This test will fail if run under superuser'); + } + $sourceFilePath = $this->workspace.\DIRECTORY_SEPARATOR.'copy_source_file'; $targetFilePath = $this->workspace.\DIRECTORY_SEPARATOR.'copy_target_file'; @@ -114,16 +114,18 @@ public function testCopyOverridesExistingFileIfForced() $this->assertStringEqualsFile($targetFilePath, 'SOURCE FILE'); } - /** - * @expectedException \Symfony\Component\Filesystem\Exception\IOException - */ public function testCopyWithOverrideWithReadOnlyTargetFails() { + $this->expectException('Symfony\Component\Filesystem\Exception\IOException'); // skip test on Windows; PHP can't easily set file as unwritable on Windows if ('\\' === \DIRECTORY_SEPARATOR) { $this->markTestSkipped('This test cannot run on Windows.'); } + if (!getenv('USER') || 'root' === getenv('USER')) { + $this->markTestSkipped('This test will fail if run under superuser'); + } + $sourceFilePath = $this->workspace.\DIRECTORY_SEPARATOR.'copy_source_file'; $targetFilePath = $this->workspace.\DIRECTORY_SEPARATOR.'copy_target_file'; @@ -151,7 +153,7 @@ public function testCopyCreatesTargetDirectoryIfItDoesNotExist() $this->filesystem->copy($sourceFilePath, $targetFilePath); - $this->assertTrue(is_dir($targetFileDirectory)); + $this->assertDirectoryExists($targetFileDirectory); $this->assertFileExists($targetFilePath); $this->assertStringEqualsFile($targetFilePath, 'SOURCE FILE'); } @@ -161,7 +163,10 @@ public function testCopyCreatesTargetDirectoryIfItDoesNotExist() */ public function testCopyForOriginUrlsAndExistingLocalFileDefaultsToCopy() { - $sourceFilePath = 'http://symfony.com/images/common/logo/logo_symfony_header.png'; + if (!\in_array('https', stream_get_wrappers())) { + $this->markTestSkipped('"https" stream wrapper is not enabled.'); + } + $sourceFilePath = 'https://symfony.com/images/common/logo/logo_symfony_header.png'; $targetFilePath = $this->workspace.\DIRECTORY_SEPARATOR.'copy_target_file'; file_put_contents($targetFilePath, 'TARGET FILE'); @@ -180,42 +185,40 @@ public function testMkdirCreatesDirectoriesRecursively() $this->filesystem->mkdir($directory); - $this->assertTrue(is_dir($directory)); + $this->assertDirectoryExists($directory); } public function testMkdirCreatesDirectoriesFromArray() { $basePath = $this->workspace.\DIRECTORY_SEPARATOR; - $directories = array( + $directories = [ $basePath.'1', $basePath.'2', $basePath.'3', - ); + ]; $this->filesystem->mkdir($directories); - $this->assertTrue(is_dir($basePath.'1')); - $this->assertTrue(is_dir($basePath.'2')); - $this->assertTrue(is_dir($basePath.'3')); + $this->assertDirectoryExists($basePath.'1'); + $this->assertDirectoryExists($basePath.'2'); + $this->assertDirectoryExists($basePath.'3'); } public function testMkdirCreatesDirectoriesFromTraversableObject() { $basePath = $this->workspace.\DIRECTORY_SEPARATOR; - $directories = new \ArrayObject(array( + $directories = new \ArrayObject([ $basePath.'1', $basePath.'2', $basePath.'3', - )); + ]); $this->filesystem->mkdir($directories); - $this->assertTrue(is_dir($basePath.'1')); - $this->assertTrue(is_dir($basePath.'2')); - $this->assertTrue(is_dir($basePath.'3')); + $this->assertDirectoryExists($basePath.'1'); + $this->assertDirectoryExists($basePath.'2'); + $this->assertDirectoryExists($basePath.'3'); } - /** - * @expectedException \Symfony\Component\Filesystem\Exception\IOException - */ public function testMkdirCreatesDirectoriesFails() { + $this->expectException('Symfony\Component\Filesystem\Exception\IOException'); $basePath = $this->workspace.\DIRECTORY_SEPARATOR; $dir = $basePath.'2'; @@ -233,11 +236,9 @@ public function testTouchCreatesEmptyFile() $this->assertFileExists($file); } - /** - * @expectedException \Symfony\Component\Filesystem\Exception\IOException - */ public function testTouchFails() { + $this->expectException('Symfony\Component\Filesystem\Exception\IOException'); $file = $this->workspace.\DIRECTORY_SEPARATOR.'1'.\DIRECTORY_SEPARATOR.'2'; $this->filesystem->touch($file); @@ -246,9 +247,9 @@ public function testTouchFails() public function testTouchCreatesEmptyFilesFromArray() { $basePath = $this->workspace.\DIRECTORY_SEPARATOR; - $files = array( + $files = [ $basePath.'1', $basePath.'2', $basePath.'3', - ); + ]; $this->filesystem->touch($files); @@ -260,9 +261,9 @@ public function testTouchCreatesEmptyFilesFromArray() public function testTouchCreatesEmptyFilesFromTraversableObject() { $basePath = $this->workspace.\DIRECTORY_SEPARATOR; - $files = new \ArrayObject(array( + $files = new \ArrayObject([ $basePath.'1', $basePath.'2', $basePath.'3', - )); + ]); $this->filesystem->touch($files); @@ -291,9 +292,9 @@ public function testRemoveCleansArrayOfFilesAndDirectories() mkdir($basePath.'dir'); touch($basePath.'file'); - $files = array( + $files = [ $basePath.'dir', $basePath.'file', - ); + ]; $this->filesystem->remove($files); @@ -308,9 +309,9 @@ public function testRemoveCleansTraversableObjectOfFilesAndDirectories() mkdir($basePath.'dir'); touch($basePath.'file'); - $files = new \ArrayObject(array( + $files = new \ArrayObject([ $basePath.'dir', $basePath.'file', - )); + ]); $this->filesystem->remove($files); @@ -324,9 +325,9 @@ public function testRemoveIgnoresNonExistingFiles() mkdir($basePath.'dir'); - $files = array( + $files = [ $basePath.'dir', $basePath.'file', - ); + ]; $this->filesystem->